よくあるご質問をFAQ形式でご紹介
beSTORMとは?
beSTORM は、ネットワーク対応のアプリケーションソフトウェアの開発サイクルにおいて、新しく、未知の脆弱性を発見するための網羅的な解析を行うセキュリティア評価ツールです。数億に及ぶ組み合わせを自動的にテストすることにより、beSTORMは、製品が配布される前に、そのセキュリティを確実なものにし、出荷後のセキュリティホール修復のために要する莫大な費用負担を未然に防ぎます。beSTORMは、攻撃のシグネチャを使用したり、製品中の既知の脆弱性を特定しようとするような、従来型のツールとは、全く異なるツールです。
ソフトウェアベンダーにとってのbeSTORMの必要性は?
セキュリティは、今やエンドユーザーにとっての最大の不安要素です。ソフトウェアベンダーは、ソフトウェア出荷前に、そのセキュリティをより強固なものにしようと努力しています。企業の担当者が、金融関連の記録や全般的なデータセキュリティについて、各種規制によるコンプライアンスの面から促されるのと同じように、多くの企業に対して、サードパーティのソフトウェアアプリケーションが厳格なセキュリティ認証に適合していることの保証を要請する動きが増大しています。配布前に、十分なテストが行われていないソフトウェアアプリケーションは、企業をより脆弱な状態にし、顧客に、セキュリティが確保されていないと感じさせることになります。
beSTORMによって、ソフトウェア開発者は、開発プロセスの中で、品質保証部門がおこなうような方法で、セキュリティホールの有無をテストすることができます。このテストは、自動化されているため、開発担当者は、修正版作成の都度、テストを行うことができます。そのサイクルがどんなに短いものであったとしても、問題ありません。
脆弱性を評価することで、ソフトウェアのセキュリティ上の問題点は、どのように改善されますか?
脆弱性のチェックにより、ソフトウェアの出荷前にセキュリティ上の不備を発見します。このことは、現在ハッカーが発見している脆弱性を、製品が市場にリリースされる前に、開発者が発見し、修正するということです。結果として、セキュリティの確保されたソフトウェアの増加と、攻撃者に利用されるセキュリティ上の問題点の減少をもたらします。
アプリケーションソフトウェアの脆弱性をモニターするツールの重要性がましているのは、どのような理由によるのですか?
OSもソフトウェアです。OSには、セキュリティ上の不備の影響を受けやすい、多数のソフトウェアコンポーネントが含まれていて、ITの世界でのMicrosoftの優位性は、それらを攻撃者の便利なターゲットにして来ました。セキュリティ上の修復が進み、OSコンポーネントの不備を新たに発見することが次第に困難になるにつれて、他のアプリケーションソフトウェアの脆弱性を発見することが、比較的容易になってきました。ハッカー達は、費用対効果の検討の結果、OS以外のソフトウェアコンポーネントをターゲットにし始めました。そのため、現在、OS以外のアプリケーションで発見される脆弱性が、大きく増加しているのです。
beSTORMの動作はどのようなものですか?
beSTORMは、プロトコル実装の弱点をテストするために、全ての可能な入力の組み合わせの網羅的な検査を行う、自動化されたツールです。しかしながら、理論上可能な全ての組み合わせをカバーしようとする試みは、簡単なことではなく、また、数億の組み合わせを自動的にテストする能力を必要とします。 beSTORMは、プライオリタイズアルゴリズムにより、セキュリティホールを発現させる度合いの最も高いと考えられる入力を、妥当な時間内に完全にカバーします。 このためにbeSTORMは、プロトコルの仕様から、自動化されたテストのセットを生成し、技術的基準には適合するが、機能上の問題があり、ストレスを引き起こすようなケースについてネットワークプロトコルを検査します。
たとえば、バッファーオーバーフローが発生するまでの、プロトコルの、全ての可能な組み合わせのテスト。 ファイル名待ちのアプリケーションへの不正なキャラクター送信、非論理的なプロトコルシーケンスナンバー… beSTORMは、一定のケースに限定されません。最終的にプロトコルに対する全ての検査をカバーします。
beSTORMは、どのようなユーザー向けのツールですか?
beSTORMは、ソフトウェアエンジニアリング環境で使用するようにデザインされており、開発担当者、QAチーム、セキュリティ担当者など向けのツールです。beSTORMは、開発フェイズにおいて、これらの技術者が行うセキュリティホールのテストを強力に支援するツールです。 beSTORMは、開発チームが製品リリースのプロセスにセキュリティテストを組み込むことを可能にし、出荷前に必要なコードの修正をする時間を確保します。
beSTORMの使い方は簡単ですか?
beSTORMは、典型的なQAツールよりも複雑なものではありませんし、実際、ほとんどのツールより、ずっと簡単な使い方です。 テストは自動化されているため、平均的なbeSTORMのユーザーは、数分でbeSTORMを使い始めることが出来ます。セキュリティテストのエキスパートは、提供されている多数のオプションパラメーターを使って、プロトコルの特定の部分をカバーしたり、テストのスピードを早めたりするように、テストの微調整を行なうことができます。
beSTORMで行うセキュリティテストには、なぜソースコードが不要なのですか?
beSTORMは、バイナリーのアプリケーションをテストするため、プログラム言語や使用されているシステムライブラリーとは、全く関連しません。このため、テストチームがソースコードにアクセスすることが出来ない場合でも、アプリケーションのセキュリティテストを行うことが可能です。 beSTORMは、どのようにすれば脆弱性が発現するかをレポートします。このレポートにより、プログラマーは、どのような開発環境であっても、アプリケーションのデバッグが可能です。
beSTORMで実際に未知の脆弱性が発見された実績はありますか?
beSTORMの開発元が運営するサイト、www.securiteam.com にリストされている脆弱性のほとんどは、beSTORMの自動実行によって発見されたものです。
beSTORMと自動スキャンの違いは何ですか?
脆弱性評価ツールのような自動スキャンでは、既存の製品の既知の脆弱性の有無が検査されます。時によって、発見されたものが、未知のものである場合もありますが、これは、大体の場合、既知の脆弱性シグネチャとの類似に起因するものです。beSTORMは、プロトコル実装を網羅的にテストし、バッファオーバーフロー、フォーマットストリング、オフ-バイ-ワン脆弱性などに関連する全ての既知及び未知の脆弱性を発見します。(現状、95%以上のセキュリティ上の問題点はこれらの脆弱性に属するものです)
また、自動スキャンは、エンドユーザーによって、彼らのネットワーク端末をスキャンするのに使用されます。beSTORMは、ソフトウェアベンダー自身によって、開発中の製品をテストするために使用されます。
ソフトウェアベンダー向けに、他にどのようなツールがありますか?
セキュリティ監査は通常、セキュリティ調査の専門家によって、手作業で行われています。何年にもわたって、セキュリティ監査がインターネット製品を対象に行われてきたにも関わらず、この用途向けの自動化ツールはほんの少数しか作成されてきませんでした。現在、これらの製品は、通常は、セキュリティ調査会社の社内ツールで、監査の補助用に作られたものです。このような製品は、使用するのに、高度な専門性を要求するものが多い上に、機能性の非常に低いものです。このようなツールのほとんどは、手作業による調査を補助する以上の自動化機能は備えていませんし、プロトコルの包括的なテストをする機能も持っていません。
その他の手段としては、コード検査ソフトウェアがあります。これは、ソースコードをサーチして、セキュリティホールの可能性を示す不適正なコードを発見するものです。また特定のプロトコル実装下で、バッファーオーバーフローを発現させる脆弱性として比較的少数(数千から数万)の既知のケーススタディに基づくセキュリティテストのツールもあります。
beSTORMと他のセキュリティ製品との違いは何ですか?
ソースコードテストツールと、beSTORMの主な違いは、beSTORMは、ソースコードを必要としないという点です。beSTORMは、製品というよりは、プロトコルをテストします。そして、そのことにより、ソースコードテストツールでは通常不可能な、膨大な量のコードを持つ、非常に複雑な製品のテストをすることができるのです。
ソースコードテストとの、もうひとつの主な違いは、レポートの正確さです。beSTORMは、実際にアタックを行なうことで、アプリケーションを外部からチェックし、実際のアタックが成功した場合にのみ、脆弱性がレポートされます。これに対して、ソースコードテストツールは非常に多数の擬陽性をレポートしてしまいます。
beSTORMは、数百万から数億通りの攻撃の組み合わせをテストします。これに対して、一定数のケーススタディに基づくテストを行うツールでのテストは、数千から数万のケースに過ぎません。これは、昨日の戦い(既知の問題のチェック)を戦うことと、明日の戦い(未知の脆弱性のチェック)を戦うことの違いです。
beSTORMを使うのに何が必要ですか? インターネットでアクセスするのですか?ライセンスを取得してサーバーにインストールするのですか?
beSTORMは、あなたのサーバーにインストールして使うソフトウェアです。インストールすると、beSTORMのモニターコンポーネントが、テスト対象の製品がインストールされているサーバーにインストールされます。テストを初期化するもうひとつのコンポーネントは、同じサーバーまたはネットワークで接続された別のマシンにインストールします。別のマシンの場合は、スループットが改善すると共に、実際の状態に近いテストが可能です。