DNP3 제어시스템

14
보안학연논지 (Journal of Security Engineering), 7 1 2010 2 15 제어시스템 프로토콜 약점 실험 DNP3 1) 건희 , 2) 김신규 , 3) 민병길 , 4) 김년 , 5) 서정택 , 6) Testing Vulnerabilities of DNP3 Moonsu Jang 1) , Gunhee Lee 2) , SinKyu Kim 3) , Byung-gil Min 4) , Woo-nyon Kim 5) , Jungtaek Seo 6) 요약 제어시스템 격지 시스템 효적로 감시하 리하는 목적로 사용되는 시스템로 , , 전력 가스 상하수도 통 등 가주요시설 용에 사용되 다 비개 제어시스템 프로토콜 , , , . 표준 점차 제 표준로 개됨에 따라 개된 표준 격에게 제어시스템 및 네트크 동 , 에 대한 더 많 지식 제하게 되었며 점차적로 제어시스템에 대한 사버해 가능성 , 험성 높아지 다 제어시스템에 사버 해사 발생 시 가적 혼란 야기 시킬 수 므 . 로 특별한 보안리가 요된다 본 논에서는 제어시스템 프로토콜 보안 약점 및 약점 . DNP3 용한 격 분석하 실험망 성하여 해당 약점 존재 에 대한 실험 수행 한다 , . 핵심어 제어시스템 보안 약점 가주요기반시설 : , SCADA, , Abstract Industrial control system is the one that is used by the purpose of watching and managing remote systems efficiently. Industrial control system has been used in running the main faculty of countries such as electric power, gas, water supply and drainage, traffic systems etc. Most of control system protocols were proprietary standards developed by individual companies. Over the years, the industry has moved into accepting common open standard protocols. The open standards make it very easy for attacker to gain in-depth knowledge about the working of these Industrial control system. Gradually, the risk and threat of a 접수일 심사의뢰일 심사완료일 (2009 06 10 ), (2009 06 11 ), (1 :2009 07 10 ,2 :2009 07 25 ) 게재일 (2010 02 28 ) 1 대전시 성 전민동 번지 부설연소 연 305-700 909 , ETRI . email: [email protected] 2 대전시 성 전민동 번지 부설연소 연 305-700 909 , ETRI . email: [email protected] 3 대전시 성 전민동 번지 부설연소 연 305-700 909 , ETRI . email: [email protected] 4 대전시 성 전민동 번지 부설연소 연 305-700 909 , ETRI . email: [email protected] 5 대전시 성 전민동 번지 부설연소 연 305-700 909 , ETRI . email: [email protected] 6 신저 대전시 성 전민동 번지 부설연소 연 ( ) 305-700 909 , ETRI . email: [email protected]

Transcript of DNP3 제어시스템

Page 1: DNP3 제어시스템

보안공학연구논문지 제 권 제 호 년 월(Journal of Security Engineering), 7 1 2010 2

15

제어시스템 프로토콜 취약점 실험DNP3

장문수1) 이건희, 2) 김신규, 3) 민병길, 4) 김우년, 5) 서정택, 6)

Testing Vulnerabilities of DNP3

Moonsu Jang1), Gunhee Lee2), SinKyu Kim3), Byung-gil Min4), Woo-nyon Kim5), Jungtaek Seo6)

요 약

제어시스템은 원격지의 시스템을 효율적으로 감시하고 관리하는 목적으로 사용되는 시스템으로, ,

전력 가스 상하수도 교통 등의 국가주요시설의 운용에 사용되고 있다 비공개 제어시스템 프로토콜, , , .

표준이 점차 국제 표준으로 공개됨에 따라 공개된 표준은 공격자에게 제어시스템 및 네트워크 동작,

에 대한 더 많은 지식을 제공하게 되었으며 점차적으로 제어시스템에 대한 사이버침해의 가능성과,

위험성이 높아지고 있다 제어시스템에 사이버 침해사고 발생 시 국가적 혼란을 야기 시킬 수 있으므.

로 특별한 보안관리가 요구된다 본 논문에서는 제어시스템 프로토콜 보안 취약점 및 취약점을. DNP3

이용한 공격을 분석하고 실험망을 구성하여 해당 취약점 존재 유무에 대한 실험을 수행 한다, .

핵심어 제어시스템 보안 취약점 국가주요기반시설: , SCADA, ,

Abstract

Industrial control system is the one that is used by the purpose of watching and managing remote

systems efficiently. Industrial control system has been used in running the main faculty of countries such as

electric power, gas, water supply and drainage, traffic systems etc. Most of control system protocols were

proprietary standards developed by individual companies. Over the years, the industry has moved into

accepting common open standard protocols. The open standards make it very easy for attacker to gain

in-depth knowledge about the working of these Industrial control system. Gradually, the risk and threat of a

접수일 년 월 일 심사의뢰일 년 월 일 심사완료일 차 년 월 일 차 년 월 일(2009 06 10 ), (2009 06 11 ), (1 :2009 07 10 , 2 :2009 07 25 )

게재일 년 월 일(2010 02 28 )

1대전시 유성구 전민동 번지 부설연구소 연구원305-700 909 , ETRI .

email: [email protected]

2 대전시 유성구 전민동 번지 부설연구소 연구원305-700 909 , ETRI .

email: [email protected]

3대전시 유성구 전민동 번지 부설연구소 연구원305-700 909 , ETRI .

email: [email protected]

4 대전시 유성구 전민동 번지 부설연구소 연구원305-700 909 , ETRI .

email: [email protected]

5대전시 유성구 전민동 번지 부설연구소 연구원305-700 909 , ETRI .

email: [email protected]

