Открытый, кроссплатформенный, многоцелевой инструмент для аудита безопасности
Примечание: DevAudit использует базу данных OSS Index, которая имеет некоторые ограничения на количество запросов. Если вы заметили, что достигли лимита, пожалуйста, создайте issue. Аутентифицированные пользователи получают более высокий лимит, и мы скоро внедряем аутентификацию в DevAudit. Большинство неаутентифицированных пользователей, вероятно, не заметят лимита для многих случаев использования. Обычно он срабатывает только в очень крупных проектах или при высоких объемах проектов.
Получите последний релиз на странице релизов.


DevAudit — это инструмент аудита безопасности с открытым исходным кодом, кроссплатформенный, многоцелевой, предназначенный для разработчиков и команд, внедряющих DevOps и DevSecOps. Он обнаруживает уязвимости безопасности на нескольких уровнях стека решений. DevAudit предоставляет широкий спектр возможностей аудита, которые автоматизируют практики безопасности и внедрение аудита безопасности в жизненный цикл разработки программного обеспечения. DevAudit может сканировать зависимости пакетов операционной системы и приложений, конфигурации приложений и серверов приложений, а также код приложений на предмет потенциальных уязвимостей на основе данных, агрегированных такими провайдерами, как OSS Index и Vulners, из широкого круга источников и каналов данных, таких как фид CVE Национальной базы данных уязвимостей (NVD), фид Debian Security Advisories, Drupal Security Advisories и многих других.
DevAudit помогает разработчикам решать как минимум 4 риска из OWASP Top 10 для разработки веб-приложений:
а также риски, классифицированные MITRE в словаре CWE, такие как CWE-2 Окружение и CWE-200 Раскрытие информации
По мере развития и совершенствования его возможностей DevAudit сможет решать другие риски из списков OWASP Top 10 и CWE, такие как Injection и XSS. С учетом фокуса на веб, облачные и распределенные многопользовательские приложения, разработка программного обеспечения сегодня становится все более сложным делом, с проблемами безопасности и потенциальными уязвимостями, возникающими на всех уровнях стека, на которые полагаются разработчики для поставки приложений. Цель DevAudit — предоставить платформу для автоматизации реализации проверок безопасности разработки и лучших практик на всех уровнях стека решений, от зависимостей библиотек пакетов до конфигурации приложений и серверов, а также исходного кода.
Кроссплатформенность, также доступен Docker образ. DevAudit работает на Windows и Linux, с поддержкой *BSD, Mac и ARM Linux в планах. Для запуска DevAudit требуется только актуальная версия .NET или Mono. Docker образ DevAudit также можно загрузить с Docker Hub и запустить без установки Mono.
Интерфейс командной строки (CLI). DevAudit имеет CLI-интерфейс с возможностью неинтерактивного вывода и может быть легко интегрирован в конвейеры сборки CI или в качестве задач командной строки после сборки в IDE разработчиков. Работа по интеграции основной библиотеки аудита в графические интерфейсы IDE уже началась с расширения Audit.Net для Visual Studio.
Постоянно обновляемые данные об уязвимостях. DevAudit использует серверные провайдеры данных, такие как OSS Index и Vulners, которые предоставляют постоянно обновляемые данные об уязвимостях, собранные из широкого спектра каналов и источников данных по безопасности, таких как фиды NVD CVE, Drupal Security Advisories и т.д. Будет добавлена поддержка дополнительных провайдеров уязвимостей и пакетных данных, таких как vFeed и Libraries.io.
Аудит зависимостей пакетов операционной системы и разработки. DevAudit выполняет аудит приложений и пакетов Windows, установленных через Windows MSI, Chocolatey и OneGet, а также пакетов Debian, Ubuntu и CentOS Linux, установленных через Dpkg, RPM и YUM, на предмет уязвимостей, сообщенных для конкретных версий приложений и пакетов. Для зависимостей пакетов разработки и библиотек DevAudit выполняет аудит зависимостей NuGet v2 для .NET, Yarn/NPM и Bower для nodejs, а также зависимостей пакетов Composer для PHP. Поддержка других менеджеров пакетов для разных языков добавляется регулярно.
Аудит конфигураций серверов приложений. DevAudit выполняет аудит версии сервера и его конфигурации для серверов OpenSSH sshd, Apache httpd, MySQL/MariaDB, PostgreSQL и Nginx, и многие другие в разработке. Аудит конфигурации основан на библиотеке Alpheus и выполняется с использованием полного синтаксического анализа файлов конфигурации сервера. Правила конфигурации сервера хранятся в текстовых файлах YAML и могут быть настроены под нужды разработчиков. Поддержка многих других серверов и приложений, а также типов анализа, таких как аудит баз данных, добавляется регулярно.
Аудит конфигураций приложений. DevAudit выполняет аудит приложений Microsoft ASP.NET и обнаруживает уязвимости, присутствующие в конфигурации приложений. Правила конфигурации приложений хранятся в текстовых файлах YAML и могут быть настроены под нужды разработчиков. В разработке аудит конфигураций приложений, таких как Drupal, WordPress и DNN CMS.
Аудит кода приложений с помощью статического анализа. В настоящее время DevAudit поддерживает статический анализ байт-кода .NET CIL. Анализаторы находятся во внешних скриптовых файлах и могут быть полностью настроены в соответствии с потребностями разработчика. В разработке поддержка анализа исходного кода C# через Roslyn, исходного кода PHP7 и многих других языков, а также внешних инструментов статического анализа кода.
Удаленный аудит без агента. DevAudit может подключаться к удаленным хостам через SSH с теми же возможностями аудита в удаленных средах, что и в локальных. Для аудита удаленных хостов требуется только действительный SSH-логин, а DevAudit, работающий на Windows, может подключаться и выполнять аудит Linux-хостов через SSH. На Windows DevAudit также может удаленно подключаться и выполнять аудит других машин Windows через WinRM.
Аудит контейнеров Docker без агента. DevAudit может выполнять аудит работающих контейнеров Docker с хоста Docker с теми же возможностями в средах контейнеров, что и в локальных средах.
Аудит репозиториев GitHub. DevAudit может напрямую подключаться к репозиторию проекта, размещенному на GitHub, и выполнять аудит исходного кода пакетов и конфигурации приложений.
Поддержка PowerShell. DevAudit также может запускаться внутри среды системного администрирования PowerShell в качестве командлетов. Работа над поддержкой PowerShell в настоящее время приостановлена, но возобновится в ближайшем будущем с поддержкой кроссплатформенного PowerShell как на Windows, так и на Linux.
DevAudit — это приложение .NET 4.6. Для локальной установки на вашу машину вам понадобится либо среда выполнения Microsoft .NET Framework 4.6 на Windows, либо Mono 4.4+ на Linux. .NET 4.6 должен быть уже установлен на большинстве современных версий Windows; если нет, он доступен как компонент Windows, который можно включить или установить из апплета панели управления «Программы и компоненты» на потребительских версиях Windows или из опции «Добавление ролей и компонентов» в диспетчере серверов на серверных версиях Windows. Для более старых версий Windows установщик .NET 4.6 от Microsoft можно найти здесь.
На Linux минимальная поддерживаемая версия Mono — 4.4. Хотя DevAudit работает на Mono 4 (с одной известной проблемой), рекомендуется установить Mono 5. Mono 5 приносит множество улучшений в компоненты сборки и выполнения Mono, которые полезны для DevAudit.
Существующие пакеты Mono, предоставляемые вашим дистрибутивом, вероятно, еще не являются Mono 5, поэтому вам придется установить пакеты Mono вручную, чтобы использовать Mono 5. Инструкции по установке последних пакетов, предоставляемых проектом Mono для нескольких основных дистрибутивов Linux, находятся здесь. Рекомендуется установить пакет mono-devel, так как это уменьшит вероятность отсутствия сборок.
В качестве альтернативы на Linux вы можете использовать Docker образ DevAudit, если не хотите устанавливать Mono и уже установили Docker на своей машине.
DevAudit можно установить следующими способами:
Предварительные требования: Mono 4.4+ (рекомендуется Mono 5) и пакет mono-devel, который предоставляет компилятор и другие инструменты, необходимые для сборки приложений Mono. Ваш дистрибутив должен иметь пакеты как минимум для Mono версии 4.4 и выше, в противном случае инструкции по ручной установке последних пакетов, предоставляемых проектом Mono для нескольких основных дистрибутивов Linux, находятся здесь
Клонируйте репозиторий DevAudit с https://github.com/OSSIndex/DevAudit.git
Запустите скрипт build.sh в корневом каталоге DevAudit. DevAudit должен скомпилироваться без ошибок.
Запустите ./devaudit --help, и вы должны увидеть версию DevAudit и справку.
Обратите внимание, что NuGet на Linux может иногда завершаться с ошибкой Error: NameResolutionFailure, что, по-видимому, является временной проблемой подключения к серверам, содержащим пакеты NuGet. Вам следует просто запустить ./build.sh снова, пока сборка не завершится нормально.
Предварительные требования: У вас должно быть одно из:
Клонируйте репозиторий DevAudit с https://github.com/OSSIndex/DevAudit.git
Из Visual Studio 2015 или .NET запустите скрипт build.cmd в корневом каталоге DevAudit. DevAudit должен скомпилироваться без ошибок.
Запустите ./devaudit --help, и вы должны увидеть версию DevAudit и справку.
Предварительные требования: У вас должен быть Mono 4.4+ на Linux или .NET 4.6 на Windows.
Загрузите последний архивный файл релиза для Windows или Linux со страницы релизов проекта. Распакуйте этот файл в каталог.
Из каталога, куда вы распаковали архив релиза, запустите devaudit --help на Windows или ./devaudit --help на Linux. Вы должны увидеть версию и справку.
(Опционально) Добавьте каталог установки DevAudit в переменную среды PATH
Установщик MSI для релиза можно найти на странице релизов Github.
DevAudit также доступен на Chocolatey.
choco install devauditЗагрузите образ Devaudit с Docker Hub: docker pull ossindex/devaudit. Образ с тегом ossindex/devaudit:latest (который загружается по умолчанию) собран из последнего релиза, а ossindex/devaudit:unstable собран из ветки master исходного кода и содержит последние дополнения, хотя и с меньшим тестированием.
Представляет логическую группу функций аудита. В настоящее время DevAudit поддерживает следующие цели аудита:
Представляет логическую среду, в которой выполняются аудиты целей аудита. Среды аудита абстрагируют операции ввода-вывода и выполнения команд, необходимые для аудита, и позволяют выполнять одинаковые функции для целей аудита независимо от физического или сетевого расположения файлов и исполняемых файлов цели. В настоящее время поддерживаются следующие среды:
Это различные параметры, которые можно включить для аудита. Вы можете указать параметры, применимые к программе DevAudit, например, для работы в неинтерактивном режиме, а также параметры, применимые к цели, например, если вы установите для параметра AppDevMode при аудите приложений ASP.NET значение true, то некоторые правила аудита не будут включены.
CLI является основным интерфейсом программы DevAudit и подходит как для интерактивного использования, так и для неинтерактивного использования в запланированных задачах, скриптах оболочки, конвейерах сборки CI и задачах после сборки в средах разработки IDE. Основной синтаксис CLI DevAudit:
devaudit ЦЕЛЬ [СРЕДА] | [ПАРАМЕТРЫ]
где ЦЕЛЬ указывает цель аудита, СРЕДА указывает среду аудита, а ПАРАМЕТРЫ указывают параметры для цели и среды аудита. Есть 2 способа указать параметры: программные параметры и общие параметры аудита, применимые к нескольким целям, можно указать непосредственно в командной строке в качестве параметров. Параметры, специфичные для цели, можно указать с помощью параметра -o в формате: -o ПАРАМЕТР1=ЗНАЧЕНИЕ1,ПАРАМЕТР2=ЗНАЧЕНИЕ2,.... где запятые разделяют каждую пару ключ-значение.
Если вы перенаправляете вывод программы в файл или используете конвейер, всегда следует использовать параметр -n --non-interactive, чтобы отключить любые интерактивные функции пользовательского интерфейса и анимации.
При указании путей к файлам префикс @ перед путем указывает DevAudit, что этот путь относителен к корневому каталогу цели аудита. Например, если вы укажете:
-r c:\myproject -b @bin\Debug\app2.exe
DevAudit считает путь к бинарному файлу как c:\myproject\bin\Debug\app2.exe.
msi Выполнить аудит пакетов источника пакетов Windows Installer MSI на машинах Windows.
npm Выполнить аудит пакетов NPM package.json.
choco Выполнить аудит пакетов, установленных менеджером пакетов Choco.
oneget Выполнить аудит пакетов системного источника OneGet на Windows.
nuget Выполнить аудит пакетов источника NuGet v2. Необходимо указать расположение файла packages.config NuGet, который вы хотите проверить, с помощью параметра -f или --file, иначе будет выполнен поиск этого файла в текущем каталоге.
bower Выполнить аудит пакетов источника Bower. Необходимо указать расположение файла packages.json Bower, который вы хотите проверить, с помощью параметра -f или --file, иначе будет выполнен поиск этого файла в текущем каталоге.- composer Выполнить аудит пакетов источника пакетов Composer. Вы должны указать расположение файла composer.json Composer, который вы хотите проверить, с помощью опции -f или --file, иначе будет выполнен поиск этого файла в текущей директории.
dpkg Выполнить аудит пакетов системного источника пакетов dpkg на Debian Linux и производных.
rpm Выполнить аудит пакетов системного источника пакетов RPM на RedHat Linux и производных.
yum Выполнить аудит пакетов системного источника пакетов Yum на RedHat Linux и производных.
Для каждого источника пакетов можно использовать следующие общие опции аудита:
-f --file Указать расположение файла конфигурации менеджера пакетов, если необходимо. Источники пакетов NuGet, Bower и Composer требуют этой опции.--list-packages Только вывести список пакетов в источнике пакетов, просканированном DevAudit.--list-artifacts Только вывести список артефактов, найденных на OSS Index для пакетов, просканированных DevAudit.Источники пакетов, помеченные как [Experimental], доступны только в ветке master исходного кода и могут иметь ограниченную поддержку серверной части OSS Index. Однако вы всегда можете вывести список просканированных пакетов и доступных артефактов на OSS Index с помощью опций list-packages и list-artifacts.
aspnet Выполнить аудит приложения для приложения ASP.NET. Соответствующие опции:
-r --root-directory Указать корневую директорию приложения. Это просто корневая директория приложения верхнего уровня, содержащая такие файлы, как Global.asax и Web.config.-b --application-binary Указать двоичный файл приложения. Это сборка .NET, содержащая байт-код .NET приложения. Этот файл обычно имеет расширение .DLL и находится в подпапке bin корневой директории приложения ASP.NET.--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 и находится в подпапке bin корневой директории приложения ASP.NET.--config-file или -o AppConfig=configuration-file Указывает файл конфигурации приложения .NET. Этот файл обычно называется App.config и находится в корневой директории приложения. Вы можете переопределить значение по умолчанию @App.config с помощью этой опции.-o GendarmeRules=RuleLibrary Указывает, что для аудита должен быть включен статический анализатор 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 на сборке vbot.core.dll с использованием правил из библиотеки Gendarme.Rules.Naming. Полный список библиотек правил (взято из вики Gendarme):drupal7 Выполнить аудит приложения для приложения Drupal 7.
-r --root-directory Указать корневую директорию приложения. Это просто корневая директория верхнего уровня вашей установки Drupal 7.drupal8 Выполнить аудит приложения для приложения Drupal 8.
-r --root-directory Указать корневую директорию приложения. Это просто корневая директория верхнего уровня вашей установки Drupal 8.Все приложения также поддерживают следующие общие опции для аудита модулей или плагинов приложения:
--list-packages Только вывести список плагинов или модулей приложения, просканированных DevAudit.
--list-artifacts Только вывести список артефактов, найденных на OSS Index для плагинов и модулей приложения, просканированных DevAudit.
--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
который выполняет аудит сервера Apache Httpd, работающего в контейнере Docker с именем httpd-2.2.
Следующие опции аудита являются общими для всех серверов приложений:
-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 Только вывести список артефактов, найденных на OSS Index для плагинов и модулей приложения, просканированных DevAudit.
--skip-packages-audit Выполнить только аудит конфигурации сервера, пропустив аудит пакетов.
В настоящее время поддерживается 5 сред аудита: локальная, удаленные хосты через SSH, удаленные хосты через WinRM, контейнеры Docker и GitHub. Локальные среды используются по умолчанию, если не указаны другие опции среды.
Среда SSH позволяет выполнять аудит на любых удаленных хостах, доступных через SSH, без необходимости установки DevAudit на удаленном хосте. Среды SSH кроссплатформенны: вы можете подключиться к удаленному хосту Linux с машины Windows, на которой запущен DevAudit. Среда SSH создается следующими опциями: -s SERVER [--ssh-port PORT] -u USER [-k KEYFILE] [-p | --password-text PASSWORD]
-s SERVER Указывает удаленный хост или IP для подключения через SSH.
-u USER Указывает пользователя для входа на сервер.
--ssh-port PORT Указывает порт на удаленном хосте для подключения. По умолчанию — 22.
-k KEYFILE Указывает файл закрытого ключа, совместимого с OpenSSH, для подключения к удаленному серверу. В настоящее время поддерживаются только ключи RSA или DSA в файлах формата PEM.
-p Вывести подсказку с отключенным локальным эхом для интерактивного ввода пароля сервера или ключевой фразы файла ключа.
--password-text PASSWORD Указать пароль пользователя или ключевую фразу файла ключа в виде открытого текста в командной строке. Обратите внимание, что в Linux, если ваш пароль содержит специальные символы, следует заключать текст в командной строке в одинарные кавычки, например 'MyPa<ss', чтобы оболочка не интерпретировала специальные символы.
Среда WinRM позволяет выполнять аудит на любых удаленных хостах Windows, доступных через WinRM, без необходимости установки DevAudit на удаленном хосте. Среды WinRM в настоящее время доступны только на машинах Windows, на которых запущен DevAudit. Среда WinRM создается следующими опциями: -w IP -u USER [-p | --password-text PASSWORD]
-w IP Указывает удаленный IP для подключения через WinRM.
-u USER Указывает пользователя для входа на сервер.
-p Вывести подсказку с отключенным локальным эхом для интерактивного ввода пароля сервера или ключевой фразы файла ключа.
--password-text PASSWORD Указать пароль сервера или ключевую фразу файла ключа в виде открытого текста в командной строке.
В этом разделе рассматривается, как аудировать образы Docker с помощью DevAudit, установленного на локальной машине. Информацию о запуске DevAudit как контейнеризованного приложения Docker см. в разделе ниже об использовании Docker.
Среда аудита Docker задается следующей опцией: -i CONTAINER_NAME | -i CONTAINER_ID
CONTAINER_(NAME|ID) Указывает имя или идентификатор запущенного контейнера Docker для подключения. Контейнер должен быть уже запущен, так как DevAudit не умеет запускать контейнер с требуемым вами именем или состоянием.
Среда аудита 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
выполнит аудит ASP.NET для этого репозитория https://github.com/dnnsoftware/Dnn.Platform/ с использованием исходной папки /Website в качестве корневой директории и файла web.config в качестве файла конфигурации ASP.NET. Обратите внимание, что в большинстве сред имена файлов чувствительны к регистру.

