The Source セキュリティとコンプライアンス
記事

一般的なセキュリティ上の不満の根本原因に対処する

セキュリティの不満はしばしば文化的な問題として捉えられますが、リーダーはテックスタックの複雑さや脆弱性管理などの問題にも焦点を当てる必要があります。

October 29, 2024 5分で読めます
Josh Lemos
Josh Lemos 最高情報セキュリティ責任者

GitLabにより今年実施されたDevSecOpsの専門家を対象とした年次調査では、エンジニアリングチームとセキュリティチーム間のより深い連携を妨げている可能性のある組織文化関連の問題がいくつか明らかになりました。セキュリティ部門の回答者の過半数(58%)が開発チームに脆弱性の修正を優先させることに苦労していると回答しているほか、52%が煩雑な手続きによって脆弱性を迅速に修正するための取り組みが遅れることが多いと回答しています。さらに、セキュリティ部門の回答者は、セキュリティの調査結果を理解することの難しさ、過度の誤検出、ソフトウェア開発プロセスにおいてテストが行われるタイミングが遅すぎるなど、仕事に関連するいくつかの具体的な不満についても指摘しています。

DevSecOpsはエンジニアリングチームとセキュリティチーム間の連携の強化を保証するものですが、不満や食い違いが依然として残っていることは明らかです。このような課題は、組織のセキュリティに対する考え方やチームの連携方法、セキュリティに割く時間の配分といった、より大きな問題の兆しとして発生しています。

脆弱性の終わらない悪循環からの脱出

脆弱性スキャンは潜在的な脆弱性をすべて表面化するものですが、ソフトウェアパッケージに共通脆弱性識別子(CVE)があるからといって、それがアクセス可能または悪用可能であるとは限りません。セキュリティチームとデベロッパーは、認証された脆弱性スキャンが一般的になって以来、数年間で飛躍的に増加した脆弱性の調査結果を用いてトリアージとフィルタリングを依然として行っています。

認証スキャンへの移行により多くの点でセキュリティプログラムの有効性が向上したことは事実ですが、結果として重要ではない事項の修正を迫られる終わらない悪循環にデベロッパーが置かれることにもなりました。悪用可能な脆弱性の修正につながらないパッチにチームの労力を浪費すると、脆弱性や悪用可能な欠陥へのパッチ適用といったより重要なタスクが見過ごされてしまいます。これが、現在発生しているセキュリティチームとエンジニアリングチームの分断の主な要因です。

それでは、組織はどのようにしてこれらの問題の根本原因に対処し、エンジニアリングチームとセキュリティチーム間のより良い連携を促進できるのでしょうか?ここでは、一般的なセキュリティ上の不満を根本的に防ぐための3つの方法をご紹介します。

1. ノイズを排除して実用性の高いシグナルに集中

過剰な誤検出は、当社の調査でセキュリティ部門の回答者が挙げた不満の中で2番目に多いものでした。誤検出は明らかに問題ですが、多くの場合、根本的な原因は脆弱性の管理にあります。

組織において多くの誤検出が発生した場合、それはセキュリティの調査において高忠実度な結果を実現するためにできる限りのことを行っていないことを示している可能性があります。組織は、セキュリティの取り組みの焦点を重要なものに絞り込む必要があります。そのため、従来の静的アプリケーションセキュリティテスト(SAST)ソリューションでは不十分である可能性があります。SASTは強力なツールですが、結果が管理できない場合や適切なコンテキストがない場合は、その価値の大部分を発揮できません。もっとも効果的にSASTを使用するには、他のセキュリティや開発ツールとシームレスに連携させて、デベロッパーがアクセスできる状態である必要があります。

もう1つの問題として、ほとんどのスキャンツールでは、脆弱性の調査結果を理解するためのコンテキストの幅が非常に狭いことが挙げられます。これは、セキュリティの脆弱性を説明するAI搭載機能など、AIが役に立つ分野の1つです。

2. 技術スタックを最小限に抑え、アタックサーフェス(攻撃対象領域)を最小化する

重要な事項に集中すべきなのはセキュリティテストだけに当てはまることではなく、組織においてソフトウェアを構築する際も同様にすべきです。

AIはソフトウェア開発プロセスの簡素化に役立つはずのものですが、当社の調査によると、多くの組織ではまだまだ道半ばであることが示唆されています。実際、AIを使用している回答者は、AIを使用していない回答者よりもツールチェーンを統合したいと考える傾向が非常に高く、異なるAIモデルが実行されるさまざまなポイントソリューションの急増により複雑さが減るのではなく、増大する可能性があることが示されています。

