Snyk CLIでARMテンプレートの設定ミスをスキャン
Lauren Place
2021年11月10日
0 分で読めます大規模なアプリケーションリソースの管理は、簡単ではありません。そのため、多くのDevOpsチームやAppSecチームは、リソースのデプロイ、管理、アクセス制御の維持に個別のスクリプトを書くのではなく、宣言型フレームワークを利用しています。
Azure環境では、Azure Resource Manager(ARM)が管理レイヤーとして機能し、宣言型のARMテンプレートを通じてInfrastructure as Code(IaC)を管理できます。これにより、Azureリソースの管理、デプロイ、セキュリティを一元化できます。ARMの人気は年々高まっています。最新のクラウドネイティブアプリケーションセキュリティの現状レポートでは、30%を超えるチームが、IaCツールとしてAzure Resource Managerを利用していると回答しました。
ARMの人気が非常に高まるなか、Snyk Infrastructure as Code(Snyk IaC)を使ってARM JSONファイルの設定ミスを検出し、修正できるようになりました。ソフトウェア開発ライフサイクルの早い段階で問題を修正すれば、セキュリティチームも開発チームも、時間のかかる手作業のコードレビューや、開発プロセスのかなり後になってから脆弱性を修正する手間を省けます。
Snyk IaCとARMを使ったワークフローの例を見ていきましょう。
Snyk CLIでARMテンプレートをスキャンする
テスト用に、JSON形式とBicep形式のARMテンプレートファイルを含むサンプルリポジトリを用意しました。リポジトリをクローンし、Snyk CLIでARMファイルをテストできます。
Snyk CLIを使い始めるには、無料アカウントを作成し、npmでSnyk CLIをインストールしてください。Node.jsがローカルにインストールされている場合は、次のコマンドを実行します。npm install snyk@latest -g
Yarnを使用している場合:yarn global add snyk

ARM Bicepファイルの設定ミスを検出する
Bicepは、宣言型構文でAzureリソースをデプロイするドメイン固有言語(DSL)です。簡潔な構文、信頼性の高い型安全性、コードの再利用をサポートします。ARM JSONファイルのスキャンに加えて、Bicep CLIを使ってJSONに変換すれば、Bicepファイルもスキャンできます。
まず、Bicep CLIがインストールされていることを確認し、az bicep build -f {file_name}.bicepコマンドを使って、Bicep形式のARM設定ファイルをJSONに変換します。変換後は、他のARM JSONファイルと同じようにスキャンできます。

Snykの設定セキュリティルールを活用する
もちろん、IaCスキャン機能だけでは十分ではありません。リソースのデプロイ前に包括的なセキュリティフィードバックを得て、設定ミスを検出するには、セキュリティルールの深さと範囲が重要です。Snykの専任Security Engineeringチームが調査と検証を行い、新しいルールを追加しています。Azure環境を保護するルールは100以上あり、現在も増え続けています。
Security Engineeringチームは、既知のベストプラクティスと独自の調査を組み合わせ、新たなルールを継続的に追加しています。ベストプラクティスは、CISベンチマークなどのクラウドプロバイダーやコミュニティの標準、Azureのベストプラクティスに基づいています。セキュリティ調査では、主要な利用パターンに脅威モデリング手法を適用しています。たとえば、マネージドKubernetesサービスの設定を調査し、IaCの適切な強化によって回避できる弱点を特定します。
Snyk IaCのルールを確認するには、Snyk組織のSettingsに移動し、左側のメニューからInfrastructure as Codeを選択してください。Azureのルールだけに絞り込む場合は、Severity settingsの下にあるタブでAzureを選択します。ルールは特定の形式に依存しないように作成しているため、ほとんどのルールはどの切り替え項目を選んでも表示されます。

Security Rulesセクションでは、ARMセキュリティルールの全リストも公開しています。

Snyk IaCでARMの設定ミスを防ぐ
これらの新機能は、Snykの無料プランをご利用の方を含め、どなたでも利用できます。簡単な手順で始められます。
snyk.ioアカウントにログインするか、無料で登録してください。
Snyk CLIが最新バージョン(v.CLI 1.749.0)であることを確認するか、Snyk CLIをインストールしてください。
ARMファイルをスキャンします。次の基本コマンドでIaCのスキャンを開始できます。
snyk iac test <path-to-file-or-folder>
サポートされている各種スキャンオプションの詳細は、Snykのドキュメントをご覧ください。または、次のコマンドを実行してCLIのドキュメントを確認できます。snyk iac --help
Snyk CLIのARMサポートに関するご意見をお聞かせください。コメントやフィードバックはSnyk Communityフォーラムにお寄せください。
ソースコードの段階からインフラを保護
Snykはワークフロー内のIaCセキュリティとコンプライアンスを自動化し、構成ドリフトや不足しているリソースを検出します。



