
Infrastructure as Code(IaC)スキャンとは?
コンプライアンス対応にとどまらず、セキュリティをコードに組み込みます。IaCスキャンで、Infrastructure as Codeに潜む脆弱性や設定ミスの検出を自動化。クラウド環境を導入時から安全に保ち、コンプライアンス要件に対応します。

インフラストラクチャは、ソフトウェア開発を支える基盤の一つです。ソフトウェアの安定稼働に直接関わり、サーバー、ロードバランサー、ファイアウォール、データベース、複雑なコンテナクラスターまで含まれます。
インフラストラクチャは本番環境だけでなく、開発プロセス全体に関わります。テストツール、CI/CDプラットフォーム、ステージング環境など、多くのプラットフォームや技術が含まれます。こうしたインフラストラクチャの要素が増えるほど、ソフトウェア製品も複雑になります。

この記事では、IaCスキャンの仕組みや用途、必要な理由など、知っておくべきことを解説します。
IaCスキャンとは?
IaCスキャンは、IaCテンプレートとインフラストラクチャ構成を分析し、セキュリティ上の欠陥を特定します。これにより、クラウド、インフラストラクチャ、アプリケーションの安全なデプロイを支えます。
IaCスキャンツールは、ネットワーク、インフラストラクチャ、アプリケーションのコードベースに含まれるさまざまな要素を自動評価し、脆弱性や設定ミスを検出します。これにより、稼働環境でのデータ損失、サイバー攻撃、ダウンタイム、デプロイエラーを防ぎます。IaCツールは、確立されたセキュリティポリシーとベストプラクティスに基づき、システム内の悪意ある要素や潜在的なセキュリティリスクを特定します。
このルールセットの作成に使えるセキュリティのベストプラクティスには、最小権限の原則、ネットワークセグメンテーション、データ暗号化、リソースの認可ポリシーなどがあります。本番環境への移行前に行うIaCスキャンでは、ソフトウェア開発の初期段階から一貫したセキュリティルールセットとスキャナースクリプトを使用し、IaCのセキュリティを確保します。
IaCスキャンの仕組み
組織は長年、ソフトウェア構成分析(SCA)と静的アプリケーションセキュリティテスト(SAST)を使用し、コードベースのエラーや脆弱性をスキャンしてきました。しかし、多くのSCAツールやSASTツールは機能実装用のコードベースを対象に設計されているため、IaCスクリプトを優先的に検査しません。
そのため、IaCテンプレートとコードベースに特化したスキャンツールが必要です。基本的な手順は、使用するIaCスキャナーによらず同じです。
IaCスキャンは、ビルド工程より前に開発ワークフローへ組み込むところから始まります。次にIaCテンプレートをセキュリティスキャンにかけ、設定エラーやセキュリティ上の欠陥を確認します。その際、新しいコミットを調べ、元のテンプレートから変更されたインフラストラクチャを確認する必要があります。
IaCスキャンでは、テンプレート、モジュール、ファイルなどのIaCコンポーネントを、事前定義されたセキュリティポリシーやベストプラクティスの一覧と照合します。続いてIaCスキャンツールが、設定ミスとして現れる変数の欠落や、法的要件を満たさない設定を検出します。 DevSecOPsチームは問題を迅速に把握し、IaCのデプロイが完了する前に対処できます。
IaCのセキュリティスキャンが必要な理由
IaCスキャンのメリットを見る前に、まずInfrastructure as Code(IaC)全般に伴うセキュリティリスクを確認しましょう。
- 複雑な環境: 現代の企業ネットワークには、オンプレミスのデータセンター、ハイブリッドクラウド環境、マルチクラウド環境が含まれることがよくあります。インフラストラクチャが複雑になり、効率的で安全かつ管理しやすいIaCコードベースの開発が難しくなります。
- コンプライアンス違反: 現代の開発では、組織はHIPAA、PCI DSS、GDPRなど、さまざまな規制基準やセキュリティ管理策に従う必要があります。IaCのプロセスでこれらの管理策が適用されないと、コンプライアンス違反が発生します。
- 進化するサイバー脅威: 現代のITインフラストラクチャが進歩し、サイバーセキュリティの対象領域が広がるにつれて、サイバー脅威も進化しています。最新の脅威からインフラストラクチャを守ることは、IaCエンジニアにとって課題です。
- 広い攻撃対象領域とデータ漏えいの可能性: IaCテンプレートに脆弱性やデプロイ設定の誤りがあると、攻撃対象領域が広がり、データが露出するおそれがあります。たとえば、IaCコードベースに機密情報が埋め込まれていると、ソース管理を通じて重要な資産がインターネットに公開される可能性があります。
では、IaCスキャンはどのように役立つのでしょうか?
クラウドセキュリティは、開発完了後に考えるものではなくなりました。 DevOpsチームは現代のソフトウェア開発でセキュリティを開発の早い段階に移し、DevSecOpsへと進化させています。
DevSecOpsは、ソフトウェア開発ライフサイクル全体にセキュリティを組み込みます。そのため、Infrastructure as Codeのテンプレートやコンテナイメージにも、早い段階からセキュリティを組み込めます。
IaCスキャンはソフトウェアの本番移行前に行われ、設定ミスに起因するセキュリティ侵害の潜在的なコストと影響を抑えます。組織のセキュリティを検出中心から予防中心へ移し、クラウドセキュリティのシフトレフト戦略を支えます。IaCスキャンを使う開発者には、次のようなメリットがあります。
- IaCスキャンにより、開発者はインフラストラクチャを攻撃にさらすおそれのある設定エラー、安全でないデプロイ、セキュリティ上の欠陥を特定できます。
- 開発者はIaCスキャンを使い、事前定義されたセキュリティルールや公認の規制基準に照らしてシステムを検証できます。
- 組織はIaCスキャンを使ってセキュリティを開発の早い段階に組み込み、潜在的なサイバー攻撃を防げます。
- IaCスキャンツールは、インフラストラクチャの脆弱性や設定ミスを検出すると開発者に通知し、修正手順を案内します。これにより、デプロイの安全性が高まります。
- IaCスキャンをCI/CDパイプラインに組み込み、疑わしいプルリクエストやビルドを拒否するガードレールを設けます。これにより、設定ミスが本番環境へリリースされるのを防ぎます。
IaCスキャンにSentinelOneを選ぶ理由
クラウドコンピューティングは、イノベーションとビジネス変革を推進します。一方で、脅威の状況が進化し続けるなか、セキュリティ上の課題も数多くあります。攻撃対象領域の拡大とセキュリティへの懸念の高まりにより、組織は予期せぬ事態への備えを迫られています。
Infrastructure as Code(IaC)が広く使われる現在、IaCスキャンは企業のセキュリティ戦略に欠かせません。IaCテンプレートをスキャンして、データ侵害につながることが知られている見落としや設定ミスを特定すれば、IaCに伴うセキュリティリスクを軽減できます。CNAPP) が包括的なクラウド保護を実現します。
しかし、IaCだけではクラウド全体のセキュリティ態勢を強化するには不十分です。そこで、SentinelOneの統合型クラウドネイティブアプリケーション保護プラットフォーム(CNAPP)がクラウドを包括的に保護します。
先進的なOffensive Security Engineは、ゼロデイ攻撃を特定し、攻撃者の視点から脅威を分析します。SentinelOneのCNAPPには、Infrastructure as Codeのスキャン、コンプライアンス監視、脆弱性管理, Dockerイメージとシークレットのスキャン、サーバーレスセキュリティ、コンテナセキュリティ、クラウドの設定ミスの修正。SentinelOneのCNAPPはさらに、開発の早い段階からセキュリティを徹底し、インシデント後の対応計画と分析にも対応します。誤検知ゼロと証拠に基づくレポートを実現し、AIを利用した攻撃を阻止して、インフラストラクチャの可視性を高めます。

