イベント記事タイトルとURLをコピーするみなさん、こんにちは。営業の中嶋(@mnakajima18)です。SiteShellハンズオンセミナー』」に参加してきました。Firewall(WAF)製品です。WAFとはWebアプリケーションの脆弱性を突いた攻撃をブロックするファイアーウォールのことをいいます。SiteShell」は対象のサーバーにソフトウェアをインストールして利用します。今年の5月からAWS対応が発表されましたので、「これはしっかり理解しておかないと」ということでハンズオンセミナーに参加することにしました。SiteShell」はソフトウェア型WAF製品でありサーバーインストール型ということは上述した通りです。ほかに、特徴的なのはブラックリストの更新についてです。インド、中国、日本の拠点にてハッカーサイトや様々な情報源から最新情報を集めブラックリストを作成しています。そのブラックリストは利用している製品に自動的に更新作業が行われます。自動更新の初期設定をセミナー内で行いましたが、自動更新のシェルスクリプトを動かしいくつか質問に答えるだけで完了します。更新は最初にWebサイトにアクセスがあった時点で適用されるため、サーバーの再起動は一切必要ないという手軽さ。サービスを止めることなく安心して運用できるのは、サービス運営側にとっては非常に大きいと思います。詳しい情報はこちらの製品サイトをご覧ください。SiteShellモジュールが入ったAMIを用意していただいていたので、そのAMIからWebサーバー用と管理サーバー用のインスタンスを立ち上げました。SiteShell本体をインストールするにはいくつかのコマンドを叩いて完了します。以下が簡単な流れです。Apache再起動そうするとこのようなショッピングサイトが作成され、インストール前はSQLインジェクションによって個人情報が漏れてしまっていたものがインストールした後では、こういったエラーページへ飛ばされます。管理コンソールのインストールもほぼ同様です。提供されているzipファイルを解凍し、セットアップシェルスクリプトを実行すると本体インストールと同じような質問に回答することでインストール完了です。ブラウザからすぐにアクセスできるようになります。営業の私でも30分程度でインストールができ、導入の手間は全く感じさせませんでした。SiteShellでは10の攻撃から防御する機能が備わっています。その中でも以下の3つの攻撃対策方法をセミナー内で実践しました。パストラバーサル攻撃対策パストラバーサル攻撃とはWebページを指定するパスに細工を行うことによって、開発者がユーザーに公開していないディレクトリやファイルが閲覧できる脆弱性、またはそれを利用した攻撃のことをいいます。(セミナー資料引用)今回は「/etc/passwd」の不正参照を実施しました。このようにパスを叩かれると、ユーザーには見せてはいけない「/etc/passwd」ファイルが表示されてしまいます。パストラバーサル攻撃の場合はデフォルト設定のままで問題ないので、インストールすればすぐにブロックされます。SiteShellのブラックリストにより「../」は攻撃と判断しているためです。バッファオーバーフロー対策バッファオーバーフローとはプログラムがメモリ上に確保した領域を超える大きさのデータを送り込むことで、システムが誤動作を引き起こしたり、悪意のあるプログラムが実行されたりする脆弱性、またはそれを利用した攻撃のことをいいます。プログラムの強制終了や任意のコードを実行されるといった問題が発生します。SiteShellがバッファオーバーフロー攻撃と判断しブロックしていることを確認しました。サンプル攻撃の内容は、通常のパスの後ろにaを200文字程度入力するといったものです。無効の場合は特にページに変わりはありません。有効にするためには2つのパラメータを変更することで対応できます。管理画面のメニュー画面からSiteShell操作定義をクリックします。バッファオーバーフロー対策を有効にします。続いて、URLの長さを指定します。今回は100に設定変更します。バッファオーバーフローの場合、アプリケーションによってURLの長さは変わりますのでこのように文字数をカスタマイズができるようになっています。強制的ブラウズとは、公開されているURLから様々なURLを推測して参照を試みられることをいいます。本来表示してはいけないバックアップファイルやテストファイルが参照されてしまい、攻撃のヒントなどを与えてしまう恐れがあります。(セミナー資料引用)サンプル攻撃の内容は、FQDNの後ろに/test/search.phpを入力し本来はユーザーに表示してはいけないページにアクセスするというものです。この攻撃を防ぐためには、公開したいディレクトリ配下を指定する設定を行います。強制的ブラウズ対策の設定を有効にします。続いて、公開したいURLのパスを指定します。ここではユーザールール定義をクリックします。レシピ追加をクリックします。Typeは任意の名前を指定します。ルールセットの追加をクリックします。今回はFQDN/demoAP/以外のアクセスはブロックします。強制的ブラウズの場合、バッファオーバーフローと同様にアプリケーションによって値が異なるためカスタマイズができるようになっています。その他の設定アプリケーション特有の脆弱性を防ぐためにユーザルール定義という設定ができます。SiteShellのブラックリストのデフォルトでは登録されていません。登録されていない文字列が攻撃となってしまうアプリケーションの場合、個別に設定することが可能です。反対にブラックリストに載っている文字列がアプリケーションでは正常系の動作のためブロックしないようにする、「チェック対象外定義」という設定も可能となっています。ブラックリストとして登録されている攻撃を通すことになるとセキュリティホールができてしまうので、なるべくアプリケーション側の改修を行っていただくことを推奨とされていました。ブロックされた場合のエラーページは管理画面からHTML形式でカスタマイズすることが可能です。攻撃者ではない通常のユーザーの方が誤って入力してしまった場合や過剰検知してしまった場合を見込んで、問い合わせ先等を記載するようにしたほうがよいとのことでした。最後にログの集計結果はこのようにビジュアル的に確認できます。レポートとして提出しやすいかと思います。まとめ最後の質疑応答の際には、よりAWSに適したサービスにするための意見交換という流れでした。AWSを使い込んでいる私達のようなソリューションプロバイダがもっとこうしたほうが使いやすい、運用しやすいといった意見をお伝えすることでさらにバージョンアップを進めていかれるとのことです。「SIerのみなさんと製品を育てていきたい」という担当者の方の言葉が印象的でした。セミナーに参加してみて、できるだけこういった製品の導入は必要ではないかと感じました。アプリケーション側ではフレームワークを使ったりバリデーションによって防御したりすることも大事ですが、長期間運用すればするほど脆弱性は改修できなくなってきます。増えていく攻撃手法に対抗するためには、専門的にブラックリストを更新しているサービスを使うことで安全な運用が実現できるのではないでしょうか。こちらから試用版が提供されているので、是非お試しいただいてもよいかと思います。SiteShellは今後さらにAWSで利用しやすい形に変わっていくとのことなので、実運用にて導入するのが楽しみです。2009-引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。