6 교신저자 대전시 유성구 전민동 번지 부설연구소 연구원( ) 305-700 909 , ETRI .

email: [email protected]

Page 2: DNP3 제어시스템

제어시스템 프로토콜 취약점 실험DNP3

16

cyber attack is also increased. In case cyber infringement accident happens to industrial control system,

national confusion will be caused, so industrial control system is required to be managed with security. In

this paper, We have analyzed security vulnerability and Attacks using security vulnerability in DNP3. The

existence of relevant vulnerability verify by the help of experiments by a target of Industrial control

system.

Keywords : Industrial control system, SCADA, Security Vulnerability, Main faculty of countries

서론1.

제어시스템은 전력 생산분배 댐 운영 가스 생산유통 수자원 관리 및 대규모 산업 플랜트설� , , � ,

비의 운영을 제어하고 관리하는 시스템이다 제어시스템은 그 형태나 목적에 따라서.

SCADA(Supervisory Control and Data Acquisition), PCS(Process Control Systems), DCS

등으로도 불리며 산업설비에 대한(Distributed Control Systems), ICS(Industrial Control Systems) ,

계측과 제어 플랜트 상태의 감시와 관리 전력의 생산 분배 관리 열차 항공 등의 교통 인프라, , , , ,

제어 댐 석유와 같은 각종 자원의 감시와 제어에 이르기까지 중요 생산 기반 설비에 폭 넓게 사, , ,

용되고 있다 따라서 제어시스템에 대한 보안은 매우 중요한 이슈가 되고 있다. .

의 표준에 따르면 약 개 제어시스템 프로토콜AGA(American Gas Association) AGA-12 , 150~200

이 존재하며 이들 프로토콜의 대부분은 각기 다른 회사에서 개발된 각 회사가 보유한 공개되지, ,

않은 표준이다 산업은 점차 공개된 표준 프로토콜을 수용하는 입장이며 다양한 전문 기관들은 그. ,

들의 제어시스템 프로토콜을 산업 표준으로 채택하기 위해 경쟁하고 있다 회사가 보유한 비공개.

제어시스템 프로토콜 표준에서 공개 국제 표준으로 진행됨에 따라 공개된 표준은 공격자에게 제,

어시스템 및 네트워크 동작에 대한 더 많은 지식을 제공하게 되었으며 점차적으로 제어시스템에,

대한 사이버 침해의 가능성과 위험성이 높아지고 있다 제어시스템 보안 취약점을 이용한 사이버.

공격에 대응하고 제어시스템의 보안 취약점 분석을 위한 기반 기술을 확보하기 위해서는 제어시,

스템 프로토콜 취약점 취약점을 이용한 공격 및 이러한 취약점에 대한 제어시스템의 위험성을 면,

밀히 검토하여야 한다.

본 논문에서는 제어시스템 프로토콜 보안 취약점 및 취약DNP(Distributed Network Protocol)3

점을 이용한 공격을 분석하고 실험망을 구성하여 해당 취약점 존재 유무에 대한 실험을 수행한다, .

장에서는 제어시스템 프로토콜 취약점을 분석하고 장에서는 제어시스템 프로토콜2 DNP3 , 3 DNP3

취약점의 존재 유무에 대한 실험 결과를 분석한다 장에서는 결론을 맺는다. 4 .

제어시스템 프로토콜 취약점2. DNP3

제어시스템 프로토콜2.1 DNP3

는 현장제어장치와 중앙 운영 센터 사이에서 수집된 데이터 정보와 제어 메시지의 전송에DNP3

Page 3: DNP3 제어시스템

보안공학연구논문지 제 권 제 호 년 월(Journal of Security Engineering), 7 1 2010 2

17

최적화되어 설계된 표준 통신 프로토콜이다 년 월 사양을 정의하고 그 소유권을 확. 1993 11 DNP3 ,

보하기 위해서 사용자 그룹이 결정되었으며 그 그룹에서 프로토콜을 만들었다DNP3 , DNP3 [6].

사용자 그룹은 의 과 규격을 근간으로 프로토콜을 개발하였는DNP3 IEC 60870-5 101 103 DNP3

데 에서 표준으로 제정하였으며 년 월에 프로토콜을, IEEE IEEE 1379 , 1998 3 DNP3 RTU(Remote

와 간의 통신 프로토콜로 추천하였다 는 이Terminal Unit) IED(Intelligent Electronic Device) . DNP3

후 초기 버전을 시장 환경의 변화에 맞게 개선하는데 기여한 캐나다를 비롯하여 전 세계에DNP

서 년도 말 기준으로 가 사용하고 있을 정도로 가장 보편적으로 사용되고 있으며 전기2003 88% , ,

석유 가스 등의 분야에서 사용되는 산업 표준 으로 자리잡은 프로토, (De Facto Industry Standard)

콜이다 모델은 물리 계층 데이터 링크 계층 및 응용 계층으로 구성 된 개 계층을 기본. DNP3 , 3

통신 모델로 하며 데이터 링크 계층은 통신 형태로 시작하였고 이후 과 를, serial Ethernet TCP/IP

지원하는 버전이 개발되었다.

일반적인 제어시스템은 하나의 중앙제어장치에 다수의 가 연결되어 있고 각 에도 다수RTU , RTU

의 가 연결되어 있는 구조를 갖는다 는 제어시스템서버와 같은 중앙제어장치와IED . DNP3 RTU,

와 간의 통신을 위해 개발된 표준 통신프로토콜이다 제어시스템에서 을 이용한 통RTU IED . DNP3

신 절차는 그림 과 같다 중앙제어장치의 가 의 로 데이터를 송신하[ 1] . DNP Master IED DNP Slave

