open-ot-security
open-ot-security
0
Project description

๐ Overview
Open OT Security ํ๋ก์ ํธ๋ "Arduino + W5500์ผ๋ก ๋ง๋ ๊ฐ์ง OT ์ฅ๋น(๋ฌผํฑํฌ PLC)๋ฅผ, ์น HMI๋ก ์ ์ดํ๊ณ , Malcolm์ผ๋ก ๋คํธ์ํฌ ํธ๋ํฝ์ ๊ฐ์ํ๋ OT ๋ณด์ ์ค์ต ํ๋ก์ ํธ"์ ๋๋ค. Arduino์ W5500์ ํ์ฉํด Modbus TCP ๊ธฐ๋ฐ์ PLC๋ฅผ ๊ตฌํํ๊ณ , ์ด๋ฅผ ์ค์ฌ์ผ๋ก HMI ์๋ฒ์ ๋คํธ์ํฌ ํธ๋ํฝ ๋ฏธ๋ฌ๋ง ํ๊ฒฝ, ๊ทธ๋ฆฌ๊ณ Malcolm ๋ถ์ ํ๋ซํผ์ ์ฐ๊ณํ์ฌ ์ค์ ์ฐ์ ํ๊ฒฝ๊ณผ ์ ์ฌํ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. ๊ธฐ์กด์ ๊ณ ๊ฐ OT ๋ณด์ ์๋ฃจ์ ๊ณผ ๋ฌ๋ฆฌ ์์ญ ๋ฌ๋ฌ ์์ค์ ํ๋์จ์ด๋ก ๋์ผํ ๊ฐ๋ ์ ๊ตฌํํ ์ ์์ด, ์๊ท๋ชจ ์กฐ์ง์ด๋ ๊ต์ก ํ๊ฒฝ์์๋ ์ ๊ทผ ๊ฐ๋ฅํ OT ๋ณด์ ํ ์คํธ๋ฒ ๋๋ฅผ ์ ๊ณตํ๋ค๋ ์ ์ด ํต์ฌ์ ๋๋ค. ์ด ํ๋ก์ ํธ๋ ๋จ์ํ ๋คํธ์ํฌ ํต์ ๊ตฌํ์ ๋์ด ์ฐ์ ํ๋กํ ์ฝ, ํธ๋ํฝ ๋ถ์, ๋ณด์ ํ์ง๊น์ง ํตํฉํ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๋ฉฐ, OT ๋ณด์์ ์ง์ ์ฅ๋ฒฝ์ ๋ฎ์ถ๋ ๋ฐ ๋ชฉ์ ์ด ์์ต๋๋ค.
๐ Features
1. OT ํ๋กํ ์ฝ ๊ธฐ๋ฐ ์คํ๊ฒฝ ์๋ฎฌ๋ ์ด์
- Modbus TCP ๊ธฐ๋ฐ PLC(Arduino) ๊ตฌํ
- ์ค์ ์ฐ์ ํ๊ฒฝ๊ณผ ์ ์ฌํ ํธ๋ํฝ ์์ฑ
2. ๋คํธ์ํฌ ๋ณด์ ๋ถ์ ํตํฉ
- Malcolm (Zeek, Suricata, Arkime ๋ฑ) ๊ธฐ๋ฐ ํธ๋ํฝ ๋ถ์
- ICS ํ๋กํ ์ฝ๊น์ง ํด์ ๊ฐ๋ฅ
3. Web ๊ธฐ๋ฐ HMI (SCADA ์คํ์ผ UI)
- Flask + pymodbus ๊ธฐ๋ฐ ๋์๋ณด๋
- ์ ์ด ๋ฐ ๋ชจ๋ํฐ๋ง์ ๋์์ ์ ๊ณต
4. ์ ๋น์ฉ ํ๋์จ์ด ๊ตฌ์ฑ
- Arduino Uno + W5500
- Managed Switch (ํฌํธ ๋ฏธ๋ฌ๋ง)
- ์ผ๋ฐ PC (Docker ๊ธฐ๋ฐ ๋ถ์)
๐ โ์ฝ $47 ์์ค์ ํ๋์จ์ด๋ก OT ๋ณด์ ํ๊ฒฝ ๊ตฌ์ถโ์ด๋ผ๋ ์ ์ด ํต์ฌ ์ฐจ๋ณ ์์
๐ System Architecture

