
نص استجابة آلي للحوادث في لينكس مع فحص حي، استحواذ على الذاكرة (LiME)، تصوير الأقراص، مسح YARA، وتوليد تقرير HTML.
الاستجابة للحوادث في لينكس

TuxResponse هو سكريبت استجابة للحوادث لأنظمة لينكس مكتوب بلغة bash. يمكنه أتمتة أنشطة الاستجابة للحوادث على أنظمة لينكس وتمكينك من فرز الأنظمة بسرعة، دون المساس بالنتائج. عادةً ما تحتوي الأنظمة المؤسسية على نوع من المراقبة والتحكم، ولكن هناك استثناءات بسبب تكنولوجيا المعلومات الخفية والصور غير القياسية المنشورة في المؤسسات. ما يعادل كتابة 10 أوامر مع اختبار تجريبي، يمكن إنجازه بضغطة زر.
تم الاختبار على:
الغرض الأساسي:
الأدوات الخارجية في الحزمة:
INSTALL LiME
function init_lime(){
if [ -f /usr/bin/yum ]; then
yum -y install make kernel-headers kernel-devel gcc
elif [ -f /usr/bin/apt-get ]; then
apt-add-repository universe
apt-get -y install make linux-headers-$(uname -r) gcc
fi
rm -f /tmp/v1.8.1.zip
wget -P/tmp https://github.com/504ensicsLabs/LiME/archive/v1.8.1.zip
unzip /tmp/v1.8.1.zip
rm -f /tmp/v1.8.1.zip
pushd LiME-1.8.1/src
make
mv lime-*.ko /tmp/lime.ko
popd
rm -rf LiME-1.8.1
}
عند الاستجابة للحوادث، إذا كان عليك تثبيت LiME عن طريق كتابة جميع الأوامر يدويًا، فسيؤدي ذلك إلى إبطائك بشكل كبير.
1)معلومات النظام، IP، التاريخ، الوقت، المنطقة الزمنية المحلية، آخر إقلاع - 'hostnamectl; who -b; uname -a; uptime; ifconfig; date; last reboot'
1)فحص أنظمة الملفات المثبتة -'df -h'
2)تجزئة الملفات التنفيذية (MD5) - 'find /usr/bin -type f -exec file "{}" \; | grep -i "elf" | cut -f1 -d: | xargs -I "{}" -n 1 md5sum {}'
3)الملفات المعدلة - 'modified_files_period_select' (استدعاء دالة في tuxresponse.sh)
4)سرد جميع الدلائل المخفية - 'find / -type d -name "\.*"'
5)الملفات/الدلائل بدون اسم مستخدم/مجموعة - 'find / \( -nouser -o -nogroup \) -exec ls -l {} \; 2>/dev/null'
6)الملفات المتغيرة من الحزم -'packaged_files_changed' (استدعاء دالة في tuxresponse.sh)
1) التحقق من rootkits - تشغيل 'chkrootkit'
2) فحص Yara - استدعاء دالة tuxresponse.sh 'yara_select' (يقوم بمسح النظام باستخدام جميع قواعد YARA لنظام لينكس المتاحة في المستودع الرئيسي)
3) EXIFTool - استدعاء دالة tuxresponse.sh 'exiftool_select' (تثبيت EXIFTool)
1) سرد العمليات الجارية - 'ps -axu'
2) الملفات الثنائية المحذوفة التي ما زالت قيد التشغيل - 'ls -alR /proc/*/exe 2> /dev/null | grep deleted'
3) اتصالات الشبكة النشطة (TCP, UDP) - 'ss -tunap | sed "s/[ \t]\+/|/g"'
4) تفريغ عملية بناءً على PID - 'dump_process_select' (استدعاء دالة في tuxresponse.sh)
1) أدخل PID لتفريغه: **(هذا هو الأمر المنفذ - gcore -a -o "${DUMP_FILE}" ${DUMP_PID} )**
5) العمليات الجارية من /tmp, /dev - 'ls -alR /proc/*/cwd 2> /dev/null | grep -E "tmp|dev"'
1) سرد جميع اتصالات الشبكة النشطة/المقابس الخام - 'netstat -nalp; netstat -plant'
1) سرد جميع المستخدمين المتصلين بالنظام - 'w'
2) الحصول على المستخدمين بكلمات مرور - 'getent passwd'
1) التحقق من ملف محفوظات bash - 'cat ~/.bash_history | nl'
1) سرد جميع مهام cron - 'list_all_crontab' (استدعاء دالة في tuxresponse.sh)
2) سرد جميع برامج بدء التشغيل/الإقلاع - 'list_all_onstartup' (استدعاء دالة في tuxresponse.sh)
1) تفريغ ملف .bash_history للمستخدمين - 'cat_all_bash_history' (استدعاء دالة في tuxresponse.sh)
2) العثور على سجلات تحتوي على بيانات ثنائية - 'grep [[:cntrl:]] /var/log/*.log'
يتيح لك هذا الخيار الاتصال بنظام بعيد، ونسخ جميع السكريبتات والأدوات، وتحليل النظام.
يتيح لك هذا الخيار تجميع LiME من المصدر وتفريغ ذاكرة RAM من النظام. هذه هي أسهل طريقة للقيام بذلك لأن الطريقة الأخرى ستكون التجميع من المصدر لجميع إصدارات النواة الرئيسية وإدخال LKM.
يتيح لك هذا الخيار إجراء صورة كاملة للقرص للنظام المستهدف باستخدام الأداة المعروفة - dd. تأخذ الدالة المصدر والوجهة كمعاملات وتدرجهما في الأمر التالي 'dd if=${IMAGE_IN} | pv | dd of='${IMAGE_OUT}' bs=4K conv=noerror,sync'. إذا كنت تفحص نظامًا بعيدًا، فإن السكريبت سينسخ نفسه هناك. ثم إذا تم تعيين المعامل ${TARGET_HOST}، فسيقوم السكريبت بتنزيل الصورة إلى نظام المحلل باستخدام هذا الأمر >> "ssh -p${TARGET_PORT} ${TARGET_USER}@${TARGET_HOST} 'dd if=${IMAGE_IN} bs=4K conv=noerror,sync' | pv | dd of='${IMAGE_OUT}'" (أستخدم pv بكثافة لضمان تتبع التقدم)
كل ما تفعله يتم تسجيله في ملفات نصية، مما يسهل العودة وإلقاء نظرة على المخرجات. جمال هذا هو أنه يمكنك تحميله في أدوات تحليل السجلات المفضلة لديك وفهمه في مرحلة لاحقة. بالإضافة إلى ذلك، يمكنك استخدام هذه الوظيفة لإنشاء تقرير HTML وعرض المخرجات الناتجة عن الأوامر بشكل أكثر قابلية للقراءة البشرية.
تثبيت الملفات الثنائية المطلوبة ليعمل السكريبت بشكل صحيح.
1) التبعيات
2) Yara والقواعد
3) ExifTool
4) فحص التهيئة
5) chckrootkit
6) LiME
تمرير التعزيز والسلامة الجنائية على tuxresponse.sh:
YYYYMMDDTHHMMSSZ) بدلاً من الوقت المحلي، لختم زمني قابل للدفاع.evidence/manifest.txt جديد؛ تحصل صور الأقراص على ملف .sha256 مرافق.modified_files_period_select لم يعد يستخدم touch لإنشاء ملف طابع زمني على نظام الملفات الهدف (والذي كان يلوث atime/mtime لـ /tmp قبل جولة find). الآن يستخدم find / -xdev -newermt "1 $opt ago".eval ${DD_CMD} في _create_disk_image؛ يتم تشغيل خط أنابيب dd/ssh مباشرة، ويتم التحقق من صحة جهاز المصدر مقابل ^/dev/[a-zA-Z0-9]+$ قبل الاستخدام.dump_process_select يتحقق من أن PID رقمي وأن /proc/<pid> موجود قبل استدعاء gcore.exec_CMD لم يعد يستخدم eval؛ يتم إرسال أوامر خط الأنابيب من الكتالوج الداخلي عبر bash -c.set -euo pipefail مع تهيئة المتغيرات العامة مسبقًا.DISTO → DISTRO في فرع الكشف عن Arch Linux (الذي كان سابقًا يسمي التوزيعة بشكل خاطئ بصمت).apt-get install netstat → net-tools.evidence/*.txt باستخدام glob (لا مزيد من تحليل ls) ويتخطى دليل التوزيعة؛ تم اقتباس متغيرات المخرجات.VERSION='1.1'؛ تطبع اللافتة الإصدار.shellcheck -S error نظيف.ملاحظة: لا يزال الوضع القائم على القوائم يعتمد على
.cmds.shو.menu_en.shوforensics.sh، وهي غير موجودة في هذا المستودع. إعادة بناء كتالوج الأوامر/القوائم هو جهد منفصل.