려면 목적지 와 연결되어 있는 의 로 전송을 해야 한다 데이터를 수신한, IED RTU DNP Slave . RTU

의 는 데이터를 내부의 에게 송신하고 최종적으로DNP Slave RTU DNP Master , RTU DNP Master

가 해당 에게 데이터를 송신하게 된다 의 가 중앙제어장치의 로 데IED . IDE DNP Slave DNP Master

이터를 송신하려면 위의 과정을 반대로 수행하면 된다.

그림 제어시스템 프로토콜 통신방식[ 1] DNP3

[Fig. 1] Protocol communication type of DNP3 control system

기본 통신방식은 비동기 형식의 폴링 방식으로 기능이 있는 장비Master/Slave (Polling) Master

에게 항상 통신 회선사용의 권한이 주어지고 기능의 장치는 의 폴링에 의해서만 회선Slave Master

사용이 가능하다 에서는 가 주기적으로 자신의 상태를 보고하는 방식이. DNP3 Slave Event Polling

나 에 문제가 발생한 경우 에게 문제를 보고하기 위한, Slave Master Unsolicited Response Polling

방식을 지원한다 제어시스템 프로토콜은 폴링 방식 뿐만 아니라 단순 기능. DNP3 Master/Slave

이외에 스스로도 레포팅을 시작할 수 있는 방식도 지원한다Slave RBE(Report-By-Exception) .

Page 4: DNP3 제어시스템

제어시스템 프로토콜 취약점 실험DNP3

18

일반적인 제어시스템 프로토콜 취약점 및 공격 유형2.2

일반적으로 제어시스템 프로토콜에 대한 취약점은 제어시스템 프로토콜 명세상의 취약점(Design

과 제어시스템 프로토콜의 구현 및 설정상의 취약점Vulnerability) (Implementation &

으로 분류 할 수 있다 제어시스템 프로토콜 구현 및 설정상의 취약점Configuration Vulnerability) .

은 상용 제어시스템마다 프로토콜 명세를 따르지 않거나 구현하지 않을 수도 있으며 제어시스템,

을 설정하는 환경이 다르기 때문에 제어시스템 운영 기관마다 다른 취약점을 가지고 있다 그러, .

나 제어시스템 프로토콜 명세상의 취약점은 프로토콜 명세를 따르는 모든 제어시스템과 네트워크,

에 일반적으로 존재 가능하다 본 논문에서는 제어시스템 프로토콜 명세상의 취약점만을 고려한다. .

제어시스템 프로토콜의 취약점은 등과 같은 제어시스템 프로토콜이 설계Modbus, DNP3, ICCP

상에 인증 무결성 기밀성 가용성 확인 기능(Authenticity), (Integrity), (Confidentiality), (Availability)

이 없거나 약하다는 점이다 제어시스템 또는 네트워크에서의 인증 무결성 기밀성 가용성에[1]. , , ,

대한 공격 유형은 아래와 같이 네 가지로 분류 할 수 있다 제어시스템 프로토콜 명세상의 취약[2] .

점을 이용한 공격의 주요 대상은 제어시스템과 네트워크를 구성하는 제어시스템서버 현장제어장,

치등 이다.

방해 물리적으로 제어시스템의 일부가 파괴되고 통신회선이 절단되거나 논리(Interruption) : ,�

적으로 제어 명령 및 경보를 전달할 수 없게 되는 등의 서비스 거부를 일으키는 공격으로 가,

용성에 대한 공격이다.

가로채기 비인가자들의 불법적인 접근에 의하여 발생되는 기밀성에 대한 공격(Interception) :�

으로서 비인가자란 사람이나 프로그램 또는 컴퓨터일 수 있다 네트워크상에서 데이터를 가, .

로채기 위한 도청과 파일 또는 프로그램의 불법 복제 등을 예로 들 수 있다.

불법수정 비인가자들의 불법접근 뿐만 아니라 불법적인 변경에 의한 무결성에(Modification) :�

대한 공격으로서 예를 들면 데이터 파일내의 값 변경 프로그램의 다른 기능 수행을 위한 변, ,

조 그리고 내트워크 상에서 전송중인 메시지 내용의 수정 등이 있다, .

위조 비인가자들의 시스템에 대한 위조물 삽입에 의한 인증에 대한 공격으로서(Fabrication) : ,�

예를 들면 네트워크 상에 위조된 메시지를 삽입하거나 파일에 레코드를 추가하는 경우 등이

있다.

제어시스템 프로토콜 취약점2.3 DNP3

본 절에서는 을 대상으로 제어시스템 프로토콜 명세상의 취약점을 분석하고 제어시스템과DNP3 ,

네트워크를 구성하는 주요 대상제어시스템서버 현장제어장치 등을 고려하여 취약점을 이용한( , ) ,

공격을 공격 유형별로 분류한다 제어시스템 프로토콜 명세상의 취약점 및 취약점을 이용한. DNP3

Page 5: DNP3 제어시스템

보안공학연구논문지 제 권 제 호 년 월(Journal of Security Engineering), 7 1 2010 2

19

공격을 분석하기 위해 의 연구 프로젝트 의 일부로 개발한, DigitalBond SCADA IDS Signature [3]社

침입탐지규칙 을 활용하였다 는 제어시스템 프로토콜 취약점을 이용한DNP3 IDS [4] . DigitalBond社

공격에 대한 정보를 발표하였다 특히 연구 프로젝트의 일부로. SCADA IDS Signature Modbus,

침입탐지규칙을 개발하였는데 침입탐지규칙은 제어시스템 프로토콜 명세상의DNP3, ICCP IDS ,

