1. HOME
  2. ブログ
  3. 急務なアプリケーション・セキュリティ対策に追いつかぬ人材、どのように対処すべきか?

急務なアプリケーション・セキュリティ対策に追いつかぬ人材、どのように対処すべきか?

いま特に問題のアプリケーション・セキュリティテストの課題とは?

アプリケーションやソフトウェアサービスに対するセキュリティ侵害が増加している。サイバー犯罪者は、脆弱性を見つけて、その穴を悪用し、データや知的財産、機密情報を盗もうとする。犯罪者も攻撃コストに見合った結果を求める。物理的な侵入やソーシャルエンジニアリングなどの方法もあるが、インターネットの普及により、組織やデータにアクセスする突破口として、Webアプリケーションやオープンソースの脆弱性を利用した低コストな攻撃が結果を得やすいため、年々その数は増加している。

情報セキュリティにおける脆弱性やインシデントについて、固有の名前や番号を付与し、リスト化したCVEというキーワードがある。昨年度は新規で1万7000を超える脆弱性が報告されて登録された。このCVEも年々増加している。

アプリケーションは複数のモジュールで構成され、オープンソースや独自開発コード、サードパーティからのソフトウェアなども含まれる。Webアプリケーション攻撃は、Web UI、ブラウザでターゲットのWebページを開き、インジェクション攻撃などを行うものである。Webアプリケーションに脆弱性があれば、そこを起点にさらなる侵入を試みる。オープンソースに脆弱性がある場合は、ソースコードが公開されているため、攻撃者は簡単に悪用スクリプトなどを作成できてしまう。脆弱性を多く含んだままアプリケーションをリリースし、デプロイするとデータ侵害リスクが増大する。

シノプシスが2021年に実施したアプリケーション・セキュリティテストの結果では、97%で何らかの脆弱性が検出され、そのうち36%が高リスク、あるいは緊急リスクの脆弱性だった。緊急リスクの脆弱性にはSQLインジェクション、高リスクの脆弱性にはクロスサイトスクリプティングが挙げられた。

統計データの中から、Webアプリケーションに対してペネトレーションテストで検出された脆弱性で一番多いのはコンテンツ・セキュリティ・ポリシーの欠落である。その次がサーバー・バナーで攻撃者にヒントを与える情報が含まれているセキュリティ問題となっており、その他にも多くの脆弱性が検出されている。

これらの問題は、セキュリティ・ガイドラインのポリシーに沿って開発していれば未然に防げる問題である。セキュリティ教育や人材育成を行うことでも、これらの脆弱性に対処できるだろう。攻撃者がアプリケーションを攻撃するときのイメージを説明すると、実際にはアプリケーションのみではなく、そのアプリケーション開発環境を含むシステム開発ライフサイクル(SDLC: Systems Development Life Cycle)全体の脆弱性を探している。

Web UIからの侵入を試みて、もし開発段階のソースコードを管理しているリポジトリに進入できれば、そのコードを一部こっそり変更してバックドアを仕込んだり、アプリケーションをビルドする際に必要なライブラリを悪意のある、たとえばマルウェアをダウンロードしてくるものに差し替えたりすることで、より簡単にターゲットのデータを侵害できるだろう。開発チームが悪意のあるコードやライブラリの変更に気づけばいいが、そのままビルドデプロイされ、インシデントに繋がった事例もある。開発チームは、開発環境を含めたSDLC全体をセキュアにする必要がある。

組織内アプリケーション(製品やサービス)を安全にするためのセキュリティ体制

では、どのようにアプリケーションの安全性を確保すればよいのだろうか? 

組織のセキュリティ体制を簡単に紹介すると、SDLCを開発部門が管理し、リリース前のアプリケーション品質を品質保証部門が、そしてリリース後のアプリケーション運用を運用チームや運用部門が面倒を見るのが一般的であろう。「PSIRT」と呼ばれるセキュリティチームは、製品やサービスにインシデントが発生した際は、その問題に対処する。

