クラウドネイティブにおけるセキュリティ対策のポイント
コンテナを中心としたクラウドネイティブでは、セキュリティ対策が従来と異なる場合がある。もちろんクラウドネイティブであろうともサイバー脅威は実在するため、まずは管理対象の資産を洗い出しして、リスクの識別、分析、評価、対応、受容していくという基本的な流れは大きく変わらない。
クラウドネイティブでは管理資産の範囲が変わる。クラウドでは責任共有モデルがあり、資産や責任はユーザーとクラウドベンダーで分け合う形となる。特にコンテナやサーバーレスアーキテクチャ、レジストリサービスを採用すると、ユーザーから見て管理対象外の資産が増えていく。
そうなるとクラウドベンダーとユーザー企業、ユーザー企業内での責任分担をあらためて考える必要が出てくる。またシステムを構成するコンポーネントやサプライチェーンの観点で違いが生じてくる。
なおクラウドネイティブにおけるリスクを把握するために参考となるのがNIST SP800-190に代表されるNIST(アメリカ国立標準技術研究所)が発行しているドキュメント、あるいはマイター社が攻撃者視点で手法をまとめたMITRE&ATTACKフレームワークがある。
野村氏はクラウドネイティブにおけるセキュリティ対策のポイントとして「1つ目に多層防御の重要性。多岐にわたるコンポーネントやサプライチェーンで対策のレイヤを重ねて抜け漏れなく。2つ目にシフトレフトやセキュリティ バイ デザインで手戻りコストを最小に。3つ目はユーザー組織内のセキュリティナレッジ強化」と挙げる。
それではコンテナ環境におけるマルウェア対策を考えてみよう。当初コンテナ環境では仮想通貨のマイニングツールが流行したこともあった。コンテナ環境では従来のセキュリティ対策ソフトウェアを導入できない場合もある。従来のものはサーバーまたはクライアントに導入するもので、コンテナを想定していないためだ。しかし対策はいろいろとある。詳しくは後述するが、コンテナ実行前と実行後(デプロイ環境)に分けて対策を施していくことができる。
コンテナ環境におけるマルウェア混入のタイミングはデプロイ前、デプロイ時、デプロイ後と分けることができる。デプロイ前だと、公開ベースイメージやOSS、あるいは開発環境やビルド環境にマルウェアが混入し、ユーザーは気づかずにマルウェアごとパッケージングしてしまう。デプロイ時だと、コンテナ実行時のスクリプトにマルウェアをダウンロード、実行するという命令が含まれるケースが考えられる。デプロイ後だと、稼働中のコンテナにマルウェアが配置、実行されることになり、混入経路は多岐にわたる。脆弱性を突かれるケース、アプリのファイルアップロードで不正ファイルが混入するケース、環境に直接乗り込まれるケースも考えられる。
対策としては、直接的にはマルウェアの検知と駆除があり、間接的にはマルウェアの配置や実行の検出や防止、目的達成の阻止などがある。ユーザーで作り込めるものもあれば、クラウドベンダーのサービス利用や設定で可能なものもあり、サードパーティー製品を採用することも可能だ。混入のタイミングや経路により、対策が分かれてくる。
野村氏は「対策や混入タイミングがまちまちである一方、脅威が顕在化するのはデプロイ後の稼働環境です。そのため顕在化する前後で複数の対策を重ねれば、早期発見、被害の拡大防止につなげられます」と話す。