【問題と解答例】第16回春だからログ解析するぞシェル芸勉強会

Sat Apr 18 16:54:34 JST 2015 (modified: Sun Sep 15 09:30:07 JST 2019)
views: 820, keywords: ログ,apache,CLI,Linux,shellshock,UNIX/Linuxサーバ,USP友の会,勉強会,シェル芸,シェル芸勉強会

  このエントリーをはてなブックマークに追加 

問題のみのページはコチラ

始める前に

イントロのスライド

20150418 第16回シェル芸勉強会スライド from Ryuichi Ueda

使用するログ

/?page=05649内の、danger_log.gz(ShellShockのログ)とaccess_log.nasa.gz(NASAの公開データ。上田改)です。

環境

今回はLinuxで解答例を作りましたので、BSD系、Macな方は以下の表をご参考に・・・。

Mac,BSD系 Linux
gdate date
gsed sed
tail -r tac
gtr tr
gfold fold

準備0

ログをとってきましょう。

準備1

danger_log.gzとaccess_log.nasa.gzについて、日付と時刻を次のように正規化しておきましょう。

解答

ちゃんと変換できているか確認する方法は、例えば次の通り。

準備2

NASAのログを各日付のファイルに分けておきましょう。ログはQ1で作ったものを使います。1,2行目の8桁日付、6桁時刻は残っていても構いません。

解答

やり方を知っていれば簡単ですね。

Q1

NASAのログについて、ステータスコードを抽出して、どのコードがいくつあるか数えてみましょう。

解答

NASAのログについては、後ろからフィールドを数える方法を使うことに気づけば簡単です。

Q2

NASAのログについて、ファイルを開かずに、ログの多い日を探しだしてみましょう。

解答

lsを使ってサイズを見たら開かないでも見当がつきます。

Q3

NASAのログについて、(Q3-1)ログの件数が一番多い曜日はどれでしょうか。(Q3-2)ログの件数が一番多い時間帯(時間帯というのは0時台、1時台、・・・、23時台のこと)はどれでしょうか。

Q3-2については高速な方法を考えてみてください。

解答

(Q3-1)次のように木曜日。

(Q3-2)時間をどう切り出すかが鍵です。

Q4

ShellShockログ内にあるIPアドレス(IPv4)がすべて192.168.から始まることを確認して下さい。IPアドレスはレコードの先頭だけでなく、インジェクションするコードの中にもあるのでご注意ねがいます。

解答

Q5

ShellShockログについて、レスポンスのデータ送信量が大きいものを、IPアドレスと共に上から10件を挙げてみましょう。

解答

Q6

NASAのログについて、7月8月のうち、ゼロ件の日を列挙してみてください。

解答

Q7

ShellShockのログから、(Q7-1)インジェクションが試みられたコード(「() { :;};」から後ろ)を抽出してみて傾向を話あってみましょう。(Q7-2)出来る人はエスケープも掃除してコードを復元してみましょう。(Q7-3)更にできる人は最後の行のコードを実行してみてください。このログはIPアドレスを変換しているので安全ですが、普通のログでやると死にますのでご注意を。

解答

とりあえずこれで読みやすくなりますね。



prev:【問題のみ】第16回春だからログ解析するぞシェル芸勉強会 next:日記(勉強会の次の日が大変だという中年の主張)





このサイトではGoogle AdSenseやその他ソーシャルボタンのためにCookieを使用しています。もし同意いただけない場合はブラウザでクッキーを無効にして閲覧をお願いします。This site uses cookies for Google AdSense and some social buttons. If you cannot accept our use of cookies, please disable cookies on your browser.