コンテナを安全に扱う
Tales Casagrande
2022年6月22日
0 分で読めますこの記事の執筆者は Tales Casagrandeです。 Snyk Ambassadorは、セキュリティに関する専門知識を積極的に共有しています。ぜひ今日から参加してみませんか。 登録はこちら!
海運業界では、コンテナの形式にISO 668が採用されています。これは、コンテナを安全に積み重ねるための標準規格です。
世界中の人々にさまざまな用途で使われる、異なるアプリケーションを実行する複数のコンテナで構成されたアプリケーションを想像してみてください。
ソフトウェアにおけるコンテナの安全性
現代のソフトウェアは、船と大きく変わりません。プロジェクト内で複数のマイクロサービスを「積み重ね」、環境の開発とセキュリティを担当するチームがいます。そして、誰かが重大なミスをすれば、すべてを失う可能性があります。開発とセキュリティの観点から、コンテナについて考えてみましょう。
本番環境に導入するイメージを信頼できますか?その出所は確かですか?
セキュリティ上の問題がないか、セキュリティテストを実施していますか?
修正の優先順位はどのように決めていますか?
ベースイメージには、アプリケーションの実行に必要な最低限のものだけが含まれていますか?
開発チームはベストプラクティスを常に把握していますか?
セキュリティチームは開発中に支援していますか?それとも、脆弱性が見つかったときに責任を追及するだけですか?
すべての質問に答えられなくても大丈夫です!このまま読み進めてください。いくつかヒントをご紹介します。
Snyk Containerで分析を始める
ここでの目的は、セキュリティチームと開発チームの間にある壁を取り払い、膨大なレポートを作成するのではなく、基準に基づいてコンテナの脆弱性に優先順位を付けるための情報を両チームに提供することです。
例として、意図的に脆弱性を含むテスト用アプリケーション(本番環境での使用は推奨されません)が含まれるsnyk-goofリポジトリを使いましょう。このアプリケーションをSnyk Containerで分析します。Snyk Containerを使えば、脆弱性の修正を簡単かつ効果的に自動化でき、開発者は問題への対応に集中できます。
まず、アカウントを作成してください(無料です!)。すでにアカウントをお持ちの場合は、ログインしてください。Projects > Add projectに移動します。


新しくインポートしたプロジェクトに分析結果が表示されるまで、数分かかる場合があります。Snykではコード、ライブラリ、コンテナを分析できます。今回はコンテナに注目します。

Dockerfileを見てみましょう。重大なインフラの問題を抱えたコンテナを、沖合まで輸送しますか?そうは思いませんよね。いくつか質問してみましょう。
どこから始められるでしょうか?
これらの問題には、それぞれどの程度の優先順位を付けるべきでしょうか?
では、対応計画を立てるために、次の点を検討しましょう。
誰かがこれらの欠陥を悪用する可能性はありますか?
この欠陥を悪用できる悪意のあるコード(既存のエクスプロイト)が、すでにインターネット上に存在しますか?
ソーシャルメディアで、この欠陥について話題にしている人はいますか?
修正プログラムはありますか?
各脆弱性には、共通脆弱性評価システム(CVSS)によるスコアが付与されています。このスコアの算出には、攻撃対象領域、攻撃の複雑さ、ユーザーの関与、必要な権限などの基準が含まれます。

Snyk Containerは、それぞれの脆弱性について役立つ情報を数多く提供します。

この例では単一のイメージを扱っていますが、大規模な環境を想像してみてください。どのような状況になるでしょうか?先ほどの質問に基づいて、ベースラインを作成できます。

この画像は、Snyk Codeによるベースイメージのアップグレード推奨を示しています。これらのアップグレードによってリスクを低減できるため、別のベースイメージを探したり、アップグレードを試みたりする時間を節約できます。
Snyk CLIで同じ分析を実行する
今回はグラフィカルユーザーインターフェースを使って分析しました。しかし、開発チームはコマンドラインやIDEで作業することが多いため、別途ログインする手間をなくし、Snyk CLIで同じ分析を実行してみましょう。
Snykコンソールでインテグレーション > CLIに移動し、お使いの環境に応じた手順に従ってください。先ほどと同じプロジェクト:snyk-goofを使います。

それでは、イメージをビルドしましょう。

ここからが楽しいところです!CLIを使って分析を始めましょう。


コンソールとCLIでは、異なる日にテストしたため結果に少し違いがありますが、Snyk CLIで実行した分析でも、同じベースイメージのアップグレードが推奨されています。
メトリクスに基づく分析のメリット
新たな脆弱性は絶えず発見されます。すべての問題の修正に立ち止まるわけにはいきません。優先順位を付け、自動化し、影響が最も深刻になり得る箇所に取り組む必要があります。メトリクスに基づく分析によってチーム間のノイズを減らし、コンテナを安全に運用する方法をすばやく見つけられます。
開発者ファーストのコンテナセキュリティ
Snykは、コンテナイメージとKubernetesワークロードの脆弱性を検出し、自動的に修正します。


