天天看點

使用ELK實時分析SSH暴力破解安全日志分析Grok正則捕獲Logstash安裝配置Elasticsearch部署Kibana資料展示結語

這是ELK入門到實踐系列的第二篇文章,分享如何使用ELK實時分析SSH暴力破解。從一張圖看出SSH登入時間、登入狀态、使用者名字典,嘗試次數、來源IP等,可洞悉SSH暴力破解,迅速定位攻擊者。

安全日志分析

linux系統的安全日志為/var/log/secure,記錄驗證和授權方面的資訊,隻要涉及賬号和密碼的程式都會記錄,比如SSH登入。

登入成功:

Nov  7 00:57:50 localhost sshd[22514]: Accepted password for root from 192.168.28.1 port 18415 ssh2
Nov  7 00:57:50 localhost sshd[22514]: pam_unix(sshd:session): session opened for user root by (uid=0)
           

登入失敗:

Nov  7 00:59:12 localhost sshd[22602]: Failed password for root from 192.168.28.1 port 18443 ssh2
Nov  7 00:59:14 localhost sshd[22602]: error: Received disconnect from 192.168.28.1 port 18443:0:  [preauth]```
           

通過以上資訊,我們隻需要一條資訊就可以判斷登入成功或失敗。

# SSH登入成功
Nov  7 00:57:50 localhost sshd[22514]: Accepted password for root from 192.168.28.1 port 18415 ssh2
#  SSH登入失敗
Nov  7 00:59:12 localhost sshd[22602]: Failed password for root from 192.168.28.1 port 18443 ssh2
           

Grok正則捕獲

基于上述,我們來構造Grok正則捕獲關鍵資訊字段。

線上grok調試位址:http://grokdebug.herokuapp.com/

使用ELK實時分析SSH暴力破解安全日志分析Grok正則捕獲Logstash安裝配置Elasticsearch部署Kibana資料展示結語

Logstash安裝配置

1、下載下傳安裝(環境要求:JDK8)

wget https://artifacts.elastic.co/downloads/logstash/logstash-7.3.2.tar.gz
tar -zxvf logstash-7.3.2.tar.gz
cp -r logstash-7.3.2 /usr/local/logstash
           

2、測試

3、Logstash配置

input {
  file {
    path => "/var/log/secure"
  }
}

filter {
    grok {
        match => {            "message" => ".*sshd\[\d+\]: %{WORD:status} .* %{USER:username} from.*%{IP:clientip}.*"
        }
    }
}
output {     if ([status] == "Accepted" or [status] == "Failed") {
          elasticsearch {
            hosts => ["http://192.168.28.151:9200"]
            index => "secure-%{+YYYY.MM.dd}"
            #user => "elastic"
            #password => "changeme"
          }
          stdout {
            codec => rubydebug
          }
    }
}
           

Elasticsearch部署

1、安裝

yum -y install elasticsearch
           

2、配置

cd /etc/elasticsearch/
vi  elasticsearch.yml
    network.host: 0.0.0.0
    http.port: 9200
           

3、啟動ES

/bin/systemctl daemon-reload
systemctl start elasticsearch
           

Kibana資料展示

安裝部署

# 安裝yum -y install kibana# 配置cd /etc/kibana
cp kibana.yml kibana.yml.bak
vi kibana.yml
    server.port: 5601
    server.host: "0.0.0.0"
    elasticsearch.hosts: ["http://192.168.28.151:9200"]# 啟動systemctl daemon-reload
systemctl restart kibana
           

繪制資料表

可以直覺的看到攻擊者所使用的使用者名字典,登入成功或者失敗的次數。

使用ELK實時分析SSH暴力破解安全日志分析Grok正則捕獲Logstash安裝配置Elasticsearch部署Kibana資料展示結語

繪制折線圖

Y軸為登入失敗次數,X軸為登入時間,對SSH登入狀态和IP位址做了一個直覺的統計。

使用ELK實時分析SSH暴力破解安全日志分析Grok正則捕獲Logstash安裝配置Elasticsearch部署Kibana資料展示結語

制作儀表盤

将前面繪制的資料表和折線圖導入到一個儀表盤,就可以通過一張圖進行安全日志分析,實時洞悉SSH暴力破解。

使用ELK實時分析SSH暴力破解安全日志分析Grok正則捕獲Logstash安裝配置Elasticsearch部署Kibana資料展示結語

結語

本文中,通過對secure日志的分析,建構Grok正則捕獲關鍵字段資訊,然後将日志資料導入ELK進行實時分析。基于ELK實作日志收集分析,有着更多的應用場景,慢慢去摸索,繼續分享一些最佳實踐。

https://mp.weixin.qq.com/s/-pLGcrKkoqAIscsxAGnCzw

繼續閱讀