일반적인 ICS 프로토콜과 위험
Modbus, DNP3와 그 취약점을 알아봅니다.
일반적인 ICS 프로토콜과 위험은(는) CoddyKit의 무료 Cyber Security Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cyber Security Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cyber Security Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
프로토콜이 중요한 이유
산업용 프로토콜은 제어기, SCADA, 현장 장치가 데이터와 명령을 주고받을 때 사용하는 언어입니다. 대부분은 격리되고 신뢰할 수 있는 네트워크를 위해 설계되었기 때문에 IT에서 기대하는 인증과 암호화가 없습니다.
이러한 취약점을 이해하면 OT 네트워크에 있는 공격자가 정확히 무엇을 할 수 있는지, 그리고 어떤 보완 통제가 필요한지 알 수 있습니다.
Modbus
Modbus는 가장 오래되고 널리 사용되는 산업용 프로토콜 중 하나이며, 간단하고 구현하기 쉽습니다. Modbus/TCP는 이 프로토콜을 이더넷을 통해 전달합니다.
- 주 장치가 종속 장치의 레지스터와 코일을 읽고 씀
- 인증이 없으므로 종속 장치에 연결할 수 있는 모든 장치가 종속 장치에 명령을 내릴 수 있음
- 암호화가 없으므로 트래픽이 평문이며 쉽게 읽거나 위조할 수 있음
- 악의적인 송신자를 검증하는 무결성 검사가 없음
세그먼트에 있는 공격자는 코일에 값을 쓰기만 해도 장비를 작동시킬 수 있습니다.
# a Modbus function code 5 writes a single coil (e.g. open/close a relay)
# request fields are minimal: address, function, data, CRC
# nothing in the protocol proves WHO sent itDNP3
DNP3(분산 네트워크 프로토콜)는 전력 및 수도 유틸리티에서 흔히 사용되며, 시간 기록과 예외 보고 같은 기능을 갖추고 불안정한 장거리 링크를 위해 설계되었습니다.
- Modbus보다 기능이 풍부하지만 기본 프로토콜에는 여전히 내장된 보안 기능이 없음
- 개방된 네트워크에서는 위조와 재전송 공격에 취약함
- 보안 인증(DNP3-SA) 확장이 존재하지만 항상 배포되는 것은 아님
DNP3-SA가 지원되지 않는 환경에서는 네트워크 제어로 보완해야 합니다.
기타 일반 프로토콜
OT 환경에는 많은 프로토콜이 있으며, 자주 접하게 될 몇 가지는 다음과 같습니다.
- EtherNet/IP (CIP) — 제조 자동화에서 널리 사용됩니다
- PROFINET / PROFIBUS — 유럽 산업 환경에서 흔히 사용됩니다
- IEC 60870-5-104 — 전력 유틸리티에서 사용되며, DNP3와 비슷한 역할을 합니다
- IEC 61850 — 변전소 자동화에 사용됩니다
- OPC / OPC-UA — 데이터 교환 표준이며, 특히 OPC-UA는 보안을 지원합니다
OPC-UA가 특히 주목받는 이유는 인증과 암호화를 선택 사항으로 포함하도록 설계되었기 때문입니다.
인증 없음
레거시 프로토콜 전반에서 가장 큰 영향을 미치는 취약점은 인증이 없다는 점입니다. 프로토콜은 정상적인 마스터와 공격자를 구분할 수 없습니다.
- 네트워크의 모든 호스트가 유효한 것처럼 보이는 명령을 보낼 수 있습니다
- 메시지에 자격 증명이나 권한 부여라는 개념이 없습니다
- 장치는 수신한 내용을 무엇이든 신뢰합니다
따라서 네트워크 접근 제어가 최전선의 방어 수단입니다. 공격자가 프로토콜에 도달할 수 없다면 프로토콜을 악용할 수도 없기 때문입니다.
암호화 없음: 도청과 변조
평문 프로토콜은 통신 회선을 수동적으로 지켜보는 누구에게나 공정 과정을 노출합니다.
- 공격자는 관찰한 읽기 및 쓰기 동작을 통해 공정을 파악할 수 있습니다
- 설정값, 경보 및 명령이 그대로 보입니다
- 통신 경로 중간에 있을 경우 트래픽을 전송 중에 변경할 수 있습니다
이러한 트래픽을 분석 목적으로 수집할 때는 신중하게 수행해야 하며, 평가 권한이 있는 시스템에서만 진행해야 합니다. 수동 탭을 사용하면 실제 공정을 방해하지 않을 수 있습니다.
재전송 및 주입 공격
인증이나 최신성 보장이 없으면 기록된 트래픽을 다시 사용할 수 있습니다.
- 재전송 — 정상적인 명령을 캡처한 후 나중에 다시 보내 동작을 반복합니다
- 명령 주입 — 장비를 작동시키는 유효한 프로토콜 메시지를 만들어 보냅니다
- 허위 데이터 주입 — 조작한 센서 값을 HMI에 전달합니다
허위 데이터 주입은 특히 위험합니다. 운영자는 정상적인 측정값을 보는 동안 공정이 안전하지 않은 상태로 벗어날 수 있기 때문입니다.
OT 환경의 중간자 공격
SCADA와 컨트롤러 사이에 위치한 공격자는 통신 내용을 모두 읽고 변경할 수 있습니다.
- 운영자에게는 안전한 값을 보여 주면서 PLC에는 유해한 명령을 보냅니다
- 경보를 억제하여 장애를 알아차리지 못하게 합니다
- 운영자가 모르는 사이에 설정값을 변경합니다
공정을 방해하면서 운영자의 눈을 가리는 이러한 수법은 정교한 ICS 공격의 특징이며, 네트워크 수준에서 무결성을 모니터링해야 하는 이유이기도 합니다.
보안 프로토콜 변형
장비가 지원하는 경우에는 보안을 추가하는 프로토콜 옵션을 우선 사용하십시오.
- 보안 정책을 활성화한 OPC-UA는 인증, 서명 및 암호화를 제공합니다
- DNP3-SA는 DNP3에 시도-응답 인증을 추가합니다
- TLS 래퍼 또는 보안 게이트웨이를 사용하면 구역 간 레거시 트래픽을 보호할 수 있습니다
구형 장비에서 이러한 기능을 항상 사용할 수 있는 것은 아니므로, 설계에서는 많은 엔드포인트가 계속 안전하지 않다고 가정하고 네트워크 경계에서 보호합니다.
수동 모니터링 및 심층 검사
프로토콜 자체를 수정할 수 없는 경우가 많으므로, 대신 악용 행위를 탐지해야 합니다. OT를 이해하는 모니터링 시스템은 이러한 프로토콜을 파악하고 트래픽을 주입하지 않으면서 이상 징후를 표시합니다.
- 정상적인 주 장치, 종속 장치 및 명령 패턴의 기준선을 구축합니다
- 예상하지 못한 쓰기 명령이나 새 장치가 나타나면 경보를 냅니다
- 범위를 벗어난 설정값이나 권한이 없는 호스트에서 전송된 명령을 탐지합니다
- 모니터링이 공정을 방해하지 않도록 수동 탭을 사용합니다
프로토콜과 네트워크 방어
레거시 프로토콜은 스스로를 방어할 수 없으므로 네트워크가 이를 방어해야 합니다.
- 권한이 있는 호스트만 컨트롤러와 해당 프로토콜로 통신할 수 있도록 네트워크를 분할합니다
- 프로토콜을 인식하는 방화벽을 사용하여 예상되는 기능 코드만 허용합니다
- ICS 프로토콜에 맞게 조정한 수동 침입 탐지를 배포합니다
- 가능하면 보안 프로토콜 변형으로 전환합니다
이렇게 하면 마지막 수업에서 다룰 구조적 방어로 이어집니다.
빠른 확인: 프로토콜의 취약점
레거시 ICS 프로토콜의 핵심 위험을 생각해 보십시오.
복습: ICS 프로토콜과 위험
프로토콜과 그 본질적인 취약점을 배웠습니다.
- Modbus, DNP3 및 유사 프로토콜은 신뢰할 수 있는 네트워크를 전제로 만들어졌으며 인증과 암호화가 없습니다
- 이로 인해 도청, 재전송, 명령 주입, 허위 데이터 주입 및 MITM이 가능해집니다
- 공정을 방해하면서 운영자의 상황 판단을 흐리게 만들 수 있습니다
- 지원되는 경우 보안 프로토콜 변형(OPC-UA, DNP3-SA)을 우선 사용하십시오
- 그렇지 않다면 네트워크 분할, 프로토콜 인식형 방화벽 및 수동 모니터링으로 방어하십시오
다음 내용은 중요 인프라를 보호하기 위한 구조 설계입니다.
자주 묻는 질문
“일반적인 ICS 프로토콜과 위험” 강의는 무료인가요?
네 — “일반적인 ICS 프로토콜과 위험” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cyber Security Academy 강의 전체를 잠금 해제할 수 있습니다. Cyber Security Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“일반적인 ICS 프로토콜과 위험”에서 뭘 배우나요?
Modbus, DNP3와 그 취약점을 알아봅니다. 브라우저에서 직접 실행하는 실습 코드로 Cyber Security Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Cyber Security Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Cyber Security Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“일반적인 ICS 프로토콜과 위험” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Cyber Security Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Cyber Security Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 산업 제어 시스템 기초
- OT와 IT 보안의 차이
- 일반적인 ICS 프로토콜과 위험
- 핵심 인프라 보호