攻撃者はバグを1つ見つければ済むが、セキュリティテスターは、リリース期限までに多くの重大なセキュリティバグをつぶさなければならない。
ソフトウェアセキュリティエンジニアとトレーナー、両方の経験から言うと、物事を理解する早さは人によって大きく違うものだ。だが、本来優秀な人がなかなか実力を発揮しないことも多い。どんなバグでも突き止められるベテランのテスターが、セキュリティテストにはなかなか習熟できない、といったことがよくある。わたしはこの数年、世界最大級のソフトウェアベンダー数社で開発者チームのトレーニングに従事する中で、彼らの行動を調べ、優れたセキュリティテスターに必要なものを明らかにしようとしてきた。その結果分かったことを紹介しよう。
わたしは、セキュリティテスターは皆、以下の3つの専門スキルをベースとして持たなければならないという結論に達した。
多くの場合、セキュリティテスターとして欲しい情報は、すべて手に入るわけではない。例えば、SQLインジェクションの脆弱性をチェックする場合、セキュリティテスターが効果的なテストを作成するには、対象システムについて一定の仮定を置き、手持ちの知識に基づいて内部動作を推測しなければならない。
優れたセキュリティテスターは、テストするシステムの各コンポーネントについて知っていなければならない。テスト対象がWebアプリケーションの場合、JavaScript、XML、サーバ側コード(ASP、JSP、Ruby、PHPなど)、データベース、Webサービスなどに関する深い知識が必要だ。また、テスターは、システムの作りに問題がある場合やコンポーネントの使い方が誤っている可能性がある場合、それを認識できなければならない。こうした包括的な知識は、時間をかけて専門的な経験を積むことで得られるが、セキュリティの観点からそれぞれのテーマについて集中的に調べることで、習得を促進することもできる。
理想的なセキュリティテストの実施を目指すためには、上の2つの専門スキルを駆使するだけではまだ足りない。決定的に重要なスキルは、攻撃者のように考える力だ。攻撃者がシステムをどのようにとらえるかを予測する能力は、システムのテストに不可欠な要素となっている。セキュリティテストでは、泥棒があなたの家に侵入するために使いそうな方法を洗い出すのと同じような思考プロセスにより、攻撃者があなたのアプリケーションに不正アクセスするために使いそうな巧妙な方法を、すべてカバーする必要がある。
これらの専門スキルについてそれぞれ詳しく説明し、各スキルを実践するための幾つかのポイントを紹介する。
SASのCMOが語る マーケティング部門が社内の生成AI活用のけん引役に適している理由
データとアナリティクスの世界で半世紀近くにわたり知見を培ってきたSAS。同社のCMOに、...
SALES ROBOTICSが「カスタマーサクセス支援サービス」を提供
SALES ROBOTICSは、カスタマーサクセスを実現する新サービスの提供を開始した。
「Fortnite」を活用 朝日広告社がメタバース空間制作サービスとマーケティング支援を開始
朝日広告社は、人気ゲーム「Fortnite」に新たなゲームメタバース空間を公開した。また、...