PLC 보안 (Programmable Logic Controller Security)

정보보안학
한 줄 정의: 공장 설비의 모터, 밸브, 센서 등을 직접 제어하는 산업용 소형 컴퓨터인 PLC(프로그래머블 로직 컨트롤러)를 겨냥한 공격을 막고 프로그램 논리의 무결성을 지키기 위한 보안 기법을 다룹니다.

쉽게 풀면

PLC는 공장 현장에서 실제로 손과 발처럼 움직이는 기계 장치들을 직접 조작하는 작은 두뇌라고 할 수 있습니다. 예를 들어 특정 센서 값이 일정 기준을 넘으면 펌프를 멈추라는 규칙(제어 로직)이 PLC 안에 프로그래밍되어 있습니다. 만약 공격자가 PLC에 몰래 접근해 이 규칙을 조작한다면, 정상적인 조건에서도 펌프가 멈추지 않거나 반대로 불필요하게 멈춰버리는 등 실제 설비 오작동으로 이어질 수 있습니다. PLC 보안은 이런 제어 로직과 접근 경로를 지키는 일을 다룹니다.

왜 중요한가

PLC는 산업제어시스템의 가장 말단에서 물리적 장비와 직접 맞닿아 있어, 이곳이 뚫리면 공격의 결과가 즉시 실제 기계 동작으로 나타난다는 점에서 위험도가 매우 높습니다. 실제 산업 현장을 겨냥한 사이버 공격 사례들이 PLC의 논리를 조작하는 방식으로 이루어진 것으로 알려져 있어, 산업제어시스템(ICS/OT) 보안 분야에서 PLC 보안은 방어의 최전선으로 다뤄집니다.

논문에서는 이렇게 쓰입니다

"본 연구는 PLC의 래더 로직 프로그램을 대상으로 한 무결성 검증 기법을 제안하여, 무단으로 변조된 제어 로직을 실행 전에 탐지할 수 있도록 하였다."

PLC 내부 제어 로직의 변조를 탐지하는 연구의 예문입니다.

"엔지니어링 워크스테이션과 PLC 간의 프로그래밍 통신 구간에 인증 절차를 도입하여 무단 프로그램 업로드를 차단하는 방안을 실험적으로 검증하였다."

PLC로 프로그램을 전송하는 경로의 보안을 강화하는 연구의 예문입니다.

조금 더 깊게 보면

PLC는 흔히 래더 로직(Ladder Logic)이라는 그래픽 기반 프로그래밍 언어로 제어 규칙을 작성하며, 엔지니어링 워크스테이션에서 Modbus 등의 산업용 프로토콜을 통해 프로그램이 전송됩니다. 방어 기법으로는 프로그램 무결성을 검증하는 방법, 정상적인 실행 로직 패턴을 학습해 이상 동작을 탐지하는 방법, 프로그래밍 접근 자체를 물리적·논리적으로 제한하는 방법 등이 연구되고 있습니다.

주의할 점

PLC는 오랜 기간 가동을 멈추지 않고 운영되는 경우가 많아 보안 점검이나 패치 적용을 위한 다운타임 확보가 현실적으로 어려운 경우가 흔하며, 이 때문에 보안 조치를 계획할 때 운영 일정과의 조율이 필수적입니다.

관련 용어