Apacheログからセキュリティアタックの解析をする。
2017年9月8日Security Tips, テクニカル, トピックス, ノウハウ
ApacheのWEBログから攻撃の手法を読み取るツールをご紹介したいと思います。ツールの言語はPython2.x系で記述されていますが、少し手を入れてpyhon3.xで動作するパッチを作ってみました。2.x系と動作比較した感じは動作良好のようです。
コードGoogleで登録されているapacheログのセキュリティ解析ツール(scalp)
https://code.google.com/archive/p/apache-scalp/それではダウンロードして準備しましょう。
python3.x系で動作させる場合はこのパッチを適用
1 2 3 4 |
$ mkdir scan-site $ cd scan-site $ wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/apache-scalp/scalp-0.4.py $ patch -u scalp-0.4.py < diff_python3.patch #python2.x系は不要 |
実行にはApacheのログが必要です。まずは例えばフォルダー「input」を作ります。そこへアパッチのログを一旦コピーしましょう。次に解析結果を「out」フォルダー入れるために作成します。出力結果はHTML形式にします。尚コマンドラインが長いためシェルで実行する事をお勧めします
scanする攻撃パターン検索用のスキーマ(default_filter.xml)
1 2 3 4 5 6 |
$ mkdir input;mkdir out $ cp /var/log/httpd/xxxxx_access_log input/ $ python ./scalp-0.4.py -f ./default_filter.xml -o out --html -l input/解析対象ファイル名 下記のいずれかでWEBサーバ起動してみてください $ python -m http.server 8000 #(python3.xのWEBサーバ) $ python -m SimpleHTTPServer 8000 #(python2.xのWEBサーバ) |
ブラウザにてhttp://xxx.xxx.xxx.xxx:8000/out/xxxxx.access_log_scalp_Thu-07-Sep-2017.htmlのような感じでアクセスしてみてください。下記のような表示が出てくるはずです。
まとめとして、ログが巨大な場合はsplitコマンドで予め分割して編集してから解析ツールに通すほうが良さそうです。また新たな攻撃パターン手口はdefault_filter.xmlを編集して登録すると拡張できる点は良いですね。
タグ: apache攻撃解析, Python, scalp, セキュリティ