IT Solutions

산업현장 해킹? 프로토콜 알아야 ICS 보안 지킨다!

2021. 9. 10. 09:30

과거 외부와의 연결 없이 생산망에서만 운영되었던 공장의 산업 설비들이 4차 산업혁명과 같은 변화에 따라 생산망을 벗어나 외부와 연결되고 있습니다.

 

그런데 산업 현장에서 폐쇄적으로 구성되던 프로덕션 네트워크와 슈퍼비전 네트워크에 있는 설비들이 외부 인터넷망이나 OA망에 통제 없이 연결될 경우 여러 가지 문제가 발생할 수 있는데요. 해킹으로 인한 최종 생산품의 불량률 증가, 설비의 오작동으로 인한 생산 중단으로 금전적 피해, 화재, 폭발 등에 의한 인명 피해가 발생할 수 있습니다.

 

이번 글에서는 주요 생산 설비의 종류, ICS에서 사용하는 프로토콜 및 취약점에 관해 살펴보겠습니다.

ICS(Industrial Control System)란 발전소, 댐, 생산 공장, 빌딩 등 다양한 산업 현장의 설비를 제어하기 위한 시스템을 말합니다. 요즘 많이 사용하는 OT(Operational Technology)는 ICS뿐만 아니라 생산을 위해 필요한 운영 기술들을 모두 포함하는 포괄적인 용어입니다.

ICS의 구성 요소로 산업 환경에 사용되는 다양한 장비들이 있습니다. 그중에서 산업 환경에서 많이 사용되는 주요 설비에 관해 알아보도록 하겠습니다.


 1. PLC(Programmable Logic Controller)
• 프로그래밍이 된 규칙대로 전기 신호의 입/출력을 처리하는 작은 컴퓨터
  ex) 조건에 맞게 밸브를 열거나 닫는 기능 수행
• ICS의 핵심이 되는 장비로 CPU, 입출력 장치, 네트워크 장치 등 다양한 모듈로 구성되어 있음

 

 

2. RTU(Remote Terminal Unit)
• 센서로부터 정보를 받거나 모터와 같은 액추에이터를 동작하도록 전달하는 장치
• PLC와 유사하지만 별도의 코드와 로직이 내장되어 있지 않음
• 보통 원격지에서 유/무선(이더넷, 3G/4G 등) 네트워크와 연결되어 있음

 

 

3. HMI(Human Machine Interface)
•설비를 제어하거나 센서나 액추에이터의 현재 상태를 표출해 주는 장치
•Local HMI : 물리적 생산 프로세스가 있는 곳에 같이 위치
•Operator HMI : 보통 SCADA 또는 DCS 소프트웨어를 실행하는 여러 화면이 있는 Windows PC


4. SCADA(Supervisory Control And Data Acquisition)
•생산을 관리/감독하기 위한 시스템으로, 운영자가 중앙에서 프로세스를 모니터링하고 제어하기 위한 장비
•PLC, HMI, RTU 등 다양한 설비로부터 데이터를 수집하여 감시 및 제어를 수행함
5. MES(Manufacturing Execution System)
•생산 계획을 수립하고, 계획에 따른 생산 결과 등을 관리하기 위한 시스템
•ERP 시스템과 연계하여 운영되는 경우도 있음

ICS 네트워크는 일반적으로 퍼듀모델(Purdue Model), CIM(Computer Integrated Manufacturing) 패러다임과 같은 참조 모델을 활용해 각 환경에 맞게 커스텀하고 네트워크를 분류합니다.

 

네트워크 분류를 이용하면 좀 더 쉽게 보안 수준을 정하고 접근 통제를 수행할 수 있어, 보안을 강화할 수 있다는 장점이 있습니다.

 

 

1. 피지컬 레이어(Physical Layer)

각종 센서, 모터 등이 위치하는 영역이며, 생산망과 직접적인 네트워크가 연결되어 있지 않습니다. 하지만 IIoT(Industrial IoT) 장비들의 적극적인 도입으로 인해서 네트워크 기능이 포함되어 있는 센서, 액추에이터 같은 장비들이 많이 늘어나고 있습니다.

