OpenVPN&セキュリティ情報
2011-07-28
Webアプリケーション・ファイアウォール(WAF)の限界
ModSecurity SQL Injection Challenge: Lessons Learned から。この元記事はWebアプリケーションを開発している(特にデータベースを使用している)方にはぜひ一度ご覧いただきたいと思います。mod_securityはご存知のとおり、Apacheモジュールとして提供されているWebアプリケーション・ファイアウォール(WAF)です。少し前に、mod_securityが導入されたテストサーバーへのSQLインジェクション攻撃を仕掛ける「SQL Injection Challenge」というイベントが開催されました。「とにかく早く攻撃を成功させる」という「Level.1」と、「mod_securityの警告を表示させることなく攻撃を成功させる(より実践的といえるでしょう)」という「Level.2」の2つのカテゴリで行われ、見事に何人かのユーザーが攻撃を成功させました。この記事では、このうち「Level.2」で攻撃を成功させた9人の手順を詳しく解説しています。SQLのコメント機能を使ったもの、Cookieを使ったもの、タブ文字などの特殊文字を使ったものなど、まさに多彩といえる攻撃パターンです。
Webアプリケーション・ファイアウォールを使用する際には、以下の点を覚えておいたほうがよいでしょう。
ブラックリスト・フィルタリングは攻撃を防ぐには不十分
SQLインジェクション攻撃からWebサイトを守るには、WAFの導入だけでなく、アプリケーションの作りそのものの安全性を高めるなどの総合的な対策が必要です。sqlmapの作者であるMiroslav Stamparは自身のブログ(この記事もとてもよくまとめられています)の中で、多くのWAFで使用しているブラックリスト方式は細工がされたクエリを弾けない場合があり、過信すべきでないと述べています。Webアプリケーション・ファイアウォールの目的を正しく理解する
前述のようにWAFを導入したからといって攻撃を完全に防げるわけではなく、「攻撃を可視化できること」と「攻撃をより難しくすること」が目的だとしています。また、攻撃者が攻撃を開始するときの「下調べ」を難しくするという効果はかなり期待できるでしょう。この目的をきちんと認識した上で、データベースを利用したWebアプリケーションを開発する際には、パラメータクエリを使用することやデータベースの権限を適切に設定することといった、基本的な対策を確実に行うことが必要です。もちろん、WAFには限界はあるものの、有用なツールであることは間違いありませんので、ぜひ最新の情報を取り入れつつ活用しましょう。
あ、そうそう、大切なことを1つ。mod_security 2.2.0以前を使っていると、元記事で説明されている手法によるSQLインジェクション攻撃を防げません。mod_securityを使用しているなら、すぐにでもバージョン2.2.1にアップデートするのをお忘れなく!
Related Posts
登録:
コメントの投稿
(
Atom
)
Profile
- 山崎 太郎 (Taro Yamazaki)
- プラムシステムズ株式会社所属。 主にVPN(OpenVPN)やセキュリティ関連技術、Webアプリケーションを手がけています。
Page Views
807,973
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 件のコメント :
コメントを投稿