DAGDA هي أداة لإجراء تحليل ثابت من نقاط الضعف المعروفة ، وأحصنة طروادة ، والفيروسات ، والبرامج الضارة والتهديدات الخبيثة الأخرى في صور/حاويات Docker ومراقبة Docker Daemon وتشغيل حاويات Docker للكشف عن الأنشطة الشاذة.
من أجل الوفاء بمهمتها ، أولاً ، يتم استيراد نقاط الضعف المعروفة مثل CVES (نقاط الضعف والتعرضات المشتركة) ، العطاءات (Bugtraq IDS) ، Rhsas (Red Hat Security Advisories) و Rhbas (Red Hat Bug Destisories) ، والاستغلال المعروف من Database الأمان الهجومية يتم استيرادها إلى مونغودس لتسهيل عملية البحث عن هذه الالتزامات.
بعد ذلك ، عندما تقوم بإجراء تحليل ثابت للثغرات المعروفة ، يسترجع DAGDA معلومات حول البرنامج المثبت في صورة Docker الخاصة بك ، مثل حزم نظام التشغيل وتبعيات لغات البرمجة ، ويتحقق من كل منتج وإصداره إذا كان خاليًا من الثغرات الأمنية مقابل المعلومات المخزنة مسبقًا في MongoDB. أيضًا ، يستخدم Dagda Clamav كمحرك مضاد للفيروسات لاكتشاف أحصنة طروادة والفيروسات والبرامج الضارة والتهديدات الخبيثة الأخرى المدرجة في صور/حاويات Docker.
تدعم DAGDA صور قاعدة Linux المتعددة:
تعتمد DAGDA على فحص التبعية OWASP + RETIRE.JS لتحليل تبعيات متعددة من:
من ناحية أخرى ، تم دمج DAGDA مع Falco لمراقبة حاويات Docker قيد التشغيل للكشف عن الأنشطة الشاذة. أيضا ، يتضمن DAGDA جمع الأحداث في الوقت الفعلي من Docker Daemon.
أخيرًا ، يتم تخزين كل تقرير تحليل عن صورة/حاوية Docker ، وتضمن جميع التحليلات الثابتة وجميع مراقبة وقت التشغيل ، في نفس mongoDB لتوفير تاريخ كل صورة/حاوية Docker عند الحاجة.
قبل استخدام DAGDA ، يجب أن تكون قد قمت بتثبيت المتطلبات التالية:
يمكن تثبيت المتطلبات مع PIP:
sudo pip3 install -r requirements.txtيجب أن تكون قد قمت بتثبيت Docker لاستخدام DAGDA . إذا كنت بحاجة إلى تعليمات لتثبيت Docker ، راجع صفحة Docker لتثبيت.
لتجنب الاضطرار إلى استخدام sudo عند استخدام أمر docker ، قم بإنشاء مجموعة UNIX تسمى docker وإضافة المستخدمين إليه. عندما يبدأ docker Daemon ، فإنه يجعل ملكية مقبس UNIX قابلة للكتابة/القابلة للكتابة من قبل مجموعة docker .
يجب أن تكون قد قمت بتثبيت MongoDB 3.6 أو في وقت لاحق لاستخدام DAGDA لأنه في MongoDB يتم تخزين كل من نقاط الضعف/مآثر ونتائج التحليل.
إذا كنت بحاجة إلى تعليمات لتثبيت MongoDB ، راجع كيفية تثبيت صفحة إصدار MongoDB Community Edition.
يمكنك أيضًا تشغيل mongodb باستخدام Docker:
docker pull mongo
docker run -d -p 27017:27017 mongoيجب أن تكون قد قمت بتثبيت رؤوس kernel في نظام التشغيل المضيف لأن DAGDA مدمج مع Falco لمراقبة حاويات Docker قيد التشغيل للكشف عن الأنشطة الشاذة.
يمكن أن يتم ذلك عادةً على توزيعات تشبه ديبيان مع: apt-get -y install linux-headers-$(uname -r)
أو ، على توزيعات تشبه Rhel: yum -y install kernel-devel-$(uname -r)
بعد ذلك ، قم بتشغيل Command /usr/lib/dkms/dkms_autoinstaller start .
rmmod: ERROR: Module sysdig_probe is not currently loaded
من المهم ملاحظة: في بعض التوزيعات ، تم اكتشاف أن تثبيت SYSDIG مطلوب ، لذلك إذا كنت بحاجة إلى تعليمات لتثبيت SYSDIG ، راجع كيفية تثبيت SYSDIG لصفحة Linux.
يجب تشغيل python3 dagda.py start تشغيل خادم DAGDA . راجع التواصل الفرعي للبدء في صفحة الويكي للحصول على التفاصيل.
بعد بدء خادم DAGDA وقبل استخدام DAGDA CLI ، يجب عليك تعيين متغيرات البيئة التالية كما تحتاج:
export DAGDA_HOST= ' 127.0.0.1 '
export DAGDA_PORT=5000على الرغم من أن توثيق الاستخدام هذا يتم عرض استخدام CLI فقط ، إلا أن DAGDA لديها واجهة برمجة تطبيقات 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 في صفحة wiki.
تسمى قاعدة البيانات vuln_database وهناك 10 مجموعات:
http://www.securityfocus.com/ ) - المصدر biddb_downloaderفي الأقسام الفرعية التالية ، كلاهما ، حيث يؤدي التحليل الثابت للمنافسات المعروفة ، وأحصنة طروادة ، والفيروسات ، والبرامج الضارة ، والتهديدات الخبيثة الأخرى ومراقبة حاويات Docker التي تعمل للكشف عن الأنشطة الشاذة بعمق.
أحد أهداف DAGDA الرئيسية هو إجراء تحليل نقاط الضعف المعروفة وأحصنة طروادة وفيروسات وبرامج ضارة وتهديدات ضارة أخرى في صور/حاويات Docker ، لذلك إذا كنت ترغب في إجراء تحليل على صورة/حاوية Docker ، يجب أن تكتب:
python3 dagda.py check --docker_image jboss/wildflyراجع صفحة فحص Wiki Check للحصول على التفاصيل.
سيكون الإخراج المتوقع للأمر السابق هو الإخراج التالي. في هذا المخرج ، استجابات DAGDA مع id التحليل.
{
"id" : " 58667994ed253915723c50e7 " ,
"msg" : " Accepted the analysis of <jboss/wildfly> "
}أيضًا ، إذا كنت ترغب في تشغيل تحليل ثابت بطريقة بعيدة ، يمكنك استخدام MOMMAND Sub Command:
python3 dagda.py agent localhost:5000 -i jboss/wildfly سيكون الإخراج المتوقع للأمر السابق هو الإخراج التالي. في هذا المخرج ، استجابات DAGDA مع 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راجع صفحة Wiki Sub Command Monitor للحصول على التفاصيل.
يبدو الناتج المتوقع كما هو موضح أدناه:
{
"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أدناه ، يتم عرض مخطط 10000 قدم حول سير العمل الداخلي DAGDA :
عادة ، تعمل DAGDA بشكل جيد ، ولكن بعض السيناريوهات يمكن أن تسبب مشاكل. إذا حصلت على بعض المشكلات ، تحقق من صفحة استكشاف الأخطاء وإصلاحها لإصلاحها.
انظر صفحة سجل التغيير للحصول على التفاصيل.
بالنسبة للأخطاء والأسئلة والمناقشات ، يرجى استخدام مشكلات github أو ping me على Twitter (@3Grander).