【レポート】Snyk scans your code. Snyk runs your code too. (Snyk IaC ルールのカスタマイズ) #devio2022

2022.07.26

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは!AWS事業本部コンサルティング部のたかくに(@takakuni_)です。

この記事は2022年7月19日〜29日開催の技術カンファレンス「DevelopersIO 2022」のセッションレポートとなります。

動画はYoutube上で公開されていますので、詳細はそちらをチェックしてください。

また、2022年7月26日〜28日ではライブセッションも行なっています。

ご興味を持たれた方は、ぜひDevelopersIO 2022のサイトでお申し込み頂けると嬉しいです。

セッション概要

概要

インフラに詳しくない開発者もできる「Regoで記述したカスタムルール」をSnyk IaCでスキャンし、脆弱性を修正する方法をご紹介します。

スピーカー

Snyk株式会社 ソリューションエンジニア 相澤俊幸氏(Twitter:@ToshiAizawa

レポート

「開発者がセキュリティに携われるべきである」からスタート

従来のセキュリティツールは、運用、セキュリティ担当者向けの製品が多い傾向にある。

一方、Snykは開発者に使ってもらうための製品づくりに力を入れている。「開発者向け」と表現した通り、Snykでは開発に関わる様々なフェーズで活用できる製品であると相澤氏は言います。

最近よく耳にする「シフトレフト」の概念を取り入れた製品で、Snykは上流工程でも利用可能と述べています。

クラウドによるITのサービス化

昨今のクラウド時代のアプリケーション開発手法が大きく変わりました。

アプリケーション開発者は、アプリケーションコードと利用しているOSSライブラリまでを作業範囲として、出来上がったコードを運用担当者に引き渡す流れが一般的でした。

現在、アプリケーション開発者の作業範囲は大きく広がり、IaC(クラウドネットワーク設定)も作業範囲の一部となってきています。

そのため、「リポジトリ内にはアプリケーションコード、OSSライブラリ以外にもコンテナ、IaCコードも含まれるようになってきている」と相澤氏は言います。

Snykでは先ほどのコードを全てを1つのプラットフォームでスキャン、修正することができると述べています。

Snyk IaC

クラウドの脆弱性発生原因 第1位は「設定ミス」。

理由は、IaCのコードを書いている開発者が必ずしもインフラのスキル、経験があるわけではないため設定ミスが生じやすい。

悩みがある一方、コードでのデプロイ手法は素早くインフラ環境を構築できるメリットがあり、コードの脆弱性を迅速に見つけることができれば先ほどの弱点を解決できる。

Snykはそのような問題を解決するために有効であるという。

Snyk IaCでは、上流工程でコードを書きながらスキャン可能であるため脆弱性によりスピーディーに発見/修正できる。

Snyk IaCルールのカスタマイズ

さまざまなツール/サービス/製品には「カスタマイズ」のニーズがあり、IaCでも同じことが言えると述べています。

例としてSnyk IaCでは次のカスタマイズが行える

  • Severity(深刻度)の変更
    • 社内のセキュリティルールに従った深刻度の調整
  • 独自のルールを定義
    • ゴーストリソースの原因を排除するためにタグ付けを統制

Regoのコードを書く

セッションでは、「Rego」と言う言語を利用して、カスタムルールの実装を行なった。「Rego」は、ポリシー記述用の言語でJSONをI/Oとして扱いテストの判定を行う役割

カスタムルールとして今回は、TFファイル内のaws_s3_bucketに対してタグ付けを必須とするルールを作成する。

準備するもの

  • Snyk Infrastructure as Code SDK:ポリシー作成用のSDK
  • Snyk CLI:SDKを実行するためのCLI
  • The Rego Playground:Regoをブラウザ上で実行する環境

開発するもの

Test Driven Development」に基づいて次の開発を行う

  • 適切なTFファイル
  • 不適切なTFファイル
  • カスタムルールを定義したmain.regoファイル
  • テスト用のmain_test.regoファイル

まとめ

「Customizing Snyk IaC rules」をテーマにSnyk IaCのストーリー/機能を説明。

次のデモを行い、カスタムルールを「Test Driven Development」に基づいて作成しました。

  • カスタムルールをRegoで記述
  • Snyk IaCスキャン

Next Step

  • OPA & Regoの入門書を紹介(Zenn Booksで作成された日本語の入門書)
  • Snyk IaCを触ってみる

Snyk IaCの第一歩として、snyk.ioよりフリープランにサインアップできます。まずはここからお試しいただければと思います。

Customizing Snyk IaC rules!

全体を通して

本セッションでは、Snyk IaCのストーリーやカスタマイズについて触れるセッションでした。(話し方がとても上手で内容がすんなり入ってきました。見習いたい...)

ぜひ私もカスタマイズルールでオリジナルのセキュリティルールを作ってみようと思います。

以上、AWS事業本部コンサルティング部のたかくに(@takakuni_)でした!