安全なコードを書くための CAS の 7 つのキー コンセプト

皆さんはご存じでしょうか。72% もの開発者がセキュリティによって DevOps が失速すると考えています。さらに、セキュリティ責任者の 4 人に 3 人は、アジャイルDevOps のような迅速な開発環境をサポートするための主要なスキルを持った専門のセキュリティ要員を十分に確保できていないというデータもあります。では、コードのセキュリティとビジネス、この両方を損なわずに 10 倍以上のペースでコードを配信するにはどうすればよいのでしょうか。

「継続的アプリケーション セキュリティ (CAS)」とは、開発者が安全なアプリケーションや API を確実に構築、運用できるよう、紙ベースのセキュリティ ポリシーやガイダンスを「Security as Code」に転換する手法です。CAS では、計測に基づいたセキュリティを実装することで、規模が拡大しても開発チーム、セキュリティ チーム、運用チームが最新のソフトウェア開発のペースで連携できるようにします。

アプリケーション セキュリティは 20 年以上前から存在しており、伝統的なコンセプトの多くは、何らかの価値をその中心に据えています。しかし、アプリケーションは依然として、やすやすとデータを侵害できてしまう攻撃ベクトルの No.1 であり続けています。そのうえ、今日の Web アプリケーションにおける深刻な脆弱性は平均で 33 個もあり、初めて OWASP Top 10 が発表された 2003 年からほぼ変わっていません。OWASP Top 10 にランクインしているリスクの種類も代わり映えしないままです。CAS の 7 つのキー コンセプトは、デジタル トランスフォーメーションの時代に合わせて、自動化、リアルタイム、拡張性を念頭に構造化されています。

  1. 継続性: アプリケーションが連日のように攻撃され、新しい脅威が頻繁に出現し、新しい脆弱性がたびたび発見される世の中にあって、企業はアプリケーション ポートフォリオ全体のセキュリティを継続的に把握、制御する必要に迫られています。CAS では、脆弱性や攻撃を瞬時に検出し、報告します。年に一度のスキャンを悠長に待つようなことはしません。何より重要なのは、攻撃を受けた場合に、コードを書き換えたり再デプロイしたりしなくても、すぐに新しい防御策を展開できるようにしておくことです。

  2. 計測: これは、コードの書き換え、再テスト、再デプロイを行うことなく、アプリケーションに不足している機能を追加する安全かつ有効な手段です。多くの一般的なログ ツールやアプリケーション パフォーマンス管理製品は、10 年以上にわたって計測という手段を活用してきました。セキュリティを計測することで、脆弱性の特定、攻撃のブロック、ライブラリの分析、詳細なアプリケーション インベントリの提供、さらには一元化されたポリシーの強制適用といったことがリアルタイムに行えます。

  3. インタラクティブ アプリケーション セキュリティ テスト (IAST): これは、計測による評価技術で、アプリケーションを実行中に監視することで脆弱性を検出します。導入が簡単なのも特徴です。IAST は、アプリケーションに関するコンテキストが SAST (静的解析) ツールや DAST (動的解析) ツールよりもかなり多く得られるほか、はるかに優れたカバレッジと精度を実現します。

  4. リアルタイムのセキュリティ フィードバック: 脆弱性が存在する期間が長くなったり、脅威への対処がなされなかったり、攻撃が発見されなかったりするほど、セキュリティのコストは劇的に増加します。リアルタイムにセキュリティ フィードバックを行うと、通常のソフトウェア開発の一環として脆弱性を排除でき、攻撃を事前に無力化することにつながります。それによって、リスクのトリアージ、文書化、追跡、スコアリング、再テストにかかるコストが削減されます。

  5. ランタイム アプリケーション自己保護 (RASP): これは、実行時に計測によってアプリケーションに対する攻撃を検出してブロックする防御技術です。RASP は導入が簡単で、WAF (Web アプリケーション ファイアウォール) などの外部からの攻撃に対する保護機能よりもアプリケーションに関するコンテキストがはるかに多く得られるため、正確性に優れています。Contrast Enterprise では、ソフトウェアのライフサイクル全体で動作する一元的なエージェントから IAST と RASP の両方を実行できます。

  6. セキュリティ: セキュリティとは、魔術師のみが垣間見ることのできる神秘的な特性ではありません。それをもっと具体化して、構築、検証、測定できるようにするのが CAS です。CAS においてセキュリティとは、ビジネスにとって最も重大な脅威に対して強力な防御機構が投じられていること、それらの防御が正しく適切に構成され、適切な場所に配置されていること、そして既知の脆弱性、新たな脆弱性、攻撃を検出してブロックできることを意味します。

  7. センサー: CAS では、特定の脆弱性についてコードを解析したり、特定の攻撃を検出してブロックしたり、コンポーネント、フレームワーク、アーキテクチャ、バックエンド接続といったアプリケーションの特定の側面を可視化したりするために設計された一連のセキュリティ計測機能のことを「センサー」と呼びます。これらのセンサーは、IAST 技術と RASP 技術の基礎であり、Contrast Enterprise のエージェントで一元的に提供されます。

継続的アプリケーション セキュリティの詳細については、こちらのハンドブックをご覧ください。

CAS では、個別のセキュリティ ステップは必要ありません。自動化された継続的なプロセスの上に環境を構築して保持することはしません。実行中のアプリケーションをスマートなセンサーで計測し、アプリケーション内から継続的にリアルタイムでコードを解析することで (Security as Code)、バックグラウンドでシームレスに脆弱性解析を実行します。

ぜひ、Contrast Security コミュニティ エディションと Contrast Security OrbContrast Security orb をダウンロードして実際にお試しください。アプリケーションのセキュリティを CI/CD パイプラインの中で自動化し、ソフトウェア開発ライフサイクルの早い段階でセキュリティ問題を解決できるようになります。

出典


この記事は、DevSecOps に関するシリーズ記事の一部です。同シリーズの他の記事は、以下のリンクからご覧いただけます。