
إطار عمل مفتوح المصدر للطب الشرعي لتحليل بيانات تعريف PLC الصناعية وملفات المشاريع. يقوم بمسح القطع الأثرية المشبوهة في بيئات ICS لدعم الاستجابة للحوادث والتحقيق اليدوي.

إطار عمل أدوات التحقيقات الجنائية في أنظمة التحكم الصناعي من مايكروسوفت هو إطار عمل مفتوح المصدر يتيح تحليل بيانات التعريف الخاصة بأجهزة PLC الصناعية وملفات المشاريع.
يوفر الإطار للمحققين طريقة ملائمة لمسح أجهزة PLC وكشف أي قطع أثرية مشبوهة داخل بيئات ICS، والتي يمكن استخدامها للفحص اليدوي أو مهام المراقبة الآلية أو عمليات الاستجابة للحوادث لاكتشاف الأجهزة المخترقة.
وبكونه أداة مفتوحة المصدر، تسمح أدوات التحقيقات الجنائية في أنظمة التحكم الصناعي للمحققين بمراجعة المخرجات وتخصيصها وفقًا لمتطلباتهم الخاصة.
ستحصل من خلال هذه التعليمات على نسخة من المشروع وتشغيلها على جهازك المحلي لأغراض التطوير والاختبار.
git clone https://github.com/microsoft/ics-forensics-tools.git
تثبيت متطلبات بايثون
pip install -r requirements.txt
| Args | الوصف | مطلوب / اختياري |
|---|---|---|
-h, --help | يعرض رسالة المساعدة هذه ويخرج | اختياري |
-s, --save-config | حفظ ملف الإعدادات لاستخدام مستقبلي سهل | اختياري |
-c, --config | مسار ملف الإعدادات، الافتراضي هو config.json | اختياري |
-o, --output-dir | الدليل الذي سيتم فيه إخراج أي ملفات تم إنشاؤها، الافتراضي هو output | اختياري |
-v, --verbose | تسجيل المخرجات في ملف بالإضافة إلى وحدة التحكم | اختياري |
-p, --multiprocess | التشغيل في وضع المعالجة المتعددة بعدد الإضافات/المحللات | اختياري |
| Args | الوصف | مطلوب / اختياري |
|---|---|---|
-h, --help | يعرض رسالة المساعدة هذه ويخرج | اختياري |
--ip | مسار ملف العناوين، CIDR أو عناوين IP بصيغة csv (عمود ip مطلوب). أضف المزيد من الأعمدة لمعلومات إضافية حول كل ip (اسم المستخدم، كلمة المرور، إلخ...) | مطلوب |
--port | رقم المنفذ | اختياري |
--transport | tcp/udp | اختياري |
--analyzer | اسم المحلل لتشغيله | اختياري |
python driver.py -s -v PluginName --ip ips.csv
python driver.py -s -v PluginName --ip ips.csv --analyzer AnalyzerName
python driver.py -s -v -c config.json --multiprocess
from forensic.client.forensic_client import ForensicClient
from forensic.interfaces.plugin import PluginConfig
forensic = ForensicClient()
plugin = PluginConfig.from_json({
"name": "PluginName",
"port": 123,
"transport": "tcp",
"addresses": [{"ip": "192.168.1.0/24"}, {"ip": "10.10.10.10"}],
"parameters": {
},
"analyzers": []
})
forensic.scan([plugin])
عند التطوير محليًا تأكد من تعيين مجلد src كـ "جذر المصادر"
from pathlib import Path
from forensic.interfaces.plugin import PluginInterface, PluginConfig, PluginCLI
from forensic.common.constants.constants import Transport
class GeneralCLI(PluginCLI):
def __init__(self, folder_name):
super().__init__(folder_name)
self.name = "General"
self.description = "General Plugin Description"
self.port = 123
self.transport = Transport.TCP
def flags(self, parser):
self.base_flags(parser, self.port, self.transport)
parser.add_argument('--general', help='General additional argument', metavar="")
class General(PluginInterface):
def __init__(self, config: PluginConfig, output_dir: Path, verbose: bool):
super().__init__(config, output_dir, verbose)
def connect(self, address):
self.logger.info(f"{self.config.name} connect")
def export(self, extracted):
self.logger.info(f"{self.config.name} export")
__init__.py داخل مجلد pluginsfrom pathlib import Path
from forensic.interfaces.analyzer import AnalyzerInterface, AnalyzerConfig
class General(AnalyzerInterface):
def __init__(self, config: AnalyzerConfig, output_dir: Path, verbose: bool):
super().__init__(config, output_dir, verbose)
self.plugin_name = 'General'
self.create_output_dir(self.plugin_name)
def analyze(self):
pass
__init__.py داخل مجلد analyzersMicrosoft Defender for IoT هو حل أمني على مستوى الشبكة بدون وكيل يسمح للمؤسسات بمراقبة واكتشاف الأصول باستمرار، واكتشاف التهديدات، وإدارة الثغرات في أجهزة IoT/OT وأنظمة التحكم الصناعي (ICS) الخاصة بها، سواء في الموقع أو في البيئات المتصلة بـ Azure.
القسم 52 في مدونة MSRC
محاضرة ICS حول الأداة
القسم 52 - التحقيق في منطق السلم الخبيث | ندوة عبر الإنترنت لـ Microsoft Defender for IoT - YouTube