SysdigのDrift Controlによるコンテナランタイムアタックの防御

By 清水 孝郎 - JUNE 28, 2022

SHARE:

本文の内容は、2022年6月28日にDaniella Pontesが投稿したブログ(https://sysdig.com/blog/preventing-runtime-attacks-drift-control/)を元に日本語に翻訳・再構成した内容となっております。

コンテナは、アプリケーションのビルド、デプロイ、実行に革命をもたらし、スピード、敏捷性、スケーラビリティを向上させました。しかし、変革的なテクノロジーにはよくあることですが、セキュリティ戦略にも進化が求められます。保護された境界内に集中的に導入されたコンテナは、継続的かつ分散的に導入されるようになり、増大し、動的で、分散した攻撃対象が生み出されました。IT チームとセキュリティ・チームは、クラウドの中で盲目となり、無防備な状態に置かれました。

さらに、ベライゾンの2022年データ侵害調査報告書(DBIR)は、脅威の活動が増加し、すべての人を標的にしていることを示しています。攻撃ベクトルとして利用されるサプライチェーンやサードパーティの関係の拡大、盗まれた認証情報の市場の繁栄、RaaS(Ransomware as a Service)の台頭、Log4jSpring4Shellなどの重大な脆弱性の摘発件数の増加は、脅威の検知が重要であることを思い知らせてくれます。侵害を考慮し、マルウェア、C&C、バックボーン、クリプトマイナーなど、一般的な脅威や新たな脅威からランタイム環境を保護することが賢明です。

コンテナ環境を保護する際に直面する課題は、複雑さと、コンテナ内部で何が起こっているのかをリアルタイムで可視化できないことから始まります。しかし、クラウドネイティブの不変性原則は、セキュリティチームにとって大きな資産となり得ます。不変性とは、コンテナの寿命が尽きるまで、アップデートもパッチも設定変更も行われないということです。もし変更があれば、それはドリフトとみなされ、攻撃の兆候である可能性があります。残念ながら、コンテナのドリフトは、IT管理者が実行中のコンテナのメンテナンスを行う際のレガシーな慣行によって引き起こされることもあり、彼らの行動が敵対者の行動と混同されることもあります。脅威となる人物やマルウェア、そしてその攻撃の兆候は、ノイズに紛れて悪意のあるコードを実行しながら検知されないようにすることができます。

しかし、SysdigのDrift Controlを使用すれば、コンテナ・ドリフトとして知られる、新しい実行ファイルを実行するために運用中に変更されたコンテナを簡単に検出、防止し、インシデント対応を迅速化することが可能になります。ドリフトをブロックすることで、攻撃を防ぐことができます。

リスクを増大させる攻撃とレガシーなプラクティスの防止

攻撃には、被害者のマシン上で敵対的なコードを実行することがよくあります。最初のアクセスに続いて、行為者は実行可能ファイルが埋め込まれたスクリプトやマルウェアを実行して攻撃を継続しようとしますが、これにはリモートコマンド&コントロール(C2)の有効化、身代金のためにデータを利用できなくする、他の攻撃を開始するなどの悪質な行為が含まれる可能性があります。どのコードがコンテナに属さないかを識別することは、攻撃が損害を与える前に阻止するための基本であり、それがDrift Controlの仕事です。Drift Controlは、新しいコードや変更されたコードを検出し、実行をブロックします。

Drift Controlは、セキュリティのベストプラクティスである不変性に従い、本番環境へのデプロイ後にコンテナが変更されないようにするだけで、実行時に攻撃を防ぐ簡単な方法を提供します。また、本番環境でのアプリケーションの変更、新しいパッケージのダウンロード、ローカルメンテナンスのためのITツールのインストールなど、クラウドネイティブ環境では機能しないレガシーな手法からの移行を支援します。これらの慣行は、悪用される可能性のある攻撃対象領域を拡大することでリスクを増大させ、悪意があるにもかかわらず類似の行動を隠すことでノイズを増やします。

本番環境でコンテナの実行ファイルを変更しようとする試みを検出し、その試みが成功しないようにすることで、運用にベストプラクティスを守らせ、リスクの高いレガシーな慣行がクラウド環境に持ち越されないようにすることができます。ベストプラクティスでは、不変性の原則を尊重し、ソースでのみ修正することが求められています。そのため、デプロイメント用に新しいコンテナを構築する必要があります。Drift Controlは、アドホックな修正に終止符を打ち、ソースから実行までの一貫性を維持し、攻撃の一部となり得る行為を防止することを支援します。

Drift Controlの仕組み

Drift Controlは、コンテナのデプロイ後に追加または変更された実行ファイルを検出し、その実行を防止します。実行中のコンテナをリアルタイムに深く可視化し、偽の実行ファイルを自動的に識別します。

Drift Controlは、環境全体に素早く適用できるシンプルなランタイムセキュリティポリシーです。


検出モードを有効にすると、次のような、実行時に追加または変更されたパッケージやバイナリファイルを実行しようとする試みに警告を発することができます。

  • パッケージマネージャでダウンロードまたは更新されたパッケージの実行
  • パーミッション/アトリビュートが実行可能に変更されたファイルの実行

そして、preventionモードの場合、Drift Controlは検出された新しい実行可能ファイルを実行できないようにブロックします。


Drift Controlがもたらす主な効果

  • 本番環境でのコンテナドリフトをブロックすることで、攻撃を防止します:Drift Controlは、元のコンテナからの逸脱に自動的にフラグを立て、否定し、被害が発生する前に悪意のある実行可能ファイルをブロックします。
  • 不変性のベストプラクティスを実施します:Drift Controlは、コンテナソフトウェアがそのライフタイム中に変更されないようにし、グッドプラクティス、ソースから実行までの一貫性、および攻撃の一部となり得るアクションの防止を推進します。
  • 簡単で効果的なセキュリティを実現します:クラウドネイティブの複雑さに圧倒され、コンテナドリフトを見過ごしがちなチーム(特に大規模な場合)。Drift Controlを使用すれば、セキュリティチームとIT部門は、コンテナ環境全体でDrift Controlを有効にするだけで、すぐにランタイムの保護を開始できます。