Nginx日志分析以及JBoss日志分析
一、使用E.L.K安全分析Nginx日志
1.Nginx日志介紹:
Nginx是高性能的、輕量級Web、反向代理和電子郵件代理服務器,由俄羅斯訪問量第二的Rambler.ru站點開發;
簡稱"ngx",由于出色的性能,低資源消耗,在高并發應用系統中應用廣泛;
Web Server領域,在互聯網、電商、能源、交通行業廣泛應用(新浪、網易、騰訊等);
與Apache并駕齊驅,完成任務相似,因此日志檔案的特征也相似,
2.Nginx日志分析:
nginx日志檔案的輪詢方法,與apache類似;
nginx日志檔案分為:訪問日志(access.log)、錯誤日志(error.log);
默認日志目錄在安裝目錄里的logs,可在nginx.conf組態檔,查看到具體日志目錄和日志配置的欄位和格式(NGINX combined log format)等資訊,
分析的原則:
<1>.事件發生的時間:
以timestamp為基礎,為時間軸,帶著時間戳印記的nginx日志,匯入分析平臺或程式進行分析;
確定安全事件發生的具體時間視窗,定位時間點,
<2>.件事如何發生的:
關注Get、POST、PUT等HTTP請求的方法;
Webshell、SQL注入、XSS跨站腳本攻擊、反序列化漏洞、遠程命令執行、目錄穿越(cd ../../../../../etc/passwd等攻擊,在URI里傳引數,尤其要留意傳入的引數,e.g.ipconfig、ifconfig、whoami、id、alert、union、
select *等;
服務器的回應狀態:status codes,500、501、404、200、302、401等;
服務器發送的位元組數:bytes(木馬、CC、DDos攻擊),
<3>.發生攻擊的具體位置:
關注請求的資源地址URI,從深度(shell上傳)和廣度(敏感目錄檔案)上面留意;
請求資源所傳遞的引數(注入):
關注user agents用戶客戶端的資訊(腳本);
請求資源的客戶端IP(client_ip);
服務器回應的IP,如果被植入木馬,可以快速前往該服務器進行調查取證和處理;
Referer參考和推薦站點的位置,例如,XSS、CSRF,跨域型別的攻擊,
3.使用E.L.K安全分析Nginx日志:
<1>.E.L.K介紹:
E.L.K,是Elasticsearch、Logstash、Kibana簡稱,三者是核心套件,
Elasticsearch,實時全文搜索和分析引擎,提供搜集、分析、存盤資料三大功能;是一套開放REST和JAVA API等結構,提供高效搜索功能、可擴展的分布式系統,它構建于Apache Lucene搜索引擎庫之上;
Logstash,是一個用來搜集、分析、過濾日志的工具,它支持幾乎任何型別的日志,包括:訪問日志、錯誤日志和自定義應用程式日志,它可以從許多來源接收日志,這些來源包括syslog、訊息傳遞(Redis、RabbitMQ)和
JMX,它能夠以多種方式輸出資料,包括電子郵件、websockets、Elasticsearch;
Kibana,是一個基于Web圖形界面,用于搜索、分析和可視化存盤在 Elasticsearch指標中的日志資料,它利用Elasticsearch的REST介面來檢索資料,不僅允許用戶創建他們自己的資料的定制儀表板視圖,還允許他們以特殊
的方式查詢和過濾資料,
<2>.elasticsearch相關的資訊:
elasticsearch data的存放目錄:/data/es-data;
elasticsearch的組態檔:/etc/elasticsearch/elasticsearch.yml;
啟動elasticsearch服務:/etc/init.d/elasticsearch start;
和elasticsearch互動:curl -i -XGET 'IP:9200/_count?pretty'(9200為elasticsearch的默認埠)
<3>.LogStash的相關資訊:
應用所在目錄:/usr/share/logstash/;
logstash組態檔所在位置:/etc/logstash/conf.d;
nginx日志欄位的格式處理:/usr/share/logstash/patterns
啟動logstash處理nginx日志:logstash -f /etc/logstash/conf.d/nginx3.conf
<4>.Kibana的相關資訊:
應用所在目錄:/usr/local/kibana;
kibana的組態檔:/usr/local/kibana/config/kibana.yml;
開啟:/usr/local/kibana/bin/kibana
<5>.Nginx日志全球使用分布:

二、JBoss日志分析與調查取證
1.JBoss日志介紹:
JBoss是一個開源的J2EE應用服務,在國內、在全球,應用都很廣泛;
JBoss代碼遵循LGPL許可,可以在任何商業應用中免費使用;
JBoss有多個版本:JBoss AS4、AS5、AS6、AS7等;
是一個管理EJB的中間件、容器和服務器,支持EJB 1.1、EJB 2.0、EJB3規范;
JBoss AS是JBoss Enterprise Application Platform的上游商業應用的基礎,為了使兩個產品具備差異化,避免用戶混淆,2016年10月,JBoss AS修改名字為:WildFly,
2.日志分析:
查看上文Nginx日志分析原則,
3.JBoss漏洞介紹:
JBoss爆發的漏洞數量與其他著名的中間件(Weblogic、Jenkins、WebSphere等)相比,數量相對較少,然而近幾年Java反序列化漏洞肆虐,JBoss亦深受其害,
<1>.JBoss高危漏洞主要型別:
利用未授權訪問進入JBoss后臺進行檔案上傳的漏洞(Getshell):
CVE-2007-1036、CVE-2010-0738、CVE-2005-5750,
利用Java反序列化遠程代碼執行的漏洞:
CVE-2015-4852和CVE-2015-7501(Apache Commons Collections基礎庫反序列化)、CVE-2017-7504、CVE-2017-12149、CVE-2013-4810
JBoss Seam2模板注入漏洞(CVE-2010-1871),
<2>.JBoss在產品存在的主要漏洞情況:
Jboss AS4:
jmx-console弱密碼或密碼泄露導致getshell;
admin-console弱密碼或者密碼泄露導致getshell.
Jboss AS5:
jmx-console弱密碼或密碼泄露導致getshell;
admin-console弱密碼或者密碼泄露導致getshell;
CVE-2013-4810(JMXInvokerServlet、EJBInvokerServlet遠程命令執行漏洞);
Jboss java反序列化漏洞,
Jboss AS6:
Jboss java反序列化漏洞(e.g. CVE-2017-12149);
jmx-console弱密碼或密碼泄露導致getshell,也叫RMI遠程方法呼叫getshell;
admin-console弱密碼或者密碼泄露導致getshell;
Jboss AS7:
Java反序列化漏洞;
console后臺弱密碼或密碼泄露導致getshell,
4.JBoss日志分析:
<1>.JBoss 6.1.0,日志組態檔:(AS4、5類似):
位置:C:\jboss-6.1.0.Final\server\default\deploy\jboss-logging.xml(7默認記錄訪問日志的功能沒啟用,)
<2>.配置欄位解釋:
配置欄位示例:
<Valve className="org.apache.catalina.valves.AccessLogValve"
prefix="localhost_access_log." suffix=".log"
pattern="%h %l %u %t %r %s %b" directory="${jboss.server.home.dir}/log"
resolveHosts="false" />
分析:
lassName:實作的Java類名,設定成:org.apache.catalina.valves.AccessLogValve;
directory:存放日志檔案的目錄;
pattern:需要記錄的日志資訊的欄位、格式、布局,如果是common或者combined,說明是使用的標準記錄格式,也有自定義的格式;
prefix: 日志檔案名的前綴,如果沒有指定,預設值是access_log.(要注意后面有個小點);
resolveHosts:將遠端主機的IP通過DNS查詢轉換成主機名,設為true,如果為false,忽略DNS查詢,報告遠端主機的IP地址;
sufix:日志檔案的后綴名,(sufix=”.log”)(要注意后面有個小點);
rotatable:預設值為true,決定日志是否要輪詢和翻轉,如果為false則永不翻轉,并且忽略fileDateFormat,謹慎使用;
condition:打開條件日志;
fileDateFormat:允許在日志檔案名稱中使用定制的日期格式,日志的格式也決定了日志檔案翻轉的頻率,
%a :遠端IP
%A :本地IP
%b: 發送的位元組數,不包含HTTP頭,如果為0,使用”-”
%B: 發送的位元組數,不包含HTTP頭
%h: 遠端主機名(如果resolveHosts=false),遠端的IP
%H:請求協議
%l :從identd回傳的遠端邏輯用戶名,總是回傳’-’
%m: 請求的方法
%p :收到請求的本地埠號
%q :查詢字串
%r 請求的第一行
%s 回應的狀態碼
%S 用戶的sessionID
%t 日志和時間,使用通常的log格式
%u 認證以后的遠端用戶(如果存在的話,否則為’-’)
%U 請求的URI路徑
%v 本地服務器的名稱
%D 處理請求的時間,以毫秒為單位
%T 處理請求的時間,以秒為單位
5.使用E.L.K安全分析Nginx日志:
參考上文Nginx分析,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/4962.html
標籤:Windows
