セキュリティごった煮ブログ|ネットエージェントセキュリティを楽しく学ぶ、触れる。コース:元祖こってり「元祖こってり」記事はネットエージェント旧ブログ[netagent-blog.jp]に掲載されていた記事であり、現在ネットエージェントに在籍していないライターの記事も含みます。XなどのUNIX系OSで広く使用されているbashに見つかった脆弱性(Shellshockと呼ばれています)が先日から話題になっています。特定の文字列を設定するだけでその環境変数内の文字列をシェルが関数として実行してしまいます。シェルを通じてコマンド等を実行する幅広い環境で影響がありますが、特に顕著に影響を受けるのはCGI等のWebアプリケーション環境です。CGIをはじめとするWebアプリケーションではWebブラウザからのHTTPリクエストヘッダなどに含まれる各種の情報を環境変数を通じて取得するため、攻撃にも応用しやすいからです。今回の脆弱性は、攻撃者にとっては非常に簡単な方法で攻撃が可能であり、現在すでにこの脆弱性を利用した攻撃が広く観測されているため、早急に対応が必要となります。CentOSではデフォルトで/bin/shがbashへのシンボリックリンクとなっており、影響を受けやすいため注意が必要です。'echo'を実行します。文字列が表示されるようであればお使いのbashは脆弱性のあるバージョンとなります。文字列が表示されない場合であっても、脆弱性に対応するために現在リリースされているパッチでは修正が不十分という可能性もありますので、ベンダの情報やJPCERT/CCによる緩和策等を参考にしてください。{」という文字列を含むリクエストが存在していないかを調べます。(http://blog.*********.com/2014/09/bash-shellshock-scan-of-internet.html)"これは脆弱性がある場合には攻撃者の用意したサイトへpingを発行するという攻撃の準備のためのコードをリファラに仕込んでいたときのログで、研究を目的としたスキャンのようです。このログによる確認方法は簡易的なものであり、User-Agentやリファラ以外の例えばAccept-Encodingやその他のカスタムリクエストヘッダなどに攻撃用コードを仕込んでいた場合には一般的にはログに記録されないため、この確認方法では攻撃の有無を把握することはできません。そのため、攻撃を確実に把握するためにはすべてのHTTPの通信を記録しておくことが望ましいと言えます。用いるとHTTPをはじめとする通信の記録、確認が容易に行えます。■影響の範囲Webサーバをはじめとし、bashがインストールされているLinuxやUNIX環境すべてが対象となりますが、その脆弱性を利用して外部から実際に攻撃、侵入ができるかどうかについては設定や使用しているプログラムによるところが大きく、すべてのサーバが即座に侵入可能というわけではありません。脆弱性のあるbashが存在するWebサーバに対しては、攻撃者がHTTPリクエストヘッダに脆弱性を利用した攻撃コードを含めてHTTPリクエストを発行し、それに対してWebアプリケーション攻撃が応答するだけで攻撃が成立してしまいます。Webアプリケーションが影響を受けるのは、シェルを経由して外部コマンドを起動する部分となります。各言語において外部コマンドを起動するための関数や命令は異なっており、それぞれがシェルを経由するか否かはWebアプリケーション開発者にとっても把握が難しいため注意が必要です。以下、代表的な事例としてPHPおよびPerlにおける影響点を記載しておきます。○PHPPHPではCGIモードで起動させた場合にbashの脆弱性を利用した攻撃が非常に容易に行えることを確認しています。関数も内部的にシェルを起動しているため、今回のbashの脆弱性の影響を受けます。これらを利用しているPHPスクリプトの動作環境では早急に対応が必要となります。外部コマンドを利用している場合に影響を受ける可能性があります。ように多段にパイプを介している場合にはシェルを起動してのコマンド実行となるため確実に影響を受けることになります。機能により外部コマンドを呼び出している場合があり、これらもbashの脆弱性の影響を受けるため注意が必要です。企業内、ファイアウォール内のサーバやBASIC認証等で保護されているサーバなど、攻撃者が直接的にアクセスできない場合であっても、そのサーバ上の攻撃可能なCGIなどのURLが攻撃者にとって既知である場合には、攻撃者はわなページ上のJavaScriptからXMLHttpRequestによって攻撃用のコードをを該当CGIへ送信することで任意コードの実行が可能となります。以上、bashの脆弱性についての調査結果となります。繰り返しになりますが、現在提供されているパッチでは脆弱性への対応が不十分という話もあるため、パッチの適用に加え、万が一の場合に備えた対策を合わせてとっておくことが大切であり、弊社によるネットワークの監視カメラ「PacketBlackHole」のような製品が重要となります。Firewallである「Scutum」ではすでに本攻撃に対するシグネイチャの対応を終えており、導入することにより本脆弱性を利用した攻撃からWebアプリケーションを守ることができます。