数ヶ月前にDependabotの自動解除ポリシーを開始し、誤検出アラートの数を減らした後、GitHubは開発者がアラートの自動解除と再開の基準を定義するためのカスタムルールのサポートを追加した。
Dependabotのようなソリューションは、プロジェクトの依存関係にある脆弱性を自動的に特定することで、セキュリティを向上させることになりそうだ。Dependabotの場合、これはシステムが生成する可能性のある誤検知の数に関連している。つまり、実際の脅威には該当しないが、手動で評価とトリアージを行うために開発者の注意を必要とするアラートである。誤検知には、悪用される可能性の低い脆弱性や、長期間のビルドやテストに関連したシステムの不具合などが含まれる。
実際、これにより「アラート疲労」という概念が生まれましたが、GitHub によると、少なくとも 10 件に 1 件のアラートが誤検知です。逆説的だが、アラート疲労は開発者の注意を本当の脆弱性への対処からそらすことになりかねない。この状況を緩和するために、GitHubは、開発スコープの依存関係(npmの世界ではdevDependencies
と呼ばれる)に対する影響度の低い問題を除外することで、偽検出の量を減らすことを目的としたいくつかの一般的なポリシーを導入した。
開発者がこの新機能を採用したことに後押しされ、GitHub は現在、Dependabot がどのようにアラートを自動解除するかを制御するカスタムルールを定義できるようにすることで、アラート疲労を軽減する方向にさらなる一歩を踏み出している。これには、パッチが利用可能になるまで、または無期限にアラートを閉じるかスヌーズする 2 つの新しいオプションが含まれている。
ルールを定義する際、開発者はルールが適用されるタイミングを決定する一連の基準を指定する。これには、パッケージ名、脆弱性の深刻度、エコシステム、マニフェスト、スコープ、セキュリティ勧告が含まれる。ルールがマッチすると、アラートは無期限に、あるいはパッチが利用可能になるまで、無視される。
初期リリースでは、ルールはリポジトリごとに定義することができ、GitHubによれば、組織レベルのルールも近々追加されるという。将来的には、 自動解除ルールで使用できるメタデータや、利用可能な修復フローが拡張される予定だ。
カスタム自動トリアージルールは、すべてのパブリックリポジトリで無料で利用でき、プライベートリポジトリでは有料となる。
2019年に導入されたDependabotは、プロジェクトの依存関係に脆弱性がないかスキャンし、自動的にPRをオープンでき、それらの PR をマージするだけでセキュリティの脆弱性を修正でき、それらのPRをマージするだけでセキュリティの脆弱性を修正できる。