Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
DevAudit — オープンソース、クロスプラットフォーム、多目的セキュリティ監査ツール | Kitploit
ツール/GitHubGitHub/sonatype-nexus-community/devaudit
脆弱性スキャナーコンテナセキュリティ静的コード分析 (SAST)コード分析構成監査ウェブセキュリティネットワークセキュリティクラウドセキュリティDevSecOpsデータベースセキュリティArchived
GitHub
35974283年前Kitploit レビュー済み
sonatype-nexus-community/devaudit

DevAudit

オープンソース、クロスプラットフォーム、多目的セキュリティ監査ツール

リポジトリを見る

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
**注記**: DevAuditはOSS Indexデータベースを使用していますが、これにはレート制限があります。制限に達していることに気付いた場合は、Issueを報告してください。認証ユーザーはより高い制限が与えられており、DevAuditに認証機能をまもなく実装する予定です。認証されていないユーザーのほとんどは、多くのユースケースで制限に気付かないでしょう。通常、制限が発動するのは、はるかに大規模なプロジェクトや高いプロジェクトボリュームの場合のみです。

# DevAudit: 開発監査
最新リリースは[リリース](https://github.com/OSSIndex/DevAudit/releases)ページから入手してください。

![DevAuditパッケージソース監査のスクリーンショット](https://assets.kitploit.com/production/public/readmes/6179/f8efa9f0bfeed9c0125e5f18b18d6194a128ca68556d5b74a4da46108c911853.png)

![DevAudit Wheezy dpkgパッケージソース監査のスクリーンショット](https://assets.kitploit.com/production/public/readmes/6179/f5afca6b31eef1aae0fa4162ed92aac5ef2de977881f2127f43ac6dab8c8a965.png)

## 目次
* [概要](https://github.com/OSSIndex/DevAudit/wiki#about)
* [機能](https://github.com/OSSIndex/DevAudit/wiki#features)
* [要件](https://github.com/OSSIndex/DevAudit/wiki#requirements)
* [インストール](https://github.com/OSSIndex/DevAudit/wiki#installation)
* [概念](https://github.com/OSSIndex/DevAudit/wiki#concepts)
* [基本的な使い方](https://github.com/OSSIndex/DevAudit/wiki#basic-usage)
* [監査対象](https://github.com/OSSIndex/DevAudit/wiki#audit-targets)
* [環境](https://github.com/OSSIndex/DevAudit/wiki#environments)
* [プログラムオプション](https://github.com/OSSIndex/DevAudit/wiki#program-options)
* [Dockerの使い方](https://github.com/OSSIndex/DevAudit/wiki#docker-usage)
* [トラブルシューティング](https://github.com/OSSIndex/DevAudit/wiki#troubleshooting)
* [既知の問題](https://github.com/OSSIndex/DevAudit/wiki#known-issues)

## 概要
DevAuditは、オープンソースでクロスプラットフォームの多目的セキュリティ監査ツールであり、DevOpsおよびDevSecOpsを採用する開発者やチームを対象としています。ソリューションスタックの複数のレベルでセキュリティの脆弱性を検出します。DevAuditは、ソフトウェア開発ライフサイクルにおけるセキュリティ慣行とセキュリティ監査の実装を自動化する、幅広い監査機能を提供します。DevAuditは、オペレーティングシステムやアプリケーションのパッケージ依存関係、アプリケーションおよびアプリケーションサーバーの設定、アプリケーションコードをスキャンし、[OSS Index](https://ossindex.net/)や[Vulners](https://vulners.com)などのプロバイダーが、National Vulnerability Database (NVD) CVEデータフィード、Debian Security Advisoriesデータフィード、Drupal Security Advisoriesなど、幅広いソースやデータフィードから集約したデータに基づいて、潜在的な脆弱性を検出します。

DevAuditは、開発者が[OWASP Top 10](https://www.owasp.org/index.php/Top_10_2013)のWebアプリケーション開発リスクのうち、少なくとも4つに対処するのに役立ちます:
* [A9 既知の脆弱性を持つコンポーネントの使用](https://www.owasp.org/index.php/Top_10_2013-A9-Using_Components_with_Known_Vulnerabilities)
* [A5 セキュリティ設定の誤り](https://www.owasp.org/index.php/Top_10_2013-A5-Security_Misconfiguration)
* [A6 機密データの露出](https://www.owasp.org/index.php/Top_10_2013-A6-Sensitive_Data_Exposure)
* [A2 認証とセッション管理の不備](https://www.owasp.org/index.php/Top_10_2013-A2-Broken_Authentication_and_Session_Management)

さらに、MITREがCWE辞書で分類するリスク(例: [CWE-2 環境](http://cwe.mitre.org/data/definitions/2.html)や[CWE-200 情報漏えい](http://cwe.mitre.org/data/definitions/200.html))にも対応します。

![DevAudit ASP.NETアプリケーション監査のスクリーンショット](https://assets.kitploit.com/production/public/readmes/6179/e1fa94e5d2dc9c5c0d9f903c369d648181fc7a8dca19a057f661495ecaf1b265.png)
開発が進み、その機能が成熟するにつれて、DevAuditはインジェクションやXSSなど、OWASP Top 10およびCWEリストの他のリスクにも対応できるようになります。Web、クラウド、分散マルチユーザーアプリケーションに焦点を当てた今日のソフトウェア開発は、ますます複雑化しており、開発者がアプリケーションを提供するために依存するスタックのすべてのレベルでセキュリティ問題や潜在的な脆弱性が発生しています。DevAuditの目標は、ライブラリパッケージの依存関係からアプリケーションおよびサーバーの設定、ソースコードに至るまで、ソリューションスタックのすべてのレベルで開発セキュリティレビューとベストプラクティスの実装を自動化するプラットフォームを提供することです。

## 機能
* **クロスプラットフォームでDockerイメージも利用可能。** DevAuditはWindowsとLinuxで動作し、*BSD、Mac、ARM Linuxもサポート予定です。DevAuditの実行には、最新バージョンの.NETまたはMonoのみが必要です。[DevAudit Dockerイメージ](https://hub.docker.com/r/ossindex/devaudit/)はDocker Hubからプルして、Monoをインストールせずに実行することもできます。

* **CLIインターフェース。** DevAuditはCLIインターフェースを備えており、非対話型出力のオプションもあり、CIビルドパイプラインや開発者IDEのビルド後コマンドライインタスクとして簡単に統合できます。コア監査ライブラリをIDE GUIに統合する作業は、[Audit.Net](https://visualstudiogallery.msdn.microsoft.com/73493090-b219-452a-989e-e3d228023927?SRC=Home) Visual Studio拡張機能ですでに開始されています。

* **継続的に更新される脆弱性データ。** DevAuditは、[OSS Index](https://ossindex.net/)や[Vulners](https://vulners.com/#stats)などのバックエンドデータプロバイダーを使用しており、これらはNVD CVEフィード、Drupal Security Advisoriesなど、[幅広い](https://vulners.com/stats)セキュリティデータフィードやソースからコンパイルされた継続的に更新される脆弱性データを提供します。将来的には、[vFeed](https://vfeed.io)や[Libraries.io](https://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](https://github.com/allisterb/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インストーラーは[こちら](https://www.microsoft.com/en-us/download/details.aspx?id=48130)にあります。

Linuxでは、サポートされる最小Monoバージョンは4.4です。DevAuditはMono 4([既知の問題が1つあり](https://github.com/OSSIndex/DevAudit/issues/78))でも動作しますが、Mono 5のインストールをお勧めします。Mono 5は、DevAuditに利益をもたらすビルドおよびランタイムコンポーネントに多くの[改善](http://www.mono-project.com/news/2017/05/15/mono-5-0-is-out/)をもたらします。

ディストリビューションが提供する既存のMonoパッケージはおそらくまだMono 5ではないため、Mono 5を使用するには手動でMonoパッケージをインストールする必要があります。主要なLinuxディストリビューション向けのMonoプロジェクト提供の最新パッケージのインストール手順は[こちら](http://www.mono-project.com/docs/getting-started/install/linux/)です。mono-develパッケージをインストールすることをお勧めします。これにより、アセンブリ不足の可能性が減ります。

あるいは、LinuxでMonoをインストールしたくない場合、マシンにDockerが既にインストールされていれば、DevAudit Dockerイメージを使用できます。

## インストール
DevAuditは以下の方法でインストールできます。
- ソースからのビルド。
- WindowsまたはLinux用のGithubからダウンロードしたバイナリリリースアーカイブファイルの使用。
- Windows用のGithubからダウンロードしたリリースMSIインストーラの使用。
- WindowsでのChocolateyパッケージマネージャーの使用。
- LinuxでDocker Hubからossindex/devauditイメージをプル。

### Linuxでのソースからのビルド
1. 前提条件: Mono 4.4+(Mono 5推奨)およびMonoアプリのビルドに必要なコンパイラやその他のツールを提供するmono-develパッケージ。ディストリビューションには少なくともMonoバージョン4.4以上のパッケージがあるはずです。そうでない場合、主要なLinuxディストリビューション向けのMonoプロジェクト提供の最新パッケージの手動インストール手順は[こちら](http://www.mono-project.com/docs/getting-started/install/linux/)です。

2. https://github.com/OSSIndex/DevAudit.git からDevAuditリポジトリをクローンします。

3. DevAuditのルートディレクトリで `build.sh` スクリプトを実行します。DevAuditはエラーなくコンパイルされるはずです。

4. `./devaudit --help` を実行すると、DevAuditのバージョンとヘルプ画面が表示されるはずです。

Linux上のNuGetは時々 `Error: NameResolutionFailure` で終了することがあります。これはNuGetパッケージを含むサーバーへの接続における一時的な問題と思われます。ビルドが正常に完了するまで、./build.sh を再度実行してください。

### Windowsでのソースからのビルド
1. 前提条件: 以下のいずれかが必要です。
    * [.NET Framework 4.6](http://getdotnet.azurewebsites.net/target-dotnet-platforms.html) SDKまたは開発者パック。
    * Visual Studio 2015。
2. https://github.com/OSSIndex/DevAudit.git からDevAuditリポジトリをクローンします。

3. Visual Studio 2015または.NETから、DevAuditのルートディレクトリで `build.cmd` スクリプトを実行します。DevAuditはエラーなくコンパイルされるはずです。

4. `./devaudit --help` を実行すると、DevAuditのバージョンとヘルプ画面が表示されるはずです。

### WindowsおよびLinuxでのリリースアーカイブファイルからのインストール
1. 前提条件: LinuxではMono 4.4+、Windowsでは.NET 4.6が必要です。
2. プロジェクトの[リリース](https://github.com/OSSIndex/DevAudit/releases)ページからWindowsまたはLinux用の最新リリースアーカイブファイルをダウンロードします。このファイルをディレクトリに解凍します。

2. リリースアーカイブを解凍したディレクトリから、Windowsでは `devaudit --help`、Linuxでは `./devaudit --help` を実行します。バージョンとヘルプ画面が表示されるはずです。

3. (オプション) DevAuditのインストールディレクトリをPATH環境変数に追加します。

### WindowsでのMSIインストーラを使用したインストール
リリースのMSIインストーラはGithubのリリースページにあります。

1. ページ上部近くの[リリース](https://github.com/OSSIndex/DevAudit/releases)リンクをクリックします。
2. インストールしたいリリースを特定します。
3. プレビルドインストーラがある各リリースに対して、"DevAudit.exe"リンクが表示されているはずです。
4. ファイルをダウンロードし、インストーラを実行します。簡単なインストール手順が案内されます。
6. DevAuditをPATHに含めるために、*新しい*コマンドプロンプトまたはPowerShellウィンドウを開きます。
7. DevAuditを実行します。

### WindowsでのChocolateyを使用したインストール
DevAuditは[Chocolatey](https://chocolatey.org/packages/devaudit/2.0.0.40-beta)でも利用可能です。

1. [Chocolatey](https://chocolatey.org)をインストールします。
2. 管理者コンソールまたはPowerShellウィンドウを開きます。
3. `choco install devaudit` と入力します。
4. DevAuditを実行します。

### LinuxでのDockerを使用したインストール
Docker HubからDevauditイメージをプルします: `docker pull ossindex/devaudit`。`ossindex/devaudit:latest` とタグ付けされたイメージ(ダウンロードされるデフォルトイメージ)は最新リリースからビルドされており、`ossindex/devaudit:unstable` はソースコードのmasterブランチからビルドされ、最新の追加機能が含まれていますが、テストはより少ないです。

概念
---
#### 監査対象
監査機能の論理的なグループを表します。DevAuditは現在、以下の監査対象をサポートしています。

- **パッケージソース**。パッケージソースは、パッケージマネージャーを使用してアプリケーションおよびライブラリの依存関係を管理します。パッケージマネージャーは、Debian Linuxなどのオペレーティングシステム、または.NETやnodejsなどの開発言語やフレームワーク向けに、アプリケーションおよびライブラリの依存関係をインストール、削除、または更新します。パッケージソースの例としては、dpkg、yum、Chocolatey、Composer、Bowerなどがあります。DevAuditは、インストールされたパッケージの名前とバージョンを、それらのパッケージの特定のバージョンについて報告された脆弱性と照合して監査します。
- **アプリケーション**。Drupalなどのアプリケーション、またはASP.NETなどのフレームワークを使用して構築されたカスタムアプリケーション。DevAuditは、アプリケーションおよびアプリケーションモジュールとプラグインを、それらのアプリケーションバイナリ、モジュール、プラグインの特定のバージョンについて報告された脆弱性と照合して監査します。DevAuditは、アプリケーション設定の既知の脆弱性を監査したり、アプリケーションコードの静的解析を実行して既知の脆弱性を探すこともできます。
- **アプリケーションサーバー**。アプリケーションサーバーは、他のアプリケーションが使用するためのWebサーバーやデータベースサーバーなどの継続的に実行されるサービスやデーモン、またはユーザーが認証などのサービスにアクセスするためのものを提供します。アプリケーションサーバーの例としては、OpenSSH sshdやApache httpdサーバーがあります。DevAuditは、アプリケーションサーバーのバイナリ、モジュール、プラグインを特定のバージョンについて報告された脆弱性と照合して監査するだけでなく、既知のサーバー設定の脆弱性や弱点についてサーバー設定を監査することもできます。

#### 監査環境
監査対象に対する監査が実行される論理的な環境を表します。監査環境は、監査に必要なI/Oおよびコマンド実行を抽象化し、ターゲットのファイルや実行可能ファイルが配置されている物理的またはネットワーク上の場所に関係なく、監査対象に対して同一の機能を実行できるようにします。現在サポートされている環境は次のとおりです。

- **ローカル**。これはデフォルトの監査環境であり、監査はローカルマシンで実行されます。
- **SSH**。監査はSSH経由で接続されたリモートホスト上で実行されます。リモートホストにDevAuditがインストールされている必要はありません。
- **WinRM**。監査はWinRM経由で接続されたリモートWindowsホスト上で実行されます。リモートホストにDevAuditがインストールされている必要はありません。
- **Docker**。監査は実行中のDockerコンテナ上で実行されます。コンテナイメージにDevAuditがインストールされている必要はありません。
- **GitHub**。監査はGitHubプロジェクトリポジトリのファイルシステム上で直接実行されます。監査を実行するためにプロジェクトをローカルにチェックアウトまたはダウンロードする必要はありません。

#### 監査オプション
監査に対して有効にできるさまざまなオプションです。非対話型モードで実行するなど、DevAuditプログラムに適用されるオプションと、ターゲットに適用されるオプション(例: ASP.NETアプリケーションの監査でAppDevModeオプションをtrueに設定すると、特定の監査ルールが有効にならなくなります)を指定できます。

基本的な使い方
---
CLIはDevAuditプログラムの主要なインターフェースであり、対話型使用と、スケジュールタスク、シェルスクリプト、CIビルドパイプライン、開発者IDEのビルド後タスクでの非対話型使用の両方に適しています。基本的なDevAudit CLI構文は次のとおりです。

	devaudit TARGET [ENVIRONMENT] | [OPTIONS]
ここで、`TARGET` は監査対象を指定し、`ENVIRONMENT` は監査環境を指定し、`OPTIONS` は監査対象と環境のオプションを指定します。オプションの指定には2つの方法があります。複数のターゲットに適用されるプログラムオプションおよび一般的な監査オプションは、コマンドラインで直接パラメーターとして指定できます。ターゲット固有のオプションは、`-o` オプションを使用して、形式 `-o OPTION1=VALUE1,OPTION2=VALUE2,....` で指定できます。各オプションのキーと値のペアはカンマで区切ります。

プログラム出力をパイプまたはファイルにリダイレクトする場合は、インタラクティブなユーザーインターフェース機能やアニメーションを無効にするために、常に `-n --non-interactive` オプションを使用する必要があります。

ファイルパスを指定する場合、パスの前の@プレフィックスは、そのパスが監査対象のルートディレクトリからの相対パスであることをDevAuditに示します。たとえば、次のように指定した場合:
`-r c:\myproject -b @bin\Debug\app2.exe`
DevAuditはバイナリファイルへのパスをc:\myproject\bin\Debug\app2.exeと見なします。

監査対象
---
#### パッケージソース
- `msi`    Windowsマシン上のWindowsインストーラMSIパッケージソースのパッケージ監査を実行します。

- `npm`    NPMのpackage.jsonのパッケージ監査を実行します。

- `choco`  Chocoパッケージマネージャーによってインストールされたパッケージのパッケージ監査を実行します。

- `oneget` Windows上のシステムのOneGetパッケージソースのパッケージ監査を実行します。

- `nuget` NuGet v2パッケージソースのパッケージ監査を実行します。監査するNuGet `packages.config` ファイルの場所を `-f` または `--file` オプションで指定する必要があります。指定しない場合、現在のディレクトリがこのファイルについて検索されます。

- `bower` Bowerパッケージソースのパッケージ監査を実行します。監査するBower `packages.json` ファイルの場所を `-f` または `--file` オプションで指定する必要があります。指定しない場合、現在のディレクトリがこのファイルについて検索されます。- `composer` Composerパッケージソースのパッケージ監査を実行します。監査対象のComposer `composer.json` ファイルの場所を指定するには `-f` または `--file` オプションを使用します。指定しない場合は、カレントディレクトリからこのファイルが検索されます。

- `dpkg` Debian Linuxおよび派生OSにおけるシステムのdpkgパッケージソースのパッケージ監査を実行します。

- `rpm` RedHat Linuxおよび派生OSにおけるシステムのRPMパッケージソースのパッケージ監査を実行します。

- `yum` RedHat Linuxおよび派生OSにおけるシステムのYumパッケージソースのパッケージ監査を実行します。

すべてのパッケージソースで、以下の一般的な監査オプションを使用できます。
- `-f --file` 必要に応じて、パッケージマネージャの設定ファイルの場所を指定します。NuGet、Bower、Composerのパッケージソースではこのオプションが必要です。
- `--list-packages` DevAuditでスキャンしたパッケージソース内のパッケージのみを一覧表示します。

- `--list-artifacts` DevAuditでスキャンしたパッケージについて、OSS Indexで見つかったアーティファクトのみを一覧表示します。

[Experimental] とタグ付けされたパッケージソースは、ソースコードのmasterブランチでのみ利用可能であり、バックエンドのOSS Indexサポートが制限されている場合があります。ただし、`list-packages` および `list-artifacts` オプションを使用して、スキャンしたパッケージとOSS Indexで利用可能なアーティファクトを常に一覧表示できます。

#### アプリケーション
- `aspnet` ASP.NETアプリケーションのアプリケーション監査を実行します。関連するオプションは次のとおりです。
	- `-r --root-directory` アプリケーションのルートディレクトリを指定します。これは、Global.asaxやWeb.configなどのファイルを含むトップレベルのアプリケーションディレクトリです。
	- `-b --application-binary` アプリケーションバイナリを指定します。これは、アプリケーションの.NETバイトコードを含む.NETアセンブリです。このファイルは通常.DLLであり、ASP.NETアプリケーションルートディレクトリのbinサブフォルダにあります。
	- `--config-file` または `-o AppConfig=configuration-file` ASP.NETアプリケーション構成ファイルを指定します。このファイルは通常Web.configという名前で、アプリケーションのルートディレクトリにあります。デフォルトの@Web.config値をこのオプションで上書きできます。
	- `-o AppDevMode=enabled` アプリケーション監査で開発モードを有効にすることを指定します。このモードは、開発中のアプリケーションを監査するときに使用できます。AppDevModeで無効としてタグ付けされた特定の構成ルール(アプリケーションをASP.NETデバッグモードで実行するなど)は、監査中に有効になりません。

- `netfx` .NETアプリケーションのアプリケーション監査を実行します。関連するオプションは次のとおりです。
	- `-r --root-directory` アプリケーションのルートディレクトリを指定します。これは、App.configなどのファイルを含むトップレベルのアプリケーションディレクトリです。
	- `-b --application-binary` アプリケーションバイナリを指定します。これは、アプリケーションの.NETバイトコードを含む.NETアセンブリです。このファイルは通常.DLLであり、ASP.NETアプリケーションルートディレクトリのbinサブフォルダにあります。
	- `--config-file` または `-o AppConfig=configuration-file` .NETアプリケーション構成ファイルを指定します。このファイルは通常App.configという名前で、アプリケーションのルートディレクトリにあります。デフォルトの@App.config値をこのオプションで上書きできます。
	- `-o GendarmeRules=RuleLibrary` [Gendarme](http://www.mono-project.com/docs/tools+libraries/tools/gendarme/) 静的解析ツールを、指定されたルールライブラリのルールを使用して監査で有効にすることを指定します。例:
	`devaudit netfx -r /home/allisterb/vbot-debian/vbot.core -b @bin/Debug/vbot.core.dll --skip-packages-audit -o GendarmeRules=Gendarme.Rules.Naming`
	は、Gendarme.Rules.Namingライブラリのルールを使用して、vbot.core.dllアセンブリに対してGendarme静的解析を実行します。ルールライブラリの完全なリストは(Gendarme wikiから抜粋):
    * [Gendarme.Rules.BadPractice](https://github.com/spouliot/gendarme/wiki/Gendarme.Rules.BadPractice%28git%29)
	* [Gendarme.Rules.Concurrency](https://github.com/spouliot/gendarme/wiki/Gendarme.Rules.Concurrency%28git%29)
	* [Gendarme.Rules.Correctness](https://github.com/spouliot/gendarme/wiki/Gendarme.Rules.Correctness%28git%29)
	* [Gendarme.Rules.Design](https://github.com/spouliot/gendarme/wiki/Gendarme.Rules.Design%28git%29)
	* [Gendarme.Rules.Design.Generic](https://github.com/spouliot/gendarme/wiki/Gendarme.Rules.Design.Generic%28git%29)
	* [Gendarme.Rules.Design.Linq](https://github.com/spouliot/gendarme/wiki/Gendarme.Rules.Design.Linq%28git%29)
	* [Gendarme.Rules.Exceptions](https://github.com/spouliot/gendarme/wiki/Gendarme.Rules.Exceptions%28git%29)
	* [Gendarme.Rules.Gendarme](https://github.com/spouliot/gendarme/wiki/Gendarme.Rules.Gendarme%28git%29)
	* [Gendarme.Rules.Globalization](https://github.com/spouliot/gendarme/wiki/Gendarme.Rules.Globalization%28git%29)
	* [Gendarme.Rules.Interoperability](https://github.com/spouliot/gendarme/wiki/Gendarme.Rules.Interoperability%28git%29)
	* [Gendarme.Rules.Interoperability.Com](https://github.com/spouliot/gendarme/wiki/Gendarme.Rules.Interoperability.Com%28git%29)
	* [Gendarme.Rules.Maintainability](https://github.com/spouliot/gendarme/wiki/Gendarme.Rules.Maintainability%28git%29)
	* [Gendarme.Rules.NUnit](https://github.com/spouliot/gendarme/wiki/Gendarme.Rules.NUnit%28git%29)
	* [Gendarme.Rules.Naming](https://github.com/spouliot/gendarme/wiki/Gendarme.Rules.Naming%28git%29)
	* [Gendarme.Rules.Performance](https://github.com/spouliot/gendarme/wiki/Gendarme.Rules.Performance%28git%29)
	* [Gendarme.Rules.Portability](https://github.com/spouliot/gendarme/wiki/Gendarme.Rules.Portability%28git%29)
	* [Gendarme.Rules.Security](https://github.com/spouliot/gendarme/wiki/Gendarme.Rules.Security%28git%29)
	* [Gendarme.Rules.Security.Cas](https://github.com/spouliot/gendarme/wiki/Gendarme.Rules.Security.Cas%28git%29)
	* [Gendarme.Rules.Serialization](https://github.com/spouliot/gendarme/wiki/Gendarme.Rules.Serialization%28git%29)
	* [Gendarme.Rules.Smells](https://github.com/spouliot/gendarme/wiki/Gendarme.Rules.Smells%28git%29)
	* [Gendarme.Rules.Ui](https://github.com/spouliot/gendarme/wiki/Gendarme.Rules.Ui%28git%29)

- `drupal7` Drupal 7アプリケーションのアプリケーション監査を実行します。
	- `-r --root-directory` アプリケーションのルートディレクトリを指定します。これは、Drupal 7インストールのトップレベルディレクトリです。

- `drupal8` Drupal 8アプリケーションのアプリケーション監査を実行します。
	- `-r --root-directory` アプリケーションのルートディレクトリを指定します。これは、Drupal 8インストールのトップレベルディレクトリです。

すべてのアプリケーションは、アプリケーションモジュールまたはプラグインを監査するための以下の共通オプションもサポートしています。
- `--list-packages` DevAuditでスキャンしたアプリケーションプラグインまたはモジュールのみを一覧表示します。

- `--list-artifacts` DevAuditでスキャンしたアプリケーションプラグインおよびモジュールについて、OSS Indexで見つかったアーティファクトのみを一覧表示します。

- `--skip-packages-audit` アプリケーション構成またはコード分析監査のみを行い、パッケージ監査をスキップします。

#### アプリケーションサーバー
- `sshd` OpenSSH sshd互換サーバーのアプリケーションサーバー監査を実行します。

- `httpd` Apache httpd互換サーバーのアプリケーションサーバー監査を実行します。

- `mysql` MySQL互換サーバー(MariaDBやOracle MySQLなど)のアプリケーションサーバー監査を実行します。

- `nginx` Nginxサーバーのアプリケーションサーバー監査を実行します。

- `pgsql` PostgreSQLサーバーのアプリケーションサーバー監査を実行します。

アプリケーションサーバー監査のコマンドライン例:
`./devaudit httpd -i httpd-2.2 -r /usr/local/apache2/ --config-file @conf/httpd.conf -b @bin/httpd`
これは、httpd-2.2という名前のDockerコンテナで実行されているApache Httpdサーバーを監査します。

以下は、すべてのアプリケーションサーバーに共通の監査オプションです。
- `-r --root-directory` サーバーのルートディレクトリを指定します。これはサーバーファイルシステムのトップレベルであり、別のサーバールートが必要でない限り、デフォルトは`/`です。
- `--config-file` サーバー構成ファイルを指定します。例:上記の監査では、Apache構成ファイルは`/usr/local/apache2/conf/httpd.conf`にあります。構成ファイルを指定しない場合、DevAuditは選択されたサーバーの構成ファイルを自動検出しようとします。
- `-b --application-binary` サーバーバイナリを指定します。例:上記の監査では、Apacheバイナリは`/usr/local/apache2/bin/httpd`にあります。バイナリパスを指定しない場合、DevAuditは選択されたサーバーのサーバーバイナリを自動検出しようとします。

アプリケーションサーバーは、サーバーモジュールまたはプラグインを監査するための以下の共通オプションもサポートしています。
- `--list-packages` DevAuditでスキャンしたアプリケーションプラグインまたはモジュールのみを一覧表示します。

- `--list-artifacts` DevAuditでスキャンしたアプリケーションプラグインおよびモジュールについて、OSS Indexで見つかったアーティファクトのみを一覧表示します。

- `--skip-packages-audit` サーバー構成監査のみを行い、パッケージ監査をスキップします。

環境
---

現在、5つの監査環境がサポートされています:ローカル、SSH経由のリモートホスト、WinRM経由のリモートホスト、Dockerコンテナ、GitHubです。他の環境オプションが指定されていない場合、ローカル環境がデフォルトで使用されます。

#### SSH
SSH環境を使用すると、DevAuditをリモートホストにインストールしなくても、SSH経由でアクセス可能な任意のリモートホストで監査を実行できます。SSH環境はクロスプラットフォームです。Windowsマシンで動作するDevAuditからLinuxリモートホストに接続できます。SSH環境は次のオプションで作成されます:`-s SERVER [--ssh-port PORT] -u USER [-k KEYFILE] [-p | --password-text PASSWORD]`

`-s SERVER` SSH経由で接続するリモートホストまたはIPを指定します。

`-u USER` サーバーにログインするユーザーを指定します。

`--ssh-port PORT` リモートホストに接続するポートを指定します。デフォルトは22です。

`-k KEYFILE` リモートサーバーへの接続に使用するOpenSSH互換の秘密鍵ファイルを指定します。現在、PEM形式のファイル内のRSAまたはDSA鍵のみがサポートされています。

`-p` ローカルエコーを無効にして、サーバーパスワードまたは鍵ファイルのパスフレーズを対話的に入力するためのプロンプトを表示します。

`--password-text PASSWORD` ユーザーパスワードまたは鍵ファイルのパスフレーズをコマンドラインに平文で指定します。Linuxでパスワードに特殊文字が含まれている場合は、シェルが特殊文字を解釈しないように、コマンドラインでテキストをシングルクォートで囲んでください(例:`'MyPa<ss'`)。

#### WinRM
WinRM環境を使用すると、DevAuditをリモートホストにインストールしなくても、WinRM経由でアクセス可能な任意のリモートWindowsホストで監査を実行できます。WinRM環境は現在、DevAuditを実行しているWindowsマシンでのみ利用可能です。WinRM環境は次のオプションで作成されます:`-w IP -u USER [-p | --password-text PASSWORD]`

`-w IP` WinRM経由で接続するリモートIPを指定します。

`-u USER` サーバーにログインするユーザーを指定します。

`-p` ローカルエコーを無効にして、サーバーパスワードまたは鍵ファイルのパスフレーズを対話的に入力するためのプロンプトを表示します。

`--password-text PASSWORD` サーバーパスワードまたは鍵ファイルのパスフレーズをコマンドラインに平文で指定します。

#### Docker
このセクションでは、ローカルマシンにインストールされたDevAuditを使用してDockerイメージを**監査**する方法について説明します。DevAuditをコンテナ化されたDockerアプリとして**実行**する方法については、以下のDocker使用法のセクションを参照してください。

Docker監査環境は次のオプションで指定されます:`-i CONTAINER_NAME | -i CONTAINER_ID`

![DevAuditがDockerコンテナを監査しているスクリーンショット](https://assets.kitploit.com/production/public/readmes/6179/2442f7206a0d0d3d56ea295f2c18734c2513a605e18427405b1abd1bd700e5b2.png)
`CONTAINER_(NAME|ID)` 接続する実行中のDockerコンテナの名前またはIDを指定します。DevAuditは必要な名前や状態でコンテナを起動する方法を知らないため、コンテナは既に実行中である必要があります。

#### GitHub
GitHub監査環境を使用すると、GitHubプロジェクトリポジトリで直接監査を実行できます。GitHub環境は`-g`オプションで作成されます:`-g "Owner=OWNER,Name=NAME,Branch=BRANCH"`

`OWNER` プロジェクトの所有者を指定します

`NAME` プロジェクトの名前を指定します

`PATH` 接続するプロジェクトのブランチを指定します

監査に必要なファイルシステムのファイルやディレクトリを指定するために、通常どおり`-r`、`--config-file`、`-f`オプションを使用できます。例:次のコマンド
`devaudit aspnet -g "Owner=Dnnsoftware,Name=Dnn.Platforn,Branch=Release/9.0.2" -r /Website --config-file @web.config`
は、リポジトリ https://github.com/dnnsoftware/Dnn.Platform/ 上でASP.NET監査を実行し、`/Website`ソースフォルダをルートディレクトリとして、`web.config`ファイルをASP.NET構成ファイルとして使用します。ファイル名はほとんどの環境で大文字と小文字が区別されることに注意してください。

![GitHubプロジェクト監査のスクリーンショット](https://assets.kitploit.com/production/public/readmes/6179/a2ff285bc92ebe78d6b9fc326daf20dc0d97f517193033ebac1dc5e788fc0a37.png)

プログラムオプション
---
`-n --non-interactive` 対話型機能とCLIのアニメーションをすべて無効にして、DevAuditを非対話モードで実行します。このモードは、たとえばシェルスクリプトでDevAuditを実行する場合に必要です。そうしないと、DevAuditが対話型コンソール機能を使用しようとしてエラーが発生します。

`-d --debug` デバッグモードでDevAuditを実行します。これにより、さまざまな情報メッセージと診断メッセージが出力されます。このモードは、DevAuditのエラーやバグのトラブルシューティングに使用されます。

Docker使用法
---
DevAuditはDockerコンテナ化されたアプリとしても提供されており、LinuxユーザーはMonoをインストールしてソースからビルドすることなくDevAuditを実行できます。Docker HubからDevAudit Dockerイメージをプルするには:

`docker pull ossindex/devaudit[:label]`

現在のイメージは約131 MB(圧縮時)です。デフォルトでは`latest`というラベルのイメージがプルされます。これはプログラムの最新リリースです。ソースコードのmasterブランチを追跡する`unstable`イメージも利用可能です。DevAuditをコンテナ化されたアプリとして実行するには:

	docker run -i -t ossindex/devaudit TARGET [ENVIRONMENT] | [OPTIONS]

対話的にDevAuditを実行するには、-iおよび-t Dockerオプションが必要です。これらのオプションを指定しない場合は、DevAuditオプション-nを使用して非対話モードでDevAuditを実行する必要があります。

DevAuditがアクセスする必要があるDockerホストマシン上のディレクトリは、Dockerの-vオプションを使用してDevAudit Dockerコンテナにマウントする必要があります。ローカルのルートディレクトリをDockerイメージ上の`/hostroot`というマウントポイントにマウントすると、DevAuditは同じローカルパスを使用してローカルマシン上のファイルやディレクトリにアクセスできます。例:

`docker run -i -t -v /:/hostroot:ro ossindex/devaudit netfx -r /home/allisterb/vbot-debian/vbot.core`

これにより、DevAudit Dockerコンテナがローカルディレクトリ`/home/allisterb/vbot-debian/vbot.core`を監査できるようになります。DevAuditコンテナから**他の**Dockerコンテナを監査するには、このようにローカルルートをマウントする**必要があります**。例:

`docker run -i -t -v /:/hostroot:ro ossindex/devaudit mysql -i myapp1 -r / --config-file /etc/my.cnf --skip-packages-audit`

は、`ossindex/devaudit`コンテナから`myapp1`という名前のDockerコンテナに対してMySQL監査を実行します。

ルートディレクトリ全体をマウントする必要がない場合は、監査に必要なディレクトリのみをマウントできます。例:

`docker run -i -t -v /home/allisterb/vbot-debian/vbot.core:/vbot:ro ossindex/devaudit netfx -r /vbot -b @bin/Debug/vbot.core.dll`

は、`/home/allisterb/vbot-debian/vbot.core`ディレクトリを読み取り専用で`/vbot`としてDevAuditコンテナにマウントし、DevAuditが`/vbot`でのnetfxアプリケーション監査の監査ルートディレクトリとしてアクセスできるようにします。

SSH経由の監査でローカルDockerホスト上の秘密鍵ファイルを使用する場合は、必要な鍵ファイルを含むディレクトリをマウントし、そのファイルパスをDevAuditに指定します。例:

`docker -i -t -v /home/allisterb/.ssh:/ssh:ro run ossindex/devaudit dpkg -s localhost -u allisterb -p -k /ssh/mykey.key`

は、鍵ファイルを含むディレクトリを`/ssh`にマウントし、DevAuditコンテナがそれらを使用できるようにします。

現在、Dockerコンテナが_ローカル_ Dockerホスト上のdpkgやrpmなどのOSパッケージソース、またはOpenSSH sshdなどのアプリケーションサーバーを監査するには、上記のようにローカルルートディレクトリを`/hostroot`にマウントする必要があることに注意してください。DevAuditは、dpkgやsshd、httpdなどのサーバーバイナリを実行する際に、Dockerコンテナからローカルルートディレクトリにchrootする必要があります。DevAuditコンテナから他のDockerコンテナを監査する場合も、上記のようにローカルルートをマウントする必要があります。DevAuditは、他のコンテナと通信するためにローカルのDockerコマンドを実行する際にも、ローカルルートにchrootする必要があるためです。

DevAuditコンテナからSSH経由で監査を実行する場合は、ローカルルートを`/hostroot`にマウントする必要はありません。

トラブルシューティング
---
DevAuditでバグやその他の問題が発生した場合、問題の解決に役立ついくつかの方法があります。
- -dオプションを使用してデバッグ出力を有効にします。監査実行中に診断情報が出力されます。
- Linuxでは、DEVAUDIT_TRACE変数を使用してプログラム実行のトレースを有効にします。この変数の値は、[Monoトレース](http://www.mono-project.com/docs/debug+profile/debug/#tracing-program-execution)の形式に従う必要があります。たとえば、DEVAUDIT_TRACE=N:DevAudit.AuditLibraryと設定すると、監査中に監査ライブラリへのすべての呼び出しをトレースできます。

既知の問題
---
- Windowsでは、プログラム出力をパイプまたはファイルにリダイレクトする場合、`-n --non-interactive`プログラムオプションを**必ず**使用する必要があります。使用しないとクラッシュが発生します。この動作は、将来のバージョンで非対話モードをデフォルトに変更される可能性があります。
- Windowsコンソールアプリ[ConEmu](https://conemu.github.io/)とCygwin版OpenSSHクライアントを、リモートLinuxホストにSSH接続してMonoアプリを実行する際に問題があるようです。この方法でDevAuditを実行すると、コンソール出力の最後に奇妙なシーケンスが表示されることがあります。また、SSH監査のパスワード入力のようなキーボード対話入力時に、間違ったパスワードが送信されているように見える問題が発生する可能性があります。リモート作業中にConEmuを使用してSSH監査のパスワード入力に問題がある場合は、パスワードを入力する前にバックスペースキーを1〜2秒間押し続けて入力バッファをクリアしてみてください。
ツールをダウンロード