Awesome Devsecops
Devsecopsを扱う資料や関連プロジェクトをまとめたAwesomeリストです。
目次
資料
記事
- Our Approach to Employee Security Training - Pager Duty - 企業内でのセキュリティトレーニングを実施するためのガイドライン
- DevSecOps: Making Security Central To Your DevOps Pipeline - Spacelift - 記事でDevSecOpsが達成しようとする目的、その利点、およびDevSecOpsのライフサイクルについて説明
書籍
- Alice and Bob Learn Application Security - セキュア開発を体系的に学ぶための書籍です。
コミュニティ
- DevSecCon - Snyk - DevSecOpsに特化したカンファレンス、ブログ、ポッドキャスト、Discordが運営されているコミュニティ
- TAG Security - Cloud Native Computing Foundation - TAG Securityは、クラウドネイティブエコシステムにおけるオペレーター、管理者、開発者、最終ユーザーのための安全なアクセス、ポリシー制御、安全性を実現するリソースの発見と開発を促進する協力活動を支援
カンファレンス
- AppSec Day - OWASP - OWASPが主催するオーストラリアのアプリケーションセキュリティカンファレンス
- DevSecCon - Snyk - Snykが運営するDevSecOpsカンファレンスのネットワーク
ニュースレター
- Shift Security Left - セキュア開発に関する定期刊行物です。
ポッドキャスト
- Absolute AppSec - Seth Law & Ken Johnson - アプリケーションセキュリの現状や特定のテーマに関するディスカッション
- Application Security Podcast - Security Journey - 行業の専門家にインタビューを行い、特定のアプリケーションセキュリティコンセプトについて解説
- BeerSecOps - Aqua Security - Dev、Sec、Opsの壁を崩し、これらの分野をカバーするテーマについて議論
- DevSecOps Podcast Series - OWASP - テクノロジーのリーダーや実務家とのディスカッションを通じて、開発ライフサイクルにセキュリティを統合
- The Secure Developer - Snyk - ソフトウェア開発者向けのセキュリティツールとベストプラクティスについてのディスカッション
セキュア開発ガイドライン
- Application Security Verification Standard - OWASP - 開発者に安全なウェブアプリケーションを設計・開発するためのセキュリティ要件とコントロールのフレームワーク
- Coding Standards - CERT - C、C++、JavaおよびAndroid開発向けの安全な開発基準のコレクション
- Fundamental Practices for Secure Software Development - SAFECode - SDLCの各段階で実施すべき重要な安全な開発実践に関するガイドライン
- Proactive Controls - OWASP - OWASPがすべてのソフトウェア開発プロジェクトに導入すべきトップ10セキュリティ対策リスト
- Secure Coding Guidelines - Mozilla - 安全なウェブアプリケーション開発に必要な具体的な安全開発基準を含むガイドライン
- Secure Coding Practices Quick Reference Guide - OWASP - 安全な開発基準が遵守されているかを確認するためのチェックリスト
セキュア開発ライフサイクルのフレームワーク
- Building Security In Maturity Model (BSIMM) - Synopsys - トップのソフトウェアセキュリティプロジェクトから得られたデータを観察・分析した結果に基づくソフトウェアセキュリティフレームワーク
- Secure Development Lifecycle - Microsoft - 安全な開発ライフサイクルを構成するツールと実務のコレクション
- Secure Software Development Framework - NIST - 安全な開発ライフサイクルに必要な実践、タスク、実装例を含むフレームワーク
- Software Assurance Maturity Model - OWASP - セキュアな開発ライフサイクルの成熟度を測定・改善するためのフレームワーク。
ツールチェーン
- Cloud Security and DevSecOps Best Practices and Securing Web Application Technologies (SWAT) Checklist - SANS - ウェブアプリケーションセキュリティ技術(SWAT)チェックリスト、SANSクラウドセキュリティカリキュラム、クラウドセキュリ及トップ10、トップ12Kubernetes脅威、セキュアなDevOpsツールチェーンを含むポスター。
- Periodic Table of DevOps Tools - XebiaLabs - ツール機能によって分類されたDevSecOpsツールのコレクション。
トレーニング
- Application Security Education - Duo Security - Duoアプリケーションセキュリティチームが作成したトレーニング資料。初級および高度なトレーニングプレゼンテーションと実践型ラボを含む。
- Cybrary - Cybrary - サブスクリプション型オンラインコースで、セキュリティとDevSecOpsに特化したカテゴリを提供。
- PentesterLab - PentesterLab - シンプルかつ高度なウェブ脆弱性を理解・悪用するための実践型ラボ。
- Practical DevSecOps - Practical DevSecOps - 行業の専門家が提供するDevSecOpsの概念・ツール・技術を学び、最先端のブラウザベースの実践ラボを用いたDevSecOpsを体験。
- SafeStack - SafeStack - ソフトウェア開発チーム向けのセキュリティトレーニング。個人や小規模チーム、大規模組織まで対応可能な設計。
- Secure Code Warrior - Secure Code Warrior - ゲーム化された実践型セキュア開発トレーニング。コース、評価、トーナメントに対応。
- SecureFlag - OWASP - 開発者およびビルド/リリースエンジニア向けの実践的なセキュアコーディングトレーニング。
- Security Training for Engineers - Pager Duty - PagerDutyが作成・オープンソース化したプレゼンテーション。ソフトウェアエンジニア向けのセキュリティトレーニングを提供。
- Security Training for Everyone - Pager Duty - PagerDutyが作成・オープンソース化したプレゼンテンション。従業員向けのセキュリティトレーニングを提供。
- Semgrep Academy - Semgrep - APIセキュリティ、セキュアコーディング、アプリケーションセキュリティなどに関する無料で即時提供可能なコース。
- Web Security Academy - PortSwigger - 一般的なウェブ脆弱性を学習・悪用するための資料とラボセット。
- WeHackPuple - WeHackPurple - アプリケーションセキュリティ理論と実践的な技術講座を教えるオンラインコース。
Wiki
- DevSecOps Hub - Snyk - DevSecOpsの重要な概念、プロセス、技術についての紹介。
- SecureFlag Knowledge Base - OWASP - ソフトウェア脆弱性に関する情報とそれらを防止する方法についてのリポジトリ。
ツール
依存関係管理
オープンソースパッケージは開発を速める一方、既知の脆弱性も取り込み得ます。依存関係管理ツールは、脆弱なパッケージの特定と更新を支援します。
- Deepfence ThreatMapper - Apache v2, Kubernetes、仮想マシン、サーバレス環境向けの強力なランタイム脆弱性スキャナー。
- Dependabot - GitHub - GitHubリポジトリに自動的に脆弱性をスキャンし、修正済みの依存関係をマージするためのプルリクエストを作成。
- Dependency-Check - OWASP - CLIまたはビルドサーバープラグインを使用して、公開された脆弱性を検出するための依存関係スキャン。
- Dependency-Track - OWASP - 多くのプロジェクトにおける、脆弱性のある依存関係の量と深刻度を時間軸で監視する。
- JFrog XRay - JFrog - JFrog Artifactory に保存されたアーティファクトに対するセキュリティおよびコンプライアンス分析。
- NPM Audit - NPM - npm CLI に組み込まれた Node.js パッケージに対する脆弱性パッケージの審査。
- Renovate - WhiteSource - CLI または Git リポジトリアプリを使用して、複数のフレームワークおよび言語のソフトウェア依存関係を自動的に監視・更新。
- Requires.io - Olivier Mansion & Alexis Tabary - Python プロジェクトにおける脆弱性のある依存関係の自動監視およびアップグレード。
- Snyk Open Source - Snyk - Snyk の専用脆弱性データベースを用いて、脆弱性のある依存関係の自動監視およびアップグレード。
動的解析
動的解析セキュリティテスト(DAST)は、実行中のアプリケーションへスキャナーが接続し、攻撃を模倣してXSS、SQLインジェクション、CSRF、情報漏えいなどを検出するブラックボックス試験です。
- Automatic API Attack Tool - Imperva - API スペックに基づいてAPIに対して自動的なセキュリティスキャンを実行。
- BurpSuite Enterprise Edition - PortSwigger - ペンテストに広く使用されているBurpSuiteのウェブアプリケーション脆弱性スキャナーに、CI/CD統合および複数ウェブアプリケーションに対する継続的な監視を追加。
- Gauntlt - Gauntlt - Gherkin構文で定義されたセキュリティツールとテスト出力を使って、セキュリティスキャンを実行するための行動駆動開発フレームワーク。
- Netz - Spectral - zgrab2などを使って、インターネット全体の誤設定を発見。
- RESTler - Microsoft - 論文を検証した研究に基づく状態を保持するRESTフルAPIスキャナー。
- SSL Labs Scan - SSL Labs - SSL / TLS設定に関する問題を自動スキャン。
- Zed Attack Proxy (ZAP) - OWASP - オープンソースのウェブアプリケーション脆弱性スキャナーで、CI/及CD統合用APIを含む。
Infrastructure as Code解析
Infrastructure as Codeは一貫した環境への配備を可能にします。その定義を静的・動的に解析することで、脆弱な依存関係、ハードコードされたシークレット、安全でない設定、意図しないセキュリティ変更を検出できます。
複数プラットフォーム
- Checkov - Bridgecrew - Terraform、AWS CloudFormationおよびKubernetesテンプレートにおける不適切な設定をスキャン。
- KICS - Checkmarx - 開発サイクルの初期段階でセキュリティ脆弱性、コンプライアンス問題、インフラミス設定を検出。
- Spectral DeepConfig - Spectral - コミット時点からインフラおよびアプリケーションの誤設定を検出。
- Terrascan - Accurics - インフラコード(IaC)全体におけるコンプライアンスおよびセキュリティ違反を検出し、クラウドネイティブインフラのプロビジョニング前にリスクを軽減。
CloudFormation
- Cfn Nag - CloudFormation定義を検査するツールです。
コンテナー
- Clair - Red Hat - パブリックに公開された脆弱性を検出するアプリケーションコンテナおよびDockerコンテナのスキャン。
- Dagda - Elías Grande - DockerコンテナにインストールされたOSおよびソフトウェア依存関係のバージョンを、公開された脆弱性データベースと比較し、またウイルススキャンを実行。
- Docker-Bench-Security - Docker - Docker Bench for Securityは、生産環境におけるDockerコンテナのデプロイに必要な数十のベストプラクティスをチェックするスクリプト。
- Grype - Anchore - コンテナイメージおよびファイルシステム向けに統合しやすいオープンソースの脆弱性スキャンツール
- Hadolint - Hadolint - Dockerfileに対して既知のルールをチェックし、RUNステートメント内のbashコードを検証
- Snyk Container - Snyk - CI/CD中にまたは継続的な監視により、DockerおよびKubernetesアプリケーションのセキュリティ脆弱性をスキャン
- Trivy - Aqua Security - コンテナ向けにシンプルかつ包括的な脆弱性スキャナー
Terraform
- Regula - Fugue - 部署前にTerraformのインフラコードに潜在するセキュリティミス設定やコンプライアンス違反を評価
- Terraform Compliance - terraform-compliance - Terraformに対する軽量でセキュリティおよびコンプライアンスに焦点を当てたテストフレームワーク。インフラアスコードのネガティブテスト能力を可能にする
- Tfsec - Liam Galvin - Terraformテンプレートに対してセキュリ的ミス設定やAWS、Azure、GCPのセキュリティベストプラクティスに非対応を検出
Kubernetes
- Kubescape - Cloud Native Computing Foundation - IDE、CI/CDパイプライン、クラスタ向けのオープンソースKubernetesセキュリティプラットフォーム
- Kube-Score - Gustav Westling - Kubernetesオブジェクト定義に対してセキュリティおよびパフォーマンスミス設定を検出
- Kubectrl Kubesec - ControlPlane - kubesec.io向けのプラグインでKubernetesリソースのセキュリティリスク分析を行う
Ansible
- Ansible-Lint - Ansible構成を検査するツールです。
意図的に脆弱なアプリケーション
意図的に脆弱なアプリケーションは、セキュリティ試験が正しく失敗するかの確認、一般的な脆弱性の仕組みの理解、攻撃技術の練習に利用できます。
- Bad SSL - The Chromium Project - SSL/TLS設定が不十分な複数のウェブサーバーを含むコンテナ。ツールのテストに有用
- Cfngoat - Bridgecrew - AWSで意図的に不安全なサービスを構成するCloud Formationテンプレート。上記のCloud Formationインフラアスコード分析ツールのテストに最適
- CI/CD Goat - Cider Security - 意図的に脆弱なCI/CD環境。複数の課題を通じてCI/CDセキュリティを学習できる
- Damn Vulnerable Web App - Ryan Dewhurst - ワンウェイアプリケーションで、一般的なウェブ脆弱性を理解および悪用するための安全な環境を提供
- Juice Shop - OWASP - OWASPトップ10のセキュリティ脆弱性を含むウェブアプリケーション
- Kubernetes Goat - Madhu Akula - 意図的に脆弱なクラスタ環境。Kubernetesセキュリティを学習および実践できる
- NodeGoat - OWASP - Node.jsのウェブアプリケーションで、一般的なセキュリティ脆弱性の対応方法を示し、解決策を提供
- Pentest-Ground - Pentest-Tools.com - Pentest-Groundは、意図的に脆弱なウェブアプリケーションおよびネットワークサービスを備えた無料のプラットフォーム
- Terragoat - Bridgecrew - AWS、AzureおよびGCPで意図的に不安全なサービスを構成するTerraformテンプレート。上記のTerraformインフラアスコード分析ツールのテストに最適
- Vulnerable Web Apps Directory - OWASP - 学習目的の脆弱性のあるウェブアプリケーションのコレクション。
- WrongSecrets - OWASP - センスを用いた脆弱性アプリケーションと、その使用方法を示す例
監視
リリース前の試験と堅牢化だけでは不十分です。本番ソフトウェアの利用状況、性能、エラーを監視し、悪意ある挙動や対応すべき潜在的欠陥を捉える必要があります。
- Csper - Csper - コンテンツセキュリティポリシー(CSP)のツールセットで、ポリシーのテスト、CSP報告のモニタリング、メトリクスとアラートを提供
- Streamdal - Streamdal - アプリケーションコードにプライバシー制御を埋め込み、PIIがシステムに入り出ていく際に検出・監視し、意図しないデータベース、データストリーム、パイプラインに到達させない
シークレット管理
ソフトウェアはリソースへのアクセスにパスワード、APIキー、証明書、接続文字列を必要としますが、コードベースへの保存は危険です。シークレット管理ツールは安全な保存・アクセス・管理手段を提供します。
- Ansible Vault - Ansible - Ansibleパイプライン内でセクレットを安全に保管
- AWS Key Management Service (KMS) - Amazon AWS - AWS内で暗号化キーを作成・管理
- AWS Secrets Manager - Amazon AWS - AWS内でアプリケーションセクレットを安全に保管・取得可能に
- Azure Key Vault - Microsoft Azure - Azure内でセクレットを安全に保管
- BlackBox - StackExchange - コードリポジトリ内に認証情報の暗号化
- Chef Vault - Chef - Chef内でセクレ及を安全に保管
- CredStash - Fugue - AWS内でKMSとDynamoDBを使用して、セクレットを安全に保管
- CyberArk Application Access Manager - CyberArk - アプリケーション向けのセクレット管理ツール(セクレットの回転と監査を含む)
- Docker Secrets - Docker - Dockerスワーム内でセクレットの保管とアクセス管理
- Git Secrets - Amazon AWS - gitリポジトリをスキャンし、コードやコミットメッセージに含まれるセクレットを検出
- Gopass - Gopass - Gitとgpgを使用するチーム向けのパスワードマネージャー。暗号化されたファイルとリポジトリにセクレットを管理
- Google Cloud Key Management Service (KMS) - Google Cloud Platform - GCP内でセクレットを安全に保管
- HashiCorp Vault - HashiCorp - UI、CLI、またはHTTP APIを用いてセクレットを安全に保管
- Keyscope - Spectral - KeyscopeはRustで構築されたオープンソースのキーとセクレットのワークフローツール(検証、無効化など)
- Pinterest Knox - Pinterest - セクレットの安全な保管、回転、監査
- Secrets Operations (SOPS) - Mozilla - YAML、JSON、ENV、INI、BINARYファイルに保存されたキーを暗号化
- Teller - Spectral - 開発者向けのセクレット管理ツール - セクレットの操作はコマンドラインで行う
シークレットスキャン
非公開リポジトリであっても、ソース管理は認証情報、APIキー、トークンの安全な保管場所ではありません。スキャンによりコミット前の混入防止や、既存履歴からの検出・除去を支援できます。
- CredScan - Microsoft - Azure DevOps パイプライン内のタスクとして実行できる、認証情報のスキャンツール。
- Detect Secrets - Yelp - (驚くべきことに)コードベース内のシークレットを検出するための適切な名前のモジュール。
- GitGuardian - GitGuardian - 公開およびプライベートなGitリポジトリに存在するシークレットをスキャンおよびモニタリングするウェブベースのソリューション。
- Gitleaks - Zachary Rice - Gitleaksは、Gitリポジトリ内のハードコードされたシークレット(パスワード、APIキー、トークンなど)を検出するSASTツール。
- git-secrets - AWS Labs - コミット、コミットメッセージ、マージに含まれるシークレットをスキャン。AWSのシークレットパターンにネイティブ対応、他のパターンにも設定可能。
- Nightfall - Nightfall - GitHubリポジトリを含む複数のSDLCツールにおけるセンシティブデータの漏洩をモニタリングするウェブベースプラットフォーム。
- Repo-supervisor - Auth0 - CLI、Dockerコンテナ、またはAWS Lambdaで実行できるシークレ及スキャンツール。
- SpectralOps - Spectral - 自動化されたコードセキュリティ、シークレット、トークンおよびセンシティブデータのスキャン。
- truffleHog - Truffle Security - Gitリポジトリを検索し、コミット履歴やブランチに深く掘り下げてシークレットを検出。
静的解析
静的解析セキュリティテスト(SAST)は対象を実行せず、危険な関数、ハードコードされたシークレット、設定問題等を検出します。IDEプラグインやCLIとしてCI/CDへ統合されることがあります。
複数言語対応
- DevSkim - Microsoft - 多くのプログラミング言語向けにセキュリティ分析を提供するIDEプラグイン、CLIおよびその他のツールのセット。
- Graudit - Eldar Marcussen - カスタムまたは事前設定されたregexシグネチャを使ってソースコードをスキャンし、潜在的なセキュリティ脆弱性を検出。
- Hawkeye - Hawkeyesec - プロジェクトセキュリティ、脆弱性および一般的なリスクを強調するモジュール化されたCLIツール。
- LGTM - Semmle - カスタムまたは組み込みのCodeQLクエリを使ってコード内のセキュリティ脆弱性をスキャンおよびモニタリング。
- RIPS - RIPS Technologies - PHP、JavaおよびNode.jsプロジェクト向けの自動化された静的解析。
- SemGrep - r2c - Semgrepは、エディタ、コミット、CI時にバグを検出し、コード標準を強制する高速かつオープンソースの静的解析ツール。
- SonarLint - SonarSource - IDEプラグインで、潜在的なセキュリティ問題、コード品質問題およびバグを強調。
- SonarQube - SonarSource - 多様な言語に対応したコードのセキュリティおよび品質問題をスキャン。
C / C++
- FlawFinder - C/C++コードのセキュリティ問題を解析するツールです。
C#
- Puma Scan - C#コードのセキュリティ問題を解析するツールです。
設定ファイル
- Conftest - Instrumenta - カスタムテストを作成し、任意の設定ファイルに存在するセキュリティ脆弱性をスキャン。
- Selefra - Selefra - マルチクラウドおよびSaaS向けのオープンソースポリシー・アズ・コードソフトウェアで、アナリティクスを提供。
Java
- Deep Dive - Discotek.ca - JVMデプロイユニット(Ear、War、Jar、APK)向けの静的解析。
- Find Security Bugs - OWASP - Java Webアプリケーションのセキュリティ診断用SpotBugsプラグイン。Eclipse、IntelliJ、Android StudioおよびSonarQubeに対応。
- SpotBugs - SpotBugs - Javaアプリケーション向けの静的コード分析ツール。
JavaScript
- ESLint - JavaScriptコードのセキュリティ問題を解析するツールです。
Go
- Golang Security Checker - Goコードのセキュリティ問題を解析するツールです。
.NET
- Security Code Scan - .NETコードのセキュリティ問題を解析するツールです。
PHP
- Phan - Phan - PHPアプリケーション向けの広範な静的分析ツール。セキュリティスキャン機能も一部対応。
- PHPCS Security Audit - Floe - PHP向けの静的分析ツール。PHP、Drupal 7およびPHP関連のCVEに関するルールを提供。
- Progpilot - Design Security - PHPソースコード向けの静的分析ツール。
Python
- Bandit - Pythonコードのセキュリティ問題を解析するツールです。
Ruby
- Brakeman - Justin Collins - Ruby on Railsアプリケーションにおけるセキュリティ脆弱性を検出する静的分析ツール。
- DawnScanner - Paolo Perego - RubyスクリプトおよびWebアプリケーション向けのセキュリティスキャンツール。Ruby on Rails、SinatraおよびPadrinoフレームワークに対応。
サプライチェーンセキュリティ
サプライチェーン攻撃はCIツールや実行される外部コードなど、SDLCの第三者要素を狙います。関連ツールはこうした攻撃への防御を支援します。
- Harden Runner GitHub Action - StepSecurity - GitHubホストされたランナー(Ubuntu VM)にセキュリティエージェントをインストールし、資格情報の漏洩防止、コンパイル依存関係やツールの侵害検出、ビルド中のソースコードの改ざん検出を行う。
- Overlay - SCAR - 開発者がオープンソースパッケージを選択する前に、そのパッケージのリスクを評価するためのブラウザ拡張機能。
- Preflight Codecov hack - ソフトウェア供給網への攻撃を検出・防止するツールです。
- Sigstore fulcio cosign rekor - ソフトウェア供給網への攻撃を検出・防止するツールです。
- Syft - Anchore - コンテナイメージおよびファイルシステムからソフトウェアの材料リスト(SBOM)を生成するCLIツール。
脅威モデリング
脅威モデリングは、価値ある対象へのリスクとなる脅威、脆弱性、攻撃経路を特定し、緩和策となるセキュリティ制御を設計・実装・検証するための工学的作業です。
- Awesome Threat Modelling - Practical DevSecOps - テストモデルに関するリソースを厳選したリスト。
- SecuriCAD - Forseeti - ITインフラのためのリスクモデルと攻撃シミュレーションツール。
- IriusRisk - IriusRisk - リスクモデルを描画し、リスクおよび対策を記録し、リスクを管理するツール。
- Raindance Project - DevSecOps - 攻撃マップを用いて、攻撃面およびコンパウンドを引き起こす可能性のある敵の戦略を特定する。
- SD Elements - Security Compass - リスクを特定・評価し、実行可能なタスクを生成し、関連するチケットを追跡する。
- Threat Dragon - OWASP - リスクモデルの図示ツール。
- Threat Modelling Tool - Microsoft - リスクモデルの図示ツ及。
- Threatspec - Threatspec - リスクモデルをコードとして定義する。
関連リスト
- Awesome Dynamic Analysis - Matthias Endler - ディナミック分析ツールおよびコード品質チェックツールのコレクション。
- Awesome Platform Engineering - _Platform Engineering_向けのソリューション、ツールおよびリソースの厳選リスト。
- Awesome Static Analysis - Matthias Endler - 静的解析ツールおよびコード品質チェックツールのコレクション。
- Awesome Threat Modelling - Practical DevSecOps - 威脅モデリングリソースの選定リスト。
- Vulnerable Web Apps Directory - OWASP - 学習目的の脆弱性のあるウェブアプリケーションのコレクション。