보안정보

전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.

알아보잡 Series 4) OT(Operational Technology)와 악성코드 : Part1. Industroyer

2020.12.07

41,001


 

 

 

 

01. 개요

 

2019년 3월 19일, 노르웨이의 대형 알루미늄 생산기업 노르스크하이드로(Norsk Hydro)의 서버 500대와 PC 2,700대의 동작이 멈췄다. 록커고가(LockerGoga) 랜섬웨어가 동작한 것이다. 이 사건으로 노르스크 하이드로는 약 4,000만 달러의 피해를 입었고 전 세계 알루미늄값이 1.2% 상승하였다. 이 거대하고 위험한 공격은 직원이 받은 악성 이메일로부터 시작되었다. 공격자는 공장을 마비시키기 위해 신뢰할 수 있는 사용자로 위장한 이메일을 은밀히 준비했다. 

 

OT 환경의 발전에 따라 공격자들도 기존 IT인프라를 넘어 OT 영역까지 공격 범위를 넓혀가고 있는 추세이다. 이로 인해 OT 보안의 중요성이 높아지고 있으나 OT영역에는 ▲IT 환경과 전혀 다른 형태로 인해 관련 보안인력 부족 ▲오래된 자산이 많아 관리 상태 미흡 ▲장비마다 다양한 프로토콜 사용 ▲자산 별 생소한 개발 언어 등의 IT와 다른 다양한 근본적 어려움이 존재한다. 그러나 OT 환경은 빠르게 발달하고 있으며 과거와 달리 점점 IT와 통합되고 있는 영역이 증가함에 따라 새로운 보안 위협의 발생 가능성도 함께 증가하고 있다. 

 

OT 환경을 대상으로 발생하는 공격은 특정 대상(프로토콜, 제품 등)을 표적으로 하거나 제한적 환경에서의 동작을 목적으로 만들어진 악성코드 등이 사용된다는 특징이 많이 보인다. OT 환경의 특성상 보안 제품을 사용하는 데 있어 IT 환경에서 보다 많은 제약이 발생하며 이로 인해 시스템이 파괴되거나 기능에 문제가 생기지 않는 이상 위협을 탐지하기가 쉽지 않다. 

 

이번 알아보잡 시리즈에서는 OT 보안에서의 악성코드에 대해 이야기해보고자 한다. 악성코드를 이용하여 공격을 진행했던 과거의 몇 가지의 사례와 해당 공격에서 악성코드가 어떻게 사용되었는지를 살펴볼 예정이다. 

 

02. IT(Information Technology)와 OT(Operational Technology)

 

1) IT(Information Technology) 와 OT(Operational Technology)의 사전적 정의

 

IT(정보기술)란 전기통신, 방송, 정보처리, 컴퓨터 네트워크, 컴퓨터 하드웨어, 컴퓨터 소프트웨어, 멀티미디어, 통신망 등 사회 기반을 형성하는 유/무형의 기술 분야를 의미한다. OT란 산업 장비, 자산, 프로세스 및 이벤트를 직접 모니터링 및 제어하면서 변경을 감지하거나 유발하는 하드웨어 및 소프트웨어를 의미한다. OT에는 일반적으로 ICS(Industrial Control System), SCADA(Supervisory Control and Data Acquisition), DCS(Distributed Control System), PLC(Programmable Logic Controller) 등의 개념이 포함된다.

 

2) 악성코드 분석가의 시선으로 보는 IT와 OT의 차이

 

IT와 OT영역은 다음과 같은 차이점을 가진다. 악성코드 분석가의 입장에서는 Key Hardware Components와 Protocols 항목을 눈여겨 볼 필요가 있다. 두 영역에서 사용하는 대상이 전혀 다른것을 볼 수 있다. 이는 두 영역에서 사용된 악성코드를 분석 시 필요로 하는 기반지식이 전혀 다름을 의미한다. 따라서 한명의 IT 악성코드 분석가가 OT 악성코드를 분석하기엔 기반 지식을 습득하는 시간도, 분석에 소요되는 시간도 늘어날것으로 보여진다. 그러나 안타깝게도 공격자들이 IT + OT 형태의 악성코드를 이용하여 공격을 진행하는 빈도가 증가하고 있다.

 


[표 1] OT/IT 보안의 차이(일부) / 이글루시큐리티 재구성

 

03. 공격사례

 

