Dagda - это инструмент для проведения статического анализа известных уязвимостей, троян, вирусов, вредоносных программ и других злонамеренных угроз в изображениях/контейнерах Docker, а также для мониторинга демона Docker и управления контейнерами Docker для обнаружения аномальной деятельности.
Чтобы выполнить свою миссию, сначала известные уязвимости в качестве CVE (общие уязвимости и экспозиции), предложения (ID Bugtraq ID), RHSA (консультанты по безопасности Red Hat) и RHBA (консультанты с ошибками Red Hat), и известные экспозиции из базы данных наступательной безопасности импортируются в MONGODB, чтобы способствовать поискам этих ультрафиологии, и в поисках.
Затем, когда вы запускаете статический анализ известных уязвимостей, Dagda извлекает информацию о программном обеспечении, установленном в вашем изображении Docker, таких как пакеты ОС и зависимости языков программирования, и проверяет для каждого продукта и его версии, если он свободен от уязвимостей против ранее хранимой информации в монгодб. Кроме того, Dagda использует Clamav в качестве антивирусного двигателя для обнаружения троян, вирусов, вредоносных программ и других злонамеренных угроз, включенных в изображения/контейнеры Docker.
DAGDA поддерживает несколько изображений базовых Linux:
Dagda опирается на проверку зависимости OWASP + stire.js для анализа нескольких зависимостей из:
С другой стороны, DAGDA интегрирована с FALCO для мониторинга контейнеров Docker для обнаружения аномальных действий. Кроме того, Dagda включает в себя собрание событий в реальном времени от Docker Daemon.
Наконец, каждый отчет об анализе изображения/контейнера Docker, включающий весь статический анализ и весь мониторинг времени выполнения, хранится в одном и том же MongoDB для получения истории каждого изображения/контейнера Docker, когда это необходимо.
Перед использованием Dagda вы должны установить следующие требования:
Требования могут быть установлены с помощью PIP:
sudo pip3 install -r requirements.txtВы должны установить Docker для использования Dagda . Если вам нужны инструкции для установки Docker, см.
Чтобы избежать необходимости использовать sudo , когда вы используете команду docker , создайте группу UNIX с именем docker и добавьте к ней пользователей. Когда начинается демон docker , он делает право собственности на чтение/записи Unix для группы docker .
Вы должны были установить MongoDB 3.6 или более поздней версии для использования DAGDA , потому что в MongoDB хранятся как уязвимости/эксплойты, так и результаты анализа.
Если вам нужны инструкции для установки MongoDB, см.
Вы также можете запустить MongoDB с помощью Docker:
docker pull mongo
docker run -d -p 27017:27017 mongoВы должны установить заголовки ядра в ОС хоста, потому что Dagda интегрирована с FALCO для мониторинга контейнеров для бега докеров для обнаружения аномальных действий.
Обычно это можно сделать на дистрибутивах, подобных Debian, с: apt-get -y install linux-headers-$(uname -r)
Или, на Rhel-подобных распределениях: yum -y install kernel-devel-$(uname -r)
После этого /usr/lib/dkms/dkms_autoinstaller start рекомендуется для избежания следующего следов ошибок Sysdig Falco:
rmmod: ERROR: Module sysdig_probe is not currently loaded
Важно отметить: в некоторых распределениях было обнаружено, что требуется установка SYSDIG, поэтому, если вам нужны инструкции для установки SYSDIG, см. Сделайте модель SYSDIG для Linux Page.
Вы должны запустить python3 dagda.py start для запуска сервера Dagda . Для получения подробной информации см. START Subcommand на странице вики.
После того, как сервер DAGDA запустился и до использования DAGDA CLI вы должны установить следующие переменные среды по мере необходимости:
export DAGDA_HOST= ' 127.0.0.1 '
export DAGDA_PORT=5000Хотя в этой документации по использованию показано только использование CLI, Dagda имеет API REST для его использования. Смотрите страницу документации REST API для получения подробной информации.
Для первоначального запуска вам необходимо заполнить уязвимости и эксплойты в базе данных, работая:
python3 dagda.py vuln --initПредыдущая команда может занять несколько минут для отделки, так что будьте терпеливы.
Если вам нужна репутация вашей базы данных для обновления с помощью новых уязвимостей и эксплойтов, вам нужно только повторно затронуть предыдущую команду.
Кроме того, вы можете запустить запросы в вашей личной базе данных с dagda.py vuln . Пример использования будет следующим:
python3 dagda.py vuln --product openldap --product_version 2.2.20Ожидаемый выход для предыдущего запроса показан ниже:
[
{
"CVE-2005-4442" : {
"cveid" : " CVE-2005-4442 " ,
"cvss_access_complexity" : " Low " ,
"cvss_access_vector" : " Local access " ,
"cvss_authentication" : " None required " ,
"cvss_availability_impact" : " Complete " ,
"cvss_base" : 7.2 ,
"cvss_confidentiality_impact" : " Complete " ,
"cvss_exploit" : 3.9 ,
"cvss_impact" : 10.0 ,
"cvss_integrity_impact" : " Complete " ,
"cvss_vector" : [
" AV:L " ,
" AC:L " ,
" Au:N " ,
" C:C " ,
" I:C " ,
" A:C "
],
"cweid" : " CWE-0 " ,
"mod_date" : " 05-09-2008 " ,
"pub_date" : " 20-12-2005 " ,
"summary" : " Untrusted search path vulnerability in OpenLDAP before 2.2.28-r3 on Gentoo Linux allows local users in the portage group to gain privileges via a malicious shared object in the Portage temporary build directory, which is part of the RUNPATH. "
}
},
{
"CVE-2006-2754" : {
"cveid" : " CVE-2006-2754 " ,
"cvss_access_complexity" : " Low " ,
"cvss_access_vector" : " Network " ,
"cvss_authentication" : " None required " ,
"cvss_availability_impact" : " None " ,
"cvss_base" : 5.0 ,
"cvss_confidentiality_impact" : " None " ,
"cvss_exploit" : 10.0 ,
"cvss_impact" : 2.9 ,
"cvss_integrity_impact" : " Partial " ,
"cvss_vector" : [
" AV:N " ,
" AC:L " ,
" Au:N " ,
" C:N " ,
" I:P " ,
" A:N "
],
"cweid" : " CWE-0 " ,
"mod_date" : " 07-03-2011 " ,
"pub_date" : " 01-06-2006 " ,
"summary" : " Stack-based buffer overflow in st.c in slurpd for OpenLDAP before 2.3.22 might allow attackers to execute arbitrary code via a long hostname. "
}
},
{
"CVE-2006-5779" : {
"cveid" : " CVE-2006-5779 " ,
"cvss_access_complexity" : " Low " ,
"cvss_access_vector" : " Network " ,
"cvss_authentication" : " None required " ,
"cvss_availability_impact" : " Partial " ,
"cvss_base" : 5.0 ,
"cvss_confidentiality_impact" : " None " ,
"cvss_exploit" : 10.0 ,
"cvss_impact" : 2.9 ,
"cvss_integrity_impact" : " None " ,
"cvss_vector" : [
" AV:N " ,
" AC:L " ,
" Au:N " ,
" C:N " ,
" I:N " ,
" A:P "
],
"cweid" : " CWE-399 " ,
"mod_date" : " 26-08-2011 " ,
"pub_date" : " 07-11-2006 " ,
"summary" : " OpenLDAP before 2.3.29 allows remote attackers to cause a denial of service (daemon crash) via LDAP BIND requests with long authcid names, which triggers an assertion failure. "
}
},
{
"CVE-2006-6493" : {
"cveid" : " CVE-2006-6493 " ,
"cvss_access_complexity" : " High " ,
"cvss_access_vector" : " Network " ,
"cvss_authentication" : " None required " ,
"cvss_availability_impact" : " Partial " ,
"cvss_base" : 5.1 ,
"cvss_confidentiality_impact" : " Partial " ,
"cvss_exploit" : 4.9 ,
"cvss_impact" : 6.4 ,
"cvss_integrity_impact" : " Partial " ,
"cvss_vector" : [
" AV:N " ,
" AC:H " ,
" Au:N " ,
" C:P " ,
" I:P " ,
" A:P "
],
"cweid" : " CWE-0 " ,
"mod_date" : " 07-03-2011 " ,
"pub_date" : " 12-12-2006 " ,
"summary" : " Buffer overflow in the krbv4_ldap_auth function in servers/slapd/kerberos.c in OpenLDAP 2.4.3 and earlier, when OpenLDAP is compiled with the --enable-kbind (Kerberos KBIND) option, allows remote attackers to execute arbitrary code via an LDAP bind request using the LDAP_AUTH_KRBV41 authentication method and long credential data. "
}
},
{
"CVE-2007-5707" : {
"cveid" : " CVE-2007-5707 " ,
"cvss_access_complexity" : " Medium " ,
"cvss_access_vector" : " Network " ,
"cvss_authentication" : " None required " ,
"cvss_availability_impact" : " Complete " ,
"cvss_base" : 7.1 ,
"cvss_confidentiality_impact" : " None " ,
"cvss_exploit" : 8.6 ,
"cvss_impact" : 6.9 ,
"cvss_integrity_impact" : " None " ,
"cvss_vector" : [
" AV:N " ,
" AC:M " ,
" Au:N " ,
" C:N " ,
" I:N " ,
" A:C "
],
"cweid" : " CWE-399 " ,
"mod_date" : " 07-03-2011 " ,
"pub_date" : " 30-10-2007 " ,
"summary" : " OpenLDAP before 2.3.39 allows remote attackers to cause a denial of service (slapd crash) via an LDAP request with a malformed objectClasses attribute. NOTE: this has been reported as a double free, but the reports are inconsistent. "
}
},
{
"CVE-2007-5708" : {
"cveid" : " CVE-2007-5708 " ,
"cvss_access_complexity" : " Medium " ,
"cvss_access_vector" : " Network " ,
"cvss_authentication" : " None required " ,
"cvss_availability_impact" : " Complete " ,
"cvss_base" : 7.1 ,
"cvss_confidentiality_impact" : " None " ,
"cvss_exploit" : 8.6 ,
"cvss_impact" : 6.9 ,
"cvss_integrity_impact" : " None " ,
"cvss_vector" : [
" AV:N " ,
" AC:M " ,
" Au:N " ,
" C:N " ,
" I:N " ,
" A:C "
],
"cweid" : " CWE-399 " ,
"mod_date" : " 07-03-2011 " ,
"pub_date" : " 30-10-2007 " ,
"summary" : " slapo-pcache (overlays/pcache.c) in slapd in OpenLDAP before 2.3.39, when running as a proxy-caching server, allocates memory using a malloc variant instead of calloc, which prevents an array from being initialized properly and might allow attackers to cause a denial of service (segmentation fault) via unknown vectors that prevent the array from being null terminated. "
}
},
{
"CVE-2011-4079" : {
"cveid" : " CVE-2011-4079 " ,
"cvss_access_complexity" : " Low " ,
"cvss_access_vector" : " Network " ,
"cvss_authentication" : " Requires single instance " ,
"cvss_availability_impact" : " Partial " ,
"cvss_base" : 4.0 ,
"cvss_confidentiality_impact" : " None " ,
"cvss_exploit" : 8.0 ,
"cvss_impact" : 2.9 ,
"cvss_integrity_impact" : " None " ,
"cvss_vector" : [
" AV:N " ,
" AC:L " ,
" Au:S " ,
" C:N " ,
" I:N " ,
" A:P "
],
"cweid" : " CWE-189 " ,
"mod_date" : " 06-01-2017 " ,
"pub_date" : " 27-10-2011 " ,
"summary" : " Off-by-one error in the UTF8StringNormalize function in OpenLDAP 2.4.26 and earlier allows remote attackers to cause a denial of service (slapd crash) via a zero-length string that triggers a heap-based buffer overflow, as demonstrated using an empty postalAddressAttribute value in an LDIF entry. "
}
},
{
"BID-83610" : {
"bugtraq_id" : 83610 ,
"class" : " Failure to Handle Exceptional Conditions " ,
"cve" : [
" CVE-2006-6493 "
],
"local" : " no " ,
"remote" : " yes " ,
"title" : " OpenLDAP CVE-2006-6493 Remote Security Vulnerability "
}
},
{
"BID-83843" : {
"bugtraq_id" : 83843 ,
"class" : " Failure to Handle Exceptional Conditions " ,
"cve" : [
" CVE-2006-2754 "
],
"local" : " no " ,
"remote" : " yes " ,
"title" : " OpenLDAP CVE-2006-2754 Remote Security Vulnerability "
}
}
]Чтобы получить всю информацию о конкретном CVE, вы должны запустить следующую команду:
python3 dagda.py vuln --cve_info CVE-2009-2890Ожидаемый выход для предыдущего запроса показан ниже:
[
{
"cveid" : " CVE-2009-2890 " ,
"cvss_access_complexity" : " Medium " ,
"cvss_access_vector" : " Network " ,
"cvss_authentication" : " None required " ,
"cvss_availability_impact" : " None " ,
"cvss_base" : 4.3 ,
"cvss_confidentiality_impact" : " None " ,
"cvss_exploit" : 8.6 ,
"cvss_impact" : 2.9 ,
"cvss_integrity_impact" : " Partial " ,
"cvss_vector" : [
" AV:N " ,
" AC:M " ,
" Au:N " ,
" C:N " ,
" I:P " ,
" A:N "
],
"cweid" : " CWE-79 " ,
"mod_date" : " 20-08-2009 " ,
"pub_date" : " 20-08-2009 " ,
"summary" : " Cross-site scripting (XSS) vulnerability in results.php in PHP Scripts Now Riddles allows remote attackers to inject arbitrary web script or HTML via the searchquery parameter. "
}
] Если вы хотите узнать более подробную информацию о dagda.py vuln , введите python3 dagda.py vuln --help или посмотрите подкоманду vuln на странице вики.
База данных называется vuln_database , и есть 10 коллекций:
http://www.securityfocus.com/ ) - источник biddb_downloaderВ следующих подразделах, оба, выполнение статического анализа известных уязвимостей, троянцев, вирусов, вредоносных программ и других вредоносных угроз и мониторинга контейнеров для пропуска докеров для обнаружения аномальных действий будут описаны подробно.
Одним из основных целей Dagda является проведенный анализ известных уязвимостей, троянцев, вирусов, вредоносных программ и других злонамеренных угроз в изображениях/контейнерах Docker, поэтому, если вы хотите выполнить анализ по изображению/контейнеру Docker, вы должны введите:
python3 dagda.py check --docker_image jboss/wildflyСмотрите страницу Sheck Subcommand Wiki для деталей.
Ожидаемый вывод для предыдущей команды будет следующим. В этом выходе дагда отвечает с id анализа.
{
"id" : " 58667994ed253915723c50e7 " ,
"msg" : " Accepted the analysis of <jboss/wildfly> "
}Кроме того, если вы хотите запустить статический анализ удаленным образом, вы можете использовать подкоманду агента :
python3 dagda.py agent localhost:5000 -i jboss/wildfly Ожидаемый вывод для предыдущей команды будет следующим. В этом выходе дагда отвечает с id анализа.
{
"id" : " 58667994ed253915723c50e7 " ,
"image_name" : " jboss/wildfly "
}Если вы хотите просмотреть конкретный анализ Docker, вы должны ввести:
python3 dagda.py history < DOCKER_IMAGE_NAME_HERE > --id < REPORT_ID_HERE > Для получения более подробной информации об dagda.py history , типа python3 dagda.py history --help или смотрите подкоманду истории на странице вики.
Анализ может занять несколько минут для отделки, так что будьте терпеливы. Если вы набрали предыдущую команду, когда вы вводите python3 dagda.py history jboss/wildfly --id 58667994ed253915723c50e7 , ожидаемый выход выглядит как показано ниже.
{
"id" : " 58667994ed253915723c50e7 " ,
"image_name" : " jboss/wildfly " ,
"status" : " Completed " ,
"timestamp" : " 2016-12-14 13:17:12.802486 " ,
"static_analysis" : {
"malware_binaries" : [
{
"file" : " /tmp/test/removal-tool.exe " ,
"malware" : " Worm.Sober "
},
{
"file" : " /tmp/test/error.hta " ,
"malware" : " VBS.Inor.D "
}
],
"os_packages" : {
"total_os_packages" : 182 ,
"vuln_os_packages" : 41 ,
"ok_os_packages" : 141 ,
"os_packages_details" : [
{
"product" : " sed " ,
"version" : " 4.2.2 " ,
"is_vulnerable" : false ,
"is_false_positive" : false ,
"vulnerabilities" : []
},
{
"product" : " grep " ,
"version" : " 2.20 " ,
"is_vulnerable" : true ,
"is_false_positive" : false ,
"vulnerabilities" : [
{
"CVE-2015-1345" : {
"cveid" : " CVE-2015-1345 " ,
"cvss_access_complexity" : " Low " ,
"cvss_access_vector" : " Local access " ,
"cvss_authentication" : " None required " ,
"cvss_availability_impact" : " Partial " ,
"cvss_base" : 2.1 ,
"cvss_confidentiality_impact" : " None " ,
"cvss_exploit" : 3.9 ,
"cvss_impact" : 2.9 ,
"cvss_integrity_impact" : " None " ,
"cvss_vector" : [
" AV:L " ,
" AC:L " ,
" Au:N " ,
" C:N " ,
" I:N " ,
" A:P "
],
"cweid" : " CWE-119 " ,
"mod_date" : " 23-12-2016 " ,
"pub_date" : " 12-02-2015 " ,
"summary" : " The bmexec_trans function in kwset.c in grep 2.19 through 2.21 allows local users to cause a denial of service (out-of-bounds heap read and crash) via crafted input when using the -F option. "
}
}
]
},
{
"product" : " lua " ,
"version" : " 5.1.4 " ,
"is_vulnerable" : true ,
"is_false_positive" : false ,
"vulnerabilities" : [
{
"CVE-2014-5461" : {
"cveid" : " CVE-2014-5461 " ,
"cvss_access_complexity" : " Low " ,
"cvss_access_vector" : " Network " ,
"cvss_authentication" : " None required " ,
"cvss_availability_impact" : " Partial " ,
"cvss_base" : 5.0 ,
"cvss_confidentiality_impact" : " None " ,
"cvss_exploit" : 10.0 ,
"cvss_impact" : 2.9 ,
"cvss_integrity_impact" : " None " ,
"cvss_vector" : [
" AV:N " ,
" AC:L " ,
" Au:N " ,
" C:N " ,
" I:N " ,
" A:P "
],
"cweid" : " CWE-119 " ,
"mod_date" : " 06-01-2017 " ,
"pub_date" : " 04-09-2014 " ,
"summary" : " Buffer overflow in the vararg functions in ldo.c in Lua 5.1 through 5.2.x before 5.2.3 allows context-dependent attackers to cause a denial of service (crash) via a small number of arguments to a function with a large number of fixed arguments. "
}
},
{
"BID-34237" : {
"bugtraq_id" : 34237 ,
"class" : " Unknown " ,
"cve" : [],
"local" : " no " ,
"remote" : " yes " ,
"title" : " Lua Unspecified Bytecode Verifier Security Vulnerability "
}
}
]
},
[ ... ]
, {
"product" : " sqlite " ,
"version" : " 3.7.17 " ,
"is_vulnerable" : false ,
"is_false_positive" : false ,
"vulnerabilities" : []
}
]
},
"prog_lang_dependencies" : {
"vuln_dependencies" : 9 ,
"dependencies_details" : {
"java" : [
{
"product" : " xalan-java " ,
"version" : " 2.5.2 " ,
"product_file_path" : " /opt/jboss/java/xalan.2.5.2.jar " ,
"is_vulnerable" : true ,
"is_false_positive" : false ,
"vulnerabilities" : [
{
"CVE-2014-0107" : {
"cveid" : " CVE-2014-0107 " ,
"cvss_access_complexity" : " Low " ,
"cvss_access_vector" : " Network " ,
"cvss_authentication" : " None required " ,
"cvss_availability_impact" : " Partial " ,
"cvss_base" : 7.5 ,
"cvss_confidentiality_impact" : " Partial " ,
"cvss_exploit" : 10.0 ,
"cvss_impact" : 6.4 ,
"cvss_integrity_impact" : " Partial " ,
"cvss_vector" : [
" AV:N " ,
" AC:L " ,
" Au:N " ,
" C:P " ,
" I:P " ,
" A:P "
],
"cweid" : " CWE-264 " ,
"mod_date" : " 06-01-2017 " ,
"pub_date" : " 15-04-2014 " ,
"summary" : " The TransformerFactory in Apache Xalan-Java before 2.7.2 does not properly restrict access to certain properties when FEATURE_SECURE_PROCESSING is enabled, which allows remote attackers to bypass expected restrictions and load arbitrary classes or access external resources via a crafted (1) xalan:content-header, (2) xalan:entities, (3) xslt:content-header, or (4) xslt:entities property, or a Java property that is bound to the XSLT 1.0 system-property function. "
}
},
{
"BID-66397" : {
"bugtraq_id" : 66397 ,
"class" : " Input Validation Error " ,
"cve" : [
" CVE-2014-0107 "
],
"local" : " no " ,
"remote" : " yes " ,
"title" : " Apache Xalan-Java Library CVE-2014-0107 Security Bypass Vulnerability "
}
}
]
},
{
"product" : " jboss_wildfly_application_server " ,
"version" : " - " ,
"product_file_path" : " /opt/jboss/java/jboss_wildfly_application_server.jar " ,
"is_vulnerable" : true ,
"is_false_positive" : false ,
"vulnerabilities" : [
{
"CVE-2014-0018" : {
"cveid" : " CVE-2014-0018 " ,
"cvss_access_complexity" : " Medium " ,
"cvss_access_vector" : " Local access " ,
"cvss_authentication" : " None required " ,
"cvss_availability_impact" : " None " ,
"cvss_base" : 1.9 ,
"cvss_confidentiality_impact" : " None " ,
"cvss_exploit" : 3.4 ,
"cvss_impact" : 2.9 ,
"cvss_integrity_impact" : " Partial " ,
"cvss_vector" : [
" AV:L " ,
" AC:M " ,
" Au:N " ,
" C:N " ,
" I:P " ,
" A:N "
],
"cweid" : " CWE-264 " ,
"mod_date" : " 06-01-2017 " ,
"pub_date" : " 14-02-2014 " ,
"summary" : " Red Hat JBoss Enterprise Application Platform (JBEAP) 6.2.0 and JBoss WildFly Application Server, when run under a security manager, do not properly restrict access to the Modular Service Container (MSC) service registry, which allows local users to modify the server via a crafted deployment. "
}
}
]
},
[ ... ]
, {
"product" : " jboss_weld " ,
"version" : " 3.0.0 " ,
"product_file_path" : " /opt/jboss/java/jboss_weld.3.0.0.jar " ,
"is_vulnerable" : true ,
"is_false_positive" : false ,
"vulnerabilities" : [
{
"CVE-2014-8122" : {
"cveid" : " CVE-2014-8122 " ,
"cvss_access_complexity" : " Medium " ,
"cvss_access_vector" : " Network " ,
"cvss_authentication" : " None required " ,
"cvss_availability_impact" : " None " ,
"cvss_base" : 4.3 ,
"cvss_confidentiality_impact" : " Partial " ,
"cvss_exploit" : 8.6 ,
"cvss_impact" : 2.9 ,
"cvss_integrity_impact" : " None " ,
"cvss_vector" : [
" AV:N " ,
" AC:M " ,
" Au:N " ,
" C:P " ,
" I:N " ,
" A:N "
],
"cweid" : " CWE-362 " ,
"mod_date" : " 13-05-2015 " ,
"pub_date" : " 13-02-2015 " ,
"summary" : " Race condition in JBoss Weld before 2.2.8 and 3.x before 3.0.0 Alpha3 allows remote attackers to obtain information from a previous conversation via vectors related to a stale thread state. "
}
}
]
}
],
"js" : [],
"nodejs" : [],
"php" : [],
"python" : [
{
"product" : " lxml " ,
"version" : " 1.0.1 " ,
"product_file_path" : " /opt/jboss/python/lxml.1.0.1.py " ,
"is_vulnerable" : true ,
"is_false_positive" : false ,
"vulnerabilities" : [
{
"CVE-2014-3146" : {
"cveid" : " CVE-2014-3146 " ,
"cvss_access_complexity" : " Medium " ,
"cvss_access_vector" : " Network " ,
"cvss_authentication" : " None required " ,
"cvss_availability_impact" : " None " ,
"cvss_base" : 4.3 ,
"cvss_confidentiality_impact" : " None " ,
"cvss_exploit" : 8.6 ,
"cvss_impact" : 2.9 ,
"cvss_integrity_impact" : " Partial " ,
"cvss_vector" : [
" AV:N " ,
" AC:M " ,
" Au:N " ,
" C:N " ,
" I:P " ,
" A:N "
],
"cweid" : " CWE-0 " ,
"mod_date" : " 14-04-2015 " ,
"pub_date" : " 14-05-2014 " ,
"summary" : " Incomplete blacklist vulnerability in the lxml.html.clean module in lxml before 3.3.5 allows remote attackers to conduct cross-site scripting (XSS) attacks via control characters in the link scheme to the clean_html function. "
}
}
]
}
],
"ruby" : []
}
}
}
}Еще одна из основных целей Dagda - это выполнение мониторинга запуска контейнеров Docker для обнаружения аномальных действий, поэтому, если вы хотите выполнить мониторинг по работающему контейнеру Docker, вы должны ввести:
python3 dagda.py monitor 69dbf26ab368 --startДля получения подробной информации см. Монитор Subcommand Wiki.
Ожидаемый выход выглядит как показано ниже:
{
"id" : " 586f7631ed25396a829baaf4 " ,
"image_name" : " jboss/wildfly " ,
"msg" : " Monitoring of docker container with id <69dbf26ab368> started "
}Вы можете остановить мониторинг, когда хотите, если напечатаете:
python3 dagda.py monitor 69dbf26ab368 --stopОжидаемый вывод, когда вы останавливаете мониторинг над работающим контейнером, выглядит как показано ниже:
{
"id" : " 586f7631ed25396a829baaf4 " ,
"image_name" : " jboss/wildfly " ,
"timestamp" : " 2017-01-06 10:49:21.212508 " ,
"status" : " Completed " ,
"runtime_analysis" : {
"container_id" : " 69dbf26ab368 " ,
"start_timestamp" : " 2017-01-06 10:49:21.212508 " ,
"stop_timestamp" : " 2017-01-06 10:50:16.343847 " ,
"anomalous_activities_detected" : {
"anomalous_counts_by_severity" : {
"Warning" : 2
},
"anomalous_activities_details" : [{
"output" : " 10:49:47.492517329: Warning Unexpected setuid call by non-sudo, non-root program (user=<NA> command=ping 8.8.8.8 uid=<NA>) container=thirsty_spence (id=69dbf26ab368) " ,
"priority" : " Warning " ,
"rule" : " Non sudo setuid " ,
"time" : " 2017-01-06 10:49:47.492516 "
}, {
"output" : " 10:49:53.181654702: Warning Unexpected setuid call by non-sudo, non-root program (user=<NA> command=ping 8.8.4.4 uid=<NA>) container=thirsty_spence (id=69dbf26ab368) " ,
"priority" : " Warning " ,
"rule" : " Non sudo setuid " ,
"time" : " 2017-01-06 10:49:53.181653 "
}]
}
}
}Если вы хотите просмотреть все свои отчеты, посмотрите команду истории .
Dagda включает в себя собрание событий в реальном времени от Docker Daemon, поэтому, если вы хотите получить все события Docker Daemon, вы должны ввести:
python3 dagda.py docker eventsОжидаемый выход выглядит как показано ниже:
[
{
"Action" : " attach " ,
"Actor" : {
"Attributes" : {
"build-date" : " 20171128 " ,
"image" : " jboss/wildfly " ,
"license" : " GPLv2 " ,
"name" : " amazing_wilson " ,
"vendor" : " CentOS "
},
"ID" : " 73c5ed015df661ce799baa685a39c32125a47b71f3476e9d452adc381fb8114c "
},
"Type" : " container " ,
"from" : " jboss/wildfly " ,
"id" : " 73c5ed015df661ce799baa685a39c32125a47b71f3476e9d452adc381fb8114c " ,
"scope" : " local " ,
"status" : " attach " ,
"time" : 1517323482 ,
"timeNano" : 1517323482957358115
},
{
"Action" : " create " ,
"Actor" : {
"Attributes" : {
"build-date" : " 20171128 " ,
"image" : " jboss/wildfly " ,
"license" : " GPLv2 " ,
"name" : " amazing_wilson " ,
"vendor" : " CentOS "
},
"ID" : " 73c5ed015df661ce799baa685a39c32125a47b71f3476e9d452adc381fb8114c "
},
"Type" : " container " ,
"from" : " jboss/wildfly " ,
"id" : " 73c5ed015df661ce799baa685a39c32125a47b71f3476e9d452adc381fb8114c " ,
"scope" : " local " ,
"status" : " create " ,
"time" : 1517323482 ,
"timeNano" : 1517323482944595092
}
]Если вы хотите просмотреть все разрешенные фильтры для этой команды, см. Команду Docker .
В этом разделе описывается установка Dagda с использованием контейнеров Docker, включая базу данных Mongo и контейнер для Dagda , с использованием docker-compose . Грезет Docker используется с контейнером Dagda , поэтому можно проверить изображения Docker и контейнеры с хоста, где выполняется docker-compose .
Выполните следующие команды в корневой папке Dagda , а затем сервер Dagda начнет слушать в порту 5000:
docker-compose build
docker-compose up -dНиже показана диаграмма 10 000 футов о внутренних рабочих процессах DAGDA :
Как правило, Dagda работает нормально, но некоторые сценарии могут вызвать проблемы. Если у вас возникнут проблемы, проверьте страницу устранения неполадок, чтобы исправить ее.
Смотрите страницу журнала «Изменение» для деталей.
Для ошибок, вопросов и обсуждений, пожалуйста, используйте проблемы GitHub или пинг меня в Twitter (@3grander).