オープンソース、クロスプラットフォーム、多目的セキュリティ監査ツール
注記: DevAuditはOSS Indexデータベースを使用していますが、これにはレート制限があります。制限に達していることに気付いた場合は、Issueを報告してください。認証ユーザーはより高い制限が与えられており、DevAuditに認証機能をまもなく実装する予定です。認証されていないユーザーのほとんどは、多くのユースケースで制限に気付かないでしょう。通常、制限が発動するのは、はるかに大規模なプロジェクトや高いプロジェクトボリュームの場合のみです。
最新リリースはリリースページから入手してください。


DevAuditは、オープンソースでクロスプラットフォームの多目的セキュリティ監査ツールであり、DevOpsおよびDevSecOpsを採用する開発者やチームを対象としています。ソリューションスタックの複数のレベルでセキュリティの脆弱性を検出します。DevAuditは、ソフトウェア開発ライフサイクルにおけるセキュリティ慣行とセキュリティ監査の実装を自動化する、幅広い監査機能を提供します。DevAuditは、オペレーティングシステムやアプリケーションのパッケージ依存関係、アプリケーションおよびアプリケーションサーバーの設定、アプリケーションコードをスキャンし、OSS IndexやVulnersなどのプロバイダーが、National Vulnerability Database (NVD) CVEデータフィード、Debian Security Advisoriesデータフィード、Drupal Security Advisoriesなど、幅広いソースやデータフィードから集約したデータに基づいて、潜在的な脆弱性を検出します。
DevAuditは、開発者がOWASP Top 10のWebアプリケーション開発リスクのうち、少なくとも4つに対処するのに役立ちます:
さらに、MITREがCWE辞書で分類するリスク(例: CWE-2 環境やCWE-200 情報漏えい)にも対応します。
開発が進み、その機能が成熟するにつれて、DevAuditはインジェクションやXSSなど、OWASP Top 10およびCWEリストの他のリスクにも対応できるようになります。Web、クラウド、分散マルチユーザーアプリケーションに焦点を当てた今日のソフトウェア開発は、ますます複雑化しており、開発者がアプリケーションを提供するために依存するスタックのすべてのレベルでセキュリティ問題や潜在的な脆弱性が発生しています。DevAuditの目標は、ライブラリパッケージの依存関係からアプリケーションおよびサーバーの設定、ソースコードに至るまで、ソリューションスタックのすべてのレベルで開発セキュリティレビューとベストプラクティスの実装を自動化するプラットフォームを提供することです。
クロスプラットフォームでDockerイメージも利用可能。 DevAuditはWindowsとLinuxで動作し、*BSD、Mac、ARM Linuxもサポート予定です。DevAuditの実行には、最新バージョンの.NETまたはMonoのみが必要です。DevAudit DockerイメージはDocker Hubからプルして、Monoをインストールせずに実行することもできます。
CLIインターフェース。 DevAuditはCLIインターフェースを備えており、非対話型出力のオプションもあり、CIビルドパイプラインや開発者IDEのビルド後コマンドライインタスクとして簡単に統合できます。コア監査ライブラリをIDE GUIに統合する作業は、Audit.Net Visual Studio拡張機能ですでに開始されています。
継続的に更新される脆弱性データ。 DevAuditは、OSS IndexやVulnersなどのバックエンドデータプロバイダーを使用しており、これらはNVD CVEフィード、Drupal Security Advisoriesなど、幅広いセキュリティデータフィードやソースからコンパイルされた継続的に更新される脆弱性データを提供します。将来的には、vFeedやLibraries.ioなどの追加の脆弱性・パッケージデータプロバイダーのサポートが追加される予定です。
オペレーティングシステムおよび開発パッケージの依存関係の監査。 DevAuditは、Windows MSI、Chocolatey、OneGetを介してインストールされたWindowsアプリケーションおよびパッケージ、ならびにDpkg、RPM、YUMを介してインストールされたDebian、Ubuntu、CentOS Linuxパッケージを監査し、特定のバージョンのアプリケーションおよびパッケージについて報告された脆弱性をチェックします。開発パッケージの依存関係およびライブラリについては、DevAuditは.NET向けのNuGet v2依存関係、nodejs向けのYarn/NPMおよびBower依存関係、PHP向けのComposerパッケージ依存関係を監査します。他の言語向けのパッケージマネージャーのサポートは定期的に追加されています。
アプリケーションサーバー設定の監査。 DevAuditは、OpenSSH sshd、Apache httpd、MySQL/MariaDB、PostgreSQL、Nginxサーバーのサーバーバージョンと設定を監査し、さらに多くのサーバーが追加される予定です。設定監査はAlpheusライブラリに基づいており、サーバー設定ファイルの構文解析全体を使用して行われます。サーバー設定ルールはYAMLテキストファイルに保存され、開発者のニーズに合わせてカスタマイズできます。データベース監査など、さらに多くのサーバーやアプリケーション、分析タイプのサポートが定期的に追加されています。
アプリケーション設定の監査。 DevAuditは、Microsoft ASP.NETアプリケーションを監査し、アプリケーション設定に存在する脆弱性を検出します。アプリケーション設定ルールはYAMLテキストファイルに保存され、開発者のニーズに合わせてカスタマイズできます。Drupal、WordPress、DNN CMSなどのアプリケーション向けのアプリケーション設定監査は近日対応予定です。
静的解析によるアプリケーションコードの監査。 DevAuditは現在、.NET CILバイトコードの静的解析をサポートしています。アナライザーは外部スクリプトファイルに配置され、開発者のニーズに基づいて完全にカスタマイズできます。RoslynによるC#ソースコード解析、PHP7ソースコード、その他多くの言語や外部静的コード解析ツールのサポートは近日対応予定です。
リモートエージェントレス監査。 DevAuditはSSH経由でリモートホストに接続でき、リモート環境でもローカル環境と同等の監査機能を利用できます。リモートホストを監査するには有効なSSHログインのみが必要で、Windows上で実行中のDevAuditはSSH経由でLinuxホストに接続して監査できます。Windowsでは、DevAuditはWinRMを使用して他のWindowsマシンにリモート接続して監査することもできます。
エージェントレスDockerコンテナ監査。 DevAuditは、Dockerホストから実行中のDockerコンテナを監査でき、コンテナ環境でもローカル環境と同等の機能を利用できます。
GitHubリポジトリ監査。 DevAuditは、GitHubでホストされているプロジェクトリポジトリに直接接続し、パッケージソースおよびアプリケーション設定の監査を実行できます。
PowerShellサポート。 DevAuditはPowerShellシステム管理環境内でコマンドレットとして実行することもできます。PowerShellサポートの作業は現在中断されていますが、近い将来、WindowsとLinuxの両方でクロスプラットフォームのPowerShellをサポートして再開される予定です。
DevAuditは.NET 4.6アプリケーションです。ローカルマシンにインストールするには、WindowsではMicrosoft .NET Framework 4.6ランタイム、LinuxではMono 4.4+が必要です。.NET 4.6はほとんどの最新Windowsバージョンに既にインストールされているはずです。インストールされていない場合は、Windowsの機能として有効にするか、コンシューマーWindowsの「プログラムと機能」コントロールパネルアプレット、またはサーバー版Windowsのサーバーマネージャーにある「役割と機能の追加」オプションからインストールできます。古いバージョンのWindowsの場合、Microsoftからの.NET 4.6インストーラーはこちらにあります。
Linuxでは、サポートされる最小Monoバージョンは4.4です。DevAuditはMono 4(既知の問題が1つあり)でも動作しますが、Mono 5のインストールをお勧めします。Mono 5は、DevAuditに利益をもたらすビルドおよびランタイムコンポーネントに多くの改善をもたらします。
ディストリビューションが提供する既存のMonoパッケージはおそらくまだMono 5ではないため、Mono 5を使用するには手動でMonoパッケージをインストールする必要があります。主要なLinuxディストリビューション向けのMonoプロジェクト提供の最新パッケージのインストール手順はこちらです。mono-develパッケージをインストールすることをお勧めします。これにより、アセンブリ不足の可能性が減ります。
あるいは、LinuxでMonoをインストールしたくない場合、マシンにDockerが既にインストールされていれば、DevAudit Dockerイメージを使用できます。
DevAuditは以下の方法でインストールできます。
前提条件: Mono 4.4+(Mono 5推奨)およびMonoアプリのビルドに必要なコンパイラやその他のツールを提供するmono-develパッケージ。ディストリビューションには少なくともMonoバージョン4.4以上のパッケージがあるはずです。そうでない場合、主要なLinuxディストリビューション向けのMonoプロジェクト提供の最新パッケージの手動インストール手順はこちらです。
https://github.com/OSSIndex/DevAudit.git からDevAuditリポジトリをクローンします。
DevAuditのルートディレクトリで build.sh スクリプトを実行します。DevAuditはエラーなくコンパイルされるはずです。
./devaudit --help を実行すると、DevAuditのバージョンとヘルプ画面が表示されるはずです。
Linux上のNuGetは時々 Error: NameResolutionFailure で終了することがあります。これはNuGetパッケージを含むサーバーへの接続における一時的な問題と思われます。ビルドが正常に完了するまで、./build.sh を再度実行してください。