-n --non-interactive Запустить DevAudit в неинтерактивном режиме со всеми отключенными интерактивными функциями и анимациями CLI. Этот режим необходим, например, для запуска DevAudit в shell-скриптах, иначе возникнут ошибки при попытке DevAudit использовать интерактивные возможности консоли.
-d --debug Запустить DevAudit в режиме отладки. Будут выведены различные информационные и диагностические сообщения. Этот режим используется для устранения ошибок и неполадок DevAudit.
DevAudit также поставляется как контейнеризованное приложение Docker, что позволяет пользователям в Linux запускать DevAudit без необходимости установки Mono и сборки из исходного кода. Чтобы загрузить образ Docker DevAudit из Docker Hub:
docker pull ossindex/devaudit[:label]
Текущие образы имеют размер около 131 МБ в сжатом виде. По умолчанию загружается образ с меткой latest, который является последней версией программы. Также доступен образ unstable, который отслеживает ветку master исходного кода. Чтобы запустить DevAudit как контейнеризованное приложение:
docker run -i -t ossindex/devaudit TARGET [ENVIRONMENT] | [OPTIONS]
Опции Docker -i и -t необходимы для интерактивного запуска DevAudit. Если вы не укажете эти опции, то должны запустить DevAudit в неинтерактивном режиме, используя опцию DevAudit -n.
Вы должны смонтировать любые директории на хост-машине Docker, к которым DevAudit нуждается в доступе, в контейнере Docker DevAudit с помощью опции Docker -v. Если вы смонтируете свою локальную корневую директорию в точке монтирования с именем /hostroot на образе Docker, то DevAudit сможет получать доступ к файлам и директориям на вашей локальной машине, используя те же локальные пути. Например:
docker run -i -t -v /:/hostroot:ro ossindex/devaudit netfx -r /home/allisterb/vbot-debian/vbot.core
позволит контейнеру Docker DevAudit выполнить аудит локальной директории /home/allisterb/vbot-debian/vbot.core. Вы должны смонтировать свою локальную корневую директорию таким образом, чтобы выполнять аудит других контейнеров Docker из контейнера DevAudit, например:
docker run -i -t -v /:/hostroot:ro ossindex/devaudit mysql -i myapp1 -r / --config-file /etc/my.cnf --skip-packages-audit
выполнит аудит MySQL на контейнере Docker с именем myapp1 из контейнера ossindex/devaudit.
Если вам не нужно монтировать всю корневую директорию, вы можете смонтировать только директорию, необходимую для аудита. Например:
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 получить к ней доступ как к корневой директории аудита для аудита приложения netfx в /vbot.
Если вы хотите использовать файлы закрытых ключей на локальном хосте Docker для аудита через SSH, вы можете смонтировать директорию, содержащую необходимый файл ключа, а затем указать 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 не может выполнять аудит источников пакетов операционной системы, таких как dpkg или rpm, или серверов приложений, таких как OpenSSH sshd, на локальном хосте Docker без монтирования вашей локальной корневой директории в /hostroot, как описано выше. DevAudit должен выполнить chroot в вашу локальную корневую директорию из контейнера Docker при запуске исполняемых файлов, таких как dpkg, или двоичных файлов сервера, таких как sshd и httpd. Вы также должны смонтировать свою локальную корневую директорию, как описано выше, для аудита других контейнеров Docker из контейнера DevAudit, поскольку DevAudit также необходимо выполнить chroot в вашу локальную корневую директорию для выполнения локальных команд Docker для связи с вашими другими контейнерами.
Для выполнения аудита через SSH из контейнера DevAudit не требуется монтировать локальную корневую директорию в /hostroot.
Если вы столкнулись с ошибкой или другой проблемой в DevAudit, вы можете включить несколько вещей, чтобы помочь нам её решить:
-n --non-interactive при перенаправлении вывода программы в файл, иначе произойдет сбой. В будущем это поведение может быть изменено, чтобы неинтерактивный режим стал режимом по умолчанию.