
ICS/SCADA के लिए उच्च-इंटरैक्शन OPC UA हनीपॉट — मल्टी-प्रोफ़ाइल (तेल और गैस, जल, पावर ग्रिड), लाइव प्रोसेस सिमुलेशन, प्रति-सत्र खतरा स्कोरिंग, और SIEM एकीकरण (syslog/CEF/webhooks/Elasticsearch)। .NET 8 और LibUA पर निर्मित।
ICS/SCADA वातावरण के लिए एक high-interaction OPC UA honeypot। LibUA पर निर्मित — एक पूर्ण OPC UA Binary स्टैक, प्रोटोकॉल एमुलेटर नहीं। लाइव प्रोसेस मानों, व्यापक खतरा पहचान और SIEM-तैयार लॉगिंग के साथ कई उद्योग प्रोफ़ाइलों में यथार्थवादी औद्योगिक नियंत्रण प्रणालियों का अनुकरण करता है।
0xAJStrike द्वारा निर्मित।
📄 वार्ता: Read the Plant like a Blueprint — SecTor 2026 प्रस्तुति जिसके लिए यह टूल बनाया गया था (OPC UA हमला सतह, honeypot डिज़ाइन, और एक लाइव डेमो)।
अधिकांश ICS honeypot (Conpot, GRFICSv2) आंशिक प्रोटोकॉल एमुलेशन प्रदान करते हैं। OpcUaTrap पूर्ण OPC UA Binary प्रोटोकॉल को लागू करता है — सुरक्षित चैनल वार्ता, सत्र जीवनचक्र, सदस्यताएँ, इतिहास, और सभी सेवा सेट। वास्तविक शोषण टूल और स्कैनर (OpalOPC, Nmap OPC UA स्क्रिप्ट) इसके साथ वैसे ही इंटरैक्ट करते हैं जैसे वे उत्पादन प्रणाली के साथ करते हैं।
| निम्न | मध्यम | OpcUaTrap | |
|---|---|---|---|
| प्रोटोकॉल | केवल बैनर | आंशिक एमुलेशन | पूर्ण वास्तविक स्टैक |
| सत्र स्थिति | कोई नहीं | बुनियादी | पूर्ण जीवनचक्र |
| पता स्थान | स्थिर / खाली | मुट्ठी भर नोड्स | 100–130 यथार्थवादी नोड्स |
| सदस्यताएँ | नहीं | नहीं | हाँ — लाइव डेटा पुश किया जाता है |
| शोषण लचीलापन | क्रैश हो जाता है | आंशिक | पूर्ण फ्रेमवर्क से बच जाता है |
docker run -d --name opcuatrap -p 4840:4840 \
-e OPCUATRAP_PROFILE=oil-gas \
-v opcuatrap-data:/data \
ghcr.io/0xajstrike/opcuatrap:latest
हनीपॉट अब opc.tcp://<host>:4840 पर लाइव है। सुविधा को
-e OPCUATRAP_PROFILE=water-treatment (या power-grid) से स्विच करें। इमेज मल्टी-आर्क
(amd64 + arm64, इसलिए यह Raspberry Pi पर भी चलती है), नॉन-रूट है, और अपना
प्रमाणपत्र तथा NDJSON लॉग opcuatrap-data वॉल्यूम में सहेजती है। पूर्ण Docker विवरण
(Compose, सभी env वेरिएबल) Deployment → Docker के अंतर्गत हैं।
.NET 9.0 SDK या नया — स्रोत से बिल्ड करने के लिए आवश्यक, क्योंकि बंडल किया गया LibUA net9.0 तक मल्टी-टारगेट करता है। हनीपॉट स्वयं .NET 8 रनटाइम पर चलता है। (यदि आप Docker का उपयोग करते हैं तो इसकी आवश्यकता नहीं — इमेज सब कुछ आंतरिक रूप से बिल्ड करती है।)
LibUA — OPC UA स्टैक। OpcUaTrap एक हल्के संशोधित फोर्क (0xAJStrike/LibUA, जो nauful/LibUA का फोर्क है) के विरुद्ध बिल्ड करता है, जो कई OPC UA CVE के लिए defense-in-depth सीमाएँ तथा वैकल्पिक हनीपॉट छल-प्रतिक्रियाएँ जोड़ता है।
दोनों रिपॉज़िटरी को एक सामान्य पैरेंट डायरेक्टरी के अंतर्गत साथ-साथ क्लोन करें:
git clone https://github.com/0xAJStrike/OpcUaTrap.git
git clone https://github.com/0xAJStrike/LibUA.git
अपेक्षित लेआउट (OpcUaTrap अपनी प्रोजेक्ट फ़ाइल के सापेक्ष ../../../LibUA/NET-Core/LibUA/LibUA.csproj को संदर्भित करता है, अर्थात LibUA, OpcUaTrap के ठीक बगल में स्थित है):
parent/
├── OpcUaTrap/ # this repo
└── LibUA/ # the fork, cloned as a sibling
dotnet build src/OpcUaTrap/OpcUaTrap.csproj
# Oil & gas profile (default, port 4840)
dotnet run --project src/OpcUaTrap
# Water treatment profile
dotnet run --project src/OpcUaTrap -- --profile water-treatment
# Power grid profile
dotnet run --project src/OpcUaTrap -- --profile power-grid
# Custom port
dotnet run --project src/OpcUaTrap -- --port 7718
# Custom log directory
dotnet run --project src/OpcUaTrap -- --log-dir /var/log/opcuatrap
सर्वर ~400ms में शुरू होता है और तुरंत प्रक्रिया मानों का सिमुलेशन शुरू कर देता है।
प्रोफ़ाइल src/OpcUaTrap/Profiles/ में JSON फ़ाइलें हैं। प्रत्येक सुविधा की पहचान, पूर्ण पता स्थान, टैग वर्गीकरण, सिमुलेशन नियम और हार्डनिंग कॉन्फ़िगरेशन को परिभाषित करता है।
| प्रोफ़ाइल | --profile | सुविधा | नोड्स | विक्रेता पहचान |
|---|---|---|---|---|
oil-gas | (डिफ़ॉल्ट) | PetroVista सेंट्रल प्रोसेसिंग सुविधा | ~120 | Schneider Electric SCADAPack 57x |
water-treatment | water-treatment | Cascade नगरपालिका जल उपचार संयंत्र | ~100 | Rockwell Automation ControlLogix |
power-grid | power-grid | Ridgeline 138kV ट्रांसमिशन सबस्टेशन | ~130 | ABB RTU560 |
PetroVista Central Processing Facility/
Site_Information/
Wellheads/ WH_101 – WH_104 (pressure, temp, flow, choke position)
Separators/ SEP_HP_201, SEP_LP_202 (pressure, level, setpoints)
TankFarm/ TK_OIL_301, TK_OIL_302 (level, alarms, inlet/outlet valves)
PumpStations/ PMP_XFER_401 (speed, discharge pressure, start/stop commands)
CompressorStation/ COMP_501 (RPM, vibration, discharge temp, load %)
Pipelines/ PL_EXPORT_601 (pressure, flow, block valve)
SafetySystems/ ESD (status, shutdown valves, trigger/reset methods)
FireAndGas (gas detectors %LEL, flame detectors)
Utilities/ Instrument air, fuel gas, power generation
Cascade Municipal Water Treatment Plant/
Site_Information/
RawWaterIntake/ Flow, turbidity, pH, temp, intake pumps, isolation valve
Coagulation/ Rapid mix, alum dose rate and setpoint
Flocculation/ Slow mixer, polymer feed rate and setpoint
Sedimentation/ Basin levels, turbidity, sludge blanket, scrapers
Filtration/ 4 filters — differential pressure, turbidity, backwash status
Disinfection/ Primary/secondary chlorination, ammonia feed (chloramine)
ClearWell/ Finished water storage — level, turbidity, pH, Cl2 residual
Distribution/ High-service pumps, pressure zones, elevated tank level
SafetySystems/ ESD, chlorine/ammonia leak detectors and isolation valves
Utilities/ Power, backup generator, SCADA system status