OT 환경을 타깃으로 하는 공격은 날로 진화하고 있고 그 빈도도 증가하고 있다. 지난 10년간 발생한 OT 타깃형 공격 중 공격 벡터로 ‘악성코드’가 사용된 사례를 정리하였다. 이번 호에서는 2016년 우크라이나의 전력망을 공격했던 인더스트로이어(Industroyer)에 대해 알아보고자 한다. 다음 호에서는 사우디 아라비아의 석유 화학 공장을 공격했던 트리톤(TRITON) 악성코드에 대해 알아볼 예정이다. 

 

 

[표 2] 악성코드를 이용한 공격사례

 

04. 인더스트로이어(Industroyer)


 

 

해당 악성코드는 전력망 공격을 위해 작성된 악성코드이며 모듈식으로 구성되어 있다. 이 공격으로 1시간 동안 정전이 발생하였다. 전체 악성코드 중 다음의 파일 4종에 대한 분석을 진행하였다. 

 


[표 3]공격에 사용된 샘플

 

Industroyer는 총 4가지의 산업제어 프로토콜을 대상으로 공격을 진행한다. 4개의 공격 대상 중 IEC 60870-5-104(IEC 104) 모듈에 대한 악성코드 분석하였다. 

 



[그림 1] 인더스트로이어 전체 개요(출처 : ESET, WIN32/INDUSTROYER)

 

1) MainBackdoor.exe(1.1e)

 

악성코드 전체 행위를 위한 가장 핵심이 되는 파일이다. MainBackdoor.exe 파일은 1.1e 버전과 1.1s 버전이 있다. 1.1e 버전의 경우 코드 난독화가 되어있지 않으나 1.1s 버전은 코드가 난독화 되어있다. MainBackdoor.exe 파일은 버전에 따라 C&C로 사용되는 IP 주소가 다르고 현재 실행되고 있는 MainBackdoor.exe의 버전, C&C IP 주소는 파일 내부에 문자열로 저장되어있다. 

 


[표 4] 메인 백도어 버전별 C&C IP

 


[그림 2] 메인 백도어 버전(일부)

 

파일 내부에 문자열로 저장되어있는 ID를 이용하여 감염된 시스템을 식별한다. MainBackdoor.exe 뿐만 아니라 Industroyer 공격에 사용된 다양한 악성코드 파일마다 ID가 존재하며 값은 다음과 같다.

 


[표 5] ID 값

 


[그림 3] 파일 내부에 존재하는 ID(일부)

 

메인 백도어가 동작 중인 하드웨어의 프로필에 대한 GUID를 수집한다. 

 

 

[그림 4] GUID 수집

 

메인 백도어의 명령어 코드와 각각의 명령어 코드에 대한 기능은 다음과 같다. 

 


[그림 5] 명령어 코드

 


[표 6] 명령어 코드 기능

 

2) Luncher.exe

 

서비스와 스레드를 생성하며 서비스 명은 defragsvc 이다. 

 


[그림 6] 서비스 생성

 

 

[그림 7] 스레드 생성

 

생성된 스레드 내부에서는 Haslo.dat에서 Crash 함수를  Export 한다.

 

 

[그림 8] Crash 함수 Export


 

3) Crash104.dll

 

Crash104.dll에는 실제 공격의 대상이 되는 모듈과 관련되어 있는 내용들로 구성되어 있다. IEC 104(IEC-60870-5-104)의 프로토콜은 TCP/IP로 전송이 가능하다. 

 


[그림 9] 통신을 위한 패킷구성(일부)

 

IOA의 특정 형식인 sequence, range, shift 모드를 제공한다. 

 


[그림 10] 제어 모드 (출처 : ESET, Win2/Industroyer)

 

 

[표 7] 제어 모드 별 특징

 

 

IEC104프로토콜을 제어하는 세 가지 데이터 형식에 대한부분도 확인되었다. 

I-Format : 가변 길이가 존재하는 프레임

S-Format : 고정 길이가 있는 프레임

U-Format : 고정된 길이의 프레임

 

 

[그림 11] IEC 104 포로토콜 제어 포맷

 

4) Haslo.dat

 

확장자는 dat이지만 실제로는 DLL 파일이다. 해당 파일은 Services 레지스트리를 검색하여 서비스의 모든 하위 키의 ImagePath를 0으로 변경한다

- 레지스트리 경로 : HKLMSYSTEMCurrentControlSetServices 

 


[그림 12] 레지스트리 ImagePath 변경

 

C~Z까지 드라이브를 확인한다. 이는 해당 드라이브에 있는 모든 파일을 사용할 수 없게 만들기 위한 사전 작업이며 Windows 폴더 내부에 존재하는 다음의 파일은 임의의 데이터로 덮어 쓰기 하는 대상에서 제외된다. 

 


