ショートQ&A:5分間でわかるDevSecOps
以前のブログでDevSecOpsの意味と、開発チームのセキュリティのベストプラクティスについて説明しましたが、いくつかのの質問をいただいたので、ショートQ&Aを設けました。DevSecOpsが開発者にとって重要である理由と、開発者ワークフローへの適用方法についてわかりやすく説明します。
以前のブログでDevSecOpsの意味と、開発チームのセキュリティのベストプラクティスについて説明しましたが、いくつかのの質問をいただいたので、ショートQ&Aを設けました。DevSecOpsが開発者にとって重要である理由と、開発者ワークフローへの適用方法についてわかりやすく説明します。
ソフトウェアサプライチェーンとは、コードに組み込まれる、またはコードに影響するすべてのものです。サプライチェーンのセキュリティ侵害は現実に起きており、依然としてレアケースではありますが、発生頻度は高くなっています。そのため、サプライチェーンを保護するために最も重要なのは、脆弱性にパッチを適用することです。ソフトウェアサプライチェーンを効果的にセキュリティ保護するために、環境の依存関係を理解し、その依存関係における脆弱性を知り、それらにパッチを適用する必要があります。GitHubネイティブのSCA機能を有効にすることで、依存グラフ、Dependabotアラート、Dependabotセキュリティおよびバージョンアップデートにより、依存関係の管理とパッチ適用の面倒な作業を自動化できます。
Code Scanningでは、どの段階でも開発者のエクスペリエンスが優先されます。その中核にある静的分析エンジン(CoreQL)は高速でパワフルなので、実際のセキュリティの問題をノイズなく検出できます。このエンジンで実行されるクエリは正確かつ構成可能であるうえに、オープンソースコミュニティが常に改良を加えています。結果は、詳細の説明や修正案とともに、インラインのPull Requestコメントに表示されます。すべての構成は、GitHub Actionsのワークフローファイルでコードとして行われます。GitHub.comだけでなく、オプレミス版のGitHub Enterprise Server 3.0でもCode Scanningが使えるようになりました。ぜひ、お試しください。
DevSecOpsは、DevOpsのコンセプトをセキュリティにも適応し、セキュリティプラクティスを開発ライフサイクルの一部として認識して継続的に適用し、その責任をチーム全体で共有するという、考え方の転換です。DevOpsとDevSecOpsの違いは、DevOpsでは、インフラストラクチャを管理していない場合であっても、すべての人がシステムダウンに対する責任を負います。DevSecOpsでは、ソフトウェアの開発に関与していない場合であっても、すべての人が脆弱性に対する責任を負います。
itHub ActionsとGitHub Advanced Securityを連携し、GitHub EnterpriseにネイティブにDevSecOpsを実装できます。本ブログでは、OWASPのDevSecOps成熟度モデル(DSOMM)を参照しつつ、開発ワークフロー内でソフトウェア構成分析(SCA)、静的アプリケーションセキュリティテスト(SAST)、動的アプリケーションセキュリティテスト(DAST)、さらにGitHubのネイティブ機能であるシークレットスキャンを実行することで、レベル1の成熟度を達成する方法を説明します。
よりセキュアなコードのリリースは、開発者を中心に考え、開発の初期段階からセキュリティの問題を解決するワークフローが重要です。本ブログでは、ワークフローのすべてのステップでセキュリティを組み込む方法について検討します。この投稿では、GitHubの依存関係グラフを支えているものについて、GitHubのサプライチェーンセキュリティ製品管理者であるMaya Kaczorowskiが詳しく説明します。
よりセキュアなコードのリリースは、開発の最終段階でセキュリティチェックを行うのではなく、初期段階から対策を行える開発プロセスを構築することと、開発者がセキュリティの修正を行いやすい環境を整えることが重要です。本ブログでは、GitHubのセキュリティ担当プロダクトマネージャーのMaya Kaczorowskiが依存関係について詳しく説明し、依存関係を最新の状態に保つべき理由と、最も重要なときに迅速かつ確実にパッチを適用できるようにする方法を説明します。
今日のソフトウェア開発はオープンソースなくして進めることは不可能に近い一方で、多くの企業がオープンソースやオープンソースの依存関係に関するセキュリティ対策を難しいと感じています。オープンソースのCVEの管理、オープンソースソフトウェア(OSS)ライセンスの遵守、または使用中の依存関係バージョンの追跡を行うだけで、多くの時間を浪費するだけでなく、セキュリティチームが脆弱なOSSコードのリスクを手動で管理しなければならないこともあります。
GitHubの依存関係インサイトなら、オープンソースの依存関係の概要をひと目で把握でき、こうした課題を解決することができます。
GitHub Enterpriseのセキュリティ機能を活用することで開発環境におけるセキュリティレベルを上げることが可能ですが、システムだけでセキュリティを担保することはできません。
各企業において、公共の場所ではパソコンのスクリーンにカバーをして画面の閲覧ができないようにする、ソースコードを許可なく持ち出したり、外部サイトに投稿しないようにするなど、ソフトウェア開発部門のセキュリティトレーニングの実施を行い、意図しない情報漏えいを防ぐことも必要です。