In this article
DevSecOpsを始めるための5つの重要な学び
Gerald Crescione
開発者やセキュリティ専門家を目指す人にとって、開発ワークフローにセキュリティを組み込む道のりは、困難に感じられるかもしれません。DevSecOpsの始め方をテーマにしたDevSecConの最近のコミュニティコールで、DevSecConコミュニティのセキュリティ専門家であるSonya Moisset(Staff Security Advocate)、Hung Ngo(Cyber Security Specialist)、Vladimir Mikhalev(DevOps Engineer)が、この重要な分野に取り組むための実践的なアドバイスや具体的な手順、知見を共有しました。ここでは、コールから得られた5つの重要なポイントを紹介します。DevSecOpsを始める方法のHow to Get Started in DevSecOps

1. DevSecOpsを理解する:包括的なアプローチ
DevSecOpsは単なる流行語ではありません。ソフトウェア開発ライフサイクル(SDLC)のあらゆる段階にセキュリティをシームレスに組み込む、変革をもたらす考え方です。セキュリティを妨げるものではなく、推進力へと転換することで、事前対策型かつ継続的なセキュリティを実現します。
DevSecOpsの基盤となる主な原則は次のとおりです。
セキュリティのコード化:セキュリティ制御とポリシーをCI/CDパイプラインに直接組み込みます。たとえば、ビルドプロセスで脆弱性スキャンを自動化すれば、問題を早期に検出して対処できます。
シフトレフト:開発プロセスの早い段階にセキュリティを取り入れることで、デプロイ前に脆弱性を特定できます。
自動化とツール:SCA(ソフトウェア構成分析)、SAST(静的アプリケーションセキュリティテスト)、DAST(動的アプリケーションセキュリティテスト)などのツールは、手作業を減らし、開発者にすぐフィードバックを提供するため、より迅速な修正につながります。
コラボレーションと責任の共有:開発者、セキュリティチーム、運用チームが連携すれば、セキュリティは外部の機能ではなく、ワークフローの一部としてシームレスに組み込まれます。そのために、チーム横断の定期的な打ち合わせや、オープンなコミュニケーションの場を設けましょう。
継続的なモニタリングとフィードバック:オブザーバビリティとランタイムセキュリティは、デプロイ後も含め、脅威をリアルタイムに検出して対応するうえで欠かせません。ログやテレメトリのプラットフォームを活用すれば、潜在的な脆弱性に関する貴重な知見を得られます。
2. 自分の道筋を描く:登壇者のDevSecOpsへの歩み
登壇者はDevSecOpsに至るまでの道のりを共有し、これから始める人に向けて実践的なアドバイスを提供しました。共通して語られたのは、コミュニティと実践的な学びの大切さです。それぞれの経験から得られた主なポイントを紹介します。
コミュニティに参加する:専門家のグループやフォーラムに参加することで、貴重なネットワーキングや学習の機会を得られます。OWASPやDevSecConなどのコミュニティで、同じ志を持つ専門家とつながりましょう。
メンターを探す:歩みを支えてくれるメンターを見つけることは、とても有益です。メンターは助言をくれるだけでなく、新たな機会への扉も開いてくれます。
資格を取得する:資格、特にイベントへの参加を必要としない資格は、この分野への意欲を示し、採用担当者の目に留まるきっかけにもなります。
質問する:セキュリティチームと積極的に関わり、セキュリティチャンピオンプログラムに参加することは、学び、成長するための優れた方法です。
知識を実践する:登壇者は、Snykなどのツールをプロジェクトに組み込んだり、ブログ記事やGitHubへの貢献を通じてスキルを示したりして、学んだことを実践する重要性を強調しました。
3. 何から始めるか:学習への着実な道筋
DevSecOpsを始めるのは大変に感じられるかもしれませんが、順序立てたステップに分ければ、無理なく取り組めます。始め方を紹介します。
まずは基礎から:一般的な脆弱性、コーディングの原則、OWASP Top 10を理解し、安全な基礎知識を身につけましょう。Snyk Learn、OWASP、Udemy、Courseraなどのオンライン学習プラットフォームでは、セキュリティの原則をしっかり学べる、初心者向けのコースを提供しています。『Bob and Alice Learn Cybersecurity』や『Open Source Software Security Handbook – Best Practices for Securing Your Projects』など、手に取りやすい書籍も優れた入門書です。
DevOpsの基礎:プログラミング、ネットワーク、Kubernetes、モニタリングツールに慣れることは、学習を進めるうえで欠かせません。こうした基礎を理解することで、開発と運用全体の中でセキュリティがどのように位置づけられるかが見えてきます。
実践型プラットフォーム:基礎知識を身につけたら、次は実践経験を積みましょう。TryHackMeやHack the Boxなどのプラットフォームを使い、シミュレーション環境でシステムのセキュリティ対策を練習できます。たとえば、登壇者の一人であるSonya Moissetが作成したTryHackMeのSnykルームでは、脆弱性の特定に特化したトレーニングを受けられます。
4. 組織でDevSecOpsを導入する
DevSecOps文化への移行には、慎重なアプローチが必要です。DevSecOpsの導入を検討しているチームや実践者にとって大切なのは、適切な文化を築き、小さく始めて段階的に拡大しながら、すべての関係者の賛同を得ることです。
意識と文化を育む:まず、セキュリティが重要であることをチームに伝えましょう。必要に応じて導入研修を実施し、全員が基本概念を理解できるようにします。登壇者全員が、持続可能なDevSecOpsの実践には文化の変革が欠かせないと強調しました。文化を変える方法はさまざまです。その一つがセキュリティチャンピオンプログラムの導入です。エンジニアリングチームの代表者が、セキュリティのベストプラクティスを推進できるようになります。また、脅威モデリングのカードゲームやCTF(キャプチャー・ザ・フラッグ)イベントなどのインタラクティブなツールを使った、ゲーム感覚のトレーニングも、楽しく意欲的に学ぶのに役立ちます。さらに、倫理的ハッキングのセッションを通じて、倫理的ハッキングの基本を紹介し、攻撃者の視点で考えるための基礎スキルを養うこともできます。
小さく始める:まずはツールを1つ、チームを1つ選びましょう。たとえば、すでにコラボレーションを重視しているチームに、Snyk Open SourceのようなSCAツールを導入します。フィードバックを集め、改善を重ねましょう。
開発者の参加:ソリューションが開発者のワークフローに合うよう、ツール選びに開発者を参加させましょう。開発者が普段使うIDEやCI/CDシステムで利用できるツールを組み込むことで、導入が促進されます。
成功を共有する:ランチ&ラーニング、デモ、社内事例の共有などを通じて成果を称えましょう。セキュリティ対策のプラスの効果を示せば、ほかのチームの意欲を高め、取り組みを後押しできます。
ニーズに合わせる:自社の技術スタックやビジネス目標に合うツールとプラクティスに注力しましょう。たとえば、オープンソースコンポーネントを多く利用する企業なら、SCAツールを優先するとよいでしょう。
コラボレーションを促進する:DevOpsチームとセキュリティチームの強い連携を築きましょう。チームビルディングなどの活動は、信頼と協力関係の構築に役立ちます。
5. DevSecOpsにおけるAIの影響
AI(人工知能)は、DevSecOpsにとって諸刃の剣です。開発を加速させる一方で、新たな課題も生み出します。
AI生成コード:AIを活用したコーディングアシスタントはコードをすばやく生成できますが、その速さにはリスクも伴います。デプロイ前に脆弱性を検出するには、セキュリティチェックの自動化が不可欠です。
攻撃対象領域の拡大:AIがコードやパイプラインを構成するツールに組み込まれるにつれて、サプライチェーン攻撃の可能性が高まります。こうしたリスクへの意識を高めることが重要です。
チームの教育:OWASP Top 10 for LLMsなどの新たな脅威や、AIと大規模言語モデル(LLM)の仕組みについてチームを教育しましょう。プロンプトエンジニアリング、安全なプロンプトの作成、プロンプトハッキングのリスクに対する意識向上も含まれます。
これらのステップを踏み、コラボレーションと継続的な学びの文化を育むことで、DevSecOpsへの取り組みを成功に導けます。もちろん、このテーマにはまだまだ多くの話題があります。さらに詳しく知り、コミュニティの専門家に質問したい方は、DevSecConコミュニティに参加しましょう。