• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 保護Exchange免受緩沖溢出攻擊

    發表于:2007-06-13來源:作者:點擊數: 標簽:
    不管什么時候,如果你檢查微軟網站中的為視窗系統(或其他大多數微軟產品)作的最新的 安全 更新,你將會發現大多數重要的補丁都是為系統防止緩沖溢出而設計的。在像做這樣的設計時主要考慮是,一個攻擊者可以使用一個惡意的代碼片斷作為執行他/她自己的代碼

    不管什么時候,如果你檢查微軟網站中的為視窗系統(或其他大多數微軟產品)作的最新的安全更新,你將會發現大多數重要的補丁都是為系統防止緩沖溢出而設計的。在像做這樣的設計時主要考慮是,一個攻擊者可以使用一個惡意的代碼片斷作為執行他/她自己的代碼的基礎。

    這里有很多種緩沖溢出攻擊的類型,但是他們都是基于惡意代碼編寫或者利用那些原來開發的代碼編程語言上的漏洞。那些用C寫的程序是最容易受到緩沖溢出攻擊的,因為C程序產生運行時間錯誤,并且在大多數被使用的C資料庫沒有被缺省設計為在執行時作錯誤檢查(這一點正在改變)。

    如果你能夠保證你的輸入是正確的,那么沒有運行錯誤檢查是好的做法。但是,黑客們已經發現當一個沒有檢查溢出C程序相應用戶輸入時,在程序執行失敗時,可能會進入一個包括執行代碼異常長的隊列。這就是為什么我告訴你大多數的視窗操作系統和一些視窗服務器系統產品是用C寫成的。

    不要找我的錯誤,Windows不是唯一的容易被C程序的緩存溢出攻擊影響的操作系統,同樣Linux也一樣容易被影響。

    兩種最主要的緩存溢出攻擊類型是堆棧攻擊和堆攻擊。堆棧攻擊是最常用的,因為它們是最容易被執行的。一個基于堆棧的緩沖運行工作是因為程序使用內存對象作為一個堆棧來存儲用戶輸入。通常,在程序請求用戶輸入之前,堆棧會被清空。在這一點,程序寫出一個返回內存地址到堆棧,然后用戶的輸入被放置到堆棧的頂端。當堆棧被處理時,用戶的輸入獲得發送到指定的返回地址。

    可是一個堆棧不具有無限制的大小。程序員編碼一定要為堆棧預制指定的大小數量。如果用戶的輸入比喻預制指定的數量長,堆棧就會溢出。對于堆棧本身來說,溢出并不是什么大問題,但是當遇到惡意輸入時,就會變成一個巨大的安全漏洞。

    假設舉一個例子,一個程序希望用戶輸入他/她的名字。相比輸入名字,黑客更愿意輸入一個超過堆棧大小的可執行指令。這個指令通常都很簡短。比如說,在Linux環境中指令通常是要求系統打開一個即時指令窗口(就像大家都知道的循環Linux 的root內核)。

     然而,一個可執行指令的緩沖溢出不是指指令要被執行。過程的另一方面是,攻擊者必須指定一個返回地址指向惡意的指令。因此,程序損壞的一部分原因是因為堆棧溢出。程序試圖去修復將要用到的返回地址,但是返回地址的指向已經被黑客改成了指到黑客制定的指令。意思就是黑客一定要知道惡意指令將要存放的位置。為了知道準確的地址,惡意指令常常被在NOP指示下的兩部分填補。如果黑客指定的地址被填充,惡意指令將會被執行。

    最后一個部分是可執行程序的許可權限。眾所周知,大多數流行的操作系統都有一些機制來控制用戶的登錄訪問級別??蓤绦谐绦虻牡湫鸵笫潜绕胀ǖ牡顷懙脑S可權限級別更高,因此運行在內核模式或者許可權限繼承自服務賬戶。當一個堆棧溢出攻擊運行指令在一個新的返回地址時,程序認為它一直在運行。這就意味著被打開的命令提示窗口正在運行相同的一批許可命令,作為危及安全的應用。通常講,這個的意思就是攻擊者將會獲得對操作系統的所有控制。

    保護自己的技巧

    那么,怎樣能夠保護你免受這一類的攻擊呢?最容易和最緊急的技巧是保證你的操作系統,Exchange服務器和其他運行在服務器上的程序及時更新。這樣將修復潛在的緩存溢出使用。

    另一個技巧是你謹慎地使用運行在其上的特殊應用軟件。我曾看到過許多人使用域管理員賬戶作為服務賬戶。這樣問題就會出現:如果服務被不正常的使用,這樣黑客就會訪問到你的整個域。最好運行服務作為本地系統。然而如果一個服務必須需要用一個用戶帳號作為服務賬號,用一個本地用戶賬號就比用一個域賬號好。另一方面,如果服務被危及安全,那么攻擊者將被限制到控制那一個服務器而不是整個的域的機器。

    你可用的最后一個技巧是用一個應用代理,在應用代理之后的方法是站在用戶和應用之間并且過濾用戶的輸入,在字符串層和協議層來確定用戶的輸入是有效的。不幸的是你不可能去計算機里面為Exchange服務器存儲并且購買一個應用代理。但是當正確配置的時候,在前端處理/后端處理配置中運行Exchange 能夠達到作為一個應用代理的同樣的目的。

    另外一個應用代理的例子是一個工具,叫做URLscan,雖然你不能完全理解,但是你可以從Microsoft的Web站點下載這個工具。這個工具可以監控進入你的IIS服務器(IIS是Exchange需要的)中去的請求,來確保請求不會過長并且請求中不包含惡意代碼。



    原文轉自:http://www.kjueaiud.com

    ...
    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>