Tenable ブログ
ブログ通知を受信するTenable.cs と HashiCorp TerraformCloud でクラウドインフラの設定ミスによる脆弱性を管理・修正
事前に予防可能な設定ミスによって引き起こされたクラウドでの侵害が増加傾向にあります。Tenable.cs と Terraform Cloud の新しい統合によって実現した、リスクを軽減する方法をご紹介します。
今日のクラウド環境は非常に動的です。新しいアップデートが本番環境に次々とリリースされたり、ワークロードが顧客の需要に反応して拡大したり縮小したりしているからです。クラウドエンジニアは、数分以内でインスタンスを作成したり、リソースをクラウドへ完全な配備したりできます。しかし、このように変化が速くなると、リスクも増えます。設定ミスによって引き起こされるシステムの脆弱性は見過ごされがちなため、数か月間検出されないまま放置されてしまうこともあります。その結果、クラウド環境における侵害はその規模と速度が増加しています。クラウドインフラの設定ミスだけでも、2018 年から 2020 年の間に発生した 200 件の侵害で 300 億を超える記録の漏洩の原因になっています。
クラウドの設定ミスによって引き起こされる侵害は、どのようにすれば減らせられるのでしょうか。この投稿では、Tenable.cs と Terraform Cloud Run Tasks の新しい統合を通じて、Tenable と HashiCorp のソリューションがこの問題の解決にどのように役立つのかを説明します。
クラウドにおけるプロビジョニングと Terraform の概要
クラウドリソースのプロビジョニングというのは、クラウドのワークロードをデプロイメントする際の重要な側面です。ほとんどのクラウドプロバイダーには独自のプロビジョニングユーティリティがあります。しかし、Hashicorp Terraform のような素晴らしいツールを活用すると、クラウドプロバイダーが提供する以上のメリットを享受できます。オープンソースのインフラのコード化 (IaC) ツールである Terraform を使用してインフラをプロビジョニングする場合、環境の管理と運用に多くのメリットがあります。Hashicorp Configuration Language (HCL) が再利用可能なインフラモジュールを標準化し、さまざまなプロジェクトや環境に使用できるようになります。Terraform は、インフラを立ち上げる際に環境の現在の状態を読み取り、環境を IaC で定義された状態に構成するためにどんな変更が必要なのかを判別します。これにより、手動で保守すると破壊してしまう恐れのある複雑なアーキテクチャを管理する際のプロセスが簡単になります。IaC を使用すると、コードのバージョン管理が可能になり、インフラがどのようにプロビジョニングおよび構成されているかをより明確に把握できるようになります。
Terraform のセキュリティに関する主な考慮事項
Terraform にはセキュリティ面のメリットもあります。インフラプロビジョニングのワークフローを使用して、自社環境をセキュリティの問題から保護することができます。IaC を使用して環境の変更を行うと、コードを評価して、インフラをプロビジョニングする前にセキュリティ上の欠陥を確実に検出して減らすことができます。CI/CD パイプラインやゲートなどの自動化手法により、セキュリティや運用上のガードレールを体系化して施行し、環境が自社ポリシーを遵守するように徹底できます。
さて、Terraform などのツールを使えばインフラの管理は簡素化できるのですが、クラウドインフラでは重大な設定ミスが後を絶ちません。Terraform 環境の脆弱性管理に関する主な懸念事項は次のとおりです。
- 機密情報の管理: Terraform は、コードで指定されたインフラのプロビジョニングを行う API処理を承認するため、資格情報を必要とします。資格情報には、環境を作成、管理、破棄する特権アクセスが含まれているため、許可されていない人やプロセスに露呈しないように注意する必要があります。
- システムの状態の管理: Terraform では、ステートファイルを使用して、プロビジョニングされたインフラのリソースの状態を追跡します。デフォルトでは、ステートファイルは Terraform を実行するシステムのローカルファイルシステムに保存されます。ステートファイルには秘密情報やその他の機密情報が含まれている可能性があるので、ステートファイルをソースコードと保持することは推奨されません。
- 依存関係管理: Terraform では、「プロバイダー」と呼ばれるプラグインを使用してリモート API に接続し、コードで定義されたリソースを取得します。「terraform init」コマンドを実行すると、Terraform を実行しているシステムにリソースがダウンロードされます。プロバイダーはインフラで強い権限を持ちながら操作を管理するため、これらプロバイダーが信頼できるソースからダウンロードされていることと、使用する前に改ざんされていないことを確認する必要があります。
- ドリフト管理: 複雑なエンタープライズ環境では、非常用のメカニズムまたはその他の手段を用いて、実行時に手動で変更を行うことがあります。これらの変更は、ランタイム環境と Terraform コードで定義した環境の間で、「ドリフト」と呼ばれる逸脱を引き起こします。行った変更がソースコードに反映されない場合、ビルドチームは引き続き古いバージョンを使用したり、システムがセキュリティ要件を満たさなくなったりしてしまいます。
Terraform に関するセキュリティの重要な考慮事項の詳細については、ホワイトペーパー「Terraform が提供するセキュリティについて: DevOps 向けガイド」をご確認ください。
Tenable.cs による Terraform の脆弱性の防止
Tenable.cs は、開発者向けのクラウドネイティブアプリケーションプロテクションプラットフォーム-Native Application Protection Platform (CNAPP) です。これを利用すると、クラウドリソース、コンテナイメージ、クラウド資産が安全に保たれ、コードからクラウド、ワークロードまでエンドツーエンドでセキュリティを維持できます。ベストプラクティスを実施するために、Terrascan などの静的コード分析ツールを使用してコードを評価することも可能です。Terrascan は、Tenable によって作成されたオープンソースプロジェクトであり、Tenable.cs の基盤となるスキャンエンジンです。 Terrascan には、さまざまなプロバイダーで適用できる、Rego 言語で書かれた数百ものポリシーが用意されており、Open Policy Agent (OPA) エンジンを使用して設定ミスを評価します。これらのポリシーを拡張して、自社環境固有の基準を含めることができます。ワークフローの一部としてこれらのポリシーを施行するには、Terrascan を使用して HCL ファイルの変更をスキャンし、セキュリティ上の問題を検出するジョブを、CI/CD パイプラインに組み込みます。問題が検出された場合、このジョブは失敗し、対応が必要なセキュリティ上の問題が検出されたことを示すエラーメッセージが表示されます。
Tenable.cs を使用すると、クラウド運用チームとセキュリティチームが Terraform テンプレートのポリシー違反を評価できるようになります。クラウドインフラのセキュリティ評価が DevOps パイプラインに統合されので、セキュリティの問題が本番環境で発生するのを防ぐことができます。また、開発ツールで直接 IaC の設定ミスをすばやく修正して、ビルド時と実行時の両方でポリシーを適用することも可能です。
新機能: HashiCorp Terraform Cloud Run Tasks による自動修復サポートの強化
Tenable は、新しく Hashi Corp の Terraform Cloud Run Tasks をサポートすることにより、Terraform の保護機能を強化しました。Terraform Cloud により、Terraform テンプレートを構築およびデプロイメントするためのホスト型ソリューションが提供されます。Terraform Cloud Run Tasks を使用すると、Tenable.cs を活用して Terraform Cloud のデプロイメント中に Terraform テンプレートをスキャンできます。この統合により、Terraform Cloud のユーザーは、Terraform 実行の計画フェーズの一部として Tenable.cs を利用して IaC 内のセキュリティの問題を検出できるようになります。Tenable.cs で Terraform Cloud Run Tasks が利用できるようになったため、開発者は IaC のコンプライアンスとセキュリティのリスクの検出と修正を行い、クラウドインフラがプロビジョニングされる前に問題を軽減することができます。
また、正確な修復手順の把握が困難で、時間がかかる場合があることを想定して、そうした理由から、統合の一環として、推奨される修復事項が、Terraform ワークスペースに関連付けられたソースコードリポジトリへのプルリクエストの形式で提供されるようになりました。Terraform テンプレートで見つかった問題がよりすばやくプロビジョニング前に修正できるようにしています。Tenable.cs で企業向けに提供された 1,500 を超えるポリシーを活用して、Terraform Cloud で詳細なスキャンを実行することもできます。Tenable.cs を Terraform Cloud Workspace に接続する方法に関するセットアップガイドに関心のある方は、こちらから詳細なドキュメントを確認できます。
Tenable.cs の詳細については、データシートをご覧になるか、オンデマンドウェビナー「Tenable.cs の紹介: コードからクラウドへのすべてのステップを保護」をご視聴ください。
関連記事
- Announcements
- Cloud