判斷Web Security 入侵的跡象

判斷Web Security 入侵個跡象

這篇文章主要說明網站受到入侵的幾個重要的跡象,

一般的防火牆或是 IDS也是根據這樣的跡象來偵測並且採取並要的行動。

主要參考 OWASP 組織中,Appensor 這個專案所定義的相關建議。

通常一個入侵可能是多種跡象的結合,為減少誤判機率,會在加上時間軸內發生的次數與異常頻率。

這些設定的組合就會形成一個入侵偵測與防火牆的 rule。

Request Exception

這類指的主要是client端送到 Web Server時,Http Request的異常行為,舉幾個例子

  • 網站只有支援 Http GET/Post但是卻出現了其他像是HEAD, PUT, DELETE, TRACE, OPTIONS, CONNECT
  • 出現其他非標準的 Http Method
  • 非預期的參數的傳遞。例如 URL 中或是 Http Post參數中,額外出現像是 admin=true。
  • 參數傳遞出現非預期的字元,或是過長的字元。

 

Authentication

這類主要都是跟身分認證有關。比較常見的像是用多組帳號密碼來做猜測。利用已知的帳號名稱加上常見的密碼。其他一些攻擊的特徵,例如:

  • 同一個IP來源,但是不斷的替換使用不同的使用者名稱登入
  • 有許多失敗的密碼登入。這表示有可能有人在嘗試各種密碼的組合。
  • 短時間內有大量的登入。
  • 使用者名稱的字元長度異常。
  • 參數輸入過多或是過少,例如帳號或是密碼為空白。多了額外的 Http post 參數。
  • 帳號名稱為一些常見的測試帳號。例如:admin, test
  • 帳戶登入的 GeoIP 異常

Session

這類的異常大多跟 cookie 有關。因為登入之後,Browser會記錄登入的連線相關資訊。

Cookie有一個特性就是,每次Browser與網站溝通時,都會再次傳送 cookie給網站。這類的異常包含:

  • 非法的Cookie,傳送的Cookie可能已經經過修改。
  • 新增的Cookie值。
  • 被刪除的cookie。有些Cookie的值被刪除。
  • 盜用別人登入的Cookie
  • 該Cookie 的來源IP位置異常。有可能為使用者A的Cookie被使用者B盜用
  • User Agent 有異常的修改。例如原本是IE 但是卻變成FireFox

Access Control

這類大多是針對網路資源存取的控制。瀏覽器存取網站資源不外乎為Http Get/Post,因此對於HTTP Get/POST 的存取必須加以權限的控管。

  • 例如 /viewpage?page=home  修改為/viewpage?page=home&user=admin
  • 強制瀏覽特別的網址例如: www.example.com/download  或是 www.example.com/admin

Input Exception

  • 違反黑名單或是白名單的規則
  • 資料的輸入違反系統。例如間接修改 .htaccess or apache2.ini
  • 透過XSS。常見的XSS 測試,例如

<script>alert(document.cookie);

</script> <script>alert();

</script> alert(String.fromCharCode(88,83,83))

<IMG SRC=”javascript:alert(‘XSS’);”>

<IMG SRC=javascript:alert(‘XSS’)>

<IMG SRC=javascript:alert(&quot;XSS&quot;)>

<BODY ONLOAD=alert(‘XSS’)>

Encoding

攻擊者透過 encoding的方式躲過防火牆的偵測。

  • 例如將alert(document.cookie)透過 UTF7編碼,讓防火牆無法偵測alert

Command Injection

這類指的主要是對於系統或是資料庫等的指令執行。最常見的像是 SQL injection。

  • OR 1=1– xp_cmdshell UNION JOIN 例如這個例子,會透過SQL Server 執行 command shell
  • 偵測是否有異常或是額外的回傳值。正常的查詢可能為5-10筆資料。但是如果突然有5萬筆資料的回傳,那也表示查詢的異常。

File IO

  • 檢查檔名是否有 NULL or %00。攻擊者可能透過檔名為NULL的方式,入侵該作業系統。
  • 偵測是否有很大檔案被上傳。
  • 是否有大量的檔案備上傳。

 

Honey Trap

透過一些測試資料或是測試帳號了解相關測試帳號存取資源、帳號使用的一些規則。

User Trend

這類主要是透過一些使用者的使用習慣來進行分析。

  • 異常的使用者行為
  • 使用的速度。有些行為因為點選的速度過快,有可能是程式電腦所為,並非人的操作行為。
  • 使用者使用的頻率。例如,正常應該一星期一次。但是變成一天數次。

System Trend

這類似透過系統的一些軌跡來判斷異常。例如:

  • logout 的次數大幅增加
  • Login 的次數大幅增加
  • 讀取的次數大幅增加

採取行動

根據這些異常行為,系統可以採取一些行動。例如,通知,限制使用者功能、甚至是關閉使用者使用權限等。

行動 說明 舉例
None No response No Response
Silent User unaware of application’s response Logging Change
Administrator Notification
Other Notification
Proxy
Passive Changes to user experience but nothing denied User Status Change
User Notification
Timing Change
Active Application functionality reduced for user(s) Process Terminated
Function Amended
Function Disabled
Account Logout
Account Lockout
Application Disabled
Intrusive User’s environment altered Collect Data from User

Leave a Reply

Your email address will not be published. Required fields are marked *