亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

VC中解決兩個難懂的安全性問題

2019-11-17 05:08:02
字體:
來源:轉載
供稿:網友

  經常討論一些您發現的少量錯誤并讓人們知道它們是很有益的。在本文中我想討論兩個主題:   交互式服務
  調用 _alloca()

  安全性、服務和交互式桌面

  與 Unix 守護程序類似,服務是 Microsoft Windows NT? 的中樞,可以向操作系統和用戶提供重要功能而無需用戶的參與。創建服務時,有一些問題需要注重?! icrosoft Windows? 中的服務通常是控制臺應用程序,它們的運行無需用戶參與,也沒有用戶界面。但在某些實例中,服務可能需要與用戶進行交互。運行在較高安全環境中的服務(如 SYSTEM)不應作為交互式服務運行。在 Windows 用戶界面中,桌面是安全邊界,在交互式桌面上運行的任何應用程序可以與交互式桌面上的任何窗口交互,即使窗口并不可見。無論創建窗口的應用程序的安全環境和應用程序的安全環境如何,都是這樣。 由于這些設計特點,任何在交互式桌面上打開窗口的服務都會向登錄用戶所執行的應用程序公開。假如服務試圖使用窗口消息控制其功能,則登錄用戶可以通過使用惡意消息來干擾該功能。
  將服務作為 SYSTEM 運行的做法(即,服務通過調用 OpenWindowStation 和 GetThreadDesktop 來支持交互式桌面)十分不可取。請注重,Windows 將來的版本可能會完全取消對交互式服務的支持。  我們建議服務編寫人員使用客戶端/服務器技術(例如 RPC、套接字、命名管道或 COM)實現與來自某個服務的登錄用戶的交互,使用帶 MB_SERVICE_NOTIFICATION 的 MessageBox 顯示簡單的狀態。假如您的服務代碼具有以下任何屬性,請提高警惕:
  • 作為 LocalSystem 運行,并且服務在安全配置治理器中進行了標記(“登錄為”->“答應服務與桌面交互”),或注冊表項 ->HKLM/CCS/Services/MyService/Type & 0x0100 == 0x0100)
    CreateService,并且 dwServiceType & SERVICE_INTERACTIVE_PROCESS == SERVICE_INTERACTIVE_PROCESS
  • 調用 MessageBox(),其中 uType and (MB_DEFAULT_DESKTOP_ONLY MB_SERVICE_NOTIFICATION MB_SERVICE_NOTIFICATION_NT3X) != 0
  • 調用 OpenDesktop("winsta0",...) 并在該桌面上創建用戶界面
  • 在 OpenDesktop 上調用 LoadLibrary/GetProcAddress

  小心 _alloca

  _alloca 函數可以在堆棧中分配動態內存。分配的空間將在調用函數退出時自動釋放,而不只是在分配超出范圍時釋放。下面是使用 _alloca 的示例代碼:

