Snyk in 30: 開発者ファーストのセキュリティデモキャスト
2023年3月2日
0 分で読めます最新のSnyk in 30デモキャストでは、IDEでの作業から始め、クラウドにデプロイされた稼働中のアプリに至るまで、アプリ開発の流れを実演しました。その過程で、実際の開発者が使うツールにSnykがどのように組み込まれるかをご紹介しました。具体的には、実際の開発やクラウド環境にSnykを導入する際の実践的な側面に焦点を当て、次のような疑問にお答えしました。
開発者にとって、セキュリティをできるだけ簡単にするにはどうすればよいでしょうか?
重複したアラートや不要なノイズを発生させずに、Snykのツールを連携して使うにはどうすればよいでしょうか?
開発者とセキュリティチーム、それぞれの視点から見るとSnykはどのようなものでしょうか?
セキュリティは開発者ファーストであるべき
「魚のいるところで釣る」という古いビジネスの格言は、顧客がいる場所に行くことの大切さを教えてくれます。開発者が問題を見つけて修正できるよう支援するセキュリティチームなら、開発者がいる場所、つまりツールやワークフローの中で支援しましょう。また、実際の行動につながる有益な情報を提供することも重要です。
現代的なアプリを扱う場合、これは特有の課題です。多くの場合、アプリのあらゆる要素がコードで定義されています。ビルドやテストの手順、設計された実行方法、必要なインフラまで、すべてがコード化されています。これによりデプロイは高速化し、再現性と耐障害性も高まりますが、ソフトウェアサプライチェーンは数十年前よりもはるかに複雑で、変化の速いものになっています。
こうした要素が重なることで、すでに多忙な開発チームにも受け入れられ、実践してもらえる方法で、動き続けるあらゆる要素を保護するという大きな課題にセキュリティチームは直面します。そこで登場するのが開発者ファーストのセキュリティです。開発者に日々のワークフローや環境から離れるよう求めるのではなく、開発者ファーストのセキュリティツールは、コードからクラウドまでのパイプライン全体で、開発者がその場でセキュリティの問題を修正できるよう支援します。「魚のいるところで釣る」というわけです。
AppSecセキュリティが全体的なセキュリティをどのように強化するかについては、こちらをご覧ください。
Snykでは、開発チームがセキュリティツールを簡単に利用できるようにすることを重視してきました。開発者がプロジェクトで作業しながら、つまりIDEでコードを書いてアプリを設計し、コードをコミットしてリポジトリに保存し、変更をメインブランチにマージし、さらにパイプラインやクラウドへ進める中で、セキュリティの問題を見つけて修正できるよう支援します。今回のSnykデモキャストでは、各ステップについて次の内容を取り上げました。
開発中のコードを保護する
セキュリティ上の問題を見つけて修正するのに、最も効率的でコストを抑えられるのは、問題が入り込んだその瞬間です。開発者が実際にコーディングし、利用するサードパーティパッケージを選んでいる間なら、変更も簡単です。コードが目の前にあるうちに問題を修正できるよう支援することが重要です。
Snykの静的アプリケーションセキュリティテスト(SAST)ツールがIDE内でどのように機能するかを実演しました。数秒でコードをスキャンするため、開発者は作業のペースを落とさずに済みます。また、検出された脆弱性ごとの修正ガイダンスと情報をIDEに同期するので、開発者はセキュリティ上の問題がどのように入り込んだのか、コード内でどのように伝播するのか、どう修正すればよいのかを把握できます。
開発者ファーストのサードパーティ依存関係スキャン
自社コードをチェックする際、サードパーティの依存関係も保護できます。Snykのソフトウェア構成分析(SCA)ツールは、アプリで使われているサードパーティパッケージと、その推移的依存関係を網羅したグラフを作成し、安全でないコンポーネントを特定します。開発者が追加したパッケージでも、依存関係の依存先でも、Snykは脆弱性を修正するために変更すべき箇所を開発者に示します。パッケージを追加する際には、開発者はアドバイザースコアも確認できます。このスコアは、現時点で脆弱性がなくても、将来的にパッケージが安全でなくなる可能性を示す要素を評価します。コンポーネントのコミュニティの規模や人気などをもとにスコアを算出するため、オープンソースパッケージが長期的にアプリに適しているかを予測するうえで役立ちます。
デモキャストでは、主にIDE内のアプリコードに焦点を当てました。Snykは、リアルタイムの開発中にKubernetes YAML、IaC構成、コンテナもスキャンし、同様に開発者を重視した修正アドバイスを提供できます。
パイプラインでセキュリティを自動化する
コードが完成すると、コミットしてリポジトリにプッシュし、マージの準備が整います。SnykはGitHub、GitLab、Bitbucketなどのコードリポジトリと連携します。これにより、セキュリティをさらに強化できるだけでなく、積極的に開発されていないコードも監視し、新たなゼロデイ脆弱性を検出できます。また、Snykはわかりやすく、実行につなげやすいスキャンのひとつであるPRチェックも提供します。開発者が誤って安全でないコンポーネントを保存してコミットした場合、プルリクエストの段階でツールが警告します。リポジトリを連携するとこれらのチェックは自動で設定されるため、開発チーム側での作業は不要です。さらに、コードの変更もチェックし、新たな脆弱性が入り込んでいないか確認します。こうした組み込みのチェックにより、新しい変更が新たな問題を引き起こすのを防ぎます。
リポジトリと連携することで、PRを作成して問題をすばやく修正することもできます。単一の脆弱性から複数の脆弱性まで修正でき、修正PRで古くなったコンポーネントをアップグレードすることも可能です。チームがテスト手順に確信を持てる場合は、これらの修正を完全に自動化できます。
コンテナセキュリティとノイズの問題
コンテナは現在、アプリをパッケージ化して実行する方法として広く使われています。高速で、「自分のマシンでは動くのに」という問題を避けられる一方、セキュリティスキャンではノイズが問題になることがあります。「魚のいるところで釣る」のは有効ですが、湖に90キロの岩を投げ込めば、魚は逃げてしまいます。Snykはコンテナのセキュリティチェックを実行し、このノイズの問題に対処します。
デモでは、アプリの一般的なコンテナスキャン結果として、700件以上の脆弱性が列挙される様子をお見せしました。次に、開発者がすべての脆弱性を確認しなくても取れる対策をSnykがどのように提案するかを実演しました。まず、ビルドのベースとなる親イメージ(ベースイメージ)の選び方を紹介しました。Snykの推奨に従い、開発者がDockerfileを1か所変更して、より適切な親イメージを選ぶだけで、何百もの問題を解消できることを確認しました。
次に、多くの企業が採用する別のビルドプロセスを見ていきました。プラットフォームやDevOpsを担当する中央チームが、開発者に使ってもらいたい社内の「ゴールデン」ベースイメージを選定する方法です。デモでは、Snykが開発者にこうしたゴールデンイメージの使用を促し、親イメージに起因するノイズではなく、コンテナに追加される可能性のある脆弱性に集中できるよう支援する様子を紹介しました。
開発者ファーストのデプロイメントセキュリティ
クラウドインフラストラクチャツールを使えば、開発者はクラウド構成も安全であると確認できます。先ほど触れたように、これらのスキャンはIDEで実行できます。デモではSnyk CLIを使ってTerraformの構成をスキャンしました。ここでもIaCスキャンはノイズが多くなりがちです。構成ファイルだけをスキャンすると、最悪のケースを想定して、考えられるすべての問題が表示されます。しかし、IaCスキャンに稼働中のクラウド環境のコンテキストを組み合わせると、状況は変わります。デモでは、AWS S3ストレージバケットを使うアプリを確認しました。IaCだけをスキャンしたところ、S3バケットのセキュリティ設定が適切でないという警告が4件表示されました。しかし、稼働中のクラウド環境には、これらの安全でない設定を無視する一元管理ポリシーがあり、すべてのS3バケットが安全であることが保証されていました。この場合、SnykはIaCスキャンにクラウドのコンテキストを組み合わせて、意味のないアラートを排除し、より重要な設定ミスに焦点を当てました。また、SnykはクラウドとIaCを統合するため、セキュリティチームはデプロイ環境全体をカバーする統一ポリシーエンジンをひとつ管理するだけで済みます。
Snykはセキュリティチームのためにも構築されています!
Snykの開発者ファーストの側面を中心にご紹介しましたが、このデモキャストでは、セキュリティチームがツールをどう活用するかも取り上げました。Snykは、すべてのアプリとコードにわたる脆弱性を一元的に可視化し、レポートを提供します。セキュリティチームは、クラウドやコードの問題の詳細を確認し、コンプライアンスフレームワーク、環境、個別の問題ごとに掘り下げて調査できます。そのうえで、役立つレポートビューを保存し、エクスポートしたりリンクで共有したりできます。
Snyk in 30デモキャストを見て、詳細を確認しましょう
これらのツールが実際に動く様子をご覧になりたい方は、Snyk in 30デモキャストの全編をご覧ください。さらに、上記の内容に加えて、参加者からプレゼンテーションの質疑応答でいくつもの興味深い質問が寄せられました。ウェブキャストの最後には、次の内容を取り上げました。
お客様のコードを扱う際のSnyk社内のセキュリティ対策
動的アプリケーションセキュリティテスト(DAST)に関するパートナーシップの詳細
開発環境との連携に関する技術的な詳細
開発者ファーストのプラットフォームについて詳しく知り、この質疑応答の内容をさらに掘り下げたい方は、プレゼンテーションをこちらからご覧ください。
CTFを始めよう
オンデマンドのバーチャル入門ワークショップで、CTFチャレンジの解き方を学びましょう。