自分たちのアプリケーションに影響するセキュリティ情報を、外部情報機関やセキュリティパートナーから入手し、品質保証部門や開発部門と連携しながら、何かあった場合はいち早く取引先やユーザーに伝える。もちろんインシデントを減らすべく、開発部門はSDLC自体を安全にして、リリース前に可能な限り脆弱性に対処しておく必要がある。

次に。SDLCを安全にするためのセキュリティ活動だが、ソフトウェア開発者でセキュリティを実践されている方は、実装フェーズでのセキュア・コーディングや静的解析ツール、テストフェーズでの動的解析やファジングテストを実施しているだろう。そのほかのフェーズでは、やはりアプリケーション設計自体が脆弱だと開発アプリケーションにも脆弱が残るため、安全なアプリケーション設計が非常に重要になる。

そのための手法として、セキュリティ要件定義、脅威モデリング、アーキテクチャ・リスク分析などが挙げられる。リリースフェーズにおいては、パッケージングに脆弱性が含まれていないか、コンテナ、クラウド環境におけるセキュア構成をチェックし、その後に実際の運用環境に近い環境でのペネトレーションテストを実施し、リリース後も継続的なセキュリティテストが求められる。

アプリケーション・セキュリティ対策における人材不足の実態

ここからはセキュリティ人材不足について触れたい。アプリケーション・セキュリティの課題についてみてきたが、それに対応するリソースが不足していると感じた読者も多いだろう。セキュリティは多層防御の観点から、ネットワークセキュリティや情報セキュリティも必要で、組織内のセキュリティ人材はそちらに多く所属しており、開発組織のセキュリティ人材はそれほど多くないのが実情となっている。

顧客が求めるアプリケーションに伴うセキュリティニーズは進化しており、開発スピードを下げることもできないため、効率の良いセキュリティテストが必要になっている。経済産業省の「サイバーセキュリティ体制構築 人材確保の手引き」では、下記のようにセキュリティ分野で17分野が定義されている。

もちろん経営層もセキュリティを理解し、ポリシーを策定してガバナンスを利かせる必要があろう。マネジメント層や現場がセキュリティ対策を定着させる予算も求められる。実務者・技術者層に求められる項目は、アプリケーション開発だけでなく、セキュリティ関連も重要になるが、それを押し付けるだけではチームが疲弊し、最悪のケースでは有能な人材から離職することも考えられる。また、凄まじく技術も進んでおり、技術者はそれらを常にキャッチアップしなければならない。したがって、マネジメント層は最適なリソースの配置や配分、セキュリティ自動化の環境構築、人材育成なども考える必要がある。

NRIセキュアの「企業における情報セキュリティ実態調査2021」によると、アメリカ、オーストラリアと比べ、「日本はセキュリティ人材が不足している」と回答する企業が多い。逆に人材が充足しているという海外企業は、「セキュリティ業務がシステムなどで自動化・省力化されている」と答えた割合が多い。日本企業もセキュリティテストの自動化やセキュリティエコシステムに取り組む必要があるだろう。また、セキュリティに対する予算がアメリカやオーストラリアと比べて、日本では少ないとも考えられる。 実際にセキュリティ人材不足を表したデータもある。spulunkの「The State of Security 2022~2022年のセキュリティの現状」によれば、企業はセキュリティ要件への対応が難しくなっていると感じており、その原因に脅威の増加、問題の複雑化、人材不足などを挙げている。期待するセキュリティ戦略は、自動化ソリューションの使用、アウトソースの活用、投資の増加、教育が必要との結果になっている。

人材不足を補完するマネージド・アプリケーション・セキュリティサービス

では、このような課題を解決するには一体どうすればよいのだろうか? ここからは課題解決に役立つシノプシスのソリューションについて紹介しよう。まずマネージド・アプリケーション・セキュリティサービスが挙げられる。

