mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
36 lines
3.9 KiB
Markdown
36 lines
3.9 KiB
Markdown
# Modbus 프로토콜
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|
|
|
|
## Modbus 프로토콜 소개
|
|
|
|
Modbus 프로토콜은 산업 자동화 및 제어 시스템에서 널리 사용되는 프로토콜입니다. Modbus는 프로그래머블 로직 컨트롤러(PLC), 센서, 액추에이터 및 기타 산업 장치와 같은 다양한 장치 간의 통신을 허용합니다. Modbus 프로토콜을 이해하는 것은 ICS에서 가장 많이 사용되는 통신 프로토콜이며, 스니핑 및 PLC에 명령을 주입할 수 있는 많은 공격 표면이 있기 때문에 필수적입니다.
|
|
|
|
여기서는 프로토콜의 맥락과 작동 방식을 제공하는 개념을 포인트별로 설명합니다. ICS 시스템 보안의 가장 큰 도전 과제는 구현 및 업그레이드 비용입니다. 이러한 프로토콜과 표준은 80년대와 90년대 초기에 설계되었으며 여전히 널리 사용되고 있습니다. 산업에는 많은 장치와 연결이 있기 때문에 장치를 업그레이드하는 것이 매우 어렵고, 이는 해커에게 구식 프로토콜을 다룰 수 있는 우위를 제공합니다. Modbus에 대한 공격은 업그레이드 없이 사용될 것이기 때문에 사실상 피할 수 없습니다. 이는 산업에 중요한 작동입니다.
|
|
|
|
## 클라이언트-서버 아키텍처
|
|
|
|
Modbus 프로토콜은 일반적으로 클라이언트-서버 아키텍처로 사용되며, 여기서 마스터 장치(클라이언트)가 하나 이상의 슬레이브 장치(서버)와 통신을 시작합니다. 이는 전자 및 IoT에서 SPI, I2C 등과 함께 널리 사용되는 마스터-슬레이브 아키텍처라고도 합니다.
|
|
|
|
## 직렬 및 이더넷 버전
|
|
|
|
Modbus 프로토콜은 직렬 통신과 이더넷 통신 모두를 위해 설계되었습니다. 직렬 통신은 레거시 시스템에서 널리 사용되는 반면, 현대 장치는 이더넷을 지원하여 높은 데이터 전송 속도를 제공하며 현대 산업 네트워크에 더 적합합니다.
|
|
|
|
## 데이터 표현
|
|
|
|
Modbus 프로토콜에서 데이터는 ASCII 또는 이진 형식으로 전송되며, 이진 형식은 구형 장치와의 호환성 때문에 사용됩니다.
|
|
|
|
## 기능 코드
|
|
|
|
ModBus 프로토콜은 PLC 및 다양한 제어 장치를 작동하는 데 사용되는 특정 기능 코드의 전송으로 작동합니다. 이 부분은 기능 코드를 재전송하여 재생 공격을 수행할 수 있기 때문에 이해하는 것이 중요합니다. 레거시 장치는 데이터 전송에 대한 암호화를 지원하지 않으며, 일반적으로 긴 전선으로 연결되어 있어 이러한 전선의 변조 및 데이터 캡처/주입이 발생할 수 있습니다.
|
|
|
|
## Modbus의 주소 지정
|
|
|
|
네트워크의 각 장치는 장치 간 통신에 필수적인 고유 주소를 가지고 있습니다. Modbus RTU, Modbus TCP 등의 프로토콜이 주소 지정을 구현하는 데 사용되며, 데이터 전송을 위한 전송 계층 역할을 합니다. 전송되는 데이터는 메시지를 포함하는 Modbus 프로토콜 형식입니다.
|
|
|
|
또한, Modbus는 전송된 데이터의 무결성을 보장하기 위해 오류 검사를 구현합니다. 그러나 가장 중요한 것은 Modbus가 오픈 표준이라는 점이며, 누구나 자신의 장치에 이를 구현할 수 있습니다. 이로 인해 이 프로토콜은 글로벌 표준으로 자리 잡았으며 산업 자동화 산업에서 널리 퍼져 있습니다.
|
|
|
|
대규모 사용과 업그레이드 부족으로 인해 Modbus를 공격하는 것은 공격 표면에서 상당한 이점을 제공합니다. ICS는 장치 간의 통신에 크게 의존하며, 이들에 대한 공격은 산업 시스템의 운영에 위험할 수 있습니다. 재생, 데이터 주입, 데이터 스니핑 및 유출, 서비스 거부, 데이터 위조 등의 공격이 공격자가 전송 매체를 식별할 경우 수행될 수 있습니다.
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|