DAGDA는 Docker 이미지/컨테이너의 알려진 취약성, 트로이 목마, 바이러스, 맬웨어 및 기타 악의적 인 위협에 대한 정적 분석을 수행하고 Docker Daonmon을 모니터링하고 Docker 컨테이너를 실행하여 변칙적 인 활동을 감지하는 도구입니다.
미션을 이행하기 위해 먼저 알려진 취약점을 CVE (일반적인 취약성 및 노출), 입찰 (Bugtraq IDS), RHSA (Red Hat Security Advisories) 및 RHBA (Red Hat Bug Advisories)로서, 그리고 공격적인 보안 데이터베이스에서 알려진 악용이 MongoDB로 가져 오기 위해 MongoDB로 가져옵니다.
그런 다음 알려진 취약성에 대한 정적 분석을 실행하면 DAGDA는 OS 패키지 및 프로그래밍 언어의 종속성과 같은 Docker 이미지에 설치된 소프트웨어에 대한 정보를 검색하고 각 제품 및 이전에 저장된 정보에 대한 취약점이없는 경우 각 제품 및 버전에 대해 확인합니다. 또한 DAGDA는 Troker 이미지/컨테이너에 포함 된 트로이 목마, 바이러스, 맬웨어 및 기타 악의적 인 위협을 감지하기 위해 Almav를 안티 바이러스 엔진으로 사용합니다.
DAGDA는 여러 Linux 기본 이미지를 지원합니다.
DAGDA는 여러 가지 의존성을 분석하기 위해 OWASP 의존성 check + retire.js에 달려 있습니다.
반면, DAGDA는 FALCO와 통합되어 Docker 컨테이너를 실행하는 모니터링하여 변칙적 인 활동을 감지합니다. 또한 DAGDA에는 Docker Daonmon의 실시간 이벤트 수집이 포함되어 있습니다.
마지막으로, 모든 정적 분석 및 모든 런타임 모니터링이 포함 된 Docker 이미지/컨테이너의 각 분석 보고서는 필요할 때 각 Docker 이미지/컨테이너의 기록을 사용할 수 있도록 동일한 MongoDB에 저장됩니다.
DAGDA 사용 전에 다음 요구 사항을 설치해야합니다.
요구 사항은 PIP로 설치할 수 있습니다.
sudo pip3 install -r requirements.txtDAGDA를 사용하기 위해 Docker를 설치해야합니다. Docker 설치에 대한 지침이 필요한 경우 Docker Page 설치 방법을 참조하십시오.
docker 명령을 사용할 때 sudo 사용하지 않으려면 docker 라는 Unix 그룹을 만들고 사용자를 추가하십시오. docker Deomon이 시작되면 docker Group이 UNIX 소켓의 소유권을 읽거나 쓸 수 있습니다.
MongoDB에서 취약점/익스플로잇과 분석 결과가 모두 저장되기 때문에 DAGDA를 사용하기 위해 MongoDB 3.6 이상을 설치해야합니다.
MongoDB 설치에 대한 지침이 필요한 경우 MongoDB Community Edition 페이지를 설치하는 방법을 참조하십시오.
Docker를 사용하여 MongoDB를 실행할 수도 있습니다.
docker pull mongo
docker run -d -p 27017:27017 mongoDAGDA는 비정상적인 활동을 감지하기 위해 Docker 컨테이너 실행을 모니터링하기 위해 FALCO와 통합되어 있기 때문에 호스트 OS에 커널 헤더를 설치해야합니다.
이것은 일반적으로 다음과 같은 데비안 apt-get -y install linux-headers-$(uname -r) 같은 분포에서 수행 할 수 있습니다.
또는, rhel과 같은 분포 : yum -y install kernel-devel-$(uname -r)
그런 다음 다음 sysdig falco 오류 추적을 피하려면 /usr/lib/dkms/dkms_autoinstaller start 실행하는 것이 좋습니다.
rmmod: ERROR: Module sysdig_probe is not currently loaded
중요 : 일부 배포판에서는 SysDig 설치가 필요하다는 것이 감지되었으므로 SysDig 설치에 대한 지침이 필요한 경우 Linux 페이지 용 SysDig 설치 방법을 참조하십시오.
DAGDA 서버를 시작하려면 python3 dagda.py start 실행해야합니다. 자세한 내용은 Wiki 페이지의 시작 하위 명령을 참조하십시오.
DAGDA 서버가 시작된 후 DAGDA CLI 사용 전에 다음 환경 변수를 필요에 따라 설정해야합니다.
export DAGDA_HOST= ' 127.0.0.1 '
export DAGDA_PORT=5000이 사용 설명서에는 CLI 사용 만 표시되지만 DAGDA 에는 사용을위한 REST API가 있습니다. 자세한 내용은 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 입력하거나 Wiki 페이지의 Vuln 하위 명령을 참조하십시오.
데이터베이스는 vuln_database 라고하며 10 개의 컬렉션이 있습니다.
http://www.securityfocus.com/다음 하위 섹션에서는 알려진 취약점, 트로이 목마, 바이러스, 맬웨어 및 기타 악의적 인 위협에 대한 정적 분석을 수행하고 비정상적인 활동을 감지하기위한 도커 컨테이너를 실행하는 모니터링이 심층적으로 설명됩니다.
주요 DAGDA 목표 중 하나는 Docker 이미지/컨테이너의 알려진 취약성, 트로이 목마, 바이러스, 맬웨어 및 기타 악의적 인 위협에 대한 분석을 수행하는 것입니다. 따라서 Docker 이미지/컨테이너에 대한 분석을 수행하려면 다음을 입력해야합니다.
python3 dagda.py check --docker_image jboss/wildfly자세한 내용은 확인 하위 명령 위키 페이지를 참조하십시오.
이전 명령에 대한 예상 출력은 다음 명령이됩니다. 이 출력에서 DAGDA는 분석 id 와 응답합니다.
{
"id" : " 58667994ed253915723c50e7 " ,
"msg" : " Accepted the analysis of <jboss/wildfly> "
}또한 원격으로 정적 분석을 실행하려면 에이전트 하위 명령을 사용할 수 있습니다.
python3 dagda.py agent localhost:5000 -i jboss/wildfly 이전 명령에 대한 예상 출력은 다음 명령이됩니다. 이 출력에서 DAGDA는 분석 id 와 응답합니다.
{
"id" : " 58667994ed253915723c50e7 " ,
"image_name" : " jboss/wildfly "
}콘크리트 도커 분석을 검토하려면 다음을 입력해야합니다.
python3 dagda.py history < DOCKER_IMAGE_NAME_HERE > --id < REPORT_ID_HERE > dagda.py history 에 대한 자세한 내용은 python3 dagda.py history --help 또는 Wiki 페이지의 역사 하위 명령을 참조하십시오.
분석은 마무리하는 데 몇 분이 걸릴 수 있으므로 인내하십시오. 이전 명령을 입력 한 경우 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자세한 내용은 모니터 하위 명령 위키 페이지를 참조하십시오.
예상 출력은 다음과 같습니다.
{
"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 Daonmon의 실시간 이벤트 수집이 포함되어 있으므로 모든 Docker Deamon 이벤트를 얻으려면 다음을 입력해야합니다.
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 명령을 참조하십시오.
이 섹션에서는 Mongo 데이터베이스 및 docker-compose 사용하는 DAGDA 용 컨테이너를 포함한 Docker 컨테이너를 사용하여 DAGDA 설치에 대해 설명합니다. Docker 소켓은 DAGDA 컨테이너와 공유되므로 docker-compose 실행되는 호스트에서 Docker 이미지와 컨테이너를 확인할 수 있습니다.
DAGDA 의 루트 폴더에서 다음 명령을 실행 한 다음 DAGDA 서버는 포트 5000에서 듣기 시작합니다.
docker-compose build
docker-compose up -d아래에는 DAGDA 내부 워크 플로에 대한 10,000 피트 다이어그램이 표시됩니다.
일반적으로 DAGDA는 잘 작동하지만 일부 시나리오는 문제를 일으킬 수 있습니다. 문제가 발생하면 문제 해결 페이지를 확인하여 수정하십시오.
자세한 내용은 변경 로그 페이지를 참조하십시오.
버그, 질문 및 토론은 github 문제를 사용하거나 트위터 (@3grander)에서 저를 핑하십시오.