취약점을 이용한 공격을 탐지하기 위한 규칙으로 이루어져 있다 개발한 침입탐지규칙은. Snort[5]

침입탐지규칙 형식으로 제공하고 있으며 등 주요 개 보안Cisco, 3com/Tipping Point, Symantec 11

업체에서 침입탐지규칙을 사용하고 있다.

의 침입탐지규칙 을 이용하여 제어시스템 프로토콜 명세상의DigitalBond DNP3 IDS [4] DNP3社

취약점을 다음과 같이 분석하였다 제어시스템서버 현장제어장치 등의 주요 대상에서 발생 할 수. ,

있는 공격을 유형별가로채기 방해 불법수정 위조로 분류하였다 아래 제어시스템 프로토( , , , ) . DNP3

콜 명세상의 취약점 설명에서 제어시스템서버는 를 나타내며 현장제어장치는DNP3 client, master ,

을 나타낸다RTU, PLC(Programmable Logic Controller), IED, DNP3 server, outstation .

Disable Unsolicited Responses�

공격자는 현장제어장치에서 중앙제어장치인 제어시스템서버로 전달되는 경보와 다른 주요 이벤

트를 방해하기 위해 현장제어장치의 기능을 정지시킬 수 있다 공격자는 애플unsolicited response .

리케이션 계층 를 로 설정한 요청 패킷을 현장제function code 0x15(Disable Unsolicited Responses)

어장치로 전송함으로써 현장제어장치가 제어시스템서버로 를 보내는 것을 정, unsolicited response

지시킬 수 있다 해당 공격을 통해 시스템 무결성을 해치는 불법수정이 가능하고 서비스 거부 공. ,

격과 같은 서비스 방해가 가능하다.

Non-DNP3 Communication on a DNP3 Port�

제어시스템서버와 현장제어장치 사이에 확립된 연결은 어느 한쪽 장치로 다른 공격을 보내기

위해 하이재킹 되거나 스푸핑 될 수 있다 통신 환경이 아닌 통(hijacking) (spoofing) . Serial Ethernet

신 환경에서 하이재킹이나 스푸핑을 하기 위해서는 형식이 아닌 패킷을 사용하는 경우가DNP3

있으며 모든 패킷 프레임은 로 시작하기 때문에 패킷 프레임이 로 시작, DNP3 0x05 0x64 0x05 0x64

하지 않는 패킷은 하이재킹이나 스푸핑과 같은 공격일 가능성이 있다 해당 공격을 통해 시스템.

무결성을 해치는 불법수정이 가능하고 서비스 거부 공격과 같은 서비스 방해가 가능하다, .

Unsolicited Response Storm�

제어시스템서버 또는 제어센터 운영자가 처리하기 힘들 정도의 대량의 잘못된 unsolicited

를 보낸다 공격자는 애플리케이션 계층 를 로response . function code 0x82(Unsolicited Responses)

설정한 대량의 응답 패킷을 제어시스템서버로 전송함으로써 서비스거부 공격과 같은 서비스 방해

가 가능하고 데이터 무결성을 해치는 불법수정이 가능하다, .

Cold Restart from Authorized or Unauthorized Client�

공격자는 제어시스템서버의 재시작 또는 정지를 나타내는 패킷을 현장제어장치로 전달함으로써,

Page 6: DNP3 제어시스템

제어시스템 프로토콜 취약점 실험DNP3

20

현장제어장치를 서비스 불능 상태로 만들 수 있다 공격자는 애플리케이션 계층 를. function code

로 설정한 요청 패킷을 현장제어장치로 전송하면 현장제어장치는 제어시스템서0x0D(Cold Restart) ,

버가 재시작이나 정지 상태로 인지하고 서비스를 하지 않기 때문에 서비스 거부 공격과 같은 서비

스 방해가 가능하다.

Unauthorized Read Request to a PLC�

는 요청 근원지에 대한 인증을 제공하지 않기 때문에 비인가된 제어시스템서버는 현장제어DNP ,

장치로부터 정보를 읽기위한 시도가 가능하다 공격자는 애플리케이션 계층 를. function code

로 설정한 요청 패킷을 현장제어장치로 전송하여 현장제어장치의 정보를 얻어낼 수 있0x01(Read)

다 해당 공격을 통해 현장제어장치의 정보수집과 같은 가로채기가 가능하다. .

Unauthorized Write Request to a PLC�

비인가된 제어시스템서버는 현장제어장치의 정보를 쓰기위한 시도가 가능하다 공격자는 애플리.

케이션 계층 를function code 0x02(Cold Restart), 0x04(Operate), 0x05(Direct Operate), 0x06(Direct

Operate, No Ack), 0x09(Freeze&Clear), 0x0A(Freeze&Clear, No Ack), 0x0F(Init Data to Defaults),

로 설정한 요청 패킷을 현장제어장치로 전송하면 현장제어장치가 손상되거0x12(Stop Application)

나 악의적으로 동작할 수 있는 상태로 설정 되는 등의 시스템 무결성을 해치는 불법수정이 가능,

하고 서비스 거부 공격과 같은 서비스 방해가 가능하다, .

Unauthorized Miscellaneous Request to a PLC�

비인가된 제어시스템서버는 현장제어장치에 읽기 또는 쓰기 요청외 다른 요청을 보낸다 공격자.

는 애플리케이션 계층 를function code 0x03(Select), 0x07(Immediate Freeze), 0x08(Immediate

Freeze No Ack), 0x0B(Freeze with Time), 0x0C(Freeze with Time No Ack), 0x10(Initialize

등으로 설정한 요청 패킷을 현장제어장치로 전송하면 현장Application), 0x13(Save Configuration)

