Offcanvas

보안 / 애플리케이션

'탐지되지 않는' 산업용 PLC 공격 기법, 블랙햇 컨퍼런스에서 시연

2016.11.03 Lucian Constantin  |  IDG News Service
마이크로프로세서의 설계상 취약점을 이용, 산업용 PLC(Programmable Logic Controller)의 감지 메카니즘을 우회할 수 있는 새로운 맬웨어 공격 기법이 개발됐다.

PLC는 공장과 발전소, 가스 정제소, 공공 유틸리티(전기, 가스, 수도), 기타 산업 시설에서 물리적 프로세스 제어 및 모니터에 사용되는 전용 임베디드 컴퓨터다. 이 공격 기법은 PLC가 센서와 밸브, 모터 등의 장치와 통신할 때 이용하는 인터페이스인 입/출력 핀의 구성을 변경해 이뤄진다.


PLC를 대상으로 I/O 핀 구성 공격 방안이 제시됐다. Credit: Ali Abbasi, Majid Hashemi

현지 시간 지난 10월 27일 런던에서 개최된 블랙햇 유럽 보안 컨퍼런스에서 공개된 이 공격 기법은 네덜란드 트웬테 대학(University of Twente) 분산형 및 임베디드 시스템 박사 과정 중인 알리 아바시와 파리 소재 사이버보안 회사인 쿼크슬라브(Quarkslab)의 연구원 및 개발 엔지니어인 마지드 하세미가 함께 개발했다. 핀 구성 공격이라고도 불리며, I/O 핀의 출력을 입력으로 변경시키는 악성 코드 공격에 해당한다. 

예를 들어 밸브에 연결되어 있으며, 출력으로 구성된 I/O 핀에 신호를 보내 밸브를 열거나 닫도록 고안된 PLC를 가정하자. 이 PLC는 입력으로 설정된 또 다른 핀을 통해 센서로부터 압력 판독 데이터를 수신한다. 그리고 내장된 PLC 로직(PLC logic)이라는 프로그램이 센서가 보낸 판독 데이터를 모니터링해 자동으로 밸브를 개폐해 압력을 조절한다.

그런데 공격자가 PLC에 악성 코드를 주입해 출력 핀을 입력으로 바꿈으로써, PLC 로직의 쓰기 및 밸브 개방을 막을 수 있다. 또 입력 핀을 출력으로 재설정, 여기에 가짜 데이터를 쓸 수 있다. 이렇게 하면 PLC는 모니터링 소프트웨어에 밸브를 개방해 압력을 낮췄다고 보고한다. 공격자가 주입한 가짜 판독 데이터 때문이다.

PLC 같은 임베디드 장치에 사용하는 SoC(Systems on a Chip)의 핀 구성에는 하드웨어 인터럽트가 없다. 따라서 입력으로 재설정된 핀에 쓰기를 할 때 OS가 프로세서 오류를 감지하지 못하는 것이 근본적인 문제다. 즉 런타임 환경에서 실행되는 PLC 로직이 충돌하지 않고 정상적으로 기능하는 것으로 진단된다. OS 가상 메모리에서는 모든 것이 정상이기 때문이다.

아바시는 "이것이 가장 심각한 문제점이다. SoC 벤더들은 핀 구성 피드백을 고려하지 않은 것으로 보인다. 또 다른 임베디드 시스템에는 중요하지 않은 부분일 수 있다. 그러나 I/O가 중요한 기능을 하는 PLC의 경우, 이것이 아주 중요하며, 큰 문제를 초래할 수 있다"라고 지적했다.

아바시와 하세미는 이런 공격 기법을 LKM(Loadable Kernal Mudule)으로 기능하는 루트킷으로 구현했다. 이를 이용하면 임베디드 시스템용 호스트 기반 침입 감지 및 제어 흐름 무결성 도구인 Doppleganger 및 Autoscopy Jr 같은 도구를 무력화 시킬 수 있었다고 이들은 설명했다.

연구원들은 논문에서 "PLC 논리 명령이나 펌웨어 수정 없이 물리 프로세스를 조종한다는 점에서 새로운 기법이다. 즉 기존의 기능 후킹(Hooking) 기법을 이용하지 않고, 전체 악성 코드를 동적 메모리에 배치해 목적을 달성할 수 있다"라고 설명했다.

루트킷을 LKM(즉 드라이버)으로 구현한 데 따른 단점도 있다. 루트 권한이 있어야 배포할 수 있다는 것이다. 이 점을 감안, 연구원들은 기존 PLC 런타임 기능을 이용해 핀을 재설정하는 공격 기법도 개발했다. 이 변종 기법은 악성 코드를 동적 메모리에 직접 불러올 수 있는 메모리 손상 취약점을 악용해 구현할 수 있다.

또 다른 공격 기법은 동일한 PIN을 GPIO(범용 I/O) 외에 여러 인터페이싱 모드로 이용할 수 있는 핀 멀티플렉싱 기능을 표적으로 한다. 런타임 동안 핀의 기능을 재지정할 수 있다. OS에 무언가 발생했다고 말해주는 피드백이 없는 방식이다.

아바시는 "핀을 모터에 연결, CPU 내부의 PWM(Pulse Width Modulation) 컨트롤러를 통해 모니터 및 관리한다고 가정하자. 우리는 기능을 다른 무언가에 연결해 변경하는 멀티플렉스 공격을 한다. 그러나 CPU는 가상 주소를 물리 주소로 해석하는 MMU(Memory Management Unit)에 해당 핀에 부합하는 물리 주소가 더 이상 유효하지 않다고 통신하지 않는다. MMU는 계속 쓰기를 시도할 것이다. 그러나 CPU가 이 요청을 무시한다. 그러나 오류로 처리하지 않는다. PLC는 모터가 여전히 액세스 가능하다고 생각하기 때문이다"라고 설명했다.

아바시에 따르면, 가까운 장래에 이런 형태의 I/O 공격이 등장할 가능성은 희박하다. 더 쉽게 PLC를 해킹할 수 있는 방법이 있기 때문이다. 그러나 벤더들은 더 나은 보안 기술을 도입해 차세대 PLC를 개발할 때, 펌웨어와 논리 조작 외에도 공격할 수 있는 표면이 존재한다는 점을 염두에 둬야 할 것이라고 그는 설명햇다.

또 이런 I/O 공격에 취약한 것은 PLC 뿐만이 아니다. I/O 기능이 중요한 모든 임베디드 장치가 해당된다. 각각 자동차와 발전소에 사용되는 ECU(Electronic Control Unit)과 IED(Intelligent Electronic Device)를 예로 들 수 있다.

연구원들은 보고서에서 I/O 공격 감지에 이용할 수 있는 새로운 기법에 대한 2가지 연구 방향을 제시했다. 이들은 이를 향후 연구의 토대로 활용할 계획이다. ciokr@idg.co.kr 
CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.