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

Microsoft ICS फोरेंसिक्स टूल्स फ्रेमवर्क एक ओपन-सोर्स फोरेंसिक्स फ्रेमवर्क है जो औद्योगिक PLC मेटाडेटा और प्रोजेक्ट फ़ाइलों के विश्लेषण को सक्षम बनाता है।
यह फ्रेमवर्क अन्वेषकों को PLCs को स्कैन करने और ICS वातावरण में किसी भी संदिग्ध कलाकृतियों की पहचान करने का एक सुविधाजनक तरीका प्रदान करता है, जिसका उपयोग मैन्युअल जांच, स्वचालित निगरानी कार्यों या समझौता किए गए उपकरणों का पता लगाने के लिए घटना प्रतिक्रिया संचालन में किया जा सकता है।
एक ओपन-सोर्स टूल होने के नाते, ICS फोरेंसिक्स टूल्स अन्वेषकों को आउटपुट की समीक्षा करने और इसे अपनी विशिष्ट आवश्यकताओं के अनुसार अनुकूलित करने की अनुमति देता है।
ये निर्देश आपको इस प्रोजेक्ट की एक प्रति प्राप्त करने और इसे विकास और परीक्षण उद्देश्यों के लिए आपकी स्थानीय मशीन पर चलाने में मदद करेंगे।
git clone https://github.com/microsoft/ics-forensics-tools.git
पायथन आवश्यकताएं स्थापित करें
pip install -r requirements.txt
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 फ़ाइल में आयात करेंMicrosoft Defender for IoT एक एजेंटलेस नेटवर्क-लेयर सुरक्षा समाधान है जो संगठनों को अपने IoT/OT और औद्योगिक नियंत्रण प्रणाली (ICS) उपकरणों, ऑन-प्रिमाइसेस और Azure-कनेक्टेड वातावरणों में लगातार निगरानी और संपत्तियों की खोज, खतरों का पता लगाने और कमजोरियों का प्रबंधन करने की अनुमति देता है.
MSRC ब्लॉग के अंतर्गत Section 52
उपकरण के बारे में दिया गया ICS व्याख्यान
Section 52 - दुर्भावनापूर्ण लैडर लॉजिक की जांच | Microsoft Defender for IoT वेबिनार - YouTube
यह प्रोजेक्ट योगदान और सुझावों का स्वागत करता है। अधिकांश योगदानों के लिए आपको एक योगदानकर्ता लाइसेंस अनुबंध (CLA) से सहमत होना आवश्यक है जो यह घोषित करता है कि आपके पास हमें आपके योगदान का उपयोग करने का अधिकार है और वास्तव में आप ऐसा करते हैं। विवरण के लिए, https://cla.opensource.microsoft.com पर जाएँ।
जब आप पुल रिक्वेस्ट सबमिट करते हैं, तो एक CLA बॉट स्वचालित रूप से यह निर्धारित करेगा कि क्या आपको CLA प्रदान करने की आवश्यकता है और PR को उचित रूप से सजाएगा (जैसे, स्थिति जांच, टिप्पणी)। बस बॉट द्वारा दिए गए निर्देशों का पालन करें। आपको केवल एक बार हमारे CLA का उपयोग करने वाले सभी रिपॉजिटरी में ऐसा करना होगा।
इस प्रोजेक्ट ने Microsoft ओपन सोर्स आचार संहिता को अपनाया है। अधिक जानकारी के लिए आचार संहिता FAQ देखें या किसी अतिरिक्त प्रश्न या टिप्पणी के लिए [email protected] से संपर्क करें।
इस प्रोजेक्ट में प्रोजेक्ट, उत्पादों या सेवाओं के ट्रेडमार्क या लोगो शामिल हो सकते हैं। Microsoft ट्रेडमार्क या लोगो का अधिकृत उपयोग Microsoft के ट्रेडमार्क और ब्रांड दिशानिर्देशों के अधीन है और उनका पालन करना चाहिए। इस प्रोजेक्ट के संशोधित संस्करणों में Microsoft ट्रेडमार्क या लोगो के उपयोग से भ्रम पैदा नहीं होना चाहिए या Microsoft प्रायोजन का संकेत नहीं देना चाहिए। तृतीय-पक्ष ट्रेडमार्क या लोगो का कोई भी उपयोग उन तृतीय-पक्षों की नीतियों के अधीन है।
कॉपीराइट (c) 2018 Microsoft Corporation. सर्वाधिकार सुरक्षित।
यह सॉफ्टवेयर "जैसा है" प्रदान किया जाता है, बिना किसी प्रकार की वारंटी के, स्पष्ट या निहित, जिसमें व्यापारिकता, किसी विशेष उद्देश्य के लिए उपयुक्तता और उल्लंघन न होने की वारंटी शामिल है लेकिन यहीं तक सीमित नहीं है। किसी भी स्थिति में लेखक या कॉपीराइट धारक किसी भी दावे, क्षति या अन्य दायित्व के लिए उत्तरदायी नहीं होंगे, चाहे वह अनुबंध, अपकृत्य या अन्यथा के कार्य में उत्पन्न हो, सॉफ्टवेयर से या उसके उपयोग या अन्य लेन-देन से संबंधित हो।
| आर्ग्स | विवरण | आवश्यक / वैकल्पिक |
|---|
-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 | चलाने के लिए एनालाइज़र का नाम | वैकल्पिक |