▄██████▄      ███        ▄████████ ███    █▄  ████████▄  
  ███    ███  ▀█████████▄  ███    ███ ███    ███ ███   ▀███ 
  ███    ███     ▀███▀▀██  ███    ███ ███    ███ ███    ███ 
  ███    ███      ███   ▀  ███    ███ ███    ███ ███    ███ 
  ███    ███      ███    ▀███████████ ███    ███ ███    ███ 
  ███    ███      ███      ███    ███ ███    ███ ███    ███ 
  ███    ███      ███      ███    ███ ███    ███ ███   ▄███ 
   ▀██████▀      ▄████▀    ███    █▀  ████████▀  ████████▀  
    

OTAUD

OT / ICS / IoT Security Auditing Toolkit
A comprehensive, open-source framework for discovering misconfigurations, assessing vulnerabilities, and validating compliance across your entire Operational Technology environment.
ICS Security IoT Audit OT Hardening Open Source
Get Started Explore Modules
8
Audit Modules
10+
OT Protocols
5
Python Tools
4
Compliance Standards

Audit Modules

Each module targets a specific layer of OT security — from network discovery to compliance validation. Run them individually or orchestrate a full audit.

📡

Network Scanner

Host discovery, OT-specific port scanning (40+ industrial ports), MAC-based vendor identification, and service banner grabbing.

nmaparppingbanner-grab
🔒

Protocol Auditor

Deep analysis of 10+ industrial protocols: Modbus TCP, DNP3, S7comm, EtherNet/IP, OPC-UA, BACnet, MQTT, CoAP, FINS, HART-IP.

modbusdnp3s7mqtt

Configuration Audit

Checks for default credentials (18+ vendor-specific), weak SNMP communities, insecure web interfaces, TLS misconfigurations, and exposed services.

credssnmptlsheaders

PLC / HMI Check

Identifies PLC types (Siemens, Allen-Bradley, Omron, Mitsubishi, Schneider), checks access controls, CPU protection level, and HMI web exposure.

siemensallen-bradleyomronvnc
📈

SCADA System Audit

Identifies SCADA web platforms (Ignition, WinCC, FactoryTalk, etc.), checks historian exposure, database security, and network segmentation.

ignitionwincchistoriansegmentation
📡

IoT Discovery

Discovers IoT devices via mDNS/UPnP, checks MQTT brokers for anonymous access, tests default IoT credentials, and validates firmware update channels.

mqttcoapupnpcameras
💾

Firmware Analysis

Extracts firmware versions, matches against known CVE database, checks for debug interfaces, TFTP exposure, and unsigned update mechanisms.

cve-checkdebugtftpbootloader
📋

Compliance Checker

Validates against IEC 62443, NIST SP 800-82, NERC CIP, and ISO 27001. Provides baseline scoring and framework-specific control checks.

IEC 62443NISTNERC CIPISO 27001

Industrial Protocols Analyzed

OTAUD checks for misconfigurations, unauthorized access, and missing authentication across all major ICS/OT communication protocols.

Modbus TCP
Port 502
Schneider, ABB, Moxa
DNP3
Port 20000
Power Grid / Utilities
S7comm
Port 102
Siemens
EtherNet/IP
Port 44818
Rockwell / Allen-Bradley
OPC-UA
Port 4840
Cross-vendor
BACnet/IP
Port 47808
Building Automation
MQTT
Port 1883/8883
IoT / Telemetry
CoAP
Port 5683
Constrained IoT
FINS
Port 9600
Omron
HART-IP
Port 5094
Process Instruments
IEC 60870-5-104
Port 2404
Power Grid SCADA
MELSEC
Port 5007
Mitsubishi

OT Security Architecture

OTAUD's modules map to the Purdue Enterprise Reference Architecture (ISA-95), covering every layer from the physical process to the enterprise network.

Level 5 — EnterpriseCorporate IT network, email, ERP → Config Audit, Network Scan
Level 4 — IT/OT DMZFirewalls, jump hosts, data diodes → Compliance, Segmentation Check
Level 3 — Site OperationsSCADA servers, historians, HMI → SCADA Audit, Firmware Analysis
Level 2 — Area ControlPLCs, RTUs, DCS → PLC Check, Protocol Audit
Level 1 — Basic ControlSensors, actuators, I/O → IoT Scan, Firmware Check
Level 0 — Physical ProcessValves, motors, pumps → Physical security (out of scope)

Python Modules

Deep-dive Python tools for protocol-level auditing, CVE intelligence, and professional report generation.

Modbus TCP Auditor

python3 python/modbus_audit.py -t <ip>

Enumerates unit IDs, tests all function codes, reads device identification, samples holding registers for information disclosure.

DNP3 Protocol Checker

python3 python/dnp3_check.py -t <ip>

Validates Secure Authentication status, enumerates outstation addresses, tests broadcast response handling.

MQTT Broker Auditor

python3 python/mqtt_audit.py -t <ip>

Tests anonymous access, default credentials, wildcard subscriptions, $SYS topic exposure, and TLS configuration.

OPC-UA Scanner

python3 python/opcua_scan.py -t <ip>

Validates security policies, checks for anonymous authentication, tests certificate configuration and TLS settings.

CVE Lookup

python3 python/cve_lookup.py -q <vendor>

Curated database of 25+ critical ICS CVEs. Optional NVD API integration for real-time lookup. Covers all major OT vendors.

Report Generator

python3 python/report_gen.py -l <log> -o report.html

Generates professional HTML/JSON reports from audit logs with severity classification and remediation guidance.

Compliance Standards

OTAUD validates your OT environment against the world's leading industrial cybersecurity frameworks.

IEC 62443

Full coverage of Foundational Requirements (FR 1–7): Identification & Authentication, Use Control, System Integrity, Data Confidentiality, Restricted Data Flow, Event Response, Resource Availability.

NIST SP 800-82 Rev 3

Guide to ICS Security — validates risk management, network architecture, defense-in-depth, firewall rules, and ICS-specific security recommendations.

NERC CIP v5/v7

Critical Infrastructure Protection for electric sector: CIP-002 categorization, CIP-005 electronic security perimeters, CIP-007 system security, CIP-010 configuration management.

ISO 27001 (OT Context)

Information Security Management applied to OT: Annex A controls for asset management, access control, operations security, communications security, and business continuity.

Usage Examples

Get started in seconds. Clone, chmod, and run.

# Clone the repository $ git clone https://github.com/SiteQ8/OTAUD.git $ cd OTAUD && chmod +x otaud.sh # Full OT/ICS/IoT audit $ sudo ./otaud.sh -t 192.168.1.0/24 -s full # Quick network scan $ ./otaud.sh -t 10.0.0.50 -s quick -v # Single module (protocol audit) $ ./otaud.sh -t 172.16.0.100 -m protocol_audit # Compliance check against IEC 62443 $ ./otaud.sh -t 192.168.2.0/24 -s compliance -c iec62443 # Interactive menu mode $ sudo ./otaud.sh --interactive # Python: Modbus deep audit $ python3 python/modbus_audit.py -t 10.0.0.50 --json # Python: CVE lookup $ python3 python/cve_lookup.py -q siemens --online