void function(char *szData) {
PVOID p = _alloca(lstrlen(szData));
// 使用 p
}
  假如攻擊者提供一個比堆棧大小還要長的 szData,_alloca 會引發一個異常并導致應用程序停止。假如該代碼位于服務器中,則情況會更糟。處理這種錯誤情況的正確方法是將對 _alloca 的調用打包在異常處理程序中,并在出現錯誤時重置堆棧。void function(char *szData) {
__try {
PVOID p = _alloca(lstrlen(szData));
// 使用 p
} __except ((EXCEPTION_STACK_OVERFLOW == GetExceptionCode()) ?
EXCEPTION_EXECUTE_HANDLER :
EXCEPTION_CONTINUE_SEARCH) {
_resetstKOFlw();
}
}
  相關問題:ATL 轉換宏

  您還應當小心某些調用 _alloca 的 ATL 字符串轉換宏。這些宏包括 A2W、W2A 和 CW2CT 等。假如您的代碼是服務器代碼,則調用其中任何轉換函數時都必須考慮數據的長度。這是不要輕易相信輸入的又一個示例。假如攻擊者向您的代碼提供一個 10 MB 的字符串,便會摧毀堆棧并引發異常;或者假如未引發異常,則導致失敗。所以千萬不要這樣做!
  發現缺陷

  沒有人看出上星期的代碼中的錯誤,但很多人已接近目標。其中的問題是為明文和密文使用了相同的緩沖區。您永遠都不能這樣做?! ≌Э雌饋恚褂孟嗤木彌_區存儲明文,然后加密明文產生的密文似乎很好。在大多數情況下也是這樣。但在多線程環境中就不是這樣了。設想一下,您的代碼中出現了一個“競爭狀態”,而您卻并不知道。(競爭狀態是由對軟件中的事件的相對時間產生意外的嚴格依靠而引起的。它們通常與同步錯誤一起出現。)坦白地說,您永遠不會知道存在著嚴重的競爭狀態,等知道時已經太晚了。請再考慮一下,您的應用程序的正常流程如下所示:  使用明文加載緩沖區。
  加密緩沖區。
  將緩沖區內容發送給接收者。

  這看起來很正常。但是,設想您有一個多線程應用程序,由于某種原因,最后兩個步驟由于競爭狀態而被交換:  使用明文加載緩沖區。
  將緩沖區環境發送給接收者。
  加密緩沖區。

  接收者只接收到一些明文!這是在 Internet Information Server 4.0 中修復的一個錯誤。在非常非凡的負載和極少數情況下,當使用安全套接字層 (SSL) 保護從服務器至用戶的數據通道時,服務器可能會遵循此模式,并將一個未加密的數據信息包發送給用戶。這種潛在問題的破壞很小;只向用戶(或者可能是一個攻擊者)發送了一個信息包。并且當用戶接收到信息包時,客戶端軟件將斷開連接。據說該問題已被 Microsoft 修復了?! ⌒迯偷姆椒ㄊ鞘褂脙蓚€緩沖區。一個緩沖區用于明文,另一個用于密文,并確保密文在執行不同調用時已被清空?! ∧苤赋龃舜a中的錯誤嗎?void ShuffleAndUpdate(char *szName, char *szPwd,
DWord index,
DWORD d) {
DWORD dwArray[32];
ZeroMemory(dwArray,sizeof(dwArray));
BOOL fAllowaccess = FALSE;
if (IsValidUser(szName,szPwd)) {
fAllowAccess = TRUE;
ShuffleArray(dwArray,szName);
}
dwArray[index]= d;
if (fAllowAccess) {
// 執行某些敏感的操作
}
}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美极品第一页| 777777777亚洲妇女| 亚洲国产私拍精品国模在线观看| 欧美一区第一页| 中文字幕欧美精品在线| 久久久999精品免费| 久久久久久久久久av| 97热精品视频官网| 亚洲成人av片在线观看| 欧美精品videos| 精品视频—区二区三区免费| 亚洲精品按摩视频| 欧美激情一区二区久久久| 国产精品男人的天堂| 性色av一区二区三区在线观看| 国产69精品久久久久9999| 国产狼人综合免费视频| www.日本久久久久com.| 成人av在线天堂| 欧美大尺度激情区在线播放| 黑人欧美xxxx| 中文字幕一区二区精品| 国产日韩欧美综合| 成人国内精品久久久久一区| 在线观看不卡av| 久久久久久亚洲精品| 欧美日韩精品在线观看| 亚洲最大福利视频网站| 97精品伊人久久久大香线蕉| 国产亚洲精品高潮| 国产婷婷97碰碰久久人人蜜臀| 久久久电影免费观看完整版| 中文字幕欧美日韩精品| 中文字幕在线日韩| 韩国欧美亚洲国产| 日韩在线观看高清| 97人洗澡人人免费公开视频碰碰碰| 亚洲一区二区三区四区在线播放| 国产国产精品人在线视| 久久久久久久久久av| 91av在线视频观看| 亚洲美女av在线播放| 日韩精品在线观看一区| 国产美女扒开尿口久久久| 成人福利网站在线观看11| 成人黄色激情网| 国产欧美日韩最新| 精品国产精品三级精品av网址| 亚洲国产一区二区三区四区| 欧美在线视频免费播放| 亚洲精品久久久久| 自拍偷拍亚洲欧美| 久久综合电影一区| 久久久久久久久久久网站| 色琪琪综合男人的天堂aⅴ视频| 精品久久久久久国产91| 久久色精品视频| 亚洲白虎美女被爆操| 国产欧美日韩中文字幕在线| 亚洲午夜性刺激影院| 超碰91人人草人人干| 国产午夜精品美女视频明星a级| 国产精品专区一| 日韩中文字幕视频在线| 成人久久一区二区三区| 福利微拍一区二区| 日韩免费精品视频| 日韩av不卡电影| 伊人久久五月天| 中文字幕亚洲国产| 亚洲精品国产精品乱码不99按摩| 日韩激情视频在线播放| 欧美亚洲国产成人精品| 国产一区二区丝袜高跟鞋图片| 日韩在线观看免费高清完整版| 久久伊人精品一区二区三区| 国产一区二区美女视频| 久久久成人精品视频| 日韩中文字幕免费视频| 成人在线精品视频| 久久的精品视频| 中文字幕久久亚洲| 国产精品久久77777| 成人黄色中文字幕| 国产精品极品在线| 欧美夜福利tv在线| 欧美另类在线播放| 欧美国产日产韩国视频| 亚洲性生活视频| 亚洲视频视频在线| 日韩福利视频在线观看| 欧美疯狂性受xxxxx另类| 国产97在线播放| 成人美女免费网站视频| 日本国产欧美一区二区三区| 亚洲xxxx妇黄裸体| 麻豆一区二区在线观看| 成人中文字幕+乱码+中文字幕| 久久777国产线看观看精品| 欧美在线观看一区二区三区| 欧美性videos高清精品| 亚洲精品一区二三区不卡| 日韩精品丝袜在线| 68精品久久久久久欧美| 亚洲福利视频网站| 伊人久久男人天堂| 亚洲精品一区二区久| 国产精品女视频| 亚洲人成欧美中文字幕| 91av在线播放视频| 亚洲护士老师的毛茸茸最新章节| 久久精品国产一区二区电影| 日韩在线视频线视频免费网站| 国产不卡视频在线| 日韩最新中文字幕电影免费看| xxx欧美精品| 91美女福利视频高清| 国内精品久久久久影院优| 国产一区二区三区视频| 亚洲无av在线中文字幕| 国产一区二区三区日韩欧美| 日韩激情视频在线| 7777免费精品视频| 黄色成人av在线| 亚洲综合一区二区不卡| 久久免费视频观看| 日韩欧美成人免费视频| 久久综合色影院| 国产精品va在线播放我和闺蜜| 成人福利在线观看| 日韩女在线观看| xvideos亚洲人网站| 欧美影院久久久| 精品中文字幕视频| 久久久久久久国产| 九九久久综合网站| 国产精品男女猛烈高潮激情| 久久久久久97| 综合激情国产一区| 国a精品视频大全| 成人午夜高潮视频| 欧美日韩免费区域视频在线观看| 欧美疯狂做受xxxx高潮| 91色视频在线导航| 亚洲精品资源美女情侣酒店| www.日本久久久久com.| 欧美xxxx14xxxxx性爽| 精品一区精品二区| 欧美激情精品久久久久久黑人| 国产美女精彩久久| 日韩最新av在线| 日本最新高清不卡中文字幕| 日本欧美精品在线| 萌白酱国产一区二区| 亚洲综合一区二区不卡| 国产成人鲁鲁免费视频a| 欧美高清视频在线播放| 性色av一区二区咪爱| 日韩精品亚洲元码| 国产成人久久精品| 亚洲欧美日韩一区二区三区在线| 日本免费一区二区三区视频观看| 亚洲午夜未删减在线观看| 亚洲精品一区二区三区婷婷月|