제어장치가 손상되거나 악의적으로 동작할 수 있는 상태로 설정 되는 등의 시스템 무결성을 해치,

는 불법수정이 가능하고 의 기능에 따라 서비스 거부 공격과 같은 서비스 방해 위, function code ,

조 가로채기가 가능하다, .

Stop Application�

현장제어장치상에 애플리케이션를 정지시킨다 공격자는 애플리케이션 계층 를. function code

로 설정한 요청 패킷을 현장제어장치로 전송하여 현장제어장치의 애플리케0x12(Stop Application)

이션을 정지시키는 서비스 방해가 가능하다.

Warm Restart�

공격자는 현장제어장치의 구성을 초기화하고 이벤트를 삭제할 수 있다 공격자는 애플리케이션.

계층 를 로 설정한 요청 패킷을 현장제어장치로 전송하여 현장제function code 0x0E(Warm Restart)

어장치의 감사 증거를 제거하는 등의 시스템 무결성을 해치는 불법수정이 가능하다.

Broadcast Request from an Authorized or Unauthorized Client�

공격자는 다른 현장제어장치의 네트워크에 요청 패킷을 전송해서 현장제어장치 주소Broadcast ,

Page 7: DNP3 제어시스템

보안공학연구논문지 제 권 제 호 년 월(Journal of Security Engineering), 7 1 2010 2

21

획득 및 서비스거부 공격을 할 수 있다 공격자는 데이터링크 계층 목적지 주소를.

로 설정한 요청 패킷을 현장제어장치로 전송하여 현장제어장치 주소 정보 획득0xFFFF(Broadcast)

과 같은 가로채기 및 모든 현장제어장치에 하나 이상의 요청 패킷 전송을 통한 서비스 거부와 같

은 방해가 가능하다.

Points List Scan�

정보수집 단계에서 공격자는 가용한 데이터 포인트 정보를 수집할 수 있다 애플리케이션DNP3 .

계층은 응답 패킷 헤더에 에러 복구를 위한 을 제공한다 응답 패킷에 특정IIN(Internal Indication) .

가 설정되어 있으면 악의적인 행위가 발생했을 가능성이 있다 만약 현장제어장치에 구성되IIN bit .

어 있지 않은 주소로 읽기 또는 쓰기 요청이 발생한다면 현장제어장치는 의point IIN 1(Object

또는 번째 에러 를 설정하여 응답할 것이다 해당 공격을 통해 현장Unknown) 2(Out of Range) bit .

제어장치의 포인트 정보수집과 같은 가로채기가 가능하다.

Function Code Scan�

정보수집 단계에서 공격자는 가용한 정보를 수집할 수 있다 애플리케이션 계층function code .

은 응답 패킷 헤더에 에러 복구를 위한 을 제공한다 응답 패킷에 특정IIN(Internal Indication) . IIN

가 설정되어 있으면 악의적인 행위가 발생했을 가능성이 있다 만약 현장제어장치가 지원하지bit .

않는 에 대한 요청 패킷이 왔을 경우 현장제어장치는 의 번째 에function code IIN 0(Bad Function)

러 를 설정하여 응답할 것이다 해당 공격을 통해 현장제어장치의 정보수집과 같bit . function code

은 가로채기가 가능하다.

표 에서는 상위 제어시스템 프로토콜 명세상의 취약점 분석 결과를 나타낸다[ 1] DNP3 .

표 제어시스템 프로토콜 취약점[ 1] DNP3

[Table 1] Protocol vulnerability of DNP3 control system

구분 취약점명 내용 공격 유형 공격 대상시스템

DVN-1

Disable

Unsolicited

Responses

공격자는 경보와 다른 주요 이벤트를

방해하기 위해 현장제어장치의

기능을 정지시킬unsolicited response

수 있다.

불법수정,

방해현장제어장치

DVN-2

Non-DNP3

Communication on

a DNP3 Port

제어시스템서버와 현장제어장치 사이에

확립된 연결은 어느 한쪽 장치로 다른

공격을 보내기 위해 하이재킹되거나 스

푸핑 될 수 있다.

불법수정,

방해

제어시스템서버,

현장제어장치

DVN-3Unsolicited

Response Storm

제어시스템서버 또는 제어실 운영자가

처리하기 힘들 정도의 대량의 잘못된

를 보낸다unsolicited response .

불법수정,

방해제어시스템서버

DVN-4

Cold Restart from

Authorized or

Unauthorized Client

공격자는 제어시스템서버의 재시작 또

는 정지를나타내는 패킷을 현장제어장

치로 전달함으로써 현장제어장치를 서,

방해 현장제어장치

Page 8: DNP3 제어시스템

제어시스템 프로토콜 취약점 실험DNP3

22

제어시스템 프로토콜 취약점 검증 실험3. DNP3

실험 환경3.1

제어시스템 프로토콜 취약점 존재 유무 실험을 위한 망 구성은 그림 와 같다 제어시DNP3 [ 2] .

스템을 운영하는 제어센터 등을 포함와 원거리에 있는 다수 현장제어장치(HMI, MTU, FEP ) (RTU,

등을 포함 간에는 통신 구간과 모뎀 통신 구간이 존재한다 제어센터에서 현장제어장치IED ) serial .

로 제어명령을 내리면 통신 구간과 모뎀 통신 구간을 거쳐 현장제어장치로 전달되며 그 결serial ,

과는 다시 통신 구간과 모뎀 통신 구간을 거쳐 제어센터로 전달된다 각 시스템은 다음과serial .

같은 기능을 수행한다.

