2014-10-01

bashの脆弱性「Shellshock」のOpenVPNへの影響について

By Taro Yamazaki  |  17:30 No comments

今回は、広く使用されているシェル「bash」に見つかった「ShellShock」がOpenVPNに与える影響について取り上げます。

この脆弱性は、環境変数に悪質なコードを埋め込んでbashに渡すことにより、標的のコンピュータからデータを取得したり、他のコンピュータにアクセスしたりできてしまう、という問題です。

ShellShockについてはメディアでも広く取り上げられています。


OpenVPNに与える影響が気になるところですが、threatpostの「OpenVPN Vulnerable to Shellshock Bash Vulnerability」で説明されています。
【追記】
threatpostのこの記事の内容については、こちらの記事で補足しています。

結論としては「OpenVPNサーバーの設定次第では影響がある」ということになります。

脆弱性と関連する設定

OpenVPNには、接続開始時や認証時などの特定のタイミングで外部コマンドを呼び出す仕組みがあります。この機能が最もよく使用されるのはOpenVPNサーバーがID/パスワードで認証を行うときで、クライアントから送られてきたユーザーIDやパスワードを外部コマンドに渡すことで認証を行います(具体的な方法については、このブログ内の「[OpenVPN TIPS] 証明書認証ではなく、ID/パスワード認証を使用する」などをご参照ください)。

OpenVPNからスクリプトを呼び出す際、データを渡すために環境変数が使用されますので、この環境変数に悪質なコードが含まれているとShellShockの影響を受ける可能性が出てきます。

OpenVPNが扱う環境変数のうち、外部からデータを入れられる可能性が最も高いのは、ユーザー認証時に使用する usernamepassword です。これらの環境変数には接続時にクライアントが設定してきたものがそのまま渡されますので、悪意のあるクライアントがユーザーIDやパスワードとして悪質なコードを含めれば、それがそのまま環境変数経由で外部コマンドに渡されることになります。

ShellShockの影響を受ける条件

したがって、OpenVPNサーバーがShellShockの影響を受ける可能性があるのは、以下の条件がいずれも満たされた場合です。

  • ユーザーID/パスワードによる認証を使用している(auth-user-pass-verifyディレクティブを使用しており、methodとして「via-env」を使っている)
  • 認証を実行する外部コマンドとして、bashを使用するシェルスクリプトを使用している

この2つの条件が満たされているケースはそれほど多くはないかもしれませんが、いずれにしてもbashのアップデートをしておきましょう。

<補足>

こちら(pastebin)に検証コードが公開されています。

Image courtesy of stockimages / FreeDigitalPhotos.net

Author: Taro Yamazaki

0 コメント:

© 2015 yamata::memo | Distributed By My Blogger Themes | Created By BloggerTheme9
TOP