Snykを活用してKubernetesの設定を安全に記述
2019年11月18日
0 分で読めます先週、Snyk Containerをリリースしました。そして本日、そのニュースに続くうれしいお知らせがあります。開発プロセスの一環として、Kubernetesの設定に関する問題を見つけて修正するための新機能をベータ版として公開します。
設定にまつわる課題
イメージセキュリティからワークロードセキュリティへのブログ記事でお伝えしたように、設定は次の2つの側面を持っています。
運用担当者の課題から、開発者の課題へと移りつつある
セキュリティ上の問題を招いたり、脆弱性を悪用されやすくしたりする可能性がある
一方で、この課題の解決を目的とするツールの多くは、現代の開発者のワークフローを考慮していません。本番環境で問題を検出できても、その修正はどうでしょうか。変更をデプロイする前に検出することはできるでしょうか。Kubernetesはその好例です。Kubernetesは強力ですが、その分、ある程度の複雑さを伴います。Kubernetes APIには多数のオブジェクトがあり、それぞれに多くのプロパティがあります。開発者がそのすべてをYAMLファイルで手作業で管理することも少なくありません。また、汎用プラットフォームであるKubernetesは、初期設定が最も安全な状態になっているとは限りません。セキュリティプロパティをすべて常に設定するのを忘れてしまうことも簡単です。
Snykで設定の問題を自動的に検出
Snykは、project.json、pom.xml、requirements.txtなどのパッケージマニフェストファイルを対象に開発を始めました。SnykはGitHubやGitLabなどのソース管理システムと連携し、マニフェストファイルを検出してアプリケーションのセキュリティ確保を支援します。本日公開する新しいベータ機能では、リポジトリ内のKubernetes設定ファイルも検出します。Kubernetes設定ファイルが見つかると、一般的な設定上の問題をスキャンし、その結果をSnykで確認できるようにします。

設定を一か所にまとめた単一のリポジトリを使っている場合も、複数のリポジトリに分散している場合も、コンテナがrootで実行されている、CPUやメモリの制限が設定されていない、ファイルシステムが書き込み可能になっているなどの問題をチェックできます。今後、チェック項目もさらに拡充していきます。
プルリクエストで問題を修正
検出した問題ごとに、状況や問題となる可能性がある理由をお知らせします。Snykの脆弱性と同様、特定の問題を無視することも、修正を追跡するためにJiraで課題を自動作成することもできます。また、他のシステムとの連携に利用できるよう、これらの問題はSnyk APIでも確認できます。

さらに重要なのは、明確かつ安全な解決方法がある問題について、修正まで支援したいと考えていることです。脆弱性の問題を開発者が修正できるよう支援するのと同様に、ソース管理システムと直接連携し、設定を修正するプルリクエストを作成します。これにより、設定を記述している段階で問題を発見できるだけでなく、プルリクエストをマージするだけで簡単に修正できます。マイクロサービス環境や拡大するチームで設定の規模が大きくなるなか、このレベルの自動化は、あれば便利というだけではありません。迅速に開発を進めながらセキュリティを維持するために欠かせないものです。
まとめ
本日、この機能を少数の希望者を対象にプライベートベータとして公開します。すべての方にご利用いただけるようにする前に、さらにフィードバックを集めたいと考えています。また、追加予定の機能も数多くあります。この機能を試してみたい方は、ベータ版にお申し込みください。