組織の技術スタックの複雑さがますます増していることが、セキュリティの不満の大きな原因となっています。大規模で多面的なソフトウェアシステムを構築する場合、ある程度複雑になることは避けられません。ただし、組織は、メンテナンスが困難なコードや冗長な依存関係など、最適ではない設計上の決定により生じる複雑さを回避するために措置を講じる必要があります。このように不必要な複雑さがある状態だと、アタックサーフェス(攻撃対象領域)が拡大され、チームが選別し、優先順位を付け、対処しなければならないセキュリティスキャン結果が増大してしまいます。

組織はソフトウェアの最小化という観点から開発を進める必要があります。これはつまり、どのツールを採用するか、また何をコードベースに組み込むかを決定する上で意図的に取り組むべきということです。これにより依存関係を最小限に抑え、ソフトウェアサプライチェーンのセキュリティを向上させ、スキャナーのノイズを減らし、重要でない問題を解決するためのデベロッパーの負担を軽減できます。

3. 「舗装道路」アプローチをプロセスに組み込む

ソフトウェア開発ライフサイクルにおいて、遅すぎるタイミングでセキュリティテストが行われることも、アンケート回答者により明らかになった最大の不満の1つでした。脆弱性の検出の遅れにより出荷が遅れた場合、チームは不満を感じるかもしれませんが、多くの場合、その脆弱性をもっと早く検出することはそもそも不可能だった可能性があります。それでも、簡単に配備でき、再利用可能なセキュリティコンポーネントを運用して変数や潜在的な脆弱性を制限することは可能です。

チームは再現可能なユースケースに基づいてテスト・保証された設計パターンを採用することで、開発後期に問題が検出されることのないようにすることができます。これは「舗装道路」アプローチと呼ばれます。「舗装道路」とは、チームが安全なアプリケーションをより効率的に構築するために従うべき厳選されたツール、プロセス、コンポーネントのセットを含む推奨されるプロセスです。たとえば、GitOpsを使用して、すべてのワークロードに大規模にデプロイされる、適切に設計・テストされたInfrastructure as Codeをバージョン管理してデプロイすることができます。

「舗装道路」アプローチを採用することである程度の柔軟性が失われる可能性はありますが、最終的にはエンジニアリングチームの運用負担と手直しの負担が軽減され、セキュリティが高まります。これにはセキュリティチームと開発チームが協力して取り組む必要があります。セキュリティチームは「舗装道路」の設計を支援できますが、コードベースの一部としてそれらを運用・保守するにはエンジニアリングチームの力が必要となります。

セキュリティはドメインであり、チームではない

セキュリティはすでにエンジニアリングチームも実践するものとして移行されていることが判明しており、今後も両者の境界が曖昧になることが予想されます。しかし、AIの急速な導入とそれに伴うソフトウェア開発の加速(調査回答者の66%が昨年の2倍またはそれ以上の速度でソフトウェアをリリースしていると回答)により、最大のセキュリティ上の利益を得られるように最適化されたシステムとフレームワークを確立することが、組織において重要になります。これが、開発チームとセキュリティチームの間に文化的な断絶があることが問題のすべてではない理由です。コラボレーションの文化を育むことは不可欠ですが、セキュリティチームとエンジニアリングチームは、既存のコードベースの最適化や、組織全体の技術チームがシームレスに採用できるスケーラブルなエンジニアリング中心のソリューションの構築など、ソフトウェア開発の基本的な側面を協力しながら再考する必要もあります。

デジタル時代のアプリケーションセキュリティ

世界各地のDevSecOpsの専門家5,000名を対象に行った調査結果を読み、組織がアタックサーフェス(攻撃対象領域)の増加にどのように取り組んでいるか、またセキュリティとAIに対する姿勢がどのように変化しているかをご覧ください。
レポートを読む

主要なポイント
  • 脆弱性管理において認証スキャンに移行すると、有効性は高まるものの、エンジニアリングの労力が重要でないタスクに振り分けられ、セキュリティチームとエンジニアリングチームの間に分断が生じるおそれがあります。
  • ミニマリストアプローチでソフトウェア開発を行うと、依存関係が最小限に抑えられスキャナーのノイズが減るだけでなく、デベロッパーの負担が軽減されるため、ソフトウェアセキュリティが向上することが期待できます。
  • 再現可能なユースケースに基づいてテスト・保証された設計パターンを使用する「舗装道路」アプローチを採用することで、エンジニアリングチームの負担を軽減しながらセキュリティを高められるようになります。