開篇(這種思想很重要)
漏洞不是後來纔出現的,也不一定是碼農的編寫問題和其他因素造成的,他是從一開始就客觀存在的,只是我們沒有發現它,隨着時間的推長和技術的跟新以及技術宅們的利益問題,這才導致漏洞的出現,其實你所發現bug其實一直存在,只不過你是第一個發現的,這纔有了漏洞的出現。(不要讓碼農們揹着個鍋了,hhhh)
什麼是漏洞
漏洞是指一個系統存在的弱點或缺陷,系統對特定威脅攻擊或危險事件的敏感性,或進行攻擊的威脅作用的可能性
漏洞會從哪些方面產生
漏洞可能來自應用軟件或操作系統設計時的缺陷或編碼時產生的錯誤,也可能來自業務在交互處理過程中的設計缺陷或邏輯流程上的不合理之處。
爲什麼會產生漏洞
- 人員的安全意識(安全意識不夠,也是管理層的問題)
- 企業對管理安全意識缺乏(總是忽視安全問題,等到發生才意識到重要性)
- 服務器,應用使用了默認規則(沒有開啓相對應的規則,造成漏洞的產生)
- 環境變化帶來的動態變化(例如:千年蟲就是個典型的環境變量造成漏洞的產生)
- 遠存在編程失誤(碼農不可能做到完美,任何時候都存在漏洞,只是你缺少一雙發現漏洞的眼睛)
利用手段的分析
- 主機層面:操作系統漏洞,瀏覽器漏洞,弱口令,遠程服務登錄、ftp等
- 網絡層面:網絡設備存在後門\或被植入木馬,網絡設備底層漏洞,網設備弱口令,網絡設備安全漏洞
- 應用程序層面:中間件漏洞(fg:Apache、Tomcat、weblogic等漏洞),第三方組件漏洞(fg:網頁編輯器struts2、spring等漏洞),應用漏洞(fg:注入、身份認證、跨站腳本、訪問控制、會話管理、文件上傳等),業務邏輯漏洞(fg:支付漏洞、業務流程)
簡單介紹兩款工具
- nessus——採用客戶/服務器體系結構,客戶端提供了運行在X window 下的圖形界面,接受用戶的命令與服務器通信,傳送用戶的掃描請求給服務器端,由服務器啓動掃描並將掃描結果呈現給用戶;掃描代碼與漏洞數據相互獨立,Nessus 針對每一個漏洞有一個對應的插件,漏洞插件是用NASL(NESSUS Attack Scripting Language)編寫的一小段模擬攻擊漏洞的代碼,這種利用漏洞插件的掃描技術極大的方便了漏洞數據的維護、更新;Nessus 具有掃描任意端口任意服務的能力;以用戶指定的格式(ASCII 文本、html 等)產生詳細的輸出報告,包括目標的脆弱點、怎樣修補漏洞以防止黑客入侵及危險級別。
- Appscan—有IBM公司出品的一款web應用安全測試工具。可以根據不同企業類型,提供不同合規報告。fg:跨站腳本,緩衝區溢出,sql注入漏洞等。
常見漏洞案例分析
- SQL注入攻擊
比如很多網站泄露會員賬號、密碼大多數通過web表單遞交查詢字符暴露出來,這類表單特別容易受到sql注入的攻擊。 - web漏洞
內部IP泄露模式、網頁請求中參數、會話cookie中缺少httponly屬性。’ - 協議漏洞
明文傳輸:ftp、pop、telnet的傳輸基本上都是不安全的,應爲他們的傳輸都是未經過加密的。
- 中間件漏洞
Apache控制檯採用了默認賬戶和密碼
如何做好防範漏洞
- 對服務器做安全加固,保證基礎安全。
- 健全的漏洞安全機制,定期做好服務器的補丁升級。
- 減少權限,降低人爲因素的安全。
- 全面提升系統漏洞的安全審計和管理要求。