SentinelOneの動作を見る
SentinelOne製品のエキスパートとの1対1のデモで、AIを活用したクラウドセキュリティがどのように組織を保護できるかをご覧ください。
IaCスキャンのよくある質問
IaCスキャンは、Terraform、CloudFormation、ARMのテンプレートなどのインフラストラクチャコードを検査し、デプロイ前にセキュリティや設定のミスを見つけます。コードを解析してルールやポリシーと照合し、開放されたネットワークポートやコードに直接書き込まれた認証情報など、リスクのある設定を検出します。ローカル、CIパイプライン、プルリクエストのレビュー時にスキャンを実行すれば、クラウドリソースの稼働後ではなく、早い段階で問題を発見できます。
IaCスキャンは、クラウド環境が最初からセキュリティルールに準拠しているかを確認します。DevOpsチームは変更を迅速に反映するため、公開されたS3バケットのような不適切な設定が紛れ込むことがあります。スキャンで検査を自動化すれば、手動レビューだけに頼らずに済みます。
設定ミスを検出し、ポリシーを適用して、ミスによる影響範囲を抑えます。DevOpsのスピードを維持しながら、サービスの安全な設定を保てます。
スキャンを実行すると、ツールはIaCファイルを読み取り、作成予定のリソースをモデル化します。次に、組み込みまたはカスタムのルールを各リソースに適用します。安全でないSSHアクセスや暗号化の欠如など、ルール違反が見つかると、ファイル名と行番号を添えてアラートを記録します。アラートを確認してコードを修正し、すべての検査に合格するまで再スキャンします。
IaCスキャナーは、権限が広すぎるIAMロールから暗号化されていないストレージボリュームまで、さまざまな問題を検出します。アクセスが開放されたセキュリティグループ、SSL/TLSの適用漏れ、脆弱なパスワードポリシー、コードに直接書き込まれたシークレットを特定します。リソースへのタグ付けやバケットのバージョニング適用など、ベストプラクティスを検証するツールもあります。検査範囲は、選択するツールとルールセットによって異なります。
すべてのプルリクエストを検査できるよう、スキャンをCI/CDフローに組み込みます。まずベンダーの標準ルールを使い、自社のポリシーに合わせて調整します。アラートを重大度で優先順位付けし、作業を妨げる問題から修正して、繰り返し発生する問題を追跡します。ルールセットを最新の状態に保ち、コードとともにバージョン管理します。最後に、よくある検出事項をチームに共有し、最初から安全なテンプレートを作成できるようにします。
ポリシーで許可された正当な設定が検出された場合、たとえば踏み台ホスト用の開放ポートなら、例外として登録するか、コメントを追加してそのリソースに対する特定のルールを無効にします。多くのスキャナーは、コード内での検出抑制や一元管理された許可リストに対応しています。抑制の理由を記録して例外を定期的に見直し、状況が変わったら削除します。これにより、見過ごされた設定の逸脱を防ぎます。
インフラストラクチャコードを書き始めた時点で、IaCスキャンを有効にします。ローカルの開発環境に追加し、コミット前に問題を検出します。その後、CI/CDパイプラインとマージ時の検査に組み込みます。既存の環境がある場合は、現在のテンプレートをスキャンして潜在的なリスクを見つけ、段階的に保護対象へ加えます。


