您的位置:網站首頁 > 電器維修資料網 > 正文 >
如何發現系統安全漏洞
★★★★★【文章導讀】:如何發現系統安全漏洞具體內容是:漏洞的共同特點是什么?心理學上問題當你寫軟件的正常部分的時候,如果用戶的*作是正確的,那你的目的是完成這件事。當你寫軟件的安全敏感部分的時候,你一定要使得任何沒有被信任的用戶都不可能完成*作。這意味著你…
來源: 日期:2013-12-24 21:10:34 人氣:標簽:
漏洞的共同特點是什么?
心理學上問題
當你寫軟件的正常部分的時候,如果用戶的*作是正確的,那你的目的是完成這件事。當你寫軟件的安全敏感部分的時候,你一定要使得任何沒有被信任的用戶都不可能完成*作。這意味著你的程序的很大部分必須在很多情況下功能正常。
編制加密和實時程序的程序員精于此道。而 其程序員則由于他們的通常的工作習慣使得他們的于使他們的軟件從未考慮安全的因素,換而言之,他們的軟件是不安全的。
變換角色漏洞
很多漏洞是從不同的運行著的程序中發現的。有時是一個極小的錯誤或者及其普通的錯誤也會造成安全漏洞。
例如,假設你有本來打算讓你在打印你的文檔之前想通過PostScript解釋器預覽它。這個解釋器不是安全敏感的程序;如果你不用它,它一點也不會成為你的麻煩。但是一旦你用它來處理從別人那里得到的文件,而那個人你并不知道也不值得信任。這樣你就可能招致很多麻煩。他人可以向你發送能刪除你所有文件或者復制你所有文件到他人可以得到的地方的文檔。
這是大部分Unix TCP/IP棧的脆弱性的根源-它是在網絡上的每個人都值得信任的基礎上開發的,而被應用在這個并不如當初所想象安全的環境中。
這也是SenDMAil所發生的問題的根源。直到它通過審查,它一直是很多是漏洞的根源。
再更進一步講,當函數在合理的范圍內使用時是安全的,如果不這樣的話,他們將造成無法想象的災難。
一個 好的例子就是gets()。如果你在你控制輸入使用gets()函數,而你正好輸入比你預定輸入大得多的緩沖區,這樣,你就達到了你的目的。對付這個得 好的補丁就是不要做類似這樣的事或者設定比原先大的多的緩沖區,然后重新編譯。
但是,當數據是來自非信任的數據源的時候,gets()能使緩沖器溢出,從而使程序能做任何事情。崩潰是 普通的結果,但是,你通常能地精巧地介紹使得數據能象代碼一樣執行。
這就是它所帶給我們的...
緩沖區溢出漏洞
當你往數組寫入一個字符串,并且越過了數組邊界的時候,會發生緩沖器溢出。
幾個能引起安全問題的緩沖器溢出情況:
1.讀*作直接輸入到緩沖區;
2.從一個大的緩沖區復制到一個小的緩沖區;
3.對輸入的緩沖區做其他的*作。
如果輸入是可信的,則不成為安全漏洞,但也是潛在的安全隱患。這個問題在大部分的Unix環境中很突出;如果數組是一些函數的局部變量,那么它的返回地址很有可能就在這些局部變量的堆棧中。這樣就使得實現這種漏洞變得十分容易,在過去的幾年中,有無數漏洞是由此造成的。
有時甚至在其他的地方的緩沖區都會產生安全漏洞——尤其是他們在函數指針附近。
需要尋找的東西:
沒有任何邊界檢查的危險的函數:strcpy,strlen,strcat,sprintf,gets;
- 1
- 2
- 3
- 4
- 下一頁
【看看這篇文章在百度的收錄情況】