๋ณธ ์์คํ ์ ์ฐ์ ์ ์ด ํ๋ฆ(์ ์ด)๊ณผ ๋ณด์ ๋ถ์ ํ๋ฆ(๋ชจ๋ํฐ๋ง)์ ๋ถ๋ฆฌํ์ฌ ๋์์ ์ฒ๋ฆฌํ๋ ๊ตฌ์กฐ๋ก ์ค๊ณ๋์์ต๋๋ค. ์ฌ์ฉ์๋ ์น ๊ธฐ๋ฐ HMI๋ฅผ ํตํด PLC์ ์ ์ด ๋ช ๋ น์ ์ ๋ฌํ๋ฉฐ, ์ด ํต์ ์ Modbus TCP ํ๋กํ ์ฝ์ ํตํด Arduino(W5500)๋ก ์ ๋ฌ๋ฉ๋๋ค. Arduino๋ ์ค์ ์ฐ์ ์ฅ๋น๋ฅผ ๋ชจ์ฌํ๋ PLC ์ญํ ์ ์ํํ๋ฉฐ, ์ผ์ ๊ฐ๊ณผ ์ํ ๋ฐ์ดํฐ๋ฅผ ์๋ตํฉ๋๋ค.
์ด ๊ณผ์ ์์ ๋ฐ์ํ๋ ๋ชจ๋ ๋คํธ์ํฌ ํธ๋ํฝ์ Managed Switch์ ํฌํธ ๋ฏธ๋ฌ๋ง(SPAN) ๊ธฐ๋ฅ์ ํตํด ๋ณต์ ๋ฉ๋๋ค. ๋ณต์ ๋ ํจํท์ Capture NIC๋ก ์ ๋ฌ๋๋ฉฐ, ๋ณ๋์ ๋ถ์ ์์คํ ์ธ Malcolm์ผ๋ก ์ ๋ ฅ๋ฉ๋๋ค. Malcolm ๋ด๋ถ์์๋ Zeek, Suricata, ICSNPP ๋ฑ์ด ๋์ํ์ฌ Modbus ํ๋ ์์ ํด์ํ๊ณ ์ด์ ์งํ๋ฅผ ํ์งํฉ๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ์ ์ด ํธ๋ํฝ์ HMI์ PLC ์ฌ์ด์์ ์ค์๊ฐ์ผ๋ก ์ฒ๋ฆฌ๋๊ณ , ๋์ผํ ํธ๋ํฝ์ด ๋ณ๋ ฌ์ ์ผ๋ก ๋ณด์ ๋ถ์ ์์คํ ์ผ๋ก ์ ๋ฌ๋์ด OT ํ๊ฒฝ์ ๊ฐ์์ฑ์ ํ๋ณดํฉ๋๋ค. ์ด๋ฌํ ๊ตฌ์กฐ๋ ์ค์ ์ฐ์ ๋คํธ์ํฌ์์ ์ฌ์ฉ๋๋ โOut-of-band ๋ณด์ ๋ชจ๋ํฐ๋ง ๋ฐฉ์โ์ ๊ทธ๋๋ก ์ฌํํ ๊ฒ์ด๋ฉฐ, ์ ์ด ์์คํ ์ ์ํฅ์ ์ฃผ์ง ์์ผ๋ฉด์ ๋ณด์ ๋ถ์์ ์ํํ ์ ์๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค.
๐ Role and Application of the WIZnet's Chip
์ฌ์ฉ ์นฉ : W5500 (WIZnet Ethernet Controller)
์ญํ
- Arduino์์ Modbus TCP ์๋ฒ ๊ตฌํ
- PLC ์ญํ ์ํ (์ฐ์ ์ฅ๋น ์๋ฎฌ๋ ์ด์ )
๋คํธ์ํฌ ๊ธฐ๋ฅ
- TCP/IP ์คํ๋ก๋
- Modbus TCP (ํฌํธ 502)
์ ํ ์ด์ ๋ฐ ์ฅ์
- ํ๋์จ์ด TCP/IP ์คํ ๋ด์ฅ
- MCU ๋ถํ ์ต์ํ
- ์์ ์ ์ธ ๋คํธ์ํฌ ์ฒ๋ฆฌ
- ์ ๋น์ฉ OT ๋๋ฐ์ด์ค ๊ตฌํ ๊ฐ๋ฅ
- ์ฐ์ ์ฉ PLC ๋์ฒด ์์ค์ ํ๋กํ ํ์ ๊ตฌํ
- ๋จ์ผ ํด๋ผ์ด์ธํธ ๊ตฌ์กฐ ๋์
- HMI ์๋ฒ์ persistent connection ์ ์ง (thread lock ํ์ฉ)
๐ Market & Application Value
์ ์ฉ ์ฐ์
- ์ค๋งํธ ํฉํ ๋ฆฌ
- ์์ฒ๋ฆฌ / ์ ๋ ฅ / ์๋์ง
- ์ฐ์ ์ค๋น ๋ณด์ (ICS/SCADA)
- OT ๋ณด์ ๊ต์ก ๋ฐ ํ๋ จ
๐ Summary
์ด UCC๋ W5500์ ํ์ฉํ์ฌ ์ฐ์ ์ฉ PLC ์ญํ ์ ์ํํ๋ ๋๋ฐ์ด์ค๋ฅผ ๊ตฌํํ๊ณ , ์ด๋ฅผ ์ค์ฌ์ผ๋ก OT ๋คํธ์ํฌ์ ์ ์ดยท๋ชจ๋ํฐ๋งยท๋ณด์ ๋ถ์๊น์ง ํ๋์ ๊ตฌ์กฐ๋ก ํตํฉํ ์ฌ๋ก์ ๋๋ค. ํนํ ์ ๋น์ฉ ํ๋์จ์ด์ ์คํ์์ค ์ํํธ์จ์ด๋ฅผ ๊ฒฐํฉํ์ฌ ๊ธฐ์กด์ ๊ณ ๊ฐ OT ๋ณด์ ์์คํ ์ ๋์ฒดํ ์ ์๋ ์ค์ต ํ๊ฒฝ์ ์ ๊ณตํ๋ค๋ ์ ์์ ์๋ฏธ๊ฐ ์์ต๋๋ค. ์ธ๋ถ ์งํ๋ ์์ง ์ ํ์ ์ด์ง๋ง, OT ๋ณด์ ๊ต์ก๊ณผ ์ด๊ธฐ PoC ์์ฅ์์ ํ์ฉ ๊ฐ๋ฅ์ฑ์ด ๋์ผ๋ฉฐ, WIZnet ์นฉ์ด ์ฐ์ ์ฉ ๋คํธ์ํฌ ์ฅ๋น ์์ญ๊น์ง ํ์ฅ๋ ์ ์์์ ๋ณด์ฌ์ฃผ๋ ์ฌ๋ก๋ก ํ๊ฐ๋ฉ๋๋ค. ์ด ํ๋ก์ ํธ๋ ํฅํ ์ฐ์ ํ๋กํ ์ฝ ํ์ฅ, ๋ณด์ ์ผ์ ์ ํํ, ๊ต์ก์ฉ ํคํธ ๋ฑ์ผ๋ก ๋ฐ์ ํ ์ ์๋ ๊ธฐ๋ฐ์ ์ ์ํฉ๋๋ค.
๐ FAQ
Q1. ์ด ํ๋ก์ ํธ์ ํต์ฌ ๋ชฉ์ ์ ๋ฌด์์ธ๊ฐ์?
์ด ํ๋ก์ ํธ๋ Arduino์ W5500์ ํ์ฉํด Modbus TCP ๊ธฐ๋ฐ์ PLC๋ฅผ ๊ตฌํํ๊ณ , HMI ๋ฐ ๋คํธ์ํฌ ๋ณด์ ๋ถ์ ์์คํ
(Malcolm)๊ณผ ์ฐ๋ํ์ฌ ์ ๋น์ฉ OT ๋ณด์ ์ค์ต ํ๊ฒฝ์ ๊ตฌ์ถํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค.
Q2. ์ W5500 ์นฉ์ด ์ฌ์ฉ๋์๋์?
W5500์ ํ๋์จ์ด TCP/IP ์คํ์ ๋ด์ฅํ๊ณ ์์ด MCU์ ๋ถ๋ด์ ์ค์ด๋ฉด์ ์์ ์ ์ธ ๋คํธ์ํฌ ํต์ ์ ์ ๊ณตํ๋ฉฐ, ์ ๋น์ฉ์ผ๋ก ์ฐ์
์ฉ ๋คํธ์ํฌ ์ฅ๋น๋ฅผ ๊ตฌํํ ์ ์๊ธฐ ๋๋ฌธ์ ์ ํ๋์์ต๋๋ค.
Q3. Arduino๋ ์ด ์์คํ
์์ ์ด๋ค ์ญํ ์ ํ๋์?
Arduino๋ W5500๊ณผ ํจ๊ป Modbus TCP ์๋ฒ๋ก ๋์ํ๋ฉฐ, ๋ฌผํฑํฌ PLC์ ๊ฐ์ ์ฐ์
์ฅ๋น๋ฅผ ์๋ฎฌ๋ ์ด์
ํ๋ ์ญํ ์ ์ํํฉ๋๋ค.
Q4. Malcolm์ ์ด๋ค ์ญํ ์ ํ๋์?
Malcolm์ Zeek, Suricata ๋ฑ์ ๋๊ตฌ๋ฅผ ํ์ฉํ์ฌ ๋คํธ์ํฌ ํธ๋ํฝ์ ๋ถ์ํ๊ณ , Modbus TCP๋ฅผ ํฌํจํ ICS ํ๋กํ ์ฝ์ ์ด์ ์งํ๋ฅผ ํ์งํฉ๋๋ค.
Q5. ํฌํธ ๋ฏธ๋ฌ๋ง(SPAN)์ ์ ํ์ํ๊ฐ์?
ํฌํธ ๋ฏธ๋ฌ๋ง์ ์ ์ด ํธ๋ํฝ์ ๋ฐฉํดํ์ง ์์ผ๋ฉด์ ๋์ผํ ํจํท์ ๋ณต์ ํ์ฌ ๋ณด์ ๋ถ์ ์์คํ
์ผ๋ก ์ ๋ฌํ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
Q6. HMI๋ ์ด๋ค ๊ธฐ๋ฅ์ ์ ๊ณตํ๋์?
Flask์ pymodbus ๊ธฐ๋ฐ์ ์น HMI๋ PLC ์ํ ๋ชจ๋ํฐ๋ง๊ณผ ์ ์ด ๊ธฐ๋ฅ์ ๋์์ ์ ๊ณตํ๋ SCADA ์คํ์ผ ์ธํฐํ์ด์ค์
๋๋ค.
Q7. ์ด ํ๋ก์ ํธ์ ๊ฐ์ฅ ํฐ ์ฐจ๋ณ์ ์ ๋ฌด์์ธ๊ฐ์?
์ฝ $47 ์์ค์ ์ ๋น์ฉ ํ๋์จ์ด๋ก ์ค์ OT ๋ณด์ ํ๊ฒฝ๊ณผ ์ ์ฌํ ๊ตฌ์กฐ๋ฅผ ๊ตฌํํ ์ ์๋ค๋ ์ ์ด ๊ฐ์ฅ ํฐ ํน์ง์
๋๋ค.
Q8. ์ด๋ค ์ฐ์
๋ถ์ผ์ ์ ์ฉํ ์ ์๋์?
์ค๋งํธ ํฉํ ๋ฆฌ, ์์ฒ๋ฆฌ, ์ ๋ ฅ/์๋์ง, ICS/SCADA ๋ณด์ ๊ต์ก ๋ฐ ํ
์คํธ ํ๊ฒฝ ๋ฑ ๋ค์ํ ์ฐ์
๋ถ์ผ์ ์ ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
Q9. ์ด ์์คํ
์ ์ค์ ์ฐ์
ํ๊ฒฝ๊ณผ ์ผ๋ง๋ ์ ์ฌํ๊ฐ์?
Modbus TCP ๊ธฐ๋ฐ ํต์ , PLC ์๋ฎฌ๋ ์ด์
, Out-of-band ๋ชจ๋ํฐ๋ง ๊ตฌ์กฐ๋ฅผ ํฌํจํ์ฌ ์ค์ ์ฐ์
๋คํธ์ํฌ ๊ตฌ์กฐ๋ฅผ ์๋น ๋ถ๋ถ ์ฌํํฉ๋๋ค.
๐ Overview
The Open OT Security project is an OT security training project that builds a โsimulated OT device (water tank PLC) using Arduino + W5500, controls it via a web-based HMI, and monitors network traffic with Malcolm.โ Using Arduino and W5500, a Modbus TCP-based PLC is implemented, and it is integrated with an HMI server, a network traffic mirroring environment, and the Malcolm analysis platform to create a structure similar to a real industrial environment. Unlike traditional high-cost OT security solutions, this project enables the same concept to be implemented with hardware costing only tens of dollars, making it accessible for small organizations and educational environments. Beyond simple network communication, it presents an integrated structure covering industrial protocols, traffic analysis, and security detection, with the goal of lowering the barrier to entry for OT security.
๐ Features
Realistic Simulation Based on OT Protocols
- Implementation of a Modbus TCP-based PLC (Arduino)
- Generation of traffic similar to real industrial environments
Integrated Network Security Analysis
- Traffic analysis based on Malcolm (Zeek, Suricata, Arkime, etc.)
- Capability to parse ICS protocols
Web-based HMI (SCADA-style UI)
- Dashboard built with Flask + pymodbus
- Provides both control and monitoring functions
Low-cost Hardware Configuration
- Arduino Uno + W5500
- Managed Switch (port mirroring)
- Standard PC (Docker-based analysis)
๐ The key differentiator is the ability to build an OT security environment with hardware costing around $47.
๐ System Architecture

