先日、Linux「bash」脆弱性の件が気になるので自分が管理しているサーバー内のログを確認しました。という記事を書いたところ、読者の方から「攻撃を受けたかどうか、Webサーバーも調べた方が良いのでは?」というご指摘をいただきました。
「それはもっともなこと」と思い、さっそく調べて見ました。具体的には、Apacheのアクセスログ(/var/log/httpd/access_log)に、次の文字列の有無を確認します。もし、存在すれば攻撃を受けていたことになります。
() { :; };
access_logを確認するまでの作業
1./var/log内にアクセス
まず次のコマンドで/var/logにアクセスして、ディレクトリの内容を確認します。
$ cd /var/log $ ls -la
2.httpdディレクトリの所有者の変更
自分の場合、httpdがroot権限でしか見れない状態だったので、所有者を作業用ユーザーに変更します。
$ sudo chown myusername httpd
3.httpdに移動してディレクトリの内容を確認
ここまでの作業ではカレントディレクトリが、/var/logとなっていますので、/var/log/httpdに移動します。
$ cd /var/log/httpd $ ls
するとApacheのログファイル一覧が出てきます。
4.access_logを確認
次のコマンドを入力しますが、access_log以外にも4つのファイルを調べています。
$ view access_log
- access_log-0914
- access_log-0921
- access_log-0928
- access_log-1005
他の方の記事を読んでいると、grepコマンドで調べれば良いと書かれています。ですが、コマンドの打ち方が悪いのか反応がなかったので、自分はすべてのファイルを開いて文字列検索を行いました。
access_log-0928でビンゴ!(泣)
“() { :; };“がないことを祈りつつ検索をかけましたが、access_log-0928を見ると、残念ながら9月25日に攻撃を受けていることが発覚しました(赤色で囲った枠線)
ですが、あとのログを調べていると攻撃を受けたのは1回こっきりで、なおかつ9月27日にbashのアップデートを済ましています。
なので、今回はWebサーバーの確認だけということで。
〔参考サイト〕