本サービスは、ユーザーに代わり、セキュリティテストを実施するものである。開発言語のセキュリティ・エキスパートや、個別診断内容のエキスパートを揃え、必要な診断タイミングで高品質なセキュリティテストを実施する。SDLCの中で必要なセキュリティ活動の多くをカバーしている。

設計フェーズやDevSecOpsでのセキュリティ評価を行う場合はセキュア・デザイン・レビューを実施し、またWebアプリケーションの侵入テストを行う場合はペネトレーションテスト、オープンソースの脆弱性を洗い出すにはコンポジション解析(SCA)というように、さまざまな場面でセキュリティテストを行える。他にもクラウド構成レビュー、モバイルアプリケーション診断、ソースコード解析などのメニューもそろえている。

次に。セキュリティテストの深さに関しては、時間をかければ多くの脆弱性を見つけられるが、コストとのトレードオフになる。すべてのテストで同じ深さのテストを求めないケースもあるため、シノプシスのメニューではテストの深さを選べるようにしている。ツールによる自動スキャンがメインの「エッセンシャル」、ツールスキャン+手作業の「スタンダード」、スタンダードからさらにセキュリティ・エキススパートによる高度な手作業を行う「コンプリヘンシブ」などのメニューを準備している。

各メニューの標準的な必要日数は、たとえばペネトレーションテストのスタンダードでは10営業日で診断を行い、その診断結果のレポート作成までを行う。アプリケーション診断の手順は以下の通りで、非常に簡単である。

契約ユーザーには、ポータルサイトのアカウントが発行されるので、ログインしてテストのスケジュールを行う。そのときアプリケーションの情報、診断するサイトのURL、アカウント、ファイアウォールなどがあれば、その情報を入力し、診断メニューの種類、たとえば「動的解析のスタンダード」などの設定を行う。もし診断希望の内容を直接シノプシスのテスターに伝えたければ、事前にWebミーティングも可能となっている。あとはスケジュールに基づいてテスターが診断を行い、レポートを作成する。ユーザーはポータル上でレポートを確認、あるいはレポートをダウンロードして、開発者にフィードバックすることで、脆弱性の対策が行える。修正対応した箇所の再テストも2営業日で対応する。

ポータルのダッシュボード画面は以下の通りだ。アプリケーションごとの脆弱性から、詳細レポートへの遷移、診断スケジューリングなどを行える。

また、ペネトレーションテスト実施後の日本語レポートのサンプルも以下に示す。英語でのレポートも可能で、診断結果の詳細、重大度の分類、脆弱性の再現手順、対応策が確認でき、開発者が対策しやすい情報が記載されている。

次にシノプシスのマネージド・アプリケーション・セキュリティサービスのもう1つの特徴を紹介する。本サービスは数多くの診断メニューを用意しており、希望する個別の診断を契約する「アラカルト」での利用も可能だが、その場合は毎回の契約が必要になる。多くのアプリケーションを抱え、診断の種類も多く、年間診断回数が多いのであれば「3D ASTサービス」のほうがコストメリットは大きい。これは1年間、あるいは半年間のサブスクリプションで、スケジュールがかぶらない限り、何度でも、どの診断メニューでも利用できる。

また「VST」というバーチャル・セキュリティ・チームのサービスも用意している。これは前出の3D ASTサービスに加え、シノプシスの専任コンサルタントが、ユーザーのアプリケーション・セキュリティテスト活動に加わるサービスである。コンサルタントは、提供サービスに合わせて多様なスキルを持つ人材を組み合わせ、ユーザーニーズを拡張できる。ユーザーと診断チームの間に立ち、効果的なセキュリティテストを支援する。

アプリケーション開発と運用において、自社の限られたセキュリティテストリソースを補う上で、マネージド・アプリケーション・セキュリティサービスが役立つだろう。ぜひ今後のセキュリティテスト戦略の取り組みの一環として、シノプシスをセキュリティパートナーに加えていただけたら幸いである。

関連記事

サイバーセキュリティの課題をテーマ別に紹介中!!