Kubernetesネイティブのツールでアプリケーションの脆弱性を表示する
2019年11月19日
0 分で読めますSnyk Containerの新しいKubernetes機能を基盤に、脆弱性データをKubernetesエコシステムにさらに密接に統合する方法を試しています。Snykには充実したダッシュボードとレポート機能があり、セキュリティだけに注力する場合には最適です。しかし、Kubernetesでの作業中に別の画面へ切り替えたくない場合はどうでしょうか?Snyk Containerの豊富なAPIを使って、脆弱性情報をKubernetesにより近い場所で確認できるでしょうか?
kubectlと脆弱性CRD
Kubernetesを拡張する方法のひとつが、カスタムリソースです。これはKubernetesに新しいオブジェクトを追加し、Kubernetes APIを扱えるツールで操作できるようにする仕組みです。DeploymentやCronJobを管理するのと同じように、Kubernetesで新しいリソースを管理できます。カスタムリソース定義(CRD)を使って、脆弱性を記述してみましょう。
次のようにして、CRDが正しくインストールされたことを確認できます。
次に、SnykのデータをCRDに取り込む必要があります。Snyk Kubernetesインテグレーションは、クラスター内のワークロードを自動的にスキャンし、関連するイメージの脆弱性を特定します。この情報をSnyk APIから取得し、https://github.com/snyk-labs/ksnykにあるツールを使ってKubernetesに挿入できます。
情報を読み込んだら、任意のKubernetes APIクライアントを使って、名前空間で見つかった脆弱性を一覧表示できます。kubectlで確認してみましょう。
出力には、深刻度、影響を受けるワークロード、イメージ内で脆弱性を含むパッケージなど、脆弱性の概要が表示されます。脆弱性を1件指定して問い合わせれば、詳しい説明を含む、より詳細な情報を取得できます。
Octantのダッシュボードに脆弱性データを表示する
Octantは、VMwareが提供する新しいKubernetesダッシュボードです。リリースから間もないものの、すでにkubectl CLIの幅広い機能をカバーし、強力なプラグインモデルも備えています。
Snyk Octantプラグインのインストール手順と、Snyk APIから関連データをKubernetesに取り込む方法は、https://github.com/snyk-labs/ksnykで確認できます。このAPIを利用するには、Snyk Containerをご利用いただく必要があります。
以下のDeploymentダッシュボードをご覧ください。ステータス欄に脆弱性データが表示され、ワークロードに現在存在する深刻度が高・中・低の脆弱性の数を確認できます。

Octantはカスタムリソースの情報表示にも優れています。そのため、前述の脆弱性CRDをインストールすると、表示中の名前空間にある各ワークロードの脆弱性情報がOctantに表示されます。

このプロトタイプで確認できるのは、Octantで表示可能な情報のほんの一部です。Octantのプラグインエコシステムが今後どう成長するか、またKubernetes内の脆弱性データをほかのカスタムリソースとどう組み合わせられるかも楽しみです。
まとめ
前述のとおり、ここで紹介したのは完成した機能ではなく実験段階のものですが、早期のフィードバックをお待ちしています。Snyk Containerをご利用のお客様は、https://github.com/snyk-labs/ksnykのツールを使って今すぐお試しいただけます。これらのユーティリティは、Kubernetesプラットフォームの拡張性と、活用の基盤となるSnykの優れたAPIの威力を示しています。
開発者ファーストのコンテナセキュリティ
Snykは、コンテナイメージとKubernetesワークロードの脆弱性を検出し、自動的に修正します。