는 로부터의 데이터를 수집 및 저장하고 로의 송신을 관리MTU(Master Terminal Unit) RTU RTU

하며 운영자와의 인터페이스를 통해 현장 감시 및 제어 기능을 제공한다 또한 각종 경보 사건, . ,

기록 등을 수행한다 는 운영자를 위한 콘솔로 경보 제어 화면 상. HMI(Human Machine Interface) , ,

태 화면 리포트 등을 위한 환경을 통해 데이터 표시 제어 연산 등GUI(Graphical User Interface) , ,

의 기능을 제공한다 은 와 간의 통신 중계기 역할을 수행한다. FEP(Front End Processor) MTU RTU .

은 와의 통신 연계를 전담함으로써 의 부하를 경감시켜 전체 시스템을 효율적으로FEP RTU MTU

비스 불능 상태로 만들 수 있다.

DVN-5Unauthorized Read

Request to a PLC

비인가된 제어시스템서버는 현장제어장

치로부터 정보를 읽기위한 시도가 가능

하다.

가로채기 현장제어장치

DVN-6Unauthorized Write

Request to a PLC

비인가된 제어시스템서버는 현장제어장

치의 정보를 쓰기위한 시도가 가능하

다.

불법수정,

방해현장제어장치

DVN-7

Unauthorized

Miscellaneous

Request to a PLC

비인가된 제어시스템서버는 현장제어장

치에 읽기 또는 쓰기 요청외 다른 요청

을 보낸다.

방해 위조, ,

가로채기,

불법수정

현장제어장치

DVN-8 Stop Application현장제어장치상에 애플리케이션을 정지

시킨다.방해 현장제어장치

DVN-9 Warm Restart공격자는 현장제어장치의 구성을 초기

화하고 이벤트를 삭제할 수 있다.불법수정 현장제어장치

DVN-10

Broadcast Request

from an Authorized

or Unauthorized

Client

공격자는 다른 현장제어장치의 네트워

크에 요청 패킷을 전송해서Broadcast ,

현장제어장치 주소 획득 및 서비스거부

공격을 할 수 있다.

가로채기,

불법수정,

방해

현장제어장치

DVN-11 Points List Scan

정보수집 단계에서 공격자는 가용한

데이터 포인트 정보를 수집할DNP3

수 있다.

가로채기 현장제어장치

DVN-12 Function Code Scan정보수집 단계에서 공격자는 가용한

정보를 수집할 수 있다function code .가로채기 현장제어장치

Page 9: DNP3 제어시스템

보안공학연구논문지 제 권 제 호 년 월(Journal of Security Engineering), 7 1 2010 2

23

운영 할 수 있도록 돕는다 는 원격지의 관리를 담당한다 하위 장비로부터 자료를 수집. RTU IED .

하고 각 시설의 상태 정보를 취합하여 로 데이터를 송신한다 또한 로부터 수신한 명령MTU . MTU

을 해석하여 제어 신호를 전달하고 수행 결과를 송신한다 는 현장에서 측정된 데이터를IED . IED

송신하고 제어 신호를 받는다.

그림 제어시스템 프로토콜 취약점 실험을 위한 망 구성[ 2] DNP3

[Fig. 2] Network construction for protocol vulnerability evaluation of DNP3 control system

제어시스템 프로토콜의 취약점을 이용한 공격을 위해서는 공격자가 제어센터와 현장제어DNP3

장치에 각각 접근이 가능해야 하고 프로토콜 제어시스템 스니퍼 패킷 생성 기능이 있는, DNP3 ,

패킷 시뮬레이터가 있어야 한다.

와 은 특정회사 제어시스템 제품 패키지로 운영하는 경우가 많기 때문에HMI, MTU FEP HMI,

와 간에는 제어시스템 개발사 마다 비공개 독자 제어시스템 프로토콜을 사용하며 이더MTU FEP ,

넷 통신 방식을 사용하는 경우가 많다 이러한 환경에서는 제어시스템 프로토콜 및 통신 패턴 분.

석이 어렵기 때문에 패킷 시뮬레이터 개발에 제한이 있다DNP3 .

그러나 제어망 내에 제어시스템을 운영하는 제어센터와 원거리에 있는 다수 현장제어장치 간의

통신 구간은 제어센터 제어시스템과 현장제어장치 제어시스템 제품간의 호환을 위해serial , DNP3

제어시스템 프로토콜과 같은 공개 프로토콜만을 사용하기 때문에 제어시스템 프로토콜 통신 패턴, ,

Page 10: DNP3 제어시스템

제어시스템 프로토콜 취약점 실험DNP3

24

분석 등을 통한 패킷 시뮬레이터 개발이 가능하다 그러므로 본 실험에서 패킷 시뮬DNP3 . DNP3

레이터는 과 사이 통신 구간에 설치하였다FEP Modem serial .

실험 및 결과3.2

그림 와 같이 구성한 실험 환경에서 개의 제어시스템 프로토콜 취약점에 대해서 실[ 2] 12 DNP3

험한 결과는 표 와 같다 전체 개 제어시스템 프로토콜 취약점 중에 개의 취약점이[ 2] . 12 DNP3 5

존재하였으며 취약점을 이용하여 정보 수집 서비스 거부 공격 및 제어명령 변조 공격이 가능하였, ,

다. DVN-6(Unauthorized Write Request to a PLC), DVN-7(Unauthorized Miscellaneous Request

취약점을 이용한 제어명령 변조의 경우 현장제어장치와 연결된 선택 및 의to a PLC) , point point

스위치를 에서 으로 변경 할 수 있었다 나머지 개 취약점은 통신 환경에서Close Open . 7 ethernet

