本書多方位介紹網站安全防護措施與策略,這些策略用于解決最嚴重的漏洞及對抗當今網絡罪犯使用的攻擊方法。無論你是在處理電子商務網站上的拒絕服務攻擊,還是對銀行系統的造假事件進行應急響應,或者是對新上線的社交網站保護用戶數據,翻閱本書都能找到某種場景下有效的應對方案。本書是作者多年來在政府、教育、商業網站中與大量攻擊者的多種攻擊對抗中獲取的經驗總結,內容豐富,實用性強。本書根據網站安全問題的類型將安全策略分為三大部分。及時部分"準備戰場"介紹如何打造必將遭受網絡攻擊的網站平臺。當你上線一個新的網站時,應該實施本部分介紹的安全策略。第二部分"非對稱戰爭"介紹如何分析網站的數據,發現惡意行為。第三部分"戰略反攻"介紹當發現網站上的惡意行為后如何應對這些攻擊,以及怎樣高效地使用不同的響應方式來應對攻擊。
1. 國際信息安全專家10余年網絡安全實戰經驗的結晶,手把手教你如何提高網站的安全性。
2.從網站上線時、上線后到遭受攻擊,深入剖析網站常見漏洞、攻擊及原理,詳細講解應對各種攻擊和漏洞的實用策略。
譯者序
序言
前言
作者簡介
及時部分準備戰場
第1章網站駐防
策略1-1:實時網站請求分析
策略1-2:使用加密的哈希值來避免數據篡改
策略1-3:安裝OWASP的ModSecurity核心規則集(CRS)
策略1-4:集成入侵檢測系統的特征
策略1-5:使用貝葉斯分析方法檢測攻擊數據
策略1-6:打開全量HTTP審計日志
策略1-7:只記錄有意義的請求
策略1-8:忽略靜態資源的請求
策略1-9:在日志中屏蔽敏感數據
策略1-10:使用Syslog把告警發送到中央日志服務器
策略1-11:使用ModSecurity AuditConsole
第2章漏洞檢測與修復
策略2-1:被動地識別漏洞
策略2-2:主動地識別漏洞
策略2-3:手動轉換漏洞掃描結果
策略2-4:掃描結果自動轉換
策略2-5:實時資源評估與虛擬補丁修復
第3章給黑客的陷阱
策略3-1:添加蜜罐端口
策略3-2:添加假的robots.txt的Disallow條目
策略3-3:添加假的HTML注釋
策略3-4:添加假的表單隱藏字段
策略3-5:添加假的co
第二部分非對稱戰爭
第4章信用度與第三方信息關聯
策略4-1:分析用戶的地理位置信息
策略4-2:識別使用了的可疑客戶端
策略4-3:使用實時黑名單查找(RBL)
策略4-4:運行自己的RBL
策略4-5:檢測惡意的鏈接
第5章請求數據分析
策略5-1:訪問請求體的內容
策略5-2:識別畸形請求體
策略5-3:規范化Unicode編碼
策略5-4:識別是否進行多次編碼
策略5-5:識別編碼異常
策略5-6:檢測異常的請求方法
策略5-7:檢測非法的URI數據
策略5-8:檢測異常的請求頭部
策略5-9:檢測多余的參數
策略5-10:檢測缺失的參數
策略5-11:檢測重復的參數名
策略5-12:檢測異常的參數長度
策略5-13:檢測異常的參數字符集
第6章響應數據分析
策略6-1:檢測異常的響應頭部
策略6-2:檢測響應頭部的信息泄漏
策略6-3:訪問響應體內容
策略6-4:檢測變更的頁面標題
策略6-5:檢測響應頁面大小偏差
策略6-6:檢測動態內容變更
策略6-7:檢測源代碼泄漏
策略6-8:檢測技術數據泄漏
策略6-9:檢測異常的響應時延
策略6-10:檢測是否有敏感用戶數據泄漏
策略6-11:檢測木馬、后門及webshell的訪問嘗試
第7章身份驗證防護
策略7-1:檢測是否提交了通用的或默認的用戶名
策略7-2:檢測是否提交了多個用戶名
策略7-3:檢測失敗的身份驗證嘗試
策略7-4:檢測高頻率的身份驗證嘗試
策略7-5:規范化身份驗證失敗的提示信息
策略7-6:強制提高密碼復雜度
策略7-7:把用戶名和SessionID進行關聯
第8章防護會話狀態
策略8-1:檢測非法的cookie
策略8-2:檢測cookie篡改
策略8-3:強制會話過期
策略8-4:檢測客戶端源位置在會話有效期內是否變更
策略8-5:檢測在會話中瀏覽器標識是否變更
第9章防止應用層攻擊
策略9-1:阻斷非ASCII字符的請求
策略9-2:防止路徑遍歷攻擊
策略9-3:防止暴力瀏覽攻擊
策略9-4:防止SQL注入攻擊
策略9-5:防止遠程文件包含(RFI)攻擊
策略9-6:防止OS命令攻擊
策略9-7:防止HTTP請求偷渡攻擊
策略9-8:防止HTTP響應分割攻擊
策略9-9:防止XML攻擊
第10章防止客戶端攻擊
策略10-1:實現內容安全策略(CSP)
策略10-2:防止跨站腳本(XSS)攻擊
策略10-3:防止跨站請求偽造(CSRF)攻擊
策略10-4:防止UI偽裝(點擊劫持)攻擊
策略10-5:檢測銀行木馬(瀏覽器中的木馬)攻擊
第11章文件上傳功能防護
策略11-1:檢測文件大小
策略11-2:檢測是否上傳了大量文件
策略11-3:檢測文件附件是否有惡意程序
第12章限制訪問速率及程序交互流程
策略12-1:檢測高速的應用訪問速率
策略12-2:檢測請求/響應延遲攻擊
策略12-3:識別異常的請求間隔時間
策略12-4:識別異常的請求流程
策略12-5:識別顯著增加的資源使用
第三部分戰略反攻
第13章被動的響應動作
策略13-1:追蹤異常權值
策略13-2:陷阱與追蹤審計日志
策略13-3:發送E-mail告警
策略13-4:使用請求頭部標記來共享數據
第14章主動的響應動作
策略14-1:跳轉到錯誤頁面
策略14-2:斷開連接
策略14-3:阻斷客戶端的源地址
策略14-4:通過變更防護條件(DefCon)級別來限制地理位置訪問
策略14-5:強制請求延遲
策略14-6:假裝被成功攻破
策略14-7:把流量重定向到蜜罐
策略14-8:強制退出網站
策略14-9:臨時限制賬戶訪問
第15章侵入式響應動作
策略15-1:JavaScript cookie測試
策略15-2:通過驗證碼測試來確認用戶
策略15-3:通過BeEF來hook惡意用戶
及時部分 Part 1
準 備 戰 場
第1章網站駐防
第2章漏洞檢測與修復
第3章給黑客的陷阱
故用兵之法,無恃其不來,恃吾有以待之。
——孫子《孫子兵法》
"我們的網站安全嗎?"如果你們公司的首席執行官這樣問你,你會怎么回答?如果你回答說"是",CEO可能會說:"證明給我看"。你會怎樣證明你的網站防護得很好了呢?這里列舉了部分回答并說明了每一個回答的缺陷。及時個:
我們的網站符合支付卡產業數據安全標準(Payment Card Industry Data Security Standard,PCI DSS),所以是安全的。
與其他標準一樣,PCI DSS是低限度的標準。這意味著,達到了標準并不能確保你的站點不會被入侵。PCI DSS本質上是關于風險轉移而不是風險消除(從信用卡公司轉移到商業銀行)。如果企業不真正的接受通過加固他們的應用環境來消除風險這一觀念,而只是做到PCI DSS要求的,這一套標準認證流程只不過是一紙空文。雖然PCI是值得信賴的,但請記住:
如果你的站點是安全的,通過PCI審計很容易,而只是通過了PCI審計,卻不一定代表你的站點就是安全的。
通常來講,標準都是以控制為目的的,往往以實際的措施為中心,但不分析或者監控這些措施在實際操作中能產生的效果。一位德高望重的安全領域領袖Richard Bejtlich,生動地說明了這個問題:
想象一個場景:一只美式足球隊想要在一個季度賽中評估他們成功的概率。足球隊管理人員決定量取每位球員的身高和體重、記錄40碼沖刺的速度、記錄每位球員畢業的大學,他們收集了許多各方面的統計數據,并且花時間來討論哪一個指標能好地衡量他們球隊取勝的概率。是需要體重超過300磅呢?還是接球員的鞋子要大于11碼呢?抑或是首發陣容的球員都來自東北部呢?這些因素從分析來看似乎都與這支隊伍的成敗極其相關。但如果一名旁觀者看到這種情況只會說:"看看計分板吧,你們的分數落后了42比7,你們有個1勝6敗的記錄了。真是一群失敗者。"
這就是安全領域投入導向與輸出導向的本質區別。只有到了線上環境,你才能知道為安全所做的準備是有用的,還是毫無用處的。由于開發環境與預環境很少能保持與線上環境一致,只有到了真正有惡意用戶攻擊的時候,你才能真正知道你的網站的安全性。
我們的網站部署了商業的Web安全設備,所以我們的Web應用是安全的。
如此回答是對安全廠商的過度信任而導致的。安全廠商的網站或產品說明書上說他們的產品會使網站更安全,而在實際環境中并非如此。如果使用不當,安全產品與其所防護著的網站一樣會有問題。如果不恰當地配置和部署,它們甚至可能成為攻擊者操縱或繞過的潛在問題。
由于我們使用了SSL,所以我們是安全的。
許多電子商務網站在顯眼的地方顯示一張鎖的圖片。這表明他們使用了從的認證授權機構(CA)購買的Secure Socket Layer(SSL)證書來確保網站安全。使用SSL證書有助于避免如下攻擊:
網絡層截取。沒使用SSL的話,數據是通過非加密通道在網上傳輸的。這意味可以從傳輸通道的路徑的任意節點上截取到完整的網絡流量。
網絡詐騙。沒有有效的SSL站點的證書,攻擊者很難模仿真正的站點進行釣魚詐騙。
SSL的使用有助于緩解這兩類問題,但有一個明顯的弱點:SSL無法阻止一個惡意用戶直接攻擊網站。事實上,許多攻擊者更喜歡把目標鎖定在使用了SSL的網站上,因為這些加密通道可以在其他網絡監控設備的監控下掩護他們的攻擊。
我們有警報顯示我們阻斷了Web攻擊,所以我們的Web應用是安全的。
阻斷攻擊嘗試的證據有說服力但并不足夠。當管理人員詢問網站是否安全時,他們真正想知道的是,在網絡攻防戰中表現如何。CEO想要知道的是能否成功地在攻擊中防護住網站的安全。從這個角度來講,你并沒有正面回答這個問題。再一次拿Richard Bejtlich的美式足球的例子來說明,這樣的回答就像有人問你"誰贏得了超級碗美式足球賽",你卻用比賽的統計數據來回答,比如比賽局數,比賽耗時,取得的碼數,而不是直接告訴他最終的分數。這不是真正需要的答案吧?提供被阻斷的攻擊的證據是一個有用的指標,但管理人員真正想要知道的是,有沒有發生過成功的入侵。
有了這些概念作為背景知識,下面我列舉一些對于衡量網站安全策略效果的最重要指標:
日請求量,以數值(#)表示。它是網站流量的基準,提供其他指標的基礎。
檢測到的攻擊(真正),以數值(#)和占日總請求數的百分比(%)表示。通常這個指標表示網站的惡意流量與安全檢測的性。
未檢測到的攻擊(漏報),以數值(#)和占日總請求量的百分比(%)表示。通常這個指標能說明安全檢測度的有效性。這就是在回答網絡攻防戰中表現如何時,被回避的關鍵指標。
誤攔截的請求量(誤報),以數值(#)和占日總請求量的百分比(%)表示。這個數據也能說明安全檢測的性。這個數據對于許多企業來說非常重要,因為阻斷了正常的流量意味著可能會影響收入。企業必須有一套有效地追蹤誤報率的方法,這會干擾到網站正常的請求流量。
攻擊檢測失敗率,以百分比(%)表示。通常等于誤報量與漏報量的和除以真正攻擊量。這個百分比提供了你的網站安全檢測率的總體衡量指標。
攻擊檢測失敗率提供了在整個攻防戰中表現的數據。可是,大部分企業都沒有收集到足夠獲得此類安全衡量標準的數據。
我們沒有檢測到任何非正常行為,所以我們的站點是安全的。
退一步來講,識別出網站中的異常行為似乎是對的。這種策略的不足就是需要收集到用于識別異常行為的數據。而大部分企業都沒有恰當地配置他們的網站來收集足夠的日志信息。他們默認使用Web服務器的如Common Log Format(CLF)的日志機制。這里是兩條從Apache服務器拿來的CLF日志:
查看這日志,我們可以看到一些可疑的或異常行為的跡象。及時個可疑點是User-Agent字段是一種已知的WordPress攻擊程序,WordPress Hash Grabber。第二個疑點是HTTP狀態碼,及時條日志是500系統內部異常的狀態碼,而第二條是200狀態碼。及時條日志的請求是用什么數據使網站產生一個錯誤呢?由于POST請求使用請求體來傳遞數據,而不是CLF日志格式記錄的QUERY_STRING字段,我們無法知道攻擊者傳遞了什么參數。這些請求服務器的響應內容是什么呢?這些都是很重要的問題,而CLF日志只記錄了完整請求相關數據中的一小部分。比如,它不記錄如Cookies等的請求頭部、POST的請求體,或者其他的響應內容。沒有恰當記錄HTTP響應信息使我們無法回答關鍵的問題:"攻擊者盜取了什么數據?"企業無法對Web相關安全事件進行恰當的響應的主要原因之一就是:缺乏足夠的HTTP的審計日志。
我們在收集到的完整的HTTP審計日志中分析惡意行為的特征,并無發現任何異常行為,所以我們的Web應用是安全的。
很多企業犯的一個較大錯誤就是只使用以告警為中心的事件來識別潛藏的攻擊。如果只記錄已知的惡意行為的日志,怎么知道防護是否被繞過呢?新的攻擊方式層出不窮。所以,只分析已知的告警問題是不夠的。必須把所有HTTP請求的審計日志全部記錄這樣才能分析出多種特征惡意行為。
我們在收集到的完整的HTTP審計日志中分析惡意行為的特征,并沒有發現任何異常行為,同時,我們也會定期地對網站進行測試來查找存在的安全漏洞,所以我們的Web應用是安全的。
識別并阻斷網站攻擊很重要,但把這些攻擊的目標與已知存在的漏洞進行關聯更重要。假設你的企業通過安全信息事件管理系統(SIEM)來集中管理安全事件,而你是安全分析人員。有一次針對微軟的IIS服務器的漏洞的攻擊請求被標注為惡意行為,如果你沒有使用IIS服務器的話,應該把這種告警的威脅性調到足夠低。如果你看到針對osCommerce程序的漏洞的攻擊告警,且你的系統中使用了這個有漏洞的程序,則應該把這種告警的威脅性調高,因為這可能會造成危害。了解到部署了什么程序,以及它們是否存在特定的漏洞對于評估安全事件的危險等級非常重要。即使你對網站的漏洞進行了的評估,這個回答也依然不夠完整,下面是最終的回答,將會告訴你最終答案:
我們在收集到的完整的HTTP審計日志中分析惡意行為的特征,并沒有發現任何異常行為,同時,我們也會定期地對網站進行測試來查找存在的安全漏洞,還有定期測試我們的檢測能力和事件響應能力,所以我們Web應用是安全的。
看到這的回答,你就會明白為什么前面的回答都是不完整的。即使你知道你的網站哪里有漏洞,你也必須模擬攻擊來確認你的安全防御是有效的。安全人員發現了這些攻擊嗎?是否正確地實施了安全響應策略?他們花了多長時間來實施?實施是否有效?只有回答了這些問題,你才能真正地知道你的防御策略是否有效。
……
初步看來很不錯的一本書
不錯,很有深度
通俗易懂、深入淺出,授人以漁。同時,又密切結合應用案例,從而讓讀者可以在模擬場景中深深的理會知識。書中不含較為復雜的技術理論問題,一切從實際出發。
太深了,看不明白,總覺得缺了什么
圖書館收藏
整體感覺不錯