Snowflakeのプロダクトセキュリティディレクターが教えるAppSecの7つのヒント
Brian Piper
2023年8月31日
0 分で読めます今年のAWS re:Inventで、SnykのフィールドCTOであるMic McCullyが、Snowflakeのプロダクトセキュリティディレクター、Jacob Salassiに話を聞きました。Snowflakeが、適切なプロセス、企業文化の変革、ツールパートナー(Snykを含む)の組み合わせによって、さまざまなセキュリティ課題をどう乗り越えたのかを語り合いました。Jacobとチームが効果的なアプリケーションセキュリティプログラムの実現に向けて確立した取り組みをご紹介します。
Snowflakeが確立したAppSecのベストプラクティス
規制対象企業として、機密データや政府機関を含む著名な顧客を扱うSnowflakeのチームは、アプリケーションの保護が必須であることを理解していました。しかし、それを実現するために、Jacobとチームは開発者の協力を得ることや、プロセスの一貫性を確立することなど、いくつかの課題を乗り越える必要がありました。AWS re:InventでMicと交わした会話の中で、JacobはSnowflakeのチームでの経験をもとに、こうした課題を克服するためのヒントをいくつか紹介しました。
共感から始める
何よりもまず、アプリケーションセキュリティプログラムには開発者の協力が欠かせません。アプリを誰よりもよく理解しているのは開発チームであり、開発サイクルの早い段階からセキュリティのベストプラクティスを取り入れられるからです。
開発者の協力を得るには、まず共感することが必要でした。開発の実態や、開発者が日々直面する機会と課題を理解することです。Jacobは次のように語っています。「私にとって常に大切だったのは、開発者の視点から[AppSec]に取り組むことです。」
フィードバックループを確立する
開発とセキュリティの連携を効果的なものにするため、Jacobのチームは対話のための場を意図的に設ける必要があると考えました。毎週の機会、アンケート、1対1のやり取り、コミュニティづくりなど、交流の機会を用意しました。Jacobはフィードバックに対するチームの姿勢について、こう説明しています。「耳を傾けたことを示す責任は、常に自分たちにあります。」
エンジニアリングの卓越性を重視する
Jacobのチームは、セキュリティチャンピオンプログラムの立ち上げも決めました。しかしその前に、開発者が何をできるのか、また何を別途担当すべきなのかについて、明確な基準を定めました。
Jacobはこう語ります。「私たちのアプローチでとても重要なのは、エンジニアリングの卓越性について話し、セキュリティについて話しすぎないことです。エンジニアリングの卓越性からセキュリティの領域に踏み込むとき、『これは開発者に頼むべきか、それともセキュリティエンジニアに任せるべきか』と考える必要があります。私たちが特に重視しているのは、『開発者にどこまで任せられるか。その境界はどこか』ということです。」
責任意識を高める
Jacobからのもう一つのヒントは、ファーストパーティおよびサードパーティのコードを保護するだけでなく、自分たちの業務におけるセキュリティ問題を修正できるよう、開発者を支援することです。その考えのもと、チームはInfrastructure as Code(IaC)のアプローチを推進し始めました。
Jacobはこう語ります。「開発者が自分のリポジトリにあるバグに責任を持つことは、誰もが理解していると思います。でも、サーバー上のバグにも開発者が責任を持つべきだと考える人はどれくらいいるでしょうか?私はそう考えます。セキュリティオペレーションや他のセキュリティエンジニアが、構築に関与していない本番サーバーを操作する状況を経験している方も多いでしょう。それが何なのかも、誰が構築したのかもわからないのに、本番環境で変更を加えたり、パッケージを変更したりしなければならない。だから私たちは、これらすべてをどうコード化するかを重視しています。」
対象を絞ったトレーニングを実施する
Jacobは、チームごとに定期的なトレーニングを実施する重要性についても触れました。「役割に応じたトレーニングを、状況に即した内容で行うべきです。どのチームにも同じスライドを見せれば大きな効果が得られる、とは考えないでください。」
セキュリティ体験全体を整える
Jacobのチームは、開発者がセキュリティ関連の作業をできるだけ簡単に完了できるよう、シームレスなセキュリティ体験の実現にも取り組みました。そのために、柔軟なベンダー戦略を採用し、ファーストパーティコード向けのSnykによるPR自動修正や、JIRAを使ったプロジェクト管理を取り入れました。
Jacobはこう語ります。「必要な情報がすべて目の前にあり、特定の問題を解決するために、作業中の場所や慣れ親しんだ環境を離れずに済むよう、多くの時間をかけています。」
記録を残す、残す、残す
最後にJacobは、今後の対話や意思決定に役立てるため、アプリケーションセキュリティに関するすべての活動を記録する重要性について述べました。「AppSecでうまくできていなかったと強く感じるのは、自分たちの成果物を保管してこなかったことです……これは、構造化して永続的に保存すべき貴重なデータです。」
SnykとSnowflakeが目標達成に向けて連携する方法
これらの目標の達成は容易ではありませんでした。そこでSnowflakeのプロダクトセキュリティチームは、アプリケーションセキュリティの取り組みにSnykを迎えました。Snykは、成功に向けて次のようなツールを提供しました。
開発者を第一に考え、既存の開発ワークフローに合わせて構築されたツール
開発者が使うCLIから、ファーストパーティおよびサードパーティコードの問題を修正
JIRAを含む、既存のツール群とのシームレスな連携
ベースイメージの依存関係とDockerfileのコマンドに潜む脆弱性を検出
SnowflakeとSnykのパートナーシップについて詳しく知るには、JacobとMicによるAWS re:Invent 2023での対談全編をご覧ください。