This system is designed to separate and process both industrial control flow (control) and security analysis flow (monitoring) simultaneously. Users send control commands to the PLC through a web-based HMI, and this communication is delivered to the Arduino (W5500) via the Modbus TCP protocol. The Arduino acts as a PLC simulating real industrial equipment, responding with sensor values and status data.
All network traffic generated in this process is duplicated using the port mirroring (SPAN) function of a managed switch. The mirrored packets are sent to a capture NIC and then forwarded to Malcolm, a separate analysis system. Within Malcolm, tools such as Zeek, Suricata, and ICSNPP analyze Modbus frames and detect anomalies.
As a result, control traffic is processed in real time between the HMI and PLC, while the same traffic is simultaneously delivered to the security analysis system, ensuring visibility into the OT environment. This architecture replicates the โout-of-band security monitoringโ approach used in real industrial networks, enabling security analysis without impacting the control system.
๐ Role and Application of the WIZnet's Chip
Chip Used: W5500 (WIZnet Ethernet Controller)
Role
- Implements a Modbus TCP server on Arduino
- Acts as a PLC (industrial device simulation)
Network Functions
- TCP/IP offload
- Modbus TCP (port 502)
Reasons for Selection & Advantages
- Built-in hardware TCP/IP stack
- Reduced MCU load
- Stable network processing
- Enables low-cost OT device implementation
- Supports prototype-level PLC replacement
- Handles single-client architecture
- Maintains persistent connection with HMI server (using thread lock)
๐ Market & Application Value
Applicable Industries
- Smart factories
- Water treatment / power / energy
- Industrial equipment security (ICS/SCADA)
- OT security education and training
๐ Summary
This UCC demonstrates a case where a device utilizing the W5500 performs the role of an industrial PLC and integrates control, monitoring, and security analysis of an OT network into a single architecture. Its significance lies in combining low-cost hardware with open-source software to provide a practical environment that can replace expensive OT security systems. Although external metrics are still limited, it shows strong potential for OT security education and early PoC markets, and highlights the possibility of WIZnet chips expanding into industrial network equipment domains. The project also provides a foundation for future developments such as industrial protocol expansion, security sensor products, and educational kits.
๐ FAQ
Q1. What is the main objective of this project?
To build a low-cost OT security training environment by implementing a Modbus TCP-based PLC using Arduino and W5500, and integrating it with an HMI and a network security analysis system (Malcolm).
Q2. Why was the W5500 chip used?
Because it has a built-in hardware TCP/IP stack, reduces MCU load, provides stable network communication, and enables low-cost implementation of industrial network devices.
Q3. What role does Arduino play in this system?
Arduino works with the W5500 as a Modbus TCP server and simulates industrial equipment such as a water tank PLC.
Q4. What is the role of Malcolm?
Malcolm analyzes network traffic using tools like Zeek and Suricata, and detects anomalies in ICS protocols including Modbus TCP.
Q5. Why is port mirroring (SPAN) necessary?
It allows duplication of traffic and delivery to a security analysis system without interfering with control traffic.
Q6. What functions does the HMI provide?
The web-based HMI, built with Flask and pymodbus, provides both monitoring and control in a SCADA-style interface.
Q7. What is the key differentiator of this project?
The ability to replicate a realistic OT security environment using low-cost hardware (around $47).
Q8. Which industries can this be applied to?
Smart factories, water treatment, power/energy, and ICS/SCADA security education and testing environments.
Q9. How similar is this system to real industrial environments?
It closely replicates real industrial network structures, including Modbus TCP communication, PLC simulation, and out-of-band monitoring architecture.