
औद्योगिक PLC मेटाडेटा और प्रोजेक्ट फ़ाइलों के विश्लेषण के लिए ओपन-सोर्स फॉरेंसिक फ्रेमवर्क। ICS वातावरण में संदिग्ध आर्टिफैक्ट्स को स्कैन करता है, घटना प्रतिक्रिया और मैन्युअल जांच का समर्थन करने के लिए।

Microsoft ICS फोरेंसिक्स टूल्स फ्रेमवर्क एक ओपन-सोर्स फोरेंसिक्स फ्रेमवर्क है जो औद्योगिक PLC मेटाडेटा और प्रोजेक्ट फ़ाइलों के विश्लेषण को सक्षम बनाता है।
यह फ्रेमवर्क अन्वेषकों को PLCs को स्कैन करने और ICS वातावरण में किसी भी संदिग्ध कलाकृतियों की पहचान करने का एक सुविधाजनक तरीका प्रदान करता है, जिसका उपयोग मैन्युअल जांच, स्वचालित निगरानी कार्यों या समझौता किए गए उपकरणों का पता लगाने के लिए घटना प्रतिक्रिया संचालन में किया जा सकता है।
एक ओपन-सोर्स टूल होने के नाते, ICS फोरेंसिक्स टूल्स अन्वेषकों को आउटपुट की समीक्षा करने और इसे अपनी विशिष्ट आवश्यकताओं के अनुसार अनुकूलित करने की अनुमति देता है।
ये निर्देश आपको इस प्रोजेक्ट की एक प्रति प्राप्त करने और इसे विकास और परीक्षण उद्देश्यों के लिए आपकी स्थानीय मशीन पर चलाने में मदद करेंगे।
git clone https://github.com/microsoft/ics-forensics-tools.git
पायथन आवश्यकताएं स्थापित करें
pip install -r requirements.txt
| आर्ग्स | विवरण | आवश्यक / वैकल्पिक |
|---|---|---|
-h, --help | यह सहायता संदेश दिखाएं और बाहर निकलें | वैकल्पिक |
-s, --save-config | भविष्य में आसान उपयोग के लिए कॉन्फ़िग फ़ाइल सहेजें | वैकल्पिक |
-c, --config | कॉन्फ़िग फ़ाइल पथ, डिफ़ॉल्ट config.json है | वैकल्पिक |
-o, --output-dir | वह निर्देशिका जहाँ उत्पन्न फ़ाइलें आउटपुट करनी हैं, डिफ़ॉल्ट output है | वैकल्पिक |
-v, --verbose | आउटपुट को कंसोल के साथ-साथ एक फ़ाइल में भी लॉग करें | वैकल्पिक |
-p, --multiprocess | प्लगइन/एनालाइज़र की संख्या के अनुसार मल्टीप्रोसेस मोड में चलाएं | वैकल्पिक |
| आर्ग्स | विवरण | आवश्यक / वैकल्पिक |
|---|---|---|
-h, --help | यह सहायता संदेश दिखाएं और बाहर निकलें | वैकल्पिक |
--ip | पतों की फ़ाइल पथ, CIDR या IP पतों की csv (ip कॉलम आवश्यक है). प्रत्येक IP के बारे में अतिरिक्त जानकारी (username, pass, आदि) के लिए अधिक कॉलम जोड़ें | आवश्यक |
--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 फ़ोल्डर को "Sources root" के रूप में चिह्नित किया गया है
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 फ़ाइल में आयात करेंfrom 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 फ़ाइल में आयात करें