OWASP(Open Web Application Security Project)
主要蒐集各種網頁安全漏洞,並歸納出攻擊弱點,資安問題,排名,防範措施等。
OWASP常提到的弱點包括:
- Injection
- XSS(Cross-Site Scripting)
- CSRF(Cross Site Request Forgery,跨站冒名請求)
- XXE(XML External Entity Injection,XML外部實體注入)
- Insecure Deserialization(不安全的反序列化)
- Broken Authentication(無效的身份認證)
- Insecure Direct Object References(不安全的物件參考)
- Security Misconfiguration (不當的安全組態設定)
- Sensitive Data Exposure (敏感資料暴露)
- Using Components with Known Vulnerabilities(使用已知漏洞元件)
Injection
各種注入攻擊,包括SQL injection , NoSQL injection, OS command injection, LDAP injection等
主要發生在惡意資料輸入時,沒有做好資料的檢查,所造成的弱點風險
command injection flaws
relay the malicious code through a web application to another system
手法同 SQL Injection,但透過命令列之執行(如 cmd.asp),最終可取得主機管理權限
因管理權限喪失,駭客可經由此受駭主機向內部其餘系統進行攻擊與資料竊取
countermeasures
- use language-specific libraries that avoid problems due to shell commands
- validate the data provided to prevent any malicious content
- structure requests so that all supplied parameters are treated as data,rather than potentialy executable content
- j2ee environments allow the use of the java sandbox,which can prevent the execution of system commands
XXE
以XML為基礎的網路應用程式沒有做好管控權限,直接讀取外部資源提供的 XML 檔案。
攻擊者提供惡意XML檔案讓系統讀取,就有可以進行文件的共享、監聽內部網路、執行遠端程式,進而導致資料外洩,或系統被駭客接管。
Insecure Deserialization
駭客將攻擊字串注入序列化的結構中,使得網站伺服器解析後出現非預期的結果,並執行駭客輸入的指令
Broken Authentication
常發生在脆弱的帳戶認證,或使用不安全的管理機制
ex: 登入未加密,Session無控管,Cookie無保護,…等
此問題會造成帳號身分盜用,或身分認證機制無效化,讓攻擊者可在伺服器做各種新增修改刪除查詢,並控制整個主機等。
Insecure Direct Object References
網站直接透過user的輸入來存取資源,這可讓攻擊者任意的存取重要檔案
ex:
程式碼有一段直接寫入到檔案
...omit…
echo writefile($_GET['file']);
...omit...
正常的情況下
http://xxxxx/report.php?file=2014report.txt
寫入到2014report.txt這個檔案
但惡意的使用會變成如下
http://xxxxx/report.php?file=index.html
寫入到index.html把首頁覆蓋?
Security Misconfiguration
網站安全沒有設定好
常見的問題有以下幾種:
default password
預設帳密沒有刪除或更改,攻擊者可透過嘗試不同預設帳密的方式直接入侵
directory traversal/forceful browsing
未關閉Directory listing功能或瀏覽權限沒設好
攻擊者可找出所有網站上的檔案,或得到你的原始碼
countermeasure:設定存取權限,修補漏洞
error message interception
錯誤訊息直接回傳在使用者頁面上,使攻擊者得到額外的資訊
透過瀏覽器錯誤的回傳值,可得知系統的架構與版本等資訊,藉以蒐集相關弱點資訊
Using Components with Known Vulnerabilities
網站使用有問題的第三方的元件或函式庫
有許多套件的範例程式有漏洞,若沒刪除這些範例程式,攻擊者可透過範例程式的漏洞入侵
countermeasures:隨時關心third-party module的最新版本並時常更新
Sensitive Data Exposure
常見的有以下
敏感資料未加密就儲存
若網站的資料庫被入侵時,將會直接洩漏出每個人的敏感資料,像帳密…等
countermeasures: 密碼須使用不可逆的演算法加密後再存在資料庫
cryptographic interception
網站在與使用者傳輸敏感資料時未使用SSL加密連線,導致傳輸有可能被攔截竊聽造成使用者的帳密被盜用
雖使用複雜的 SSL 加密,但駭客可透過檔案暫存時的疏忽取得未受保護的憑證資訊
客戶帳號、密碼與信用卡等機密外洩,並可計算出加密方式,竊取更多資訊
countermeasures:使用SSL安全連線來傳輸
refer
https://owasp.org/www-project-top-ten/
https://secbuzzer.co/post/116