이런 장비들은 네트워크 게이트웨이를 통해서 다른 네트워크와 연결되거나 3G, LTE 통신 모듈을 통해서 인터넷과 직접 연결되는 장비도 있습니다.

 

2. 프로덕션 네트워크

물리적 프로세스를 담당하는 액추에이터에 명령을 내리거나 센서로부터 데이터를 받아들이는 설비들이 모여 있는 네트워크 환경으로, PLC, RTU, Local HMI와 같은 장비들이 있습니다.

아래 설명할 슈퍼비전 네트워크와 연결되어 명령을 받거나 데이터를 전송하는데요. 직접적으로 인터넷이나 코퍼레이트 네트워크와 연결되어서는 안 됩니다. ICS 해킹의 최종 타깃이 되는 장비들로 침해 시 생산에 큰 영향을 받을 수 있기 때문입니다.

 

3. 슈퍼비전 네트워크

프로덕션 네트워크에 있는 설비에게 명령을 내리거나, 전송된 데이터를 수집/저장/분석하는 SCADA, 엔지니어링 워크스테이션, Operator HMI, 데이터 히스토리언 같은 장비들이 있습니다.

코퍼레이트 네트워크와의 연계는 방화벽과 같은 장비로 철저히 접근 통제되어야 하며, I-DMZ와 같은 네트워크 영역을 구성해 운영해야 합니다.

 

4. 코퍼레이트 네트워크

회사의 IT환경을 구성하기 위한 서버, 네트워크 장비와, 임직원이 사용하는 PC가 연결되어 있는 네트워크입니다.

인터넷과 연결되어 있을 가능성이 높기 때문에 해킹의 첫 번째 목표가 될 수 있는 영역입니다.

산업 환경에서는 PLC와 PLC 간, PLC와 HMI, PLC와 엔지니어링 워크스테이션 등 각종 설비 간 통신을 하기 위해서 다양한 프로토콜이 사용되고 있는데요. 프로토콜은 Modbus, Profinet, DNP3, OPC-UA같이 공개된 프로토콜뿐만 아니라 지멘스사의 S7, 미쓰비시사의 MELSEC Communication Protocol 등 제조사 자체 프로토콜을 사용하고 있습니다.

 

기존에 RS-232, RS-485와 같은 시리얼 통신만 지원하던 프로토콜들도 현대에서는 이더넷 기반 스위칭 환경에서 통신할 수 있도록 변경되어 더욱 유연하게 IT네트워크와 통합될 수 있습니다.

 

ICS 프로토콜에서 많은 제조사가 지원하는 몇 가지 프로토콜을 상세히 살펴보겠습니다.

 

1. Modbus

슈나이더 일렉트릭사에서 산업용으로 개발하였으며, 로열티가 없어 많은 PLC 등 산업용 장비에서 차용하고 있는 표준 프로토콜입니다. Master/Slave 구조를 가지고 있으며 별도의 인증, 암호화와 같은 보안 기능은 가지고 있지 않습니다.

처음에는 시리얼 통신용으로 만들어졌으나, 지금은 TCP 기반으로 사용 가능하도록 변경되었는데요. TCP 기반의 Modbus 프레임 포맷은 아래와 같습니다.

 

 

Modbus에서 제공하는 기본 Function을 통해서 PLC 데이터를 읽거나 쓸 수 있고, 제조사에서 Custom Function을 정의하여 활용할 수도 있습니다.

 

 

더불어, Modbus를 위한 다양한 툴이 공개되어 있는데요.