발생 가능한 취약점과 현장제어장치가 기능을 지원하지 않아서 취약점을 이용한 공격이function

불가한 경우이다 보안레벨은 의 해당 침입탐지규칙에 정의된 보안 레벨로써 침입탐지규칙. SNORT ,

의 중요성을 나타낸다 보안 레벨 이 가장 중요성이 높은 침입탐지규칙이다 보안 레벨이 인 개. 1 . 1 4

의 취약점 중 개가 실험한 제어시스템에 존재하였다3 .

제어시스템 프로토콜의 보안 취약점과 보안 취약점을 이용한 공격에 대해서 분석한 결과DNP3 ,

이러한 공격에 대응하기 위해서는 기밀성 무결성 가용성 인증을 보장하는 방안이 필요하다, , , .

기밀성을 보장하기 위해서는 제어시스템서버 및 현장제어장치로부터 구성 및 다른 데이터를�

얻는 것을 방지해야 하며 비인가된 클라이언트의 불법 접근을 금지해야 한다 또한 통신의, .

기밀성 보장을 위해 암호를 사용해야 한다.

표 제어시스템 프로토콜 취약점 실험 결과[ 2] DNP3

[Table 2] Result of the protocol vulnerability evaluation of DNP3 control system

구분 실험내용 실험결과공격가능유무

보안레벨

DVN-1

애플리케이션 계층 function

를 로 설정한 요청code 0x15

패킷을 현장제어장치로 전송함

현장제어장치는 를function code

로 설정한 요청 패킷과 상관0x15

없이 발생unsolicited respose

공격불가 2

DVN-2본 취약점의 이용한 공격은

통신 환경에서 가능함Ethernet통신 환경에서는 실험 불가Serial 공격불가 2

DVN-3

애플리케이션 계층 function

를 로 설정한 대량의code 0x82

응답 패킷을 제어시스템서버로

전송함

대량의 응답 패킷이

제어시스템서버로 전달됨공격가능 2

DVN-4

애플리케이션 계층 function

를 로 설정한 요청code 0x0D

패킷을 현장제어장치로 전송함

현장제어장치는 제어시스템서버가

재시작이나 정지 상태로 인지하고

서비스를 하지 않음

공격가능 1

Page 11: DNP3 제어시스템

보안공학연구논문지 제 권 제 호 년 월(Journal of Security Engineering), 7 1 2010 2

25

무결성을 보장하기 위해서 통신 환경에서는 고정된 주소 사용 시ethernet IP ARP(Address�

테이블이 변경되지 않도록 해야 하고 동적인 주소 사용 시 동적으로Resolution Protocol) , IP

조사를 해야 한다 침입탐지시스템을 이용하여 주소가 변경되는지 네트워크 트래ARP . MAC

픽 검사를 수행함으로써 을 탐지할 수 있다 모든 네트워크MITM(man in the middle attack) .

장비에 보안을 사용함으로써 비인가된 불법 접근에 대해서 막아야 한다 또한 메시지 변Port .

조를 방지하기 위해 메시지 무결성 확인 및 암호를 사용해야 한다.

가용성을 보장하기 위해서는 비인가된 불법 접근에 대해서 막아야 하며 제어명령 또는 경보,�

에 대한 정상 유무 판단 방안을 마련해야 한다 또한 장치 및 통신 연결 또는 네트워크 경로.

의 중복을 통하여 가용성을 향상 시켜야 한다.

마지막으로 제어시스템 설계 시 제어시스템 통신 프로토콜에 강력한 인증을 구현하는 것이 필�

요하다 설계 시 인증을 고려하지 않았을 경우에는 와 같은. Secure DNP3[9], Secure ICCP[8]

프로토콜을 사용하거나 와 같은 네트워크 선로 상에 장비를 끼워 넣는 방식의 장치를, SSCP[7]

이용하여 인증을 보장할 수 있다 또한 가능하면 통신을 암호화해야 한다. .

결론4.

제어시스템은 전력 생산분배 댐 운영 가스 생산유통 수자원 관리 및 대규모 산업 플랜트설� , , � ,

비의 운영을 제어하고 관리하는 시스템이다 제어시스템관련 회사가 보유한 비공개된 제어시스템.

DVN-5

애플리케이션 계층 function

를 로 설정한 요청code 0x01

패킷을 현장제어장치로 전송함

요청을 통한Binary output Status

상태값 정보 수집point공격가능 2

DVN-6

애플리케이션 계층 function

를 로 설정한 요청code 0x04

패킷을 현장제어장치로 전송함

요청을 통한Operate

상태 변경point공격가능 1

DVN-7

애플리케이션 계층 function

를 로 설정한 요청code 0x03

패킷을 현장제어장치로 전송함

요청을 통한 제어할Select

선택point공격가능 1

DVN-8

애플리케이션 계층 function

를 로 설정한 요청code 0x12

패킷을 현장제어장치로 전송함

현장제어장치는 Stop Application

기능을 제공하지 않음공격불가 2

DVN-9

애플리케이션 계층 function

를 로 설정한 요청code 0x0E

패킷을 현장제어장치로 전송함

현장제어장치는 Warm Restart

기능을 제공하지 않음공격불가 2

DVN-1

0

본 취약점의 이용한 공격은

통신 환경에서 가능함Ethernet통신 환경에서는 실험 불가Serial 공격불가 1

DVN-1

1

현장제어장치에 구성되어 있지

않은 주소로 읽기 또는point

쓰기 요청

의 에러 미 설정IIN bit 공격불가 2

DVN-1

2

현장제어장치가 지원하지 않는

에 대한 요청function code의 에러 미 설정IIN bit 공격불가 2

