㈠ 怎麼用Python + Flask框架實現Web應用實現日誌記錄功能
Flask自帶logger功能:app.logger.debug(....),logger是是標准日誌類 Logger。在route中寫相應的日誌即可。
通過配置,將相應的日誌文件定位到服務可訪問的位置,然後,定義一個新的路由,顯示這個日誌:讀取它,配合模板引擎顯示它。
㈡ 如何保護Web伺服器中日誌安全
Web日誌記錄了web伺服器接收處理請求,以及其運行時的錯誤等各種原始信息。通過對日誌進行統計、分析、綜合,就能有效地掌握伺服器的運行狀況,發現和排除錯誤、了解客戶訪問分布等,方便管理員更好地加強伺服器的維護和管理。另外,Web日誌也是判斷伺服器安全的一個重要依據,通過其可以分析判斷伺服器是否被入侵,並通過其可以對攻擊者進行反向跟蹤等。因此,對於Web日誌攻擊者往往以除之而後快。
一、攻擊者清除日誌的常用伎倆 1、Web伺服器系統中的日誌 以WindowsServer 2003平台的Web伺服器為例,其日誌包括:安全日誌、系統日誌、應用程序日誌、WWW日誌、FTP日誌等。對於前面的三類日誌可以通過「開始→運行」輸入eventvwr.msc打開事件查看器進行查看,WWW日誌和FTP日誌以log文件的形式存放在硬碟中。具體來說這些日誌對應的目錄和文件為: (1).安全日誌文件:C:WINDOWSsystem32configSecEvent.Evt (2).系統日誌文件:C:WINDOWSsystem32configSysEvent.Evt (3).應用程序日誌文件:C:WINDOWSsystem32configAppEvent.Evt (4).FTP日誌默認位置:C: (5).WWW日誌默認位置:C:、非法清除日誌 上述這些日誌在伺服器正常運行的時候是不能被刪除的,FTP和WWW日誌的刪除可以先把這2個服務停止掉,然後再刪除日誌文件,攻擊者一般不會這么做的。系統和應用程序的日誌是由守護服務Event Log支持的,而它是沒有辦法停止的,因而是不能直接刪除日誌文件的。攻擊者在拿下Web伺服器後,一般會採用工具進行日誌的清除,其使用的工具主要是CL和CleanIISLog。 (1).利用CL徹底清除日誌 這個工具可以徹底清除IIS日誌、FTP日誌、計劃任務日誌、系統日誌、安全日誌等,使用的操作非常簡單。 在命令下輸入「cl -logfiles 127.0.0.1」就可以清除Web伺服器與Web和FTP和計劃任務相關的日誌。其原理就是先把FTP、WWW、Task Scheler服務停止再刪除日誌,然後再啟動三個服務。(圖2)celialin 該工具還可以選擇性地清除相應的日誌,比如輸入「cl -eventlog All」就會清除Web伺服器中與系統相關的日誌。另外,此工具支持遠程清理,這是攻擊者經常採用的方法。首先他們通過命令「netuse ipipc$ 密碼/user:用戶名」在本地和伺服器建立了管理員許可權的IPC管理連接,然後用「CL -LogFile IP」命令遠程清理服務日誌。(圖3)
(2).利用CleanIISLog選擇性地清理IIS日誌 比如攻擊者通過Web注入方式拿下伺服器,這樣他的入侵痕跡(IP地址)都留在了IIS日誌里。他們利用該工具只把其在IIS日誌中的IP地址進行清除,這樣就不會讓對方管理員起疑心。 在命令中執行「CleanIISLog . IP」就可以清除IIS日誌中有關該IP的連接記錄同時保留其它IP記錄。如果管理做了防範,比如更改了IIS日誌的路徑,攻擊者在確定了日誌的路徑後,也可以通過該工具進行清除,其操作是,在命令行下執行「CleanIISLog IIS日誌路徑 IP地址」來清除指定IIS路徑的IP記錄。(圖4)二、打造日誌伺服器保護日誌 通過上面的演示可以看到,如果將伺服器的日誌保存在本地是非常不安全的。而且,如果企業中的伺服器非常多的話,查看日誌會非常麻煩。基於以上考慮,打造專門的日誌伺服器,即有利於伺服器日誌的備份又有利用於集中管理。 筆者的做法是,搭建一個FTP伺服器用來日誌的集中和備份,可以在伺服器中通過專門的工具或者計劃任務來實現日誌的自動上傳備份。這部分內容比較簡單,筆者就不演示了。其實不僅可以將伺服器日誌備份到專門的日誌伺服器上,日誌伺服器還可以實現網路設備的日誌備份。 以路由器為例,首先在其上進行設置,指定記錄日誌的伺服器,最後通過FTP協議將日誌數據傳輸到FTP伺服器上。搭建FTP伺服器可以利用IIS的FTP或者Serv-u,但是筆者覺得IIS的FTP在許可權分配上不夠方便,而Serv-u有漏洞太多,因此推薦TYPSoft FTP。 1、架設日誌伺服器 TYPSoft FTP是綠色軟體,下載解壓後雙擊ftpserv.exe文件,啟動typsoft fip主程序。啟動後,點擊主界面菜單中的「設定→用戶」,建立新賬戶log。接著在用戶界面中設置log賬號所對應的用戶密碼和日誌保存的目錄,最後點擊「保存」按鈕使設置生效,這樣日誌伺服器就架好了。(圖5)2、日誌伺服器的指定 當搭建好日誌伺服器後,只需要到相應的網路設置中通過SYSLOG或LOG命令指定要保存日誌的伺服器地址即可,同時加上設置好的賬戶名和密碼即可完成傳輸配置工作。下面筆者就以Cisco6509設備上配置及指定日誌伺服器為例。 正常登錄到設備上然後在全局配置模式下輸入logging 192.168.1.10,它的意思是在路由器上指定日誌伺服器地址為192.168.1.10。接著輸入logging trap,它的意思是設置日誌伺服器接收內容,並啟動日誌記錄。trap後面可以接參數0到7,不同級別對應不同的情況,可以根據實際情況進行選擇。如果直接使用logging trap進行記錄的話是記錄全部日誌。配置完畢後路由交換設備可以發送日誌信息,這樣在第一時間就能發現問題並解決。日誌伺服器的IP地址,只要是能在路由交換設備上ping通日誌伺服器的IP即可,不一定要局限在同一網段內。因為FTP屬於TCP/IP協議,它是可以跨越網段的。(圖6) 總結:本文從攻擊者的角度解析對Web日誌的刪除和修改,目的是讓大家重視伺服器日誌的保護。另外,搭建專門的日誌伺服器不僅可以實現對日誌的備份,同時也更利用對日誌的集中管理。
㈢ 如何將Web日誌文件導入資料庫
這幾天寫論文做實驗,Web日誌挖掘部分第一步就是對Web日誌進行預處理。所謂預處理就是將Web日誌中沒有用的記錄和欄位去掉。根據我的實驗需要需要保留的是有效用戶對於有效頁面的訪問時間,就這三個欄位就可以。做數據預處理的第一步是將以文本形式保存的Web日誌導入資料庫,然後利用sql語句對其所導入的資料庫表進行操作就可以完成數據與處理。
Web日誌的形式如下圖所示:
這個部分之前一直不是很明白,詢問去年做過這個工作的兩個哥們,其中一個說用C++中STL部分可以實現,另一個說是將日誌按行讀取,分割內容存入資料庫,然後讀取下一行,卻沒有做具體工作。總之這兩個人所說的都是利用編碼來實現文本的讀取和內容的分割最後再導入資料庫。這樣在理論上是可行的,但是實際操作起來還是有很大的麻煩的,以現在的時間來看是來不及的。
還好在相關文獻上看到有人提到用SQL
Server2000種的DTS工具可以實現這個導入功能。在網上進行搜索居然沒有任何有用的類似於教程的文章,手頭還沒有SQL
Server的書籍,只能自己研究了,經過了一個小時的研究終於將這個問題解決。
Web日誌文件雖然是文本文件,但是它的後綴是.log,如果想將其導入資料庫必須首先將其後綴改稱.txt。然後打運行SQL
Server2000的服務管理器,打開企業管理器。建立新的資料庫Weblog,然後利用工具DTS進行操作,DTS即數據轉換服務。操作為「工具—〉數據轉換服務—〉導入數據」,出現如下對話框如圖2所示。
在圖3對話框中的數據源選擇文本文件,對話框變成圖4所示界面。點擊文件名處右邊的瀏覽按鈕可以選擇所要讀取的文本文件形式的日誌。這里只能讀取.txt文件,所以前面一定要將Web日誌的後綴.log改成後綴.txt。
根據圖1我們看到Web日誌頭四行都是日誌的信息,比如時間和文件格式,所以在跳過行裡面要寫跳過4行。下一步進入圖6所示界面。
在圖6種需要選擇如何對文本文件中每一行的各個欄位進行區分。選擇方式如圖中所示。由於Web日誌每行為一個記錄,每條記錄中每一個欄位中間都是用空格來進行分隔,所以選擇「其它」然後在其對話框中填入一個空格鍵「
」,系統就將對數據進行處理進行劃分,得到分割好的記錄。當然相應欄位的名稱是錯誤的,這個可以在以後生成資料庫表文件後對表進行設計修改。點擊下一步進入圖7所示界面。
單擊下一步之後就可以完成數據導入。
然後刷新資料庫Weblog,就可以看到與Web日誌同名的新的資料庫表文件。修改相應欄位的名稱,就可以完成數據的導入和資料庫表的建立。
接下來可以利用查詢分析器對Web日誌的資料庫表進行操作,完成數據預處理,進而進行日誌挖掘或者流量分析。
㈣ 請問用戶在網站登錄失敗後,web伺服器產生的日誌是什麼樣的最好能舉個例子。萬分感謝!
主要看你的伺服器是什麼操作系統了,一般通過WEB日誌,系統日誌,或是軟體的日誌,都能知道。
㈤ 如何查看Web伺服器日誌
這些日誌信息對計算機犯罪調查人員非常有用。
所謂日誌是指系統所指定對象的某些操作和其操作結果按時間有序的集合。每個日誌文件由日誌記錄組成.每條日誌記錄描述了一次單獨的系統事件。通常情況下,系統日誌
是用戶可以直接閱讀的文本文件,其中包含了一個時間戳和一個信息或者子系統所特有的其他信息。日誌文件為伺服器、工作站、防火牆和應用軟體等IT資源相關活動記錄必要的、有價值的信息,這對系統監控、查詢、報表和安全審汁是十分重要的。日誌文件中的記錄可提供以下用途:監控系統資源,審汁用戶行為,對可疑行為進行報警,確定入侵行為的范圍,為恢復系統提供幫助,生成調查報告,為打擊計算機犯罪提供證據來源。
在windows操作系統中有一位系統運行狀況的忠實記錄者,它可以詳細記錄計算機從開機、運行到關機過程中發生的每一個事件,它就是「事件查看器」。用戶可以利用這個系統維護工具,收集有關硬體、軟體、系統問題方面的信息,並監視系統安全事件,將系統和其他應用程序運行中的錯誤或警告事件記錄下來,便於診斷和糾正系統發生的錯誤和問題。
可以雙擊「控制面板」中「管理工具」中的「事件查看器」,打開事件查看器窗口
㈥ web開發中 日誌的作用是什麼
就是為了看錯誤的,因為開發過後頁面是看不到錯誤的,最多有個系統繁忙,資源找不到的錯誤頁面(這些都是經過美工處理後的頁面,像原始的404,500這些錯誤都是一些英文字母,這種東西在成熟的頁面時不允許出現的),既然看不到錯誤,就知道能在後台日誌文件里列印出來看了,然後再修改
㈦ Web 伺服器的系統事件日誌在那
請檢查IIS的應用程序池是否已啟動。
㈧ web伺服器被攻擊,從哪些日誌,或者現象可以看出來
如果伺服器(網站)被入侵了,一般都是伺服器或者網站存在漏洞,被黑客利用並提權入侵的,導致伺服器中木馬,網站被掛黑鏈,被篡改,被掛馬。解決辦法:如果程序不是很大,可以自己比對以前程序的備份文件,然後就是修復,或者換個伺服器,最好是獨立伺服器。也可以通過安全公司來解決,國內也就Sinesafe和綠盟等安全公司 比較專業.
㈨ 應用web伺服器系統的4.3 系統運行日誌
海蜘蛛EWP系統記錄了Web管理登錄日誌、系統運行日誌、系統初始化日誌和當前內核日誌。並且能方便進行查詢或將日誌轉發到另一伺服器中。
㈩ web日誌分析工具 怎麼確認被攻擊
Apache 伺服器
預安裝在Kali Linux
可以用以下命令開啟:
service apache2 start
MySQL
預安裝在Kali Linux
可以用以下命令開啟:
service mysql start
使用PHP-MySQL創建一個有漏洞的web應用
我使用PHP開發了一個有漏洞的web應用並且把它放在上面提到的 Apache-MySQL裡面。
上述設置完成後,我用了一些Kali Linux中的自動工具(ZAP、w3af)掃描這個有漏洞的應用的URL。
現在讓我們來看看分析日誌中的不同情況。
0x02 Apache服務中的日誌記錄
Debian系統上Apache伺服器日誌的默認位置為:/var/log/apache2/access.log
日誌記錄只是在伺服器上存儲日誌。我還需要分析日誌以得出正確結果。在接下來的一節里,我們將看到我們如何分析Apache伺服器的訪問日誌以找出web站點上是否有攻擊嘗試。
分析日誌
手動檢查
在日誌量較小的情況下,或者如果我們查找一個指定關鍵詞,可以使用像grep表達式這樣的工具觀察日誌。
在下圖中,我們在URL中試圖搜尋所有關鍵詞為「union」的請求。
從上圖中,我們可以看到URL中的「union select 1,2,3,4,5」請求。很明顯,ip地址為 192.168.56.105的某人嘗試了SQL注入。 類似地,當我們有自己的關鍵詞時可以搜索特殊的關鍵詞。
在下圖中,我們正在搜索試圖讀取「/etc/passwd」的請求,很明顯是本地文件包含嘗試。
如上面的截圖所示,我們有許多本地文件包含的嘗試,且這些請求發送自ip地址 127.0.0.1。
很多時候,能輕易通過日誌看出是否是自動化掃描器產生的。
舉例來說, IBM appscan在許多攻擊payload中使用「appscan」這個詞。所以,在日誌中查看這樣的請求,我們基本就可以判斷有人在使用appscan掃描網站。
Microsoft Excel也是一個打開日誌文件和分析日誌的不錯的工具。我們可以通過指定「空格」為分隔符以用excel打開日誌文件。
當我們手頭沒有日誌分析工具時,這個也挺好用的。
除了這些關鍵詞,在分析期間要了解HTTP狀態代碼的基礎知識。以下是關於HTTP狀態代碼的高級信息的表格。
0x03 Web shells
webshell是網站/伺服器的另一個問題。webshell可以已web server許可權控制伺服器。
在一些情況下,我們可以使用webshell來訪問所有放在相同伺服器上的其他站點。
以下截圖顯示了Microsoft Excel 中開啟相同的access.log文件。
我們清楚地看到有一個叫「b374k.php」的文件被訪問了。「b374k」是一個流行的webshell,因此這個文件是很可疑的。
查看相應代碼「200」,本行表明有人上傳了一個webshell並訪問了它。
在許多情況下,攻擊者重命名webshell的名字以避免懷疑。我們必須變得聰明點,看看被訪問的文件是否是常規文件或者是否他們看起來不太一樣。我們可以更進一步,如果任何文件看起來可疑的話,還可以查看文件類型和時間戳。
One single quote for the win
SQL注入是web應用中最常見的漏洞之一。大多數學習web應用安全的人是從學習SQL注入開始的。
識別一個傳統的SQL注入很容易,給URL參數添加一個單引號看看是否報錯。
任何我們傳遞給伺服器的東西都會被記錄,並且可以朔源。
以下截圖顯示了日誌當中記錄了有對參數user傳入單引號測試是否有SQL注入的行為。
%27是單引號的URL編碼。
出於管理目的,我們還可以運行查詢監視來查看資料庫中的哪個請求被執行了。
如果我們觀察以上圖片,傳遞一個單引號給參數「user」的SQL語句被執行了。
0x04 使用自動化工具分析
當存在大量日誌時。手動檢查就會變得困難。在這種情景下,除了一些手動檢查之外我們可以使用自動化工具。
雖然有許多高效的商業工具,但是我要向你們介紹一款被稱為「Scalp」的免費工具。
據他們的官方鏈接所說,Scalp是用於Apache伺服器,旨在查找安全問題的日誌分析器。主要理念是瀏覽大量日誌文件並通過從HTTP/GET中提取可能的攻擊。
Scalp可以從以下鏈接下載:
https://code.google.com/p/apache-scalp/
Scalp是python腳本,所以要求我們的機器中安裝python。
以下圖片顯示該工具的幫助。
如我們在上圖所見,我們需要使用標志-l來提供要分析的日誌文件。
同時,我們需要提供使用標志-f提供一個過濾文件讓Scalp在access.log文件中識別可能的攻擊。
我們可以使用PHPIDS項目中的過濾器來檢測任何惡意的嘗試。
該文件名為「default_filter.xml 」,可以從以下鏈接中下載:
https://github.com/PHPIDS/PHPIDS/blob/master/lib/IDS/default_filter.xml
以下代碼塊是取自上面鏈接的一部分。
1
2
3
4
5
6
7
8
9
10
11
<filter>
<id>12</id>
<rule><![CDATA[(?:etc\/\W*passwd)]]></rule>
<description>Detects etc/passwd inclusion attempts</description>
<tags>
<tag>dt</tag>
<tag>id</tag>
<tag>lfi</tag>
</tags>
<impact>5</impact>
</filter>
它是使用XML標簽定義的規則集來檢測不同的攻擊測試。以上代碼片段是檢測文件包含攻擊嘗試的一個示例。
下載此文件之後,把它放入Scalp的同一文件夾下。
運行以下命令來使用Scalp分析日誌。
1
python scalp-0.4.py –l /var/log/apache2/access.log –f filter.xml –o output –html
「output」是報告保存的目錄。如果不存在的話,由Scalp自動創建。-html是用來生成HTML格式的報告。 如我們在上圖看到的那樣,Scalp結果表明它分析了4001行,超過4024並發現了296個攻擊模式。
運行上述命令後在輸出目錄內生成報告。我們可以在瀏覽器內打開它並查看結果。 下面截圖顯示的輸出顯示了目錄遍歷攻擊嘗試的一小部分。
MySQL中的日誌記錄
本節論述了資料庫中的攻擊分析和監視它們的方法。
第一步是查看設置了什麼變數。我們可以使用「show variables;」完成,如下所示。
接下來顯示了上述命令的輸出。
如我們在上圖中看到的,日誌記錄已開啟。該值默認為OFF。
這里另一個重要的記錄是 「log_output」,這是說我們正在把結果寫入到文件中。另外,我們也可以用表。
我們可以看見「log_slow_queries」為ON。默認值為OFF。
所有這些選項都有詳細解釋且可以在下面提供的MySQL文檔鏈接里直接閱讀:
MySQL的查詢監控
請求日誌記錄從客戶端處收到並執行的語句。默認記錄是不開啟的,因為比較損耗性能。
我們可以從MySQL終端中開啟它們或者可以編輯MySQL配置文件,如下圖所示。
我正在使用VIM編輯器打開位於/etc/mysql目錄內的「my.cnf」文件。
如果我們向下滾動,可以看見日誌正被寫入一個稱為「mysql.log」的文件內。
我們還能看到記錄「log_slow_queries」 ,是記錄SQL語句執行花了很長時間的日誌。
現在一切就緒。如果有人用惡意查詢資料庫,我們可以在這些日誌中觀察到。如下所示:
上圖顯示了查詢命中了名為「webservice」的資料庫並試圖使用SQL注入繞過認證。