OpenVPN&セキュリティ情報
2014-10-01
bashの脆弱性「Shellshock」のOpenVPNへの影響について
今回は、広く使用されているシェル「bash」に見つかった「ShellShock」がOpenVPNに与える影響について取り上げます。この脆弱性は、環境変数に悪質なコードを埋め込んでbashに渡すことにより、標的のコンピュータからデータを取得したり、他のコンピュータにアクセスしたりできてしまう、という問題です。
ShellShockについてはメディアでも広く取り上げられています。
OpenVPNに与える影響が気になるところですが、threatpostの「OpenVPN Vulnerable to Shellshock Bash Vulnerability」で説明されています。
結論としては「OpenVPNサーバーの設定次第では影響がある」ということになります。
脆弱性と関連する設定
OpenVPNには、接続開始時や認証時などの特定のタイミングで外部コマンドを呼び出す仕組みがあります。この機能が最もよく使用されるのはOpenVPNサーバーがID/パスワードで認証を行うときで、クライアントから送られてきたユーザーIDやパスワードを外部コマンドに渡すことで認証を行います(具体的な方法については、このブログ内の「[OpenVPN TIPS] 証明書認証ではなく、ID/パスワード認証を使用する」などをご参照ください)。OpenVPNからスクリプトを呼び出す際、データを渡すために環境変数が使用されますので、この環境変数に悪質なコードが含まれているとShellShockの影響を受ける可能性が出てきます。
OpenVPNが扱う環境変数のうち、外部からデータを入れられる可能性が最も高いのは、ユーザー認証時に使用する username と password です。これらの環境変数には接続時にクライアントが設定してきたものがそのまま渡されますので、悪意のあるクライアントがユーザーIDやパスワードとして悪質なコードを含めれば、それがそのまま環境変数経由で外部コマンドに渡されることになります。
ShellShockの影響を受ける条件
したがって、OpenVPNサーバーがShellShockの影響を受ける可能性があるのは、以下の条件がいずれも満たされた場合です。- ユーザーID/パスワードによる認証を使用している(auth-user-pass-verifyディレクティブを使用しており、methodとして「via-env」を使っている)
- 認証を実行する外部コマンドとして、bashを使用するシェルスクリプトを使用している
この2つの条件が満たされているケースはそれほど多くはないかもしれませんが、いずれにしてもbashのアップデートをしておきましょう。
<補足>
こちら(pastebin)に検証コードが公開されています。
Image courtesy of stockimages / FreeDigitalPhotos.net
Related Posts
登録:
コメントの投稿
(
Atom
)
Profile
- 山崎 太郎 (Taro Yamazaki)
- プラムシステムズ株式会社所属。 主にVPN(OpenVPN)やセキュリティ関連技術、Webアプリケーションを手がけています。
Page Views
807,877
Popular Posts
-
「VPNっていろいろあるけど、OpenVPNのメリットって何?」 という疑問は多くの方が持たれますよね。この点は公式サイトなどにもいろいろ書かれているのですが、実際に使ってきたユーザー側としてメリットと思う部分をまとめてみました。
-
現在ダウンロードできるOpenVPNでは、今まで認証局の構築で使用していたeasy-rsaが含まれなくなっています。 OpenVPN.netのダウンロードページ にも Note that easy-rsa is no longer bundled with OpenVPN...
-
Jan Just Keijser氏の記事「 Optimizing performance on gigabit networks 」については こちら でも概要を取り上げましたが、記事全体にいろいろなヒントが含まれていますので、全文の日本語訳を掲載しています。意訳している部分も...
-
OpenVPNでは、接続してきたクライアントのVPNアドレスは動的に割り振られます(その際に割り振られる際のアドレス範囲はOpenVPNサーバー側設定ファイルに基づきます)。特定のVPNクライアントに特定のVPNアドレスを割り振りたい場合、OpenVPNでは以下の2つの方法で設定...
-
では、いよいよiPhone構成ユーティリティでVoDの設定をしてみましょう。あ、 前の記事 での準備はきちんとやっておいてくださいね!
-
現時点においてはマニュアルやHowToにも記載されていない(ChangeLogにちょっとだけ出てきます)あまり知られていない機能なのですが、「設定ファイルで鍵ファイルや証明書ファイルのパスを記載する」という通常の方法とは別に、「鍵ファイルや証明書ファイル内のデータをそのまま設定フ...
-
前回 は2つのワンタイムパスワードの生成方法について取り上げました。今回はいよいよ実際の生成アルゴリズムを取り上げましょう。TOTPをベースに説明します(ただ、前回も解説したように、基本的なロジックはTOTPとHOTPで同じです)。 参考としてpythonのコードも併記してみま...
-
OpenVPNはLinuxをはじめとした幅広いプラットフォームで動作実績があるのが特徴の一つです。 今回は、最近の電子工作ブームでも話題のシングルボードPC 3機種をOpenVPNサーバーとしてセットアップし、OpenVPNのVPNパフォーマンスを測定してみましょう。 ...
-
前回 はワンタイムパスワードの基本的な仕組みについて説明しました。サーバー側とクライアント側で、それぞれ共通のルールに基づいてパスワードを生成させる必要があることを取り上げましたが、今回は OATH が規定しているその生成ルールについて具体的に説明します。 ワンタ...
-
OpenVPNを使用している方ならよくご存知だと思いますが、通常OpenVPNでは証明書認証を使用します。証明書認証はID/パスワード認証に比較すると安全性が高いとされます(もちろん、秘密鍵の管理方法に大きく依存します)が、証明書認証の概念を理解しにくいユーザーが秘密鍵や証明...
© yamata::memo 2013 . Powered by Bootstrap , WebLyb
0 件のコメント :
コメントを投稿