DigiCertが、現実の問題を解決するために、デジタルトラストの確立、管理、拡大をどのように支援しているかをご覧ください。
世界のIT・情報セキュリティリーダーたちが、デジタル技術の信頼性を欠いたセキュリティはセキュリティではないと考えている理由とは?
2023年8月15日よりCertCentralのサインインではユーザ名とパスワードのほかにワンタイムパスワード(OTP)もしくはクライアント証明書の二要素認証による提示が必要となりました。 設定等についてはこちらのKnowledgeを参照ください。
概要
UnixやLinux等のOSでは、ユーザーからのコマンドを解釈実行するプログラムとしてシェルが用いられます。シェルの中でもLinuxやMac OS X等に標準で採用され、もっとも広く用いられているものにBashがあります。
他のシェル同様Bashにはプログラミングの機能があり、関数を環境変数により外部から指定することができます。この機能に脆弱性があり、環境変数経由で、外部から指定された任意のプログラムを実行できてしまいます。Bashに対して外部から環境変数を指定する方法の典型例はCGIプログラムによるものですが、これ以外にメール受信など複数の方法が指摘されており、9月以降現在まで、攻撃が活発に継続されています。
攻撃のイメージと影響
Perl言語により記述されたCGIプログラムがあり、以下の部分によりメール送信をしているとします。以下のプログラムは外部からのパラメータ指定などはなく、一見すると攻撃の余地はありません。
system('/usr/sbin/sendmail admin@example.jp < mail.txt');
しかし、このCGIプログラムを起動する際に、ブラウザのUser-Agentを以下のように指定することで攻撃ができてしまいます。) { :;}; /bin/cat /etc/passwd
CGIプログラムに対しては、User-AgentなどHTTPヘッダは環境変数経由で渡されます。そして、CGIプログラムからsendmailコマンドを起動する際に、system関数の実装上シェルが起動されます。このため、デフォルトシェルとしてbashが指定されている環境では、上記のアクセスの結果 /etc/passwdの内容が表示されます。
root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh 【以下略】
脆弱性による影響
この脆弱性による影響の例として下記がありますが、これらに限定されるわけではありません。脆弱性の有無の確認方法
Bashのプロンプトから以下を実行してください。
$ env x='() { :;}; echo this bash is vulnerable' bash -c :
下記が表示された場合、ShellShock脆弱性があることになります。this bash is vulnerable
対策
Bashの最新版を導入するか、Bashの最新のパッチを適用することで対処できます。必ず最新のパッチを全て適用するようにしてください。
なお、デジサートの「クラウド型WAF」では、ShellShock攻撃からウェブサイトが攻撃を受けるのを防ぐことができます。参考文献
JVNVU#97219505
GNU Bash に OS コマンドインジェクションの脆弱性
http://jvn.jp/vu/JVNVU97219505/index.html修正の上再掲しました。
© 2024 DigiCert, Inc. All rights reserved.
リーガルリポジトリ Webtrust 監査 利用条件 プライバシーポリシー アクセシビリティ Cookie 設定 プライバシーリクエストフォーム