Page 12: DNP3 제어시스템

제어시스템 프로토콜 취약점 실험DNP3

26

프로토콜 표준이 점차 국제 표준으로 공개됨에 따라 공개된 표준은 공격자에게 제어시스템 및 네,

트워크 동작에 대한 더 많은 지식을 제공하게 되었으며 점차적으로 제어시스템에 대한 사이버침,

해의 가능성과 위험성이 높아지고 있다 본 논문에서는 제어시스템 프로토콜 보안 취약점. DNP3

및 취약점을 이용한 공격을 분석하고 해당 취약점 존재 유무를 실험한 결과, DNP3 제어시스템 프

로토콜 보안 취약점 전체 개 중에 개 취약점이 실험한 제어시스템에 존재하는 것을 확인 하였12 5

다 개의 취약점을 이용하여 정보 수집 서비스 거부 공격 및 제어명령 변조 등의 공격이 가능하. 5 ,

였다.

이러한 제어시스템 프로토콜의 보안 취약점을 이용한 공격에 대응하기 위해서는 향후 제DNP3

어시스템 프로토콜의 기밀성 무결성 가용성 인증을 보장하는 연구가 필요하다, , , .

참고문헌

[1] INL Common Vulnerabilities Report

http://www.controlsystemsroadmap.net/pdfs/INL_Common_Vulnerabilties.pdf

[2] C. Pfleeger, S. Lawrence Pfleeger, “Security in Computing”, Prentice Hall, Upper Saddle River, New Jersey,

2007.

[3] DigitalBond, SCADA IDS signatures.

http://www.digitalbond.com/wiki/index.php/SCADA_IDS_Signatures

[4] DigitalBond, DNP3 IDS Signatures

http://www.digitalbond.com/wiki/index.php/DNP3_IDS_Signatures

[5] Snort and Sourcefire, http://www.snort.org/

[6] dnp.org, ttp://www.dnp.org/

[7] Secure SCADA Communication Protocol Performance Test Results

http://www.controlsystemsroadmap.net/pdfs/SSCP_Test_Results.pdf

[8] Secure ICCP Integration Considerations and Recommendations

http://www.controlsystemsroadmap.net/pdfs/Secure_ICCP_Integration.pdf

[9] DNP Security Development , Evaluation and Testing

http://www.controlsystemsroadmap.net/pdfs/06%20DNP%20Security%20Development.pdf

Page 13: DNP3 제어시스템

보안공학연구논문지 제 권 제 호 년 월(Journal of Security Engineering), 7 1 2010 2

27

저자 소개

저자의

요청에 의해

사진을

포함하지 않음

장문수 (Moon-su Jang)

년 월 경성대학교 컴퓨터공학과 공학사2002 2 :

년 월 포항공과대학교 정보통신학과 공학석사2004 2 :

년 월 년 월 포항공과대학교 정보통신연구소 연구원2004 3 ~2005 2 :

년 월 현재 부설연구소 연구원2005 3 ~ : ETRI

관심분야 침입탐지시스템 침입감내시스템 제어시스템 스마트그리드 보안: , , ,

저자의

요청에 의해

사진을

포함하지 않음

이건희 (Gun-hee Lee)

년 월 아주대학교 정보 및 컴퓨터공학부 공학사2001 2 :

년 월 아주대학교 정보통신공학과 공학석사2003 2 :

년 월 아주대학교 정보통신공학과 공학박사2009 2 :

년 월 현재 부설연구소 연구원2009 3 ~ : ETRI

관심분야 제어시스템 무선네트워크 보안 스마트그리드 보안: , ,

저자의

요청에 의해

사진을

포함하지 않음

김신규 (Sin-Kyu Kim)

년 월 연세대학교 기계전자공학부 공학사2000 2 :

년 월 연세대학교 컴퓨터과학과 공학석사2002 2 :

년 월 현재 부설연구소 연구원2003 12 ~ : ETRI

관심분야 제어시스템 무선랜 네트워크 보안 스마트그리드 보안: , , ,

저자의

요청에 의해

사진을

포함하지 않음

민병길 (Byung-gil Min)

년 월 충북대학교 컴퓨터공학과 공학사2002 2 :

년 월 포항공과대학교 컴퓨터공학과 공학석사2004 2 :

년 월 현재 부설연구소 연구원2004 3 ~ : ETRI

관심분야 침입탐지시스템 제어시스템 취약성 분석 스마트그리드 보안: , , ,

저자의

요청에 의해

사진을

포함하지 않음

김우년 (Woo-nyon Kim)

년 월 안동대학교 컴퓨터공학과 공학사1996 2 :

년 월 경북대학교 컴퓨터과학과 공학석사1998 2 :

년 월 경북대학교 컴퓨터과학과 공학박사2000 2 :

년 월 년 월 주 니츠 선임연구원2000 3 ~2003 12 : ( )

년 월 현재 부설연구소 선임연구원2003 12 ~ : ETRI

관심분야 침입탐지시스템 제어시스템 보안 스마트그리드 보안: , ,

Page 14: DNP3 제어시스템

제어시스템 프로토콜 취약점 실험DNP3

28

저자의

요청에 의해

사진을

포함하지 않음

서정택 (Jung-taek Seo)

년 월 국립충주대학교 컴퓨터공학과 공학사1999 2 :

년 월 아주대학교 컴퓨터공학과 공학석사2001 2 :

년 월 고려대학교 정보보호대학원 공학박사2006 2 :

년 월 현재 부설연구소 선임연구원2000 11 ~ : ETRI

관심분야 제어시스템 보안 스마트그리드 보안침입탐지 취약성 분석 정보: , , ,

보안관리 수준평가