[표 8] 제외되는 파일명(Windows 폴더 내부)

 


[그림 13] 확인하는 드라이브

 

- *.v : 하드웨어 설명 언어(HDL)로 작성된 소스코드 파일

- *.SCL/*.cid/*scd : Substation Configuration Language(변전소 구성 언어) 

 


[표 9] 임의의 데이터로 덮어 쓰기 대상이 되는 확장자

 

다음의 확장자를 가진 파일이 존재하면 임의의 데이터로 덮어쓰기 한다. 이때 각각의 파일의 용량을 확인하며 용량에 따라 덮어쓰는 영역의 크기도 달라진다. 이때 사용할 수 없게 되는 파일들 중에는 변전소 구성 언어에 관한 파일들도 포함되어 있다. 해당 파일들을 사용할 수 없게 되면 전체 시스템에 치명적인 문제가 생길 수 있다.

 


[그림 14] 데이터 덮어 쓰기 대상이 되는 확장자

 


 

05. MITRE ATT&CK

 

1) MITRE ATT&CK for ICS

 

악성코드의 TTPs(Tactics, Techniques, and Procedures)는 보통 IT 환경에서 동작하는 악성코드를 기준으로 이야기한다. Cyber Kill Chain 을 시작으로 현재는 MITRE ATT&CK Enterprise 가 보편적으로 사용되고 있다. 

 

그러나 올해 초 MITER ATT&CK에서 MITER ATT&CK for ICS 를 공개했다. MITER ATT&CK for ICS는 산업제어 시스템에 영향을 미치는 악성코드, 공격 그룹들에 대한 정보를 세분화 하여 분류하고 있으며 MITRE ATT&CK for Enterprise로는 표현할 수 없었던 OT환경에서의 위협에 대해 TTPs를 설정할 수 있다. 아래의 표는 MITRE ATT&CK for ICS로 표현한 Industroyer의 공격 벡터이다. 

 


[표 10] MITRE ATT&CK for ICS - Industroyer


06. 마치며

 

▶ ‘OR’이 아닌 ‘AND’로 생각해야 할 때

 

IT 영역과 OT 영역은 확연하게 다른 차이점을 보인다. 각각의 영역에서 서비스를 제공하는 대상이 다르기 때문이다. 그러나 기술이 발전함에 따라 두 영역이 겹치는 부분이 점차 많아지고 있다. 때문에 각 영역의 특성을 고려한 보안이 필요한 시대가 왔다. IT 영역 ‘혹은’ OT 영역의 보안이 아닌 IT 영역’과’ OT 영역이 함께 이루어져야 한다는 의미이다. 

 

이번에 다루었던 Industroyer 샘플을 보면서 공격자는 생각했던 것보다 해당 시스템에 대한 이해가 풍부한 사람이라는 생각이 들었다. 공격자는 공격 대상의 IT 영역과 OT 영역을 모두 이해하고 공격을 진행한 듯하였다. 이렇게 두 영역에 대한 이해도가 높은 공격자(혹은 그룹)을 상대하기 위해선 각각의 영역 보안 담당자들은 서로의 영역에 대해 더 관심을 가지고 어느 하나 소홀할 것 없이 모두 보안이 필요하다는 경각심을 가져야 할 것이다. 사이버 세상에서 더 이상 안전한 영역은 없다.

 

07. 참고자료

 

[1] http://blog.nsfocus.net/win32-industroyer-technical-analysis/?utm_source=tuicool&utm_

medium=referral 

[2] https://www.dragos.com/wp-content/uploads/CrashOverride-01.pdf 

[3]https://cdn1.esetstatic.com/ESET/INT/Landing/2017/black-hat/WIN32_Industroyer-USLetter-WEB.pdf 

[4]https://www.slideshare.net/codeblue_jp/industroyer-biggest-threat-to-industrial-control-systems-since-stuxnet-by-anton-cherepanon-rbert-lipovsk

[5] https://www.cyberbit.com/blog/ot-security/industroyer-crashoverride-ot-malware/

[6] https://collaborate.mitre.org/attackics/index.php/Software/S0001

[7] http://www.mayor.de/lian98/doc.en/html/u_iec104_struct.htm

[8] https://us-cert.cisa.gov/ncas/alerts/TA17-163A

 

08. IOC


1) HASH

 

 

2) C&C

 

 

3) File Name


 

※ 12월 월간보안동향 에서 계속됩니다.