HTTP通訊協定 Apache asql Log

用SQL指令分析網站日誌 輕鬆掌握主機運作狀況

2017-03-23
asql是一種文字型的解析工具,可以協助管理員從Apache網站伺服器內龐雜的Log記錄堆中找出有用的資訊,例如可以揪出不請自來的惡意攻擊,提早做出防範或補救措施。

GET

此方法是瀏覽器以URL(例如http://example.com/index.php?id=1)的方式,將要傳遞給網站伺服器的參數,以URL的形式傳遞給網站伺服器。

POST

此方法是瀏覽器以表單(Form)的形式將參數傳遞給網站伺服器。

HEAD

這個方法僅取回網站伺服器在處理完要求(Request)之後,回覆資訊中的標頭(Header)資訊。

PUT

在撰寫完成網頁後,常需要將相關檔案上傳到網站伺服器上,而HTTP通訊協定也定義了PUT請求方法,允許使用者利用PUT方法將相關的檔案上傳至網站伺服器,而採用此種方法時,如果該網站伺服器上有相同的檔案,即會覆蓋掉該檔案。以資訊安全的角度來看,通常並不建議使用者開啟PUT的使用方法,因為此舉更容易使惡意的攻擊者利用PUT的使用方法來上傳惡意惡頁,進而置換掉網站伺服器上正常的網頁。

DELETE

用戶端可透過DELETE方法刪除所指定URL的資源,但是網站伺服器必須開放目錄寫入(Write)的權限以允許修改目錄下的檔案,否則此方法將會執行失敗。

TRACE

此方法是用來偵錯之用,會將Request時所輸入的HTTP通訊協定指令,原封不動地透過Response回覆。藉此測試網站伺服器是否有正常運作,但是,也因為此特性,如果惡意的使用者在Request時故意輸入惡意的Script指令,該Script指令也會原封不動地回覆,而造成XSS的攻擊,由於此類攻擊手法為利用TRACE方法所產生,所以又稱為XST攻擊(Cross-Site Tracing)。

CONNECT

以HTTP通訊協定與伺服器建立Tunnel(通道)的連接。

基本上,在一般上線的網站,通常僅會支援POST和GET的存取方法,因此如果管理者在網站的Log中發現有來源試圖以PUT或DELETE等存取方法存取網站,就需要特別當心該來源的企圖。

應用實例示範

在安裝完成後,即可利用asql來分析Apache網站伺服器所產生的網站Log資訊。先以load指令載入欲分析的Log檔案,接著就可以SQL指令分析相關資訊,在此舉幾個常用的分析:

1.計算個別來源IP發生「找不到網頁(404)」的次數:

2. 取得使用PUT存取方法的來源IP:

3. 如果Log記錄格式為combined格式,即可利用agent(使用者瀏覽器資訊)來取得資訊(例如某些網站掃描軟體會在agent資訊留下相關的特徵資訊),譬如以下為取得利用nikto(一種有名的網站掃描軟體)掃描的來源IP:

在此僅舉幾個常用的查詢範例做說明,其餘更深入的用法,就請自行研究了。

<本文作者:吳惠麟,多年資安經驗,喜好利用開源碼建構相關解決方案,著有「資訊安全原理與實驗」等書。>


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!