コンテナにセキュリティの落とし穴はないか?
企業でコンテナ活用が広がる一方、セキュリティ対策は何をすれば万全なのか。SB C&S ICT事業本部 技術統括部 テクニカルマーケティングセンター 担当課長でありCISSPを保有している竹石渡氏の元には、セキュリティの相談がよく寄せられている。
ある企業はAWS Fargateでコンテナを活用して顧客にSaaSを提供していながらも、「コンテナに関するセキュリティ対策として何をしたらいいのかわからない」と相談があったという。竹石氏は「商用環境としてコンテナを用いてサービス提供していながらも、セキュリティ対策が手つかずというケースは意外とあり、まだまだコンテナセキュリティの必要性が十分に理解されていません」と懸念する。
従来必要とされてきたセキュリティ対策は当然施しつつも、コンテナを使うなら何を追加しなくてはいけないのか、何を変更しなくてはいけないのか。基本的なところから整理していこう。
そもそも従来のVM(仮想マシン)と比べるとコンテナのランタイムやオーケストレーター(Kubernetesなど)といった登場人物が増えるため、そこに脆弱性や設定ミスがないか目を見張る必要がある。加えて、近年ではより上流工程からセキュリティを組み込むシフトレフトという言葉がもてはやされているように、コンテナデプロイ後からセキュリティを考えるのではなく、イメージを作成するCI/CDパイプラインの早い段階から要所要所でセキュリティチェックを行うのが望ましい。
たとえば、コンテナイメージのスキャン。コンテナイメージを作る際に、脆弱性やマルウェアが含まれていないか、適切な設定になっているか、OSSライセンス違反がないかなどをチェックする必要がある。
特に、Docker Hubのようにパブリックなレジストリには、悪用可能な脆弱性やマルウェアが含まれるものもあるという。たとえば、マルウェアの中にはリソースを不正利用し、暗号通貨をマイニングするようなものもあるという。竹石氏は「パブリックなイメージを活用すること自体は悪いことではありません。大事なのはきちんとスキャンすること。品質ゲートを設け、そこを通っていないイメージは一切信頼しないことです。これはゼロトラストにも通じるアプローチです」と述べる。
スキャンを実施することで脆弱なイメージが本番環境にデプロイされることを防げるものの、それだけで安心はできない。次々に新たな脆弱性が発見されるため、その確認は継続する必要がある。さらに、従来からのセキュリティ対策としてファイアーウォールやWAF(Web Application Firewall)、攻撃されたときに被害を最小限にするためのマイクロセグメンテーションなども忘れてはならない。