Windows應急響應和系統加固(10)——Nginx日誌分析以及JBoss日誌分析

来源:https://www.cnblogs.com/catt1e/archive/2020/03/05/12422581.html
-Advertisement-
Play Games

Nginx日誌分析以及JBoss日誌分析 一、使用E.L.K安全分析Nginx日誌 1.Nginx日誌介紹: Nginx是高性能的、輕量級Web、反向代理和電子郵件代理伺服器,由俄羅斯訪問量第二的Rambler.ru站點開發; 簡稱"ngx",由於出色的性能,低資源消耗,在高併發應用系統中應用廣泛; ...


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分析。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 假定一個場景,開始做開發的你,領導走到你的面前說道:“小伙子,看了簡歷和最近的工作表現,很不錯,現在交給一個任務,開發一個簡單的CMS後端介面吧,前端有人配合你”,當時你內心讀白:“CMS什麼東西,還好我可以百度,但我要在哪個項目上開搞啊”,這時的領導又說道:“項目你自己建立,然後上傳git就行了” ...
  • 使用C#已經有好多年頭了,然後突然有一天被問到C#Dictionary的基本實現,這讓我反思到我一直處於拿來主義,能用就好,根本沒有去考慮和學習一些底層架構,想想令人頭皮發麻。下麵開始學習一些我平時用得理所當然的東西,今天先學習一下字典,Dictionary 一、Dictionary源碼學習 Dic ...
  • 點擊進入GitHub項目 Nuget包名:ToolBox.UserAgentParse 使用教程: 1. 打開項目→選擇依賴項(引用)→右鍵 管理nuget程式包 2. 搜索包 ToolBox.UserAgentParse → 找到圖中的包→點擊右邊的安裝 安裝成功即可 3.調用 1 var uaI ...
  • 第一章 1.1第一個Windows程式 1.1.1創建一個Windows應用程式 一共包括四部 (1)打開Visual Studio開發工具 (2)選擇 “文件” ➡ “新建” ➡ “項目” 命令。 (3)項目類型選擇 “Visual C ”。 (4)模板選擇“Windows窗體應用程式” 選擇項目 ...
  • 異常不可避免,所有地方都寫try...catch也麻煩,所以有了未處理異常的處理的東東,分別為以下三個事件: 1. Application.Current.DispatcherUnhandledException:DispatcherUnhandledException is raised by a ...
  • 使用 resx 文件,可以動態切換語言, 新建Lang.zh-CN.resx Lang.en-US.resx 資源文件 新建空類Lang.cs 新建如下類: public class LanguageManager : INotifyPropertyChanged { private readonl ...
  • ansible 介紹、特點、原理與架構、具體執行流程,以及自動化運維使用場景 ...
  • 0 個人信息 張櫻姿 201821121038 計算1812 1 實驗目的 熟練Linux命令行操作。 2 實驗內容 使用man查詢命令使用手冊 基本命令使用 3 實驗環境 操作系統:deepin15.9.2 平臺:雙操作系統 4 實驗報告 剖析ps命令 man命令是Linux下的幫助指令,通過ma ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...