標籤:

總結 | 2016年最嚴重的Web安全問題

早在2014年的時候,PureHacking就統計過在滲透中常見的漏洞類型。在過去了兩年後,也是時候再分析一遍,並且與14年的結論進行比較,看看有哪些不同。

在14年的時候,被報最多的漏洞是:

1. 不安全密碼策略n2. XSSn3. Session會話安全n

2016年統計中,這三種漏洞已經不是最多的了。但是,同樣還是有很多漏洞被爆出來,也不乏些新型的漏洞。以下是我們2016年的統計結果。

1. 不安全SSL配置---51.02%

如果大家關注漏洞新聞的話,多多少少都能看到一些關於SSL/TLS的安全漏洞。這個漏洞已經非常嚴重了,這個漏洞將使用戶數據的機密性,完整性和可用性得不到保證。

通常這些漏洞的修復方式都是升級下軟體,並且修改不安全配置。關於SSL的具體信息大家可以看這篇文章:Qualys SSL Labs

2. 不安全密碼策略---41.84%

相比於2014年,我們還是可以看到很多弱密碼策略產生的漏洞。這類漏洞通常是由於密碼設置規則允許用戶設置弱密碼。我們研究了澳大利亞的電子商務市場後得到,許多網站都允許用戶設置弱密碼。甚至,有個廠商居然允許使用單位元組密碼(就不點名了)。

很遺憾的是,我們發現,只要允許用戶使用弱密碼,就會有一部分人圖省事直接設置了個簡單的密碼。

對此Pure Hacking提出了一個密碼設置規則來提高密碼的複雜度。首先,密碼的長度不能低於9個的數字和字母混合。其次,不允許使用可以很容易被推斷出來的密碼(例如,公司名稱或者網站名稱)。

3. 缺少反爆破---34.69%

這一類漏洞的出現是有規律的。通過這個漏洞,攻擊者可以爆破後台賬號密碼,或者爆破出敏感目錄。

對付這種漏洞,方法是對IP進行限制訪問頻率,或者增加驗證碼。通過這些手段最起碼可以提高攻擊者的攻擊成本,變相的減少攻擊。

4. 用戶枚舉---32.69%

在攻擊的前期偵查階段,攻擊者通常會通過不同的方式確認該系統的各種情報。其中一種就是確定相關的有效賬戶情報。這一點探測的手法有很多,例如:根據伺服器的響應枚舉用戶,通過忘記密碼功能或者系統合法用戶鎖定等方法確定合法用戶的存在。

防禦這種攻擊最有效的方法就是把反饋結果盡量弄成一致。

5. 不安全的Session會話---31.63%

在查看session會話的時候,通常我們會查看不同的參數,例如:兩個安全設置HttpOnly和Secure標記。甚至是set-cookie欄位要不要固化下來,也是需要討論的。對此,我們建議使用以下的模式:

Set-Cookie: SessionId=veryrandomvalue;path=/myapp/; secure; HttpOnly

6. 跨站腳本攻擊(XSS)---30.61%

在這一次分析中,我們集合了反射行,存儲型和DOM的跨站腳本攻擊(XSS),無可否認,這類漏洞依然很嚴重。

看起來,這一類漏洞和兩年前比起來並沒有減小,依然是有很多系統根本就沒有去防禦這樣的漏洞,儘管大部分框架對這類漏洞都提供了很好的防禦策略。所以針對這類漏洞的建議不變:

首先,開發人員該減少XSS?

開發人員應該確定每一個輸入的數據會從哪裡來(包括用戶,資料庫,請求頭以及cookies):

1. 最典型的就是對輸入進行驗證,並對輸出進行編碼n2. 輸入驗證應該使用一個積極的認證方式,而不是黑名單直接過濾。惡意輸入應該直接拒絕掉,而不是過濾n3. 對所有不能列印的字元進行編碼,不僅僅只是針對其中最大的五個 (<> " and &)。針對不同的輸出格式,XML , HTML 屬性, HTML 值, CSS, JSON, 和AMF 都應該有不同的編碼輸出n

7. 軟體漏洞---29.59%

在我們滲透的過程中發現,今年似乎增加了許多軟體漏洞。這類的漏洞危害程度從信息泄露到遠程代碼執行等。

很多情況下,軟體漏洞比較容易修復,通常是升級下就行。但是如果在披露階段的話,可以通過其他的一些方法防禦,例如,部署一個入侵防禦系統和web防火牆。儘管有這些手段,還是需要時常發布更新補丁以便更好的防禦。

8. 訪問控制不足---24.49%

訪問控制不足包括未授權用戶訪問一些未授權內容和操作,以及低許可權用戶執行高許可權操作。

這類漏洞如果被攻擊者利用,將會產生很嚴重的而後果。有可能導致整個系統淪陷,甚至影響到底層基礎設施。

許可權控制問題如果沒有人工檢測通常是很難找出來的,因此,Pure Hacking建議對時常對這類漏洞做充分檢測。

1. 劃分多個等級的訪問控制,針對不同類型進行不同等級的控制(例如:URL訪問,控制器調用,數據訪問等等)n2. 在保證功能的情況下,分配最小的許可權n3. 用一些框架進行保護,例如ASP.NETn

9. 文件上傳控制問題---20.41%

滲透的時候,我們總是希望能找到一個上傳漏洞,因為一個上傳漏洞很多時候就意味著我們能直接上傳一個後門,進而控制整個伺服器。

即使沒有這麼幸運,我們也能通過系統軟體的上傳功能來傳播惡意病毒,儘管這不如後門酷。不過這也能感染到許多用戶。同時,一些病毒如果在內網中擴散,那麼這個危害是難以估量的。

Pure Hacking建議如下:

1. 對每個上傳點進行測試,並且使用白名單策略n2. 檢測上傳後的文件(例如,驗證文件類型是否被改變)n3. 將文件存在應用軟體資料庫中,禁止軟體在伺服器中運行n4. 安裝防禦軟體,殺毒軟體等n5. 攔截匿名文件n

10. 缺少傳輸層的保護---20.41%

在分析這類漏洞的時候我們感到很震驚,因為針對這類漏洞的防禦方法有很多。這類漏洞可能會通過中間人攻擊劫持會話,竊聽通訊信息。在一條未加密的信道中,這是很危險的。

防禦這類漏洞,建議在訪問敏感數據的時候HTTPS。同時,在實施SSL/TLS的時候採用嚴格的規定。

頭最好設置成:Strict-Transport-Security"max-age=63072000; includeSubDomains"

總結

我們對漏洞的分布進行了分析,做出如下圖表:

如上如,今年截止到目前為止的漏洞分布如上,黃色為top10的分界線。這樣的分布和其他的一些網站統計似乎一樣,例如CVE:

Vulnerability distribution of cve security vulnerabilities by types

我們可以看到,有些漏洞相比於往年都在減少,例如SQL注入漏洞,CSRF和遠程文件包含漏洞,但是這些對系統的威脅並沒有降低,攻擊者同樣可以使用這些漏洞對系統造成無法估量的損失。

註:本文參考來源於purehacking

推薦閱讀:

Android Accessibility點擊劫持攻防

TAG:网络安全 |