個人的には、DevSecOps (セキュリティ チームが開発と運用が実行するプロセス全体にセキュリティを組み込む) が好きです。私の情熱のため、クライアントからは、さまざまな種類のテストやその他のセキュリティ活動をいつ、どのように、どこに導入すればよいかよく尋ねられます。以下は、自動テストのために私がクライアントに提供するオプションのリストです (DevOps では行うべきセキュリティ作業がさらにたくさんあります。これは単なる自動テストです)。彼らは一緒にリストを分析し、現在のステータスに基づいてどこが最も合理的であるかを判断し、現在の焦点に基づいてツールを選択します。
自動テストのための 7 つの場所
1. 統合開発環境:
- スペル チェッカーに近いツールコードの検査 (これが何と呼ばれるかは不明ですが、SAST と呼ばれることもあります)
- セキュリティ パッケージのダウンロードのみを許可するエージェント管理ツールと依存関係ツール
- どこにいるのかを説明する API およびその他の lint ツール 失敗定義ファイルに従ってください
- ソフトウェア ポートフォリオ分析により、これらのパッケージはあまり安全に使用できない可能性があることがわかります
2. コミット前フック:
シークレット スキャン -セキュリティインシデントが起こる前に阻止しましょう。
3. コード リポジトリ レベル:
- 週次タスク リスト: SCA および SAST
- Linting
- IAC Scan
4. パイプライン内: 高速かつ正確である必要があります (誤検知がほとんどない)
#シークレット スキャン - 再び!- コード スキャンとしてのインフラストラクチャ (IaC)
- Selenium の HAR ファイルを使用した DAST、または単なるパッシブ スキャン (ファズ テストなし)
- SCA (必要に応じて、初回とは異なるツールを使用することが望ましい)
-
コンテナーとインフラストラクチャスキャンとその依存関係 - インフラストラクチャをコードとしてスキャンして、不正なポリシー、構成、不足しているパッチを検出します
-
5. パイプラインの外側:
DAST およびファズ テスト – 毎週自動的に実行します! - VA スキャン/インフラストラクチャ – 毎週実行する必要があります
- IAST – QA テストおよびペネトレーションで テスト中にインストールするか、自信がある場合は本番環境にインストールします。
- SAST – メジャー リリースまたは大きな変更のたびにすべてをテストし、結果を手動で確認します。
-
6. 単体テスト:
開発者のテストを利用して、ネガティブ テスト/悪用ケースに変換します。 - 同じ間違いを繰り返さないように、侵入テストの結果に基づいて単体テストを作成します。
-
7. 継続中:
脆弱性管理。すべてのスキャン データを何らかのシステムにアップロードして、パターン、傾向、および (最も重要な) 改善点を探す必要があります。
これらのすべてを実行する必要はありません。あるいは半分も実行する必要はありません。この記事の目的は、いくつかの可能性を示し、それらのいくつかを活用できることを願っています。
以上が自動セキュリティテストを実施できる 7 つの場所の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。