예를 들면 mbtget (https://github.com/sourceperl/mbtget) 은 PLC의 데이터를 읽거나 쓸 수 있는 툴입니다.

 

 

그리고 metasploit console을 활용하여 데이터를 쓰거나 읽을 수 있습니다.

 

 

2. S7 프로토콜

S7 프로토콜은 지멘스사의 독점 프로토콜로 지멘스의 PLC에서만 사용되고 있습니다. S7, S7comm, S7comm plus와 같이 다양한 버전으로 발전하고 있으며 초기에 없던 인증, 암호화 등 보안 기능이 추가되고 있습니다.

 

서버/클라언트 구조를 가지고 있으며, 오픈 소스 Snap7과 같은 도구를 활용하여 PLC의 데이터를 읽고 쓸 수 있습니다.

 

• Server demo

 

 

• Client demo

 

 

• Data Read/Write

 

 

3. OPC-UA (Open Platform Communications Unified Architecture)

 OPC-UA는 2006년에 발표된 오픈소스 프로토콜로 다양한 플랫폼에서 이용될 수 있습니다. 초기에는 외부와의 정보 교환을 위해서 설계되었으나 점차 PLC 등과 같은 설비 간 통신을 지원하면서 Modbus/TCP 같은 표준 프로토콜만큼 많이 사용되고 있습니다.

 

통신 방식은 TCP를 기반으로 한 바이너리 통신을 하거나 HTTP 기반 통신을 선택하여 활용할 수 있습니다. 바이너리 기반 통신은 좀 더 빠른 속도를 제공해 줄 수 있으며, HTTP 기반 통신은 높은 호환성을 가지고 있는데요. 두 가지 방식 모두 보안 기능(WS-Secure Conversation)을 가지고 있습니다.

 

opcua-client tool을 통해서 특정 데이터 변경에 대해서 서브스크립션해 변화를 관찰하거나 권한이 있을 경우 데이터를 수정할 수 있습니다.

 

 

• OPC-UA 서버에 연결

 

 

• 서브스크립션을 통한 데이터 변화 모니터링 및 데이터 변조

 

ICS는 일반 IT시스템과 많은 차이점을 가지고 있습니다. 보안보다는 안전이, 보안의 기밀성과 무결성보다는 가용성이 훨씬 중요한 가치로 여겨지고 있는데요.

 

하지만 안전를 위한 SIS(Safety Instrumented Systems)와 같은 장비도 전용 PLC와 컨트롤러로 구성되어 있어 침해 가능성이 있습니다. 그러므로 보안도 안전을 위해서 반드시 고려되어야 합니다.

 

그리고 SCADA나 HMI 같은 생산 프로세스를 관리 감독 및 제어하는 시스템이 침해되어 잘못된 데이터를 제공하게 되면, 제품의 불량률이 증가하거나 심각할 경우 생산 라인이 멈추는 상황까지 초래할 수 있습니다. 즉 기밀성, 무결성이 침해되어 생산 가용성 문제로 확산될 수 있기 때문에 모든 보안 요소가 지켜질 수 있도록 노력해야 합니다.

 

현재 산업 현장에는 다양한 프로토콜이 운영되고 있지만 대부분의 프로토콜이 보안 요소를 제공하고 있지 않거나, 보안 요소를 적용할 수 없는 상황이어서 기본적인 암호화나 인증 기능도 적용되어 있지 않은 상황입니다. 또한 4차 산업혁명으로 인해 클라우드, AI/ML, IoT와 같은 신기술의 적극적인 도입의 필요성이 증가하고 있는데요. 이로 인해 외부와 접점 역시 점차 늘어날 수밖에 없습니다.

 

따라서 IT영역과 ICS가 포함된 OT영역에 대해서 현재의 보안 수준을 냉정히 평가하고, 필요한 보안 요소를 적극적으로 도입해야 합니다.

 

 

글 | 이진욱 책임

LG CNS RED팀 소속으로 OT보안 진단을 전문으로 수행하고 있으며 클라우드 보안, 컨테이너 보안 등을 연구하고 있습니다.  

 

*해당 콘텐츠는 저작권법에 의해 보호받는 저작물로 LG CNS 블로그에 저작권이 있습니다.

*해당 콘텐츠는 사전 동의없이 2차 가공 및 영리적인 이용을 금하고 있습니다.

 

 

Posted by IT로 만드는 새로운 미래를 열어갑니다 LG CNS

댓글을 달아 주세요

위로