2019.12.12

'해킹이 국가 재난 될 수 있다' 인도 핵발전소 해킹 사건의 전말

J.M. Porup | CSO
민간 기반시설 공격은 전쟁 범죄가 맞다. 그런데 세계 각국의 첩보원들은 민간 기반시설(예: 에너지를 생산하는 민간 핵발전소)에 침투해 사전 배치하기 위한 소리 없고 비열한 전쟁을 치르고 있다. 지정학적 긴장이 발생하는 동안 파괴 공작을 저지르기 위해서다.
 
ⓒGetty Images Bank

다음은 인도의 쿠당쿨람 핵발전소(Kudankulam Nuclear Power Plant, KNPP) 해킹 사건이 어떻게 발생했으며 어떻게 쉽게 예방할 수도 있었는지에 대한 설명이다.

KNPP 해킹 사건
소식이 알려진 것은 요즘에는 흔히 그렇듯 트위터를 통해서였다. 뉴 인디언 익스프레스(The New Indian Express)에 따르면, ‘저명한 사이버 첩보 전문가’이자 ‘인도 국립기술연구조직(NTRO)의 사이버전 작전 센터 수립에 중요한 역할’을 한 푸크라 싱은 본인의 트위터 계정에 다음과 같은 글을 올렸다. “자, 이제 공개된 사실이다. KNPP에 도메인 컨트롤러 수준 접근 발생. 정부는 이미 오래전에 이 사실을 통보받았다. 임무 수행에 지극히 중요한 목표물이 공격받았다.” 그는 인용 트윗에서 이 공격에 대해 2019년 9월 7일부터 이미 알고 있었다면서 ‘전쟁 명분(causus belli)’(전쟁을 도발할 정도로 심각한 공격)이라고 규정했다.

싱은 그 이후 트윗에서 본인이 직접 악성코드를 발견한 것은 아니라고 밝혔다. 제3자가 “본인에게 연락을 취했고 나는 9월 4일(날짜가 중요)에 국가사이버보안담당자(NCSC)에게 통보했다. 제3자는 그 후 침해지표(IoC)들을 NCSC 사무실과 공유했다. 카스퍼스키는 이를 나중에 보고했고 디트랙(DTrack)이라고 불렀다.”

인도 핵발전소공사는 처음에 이 사실을 부인했다. 보도자료를 통해, SNS에 나돌고 있는 ‘잘못된 정보’라고 매도했으며 KNPP 핵발전소는 “독자적인 네트워크로, 외부 사이버 네트워크와 인터넷에 연결되어 있지 않아 핵발전소 제어 시스템에 대한 사이버 공격은 불가능하다”라고 주장했다. 

그러나 나중에 이 주장을 철회했다. 10월 30일, NPCI가 확인한 바에 따르면 시스템에 악성코드가 발견된 것은 사실이며 인도 컴퓨터 비상 대응 팀(CERT)이 2019년 9월 4일에 공격을 처음 발견했다는 것이다. 성명서를 통해, 감염된 PC가 연결되어 있던 관리 네트워크는 “중요한 내부 네트워크와는 분리”되어 있다고 주장했다.

이 성명서는 “조사 결과 발전소 시스템은 영향을 받지 않은 것으로 확인된다”라고 결론지었다.

표적 공격
사이버비트(CyberBit) 연구진에 따르면, 최초의 일부 보도와 달리 악성코드는 KNPP 시설을 구체적인 표적으로 삼았던 것으로 보인다. 악성코드 샘플을 역분석해 본 결과, KNPP 네트워크에 대한 내장된 관리자 인증 정보(사용자명: user:KKNPP\\administrator 암호: su.controller5kk)가 드러났을 뿐만 아니라, 당연히 인터넷 라우팅이 불가능한 RFC 1918 IP 주소도 드러났다.

즉, 공격자가 예전에 이미 KNPP 네트워크에 침투하여 NAT 대상 장비를 검색한 후 관리자 인증정보를 훔쳐낸 다음, 그 세부정보를 이번 새로운 악성코드에 적용했을 가능성이 매우 높다. 이번 악성코드는 KNPP 네트워크를 예전보다 깊고 철저하게 정찰하기 위한 2단계 페이로드(payload)이다.

사이버비트 소속 악성코드 분석가 호드 가브리엘은 <CSO>와의 인터뷰에서 “이 발전소만을 대상으로 한 고도의 표적 공격”이라고 전제하고 “아마도 이번이 공격 2단계였을 것”이라고 덧붙였다.

그런데, 발견된 악성코드에는 KNPP 시스템을 파괴하기 위한 스턱스넷(Stuxnet) 같은 기능이 포함되지 않았다. “이 단계는 정보 수집만을 위한 것이고 사보타지웨어(sabotageware)는 아니었다”라고 가브리엘은 설명했다.

북한의 소행이었나?
바이러스토탈(VirusTotal)에서 문제의 악성코드를 다운로드하여 분석해 본 많은 보안 연구자들은 예전에 북한의 라자루스(Lazarus) 그룹의 것으로 지목되었던 악성코드와 코드가 유사하다고 지적했다. 카스퍼스키 소속 한 분석가는 유사성이 2013년으로 거슬러 올라간다고 보고 다음과 같은 글을 적었다. “우리가 찾아낸 막대한 양의 디트랙 샘플을 보면 악성코드 개발에 관한 한 라자루스 그룹이 가장 활발한 APT 그룹에 속한다는 것을 알 수 있다.”

그러나 북한은 인도에 지정학적 관심이 거의 없다는 점을 감안하면, 누군가 일부러 북한의 소행인 것처럼 보이게 하기 위해 훔친 북한 코드를 사용했을 가능성이 꽤 높아 보인다.

악성코드 분석
문제의 악성코드는 7Zip 또는 NVC와 같은 합법 프로그램의 수정된 복사본 내부에 숨어 있었다. 이 기법을 사용하면 바이러스 검사기를 무사히 빠져나갈 때가 많다. 프로그램 서명을 제대로 확인했더라면 이 공격 벡터를 완화할 수 있었을 것이다. 수정된 프로그램 해시(hash)는 소프트웨어 업체의 서명 해시와 달랐을 것이다. 이 공격이 성공했다는 사실은 KNPP가 파일 해시의 소프트웨어 서명을 확인하지 않고 있었음을 강력히 시사한다.

이런 종류의 공격을 수동적으로 탐지하는 것은 매우 어렵다고 가브리엘은 밝혔다. 가브리엘은 “이런 종류의 고도의 표적 악성코드를 효과적으로 탐지하면 거짓 양성 반응이 발생할 가능성이 높으며 이를 가려내려면 숙련된 분석가들이 필요하다. 중요 표적 기반시설 보안 팀들은 네트워크에 수상한 활동이 없는지 지속해서 감시하여 위협을 찾아내고 조기에 근절하여 피해를 예방해야 한다”라고 전했다. ciokr@idg.co.kr
 


2019.12.12

'해킹이 국가 재난 될 수 있다' 인도 핵발전소 해킹 사건의 전말

J.M. Porup | CSO
민간 기반시설 공격은 전쟁 범죄가 맞다. 그런데 세계 각국의 첩보원들은 민간 기반시설(예: 에너지를 생산하는 민간 핵발전소)에 침투해 사전 배치하기 위한 소리 없고 비열한 전쟁을 치르고 있다. 지정학적 긴장이 발생하는 동안 파괴 공작을 저지르기 위해서다.
 
ⓒGetty Images Bank

다음은 인도의 쿠당쿨람 핵발전소(Kudankulam Nuclear Power Plant, KNPP) 해킹 사건이 어떻게 발생했으며 어떻게 쉽게 예방할 수도 있었는지에 대한 설명이다.

KNPP 해킹 사건
소식이 알려진 것은 요즘에는 흔히 그렇듯 트위터를 통해서였다. 뉴 인디언 익스프레스(The New Indian Express)에 따르면, ‘저명한 사이버 첩보 전문가’이자 ‘인도 국립기술연구조직(NTRO)의 사이버전 작전 센터 수립에 중요한 역할’을 한 푸크라 싱은 본인의 트위터 계정에 다음과 같은 글을 올렸다. “자, 이제 공개된 사실이다. KNPP에 도메인 컨트롤러 수준 접근 발생. 정부는 이미 오래전에 이 사실을 통보받았다. 임무 수행에 지극히 중요한 목표물이 공격받았다.” 그는 인용 트윗에서 이 공격에 대해 2019년 9월 7일부터 이미 알고 있었다면서 ‘전쟁 명분(causus belli)’(전쟁을 도발할 정도로 심각한 공격)이라고 규정했다.

싱은 그 이후 트윗에서 본인이 직접 악성코드를 발견한 것은 아니라고 밝혔다. 제3자가 “본인에게 연락을 취했고 나는 9월 4일(날짜가 중요)에 국가사이버보안담당자(NCSC)에게 통보했다. 제3자는 그 후 침해지표(IoC)들을 NCSC 사무실과 공유했다. 카스퍼스키는 이를 나중에 보고했고 디트랙(DTrack)이라고 불렀다.”

인도 핵발전소공사는 처음에 이 사실을 부인했다. 보도자료를 통해, SNS에 나돌고 있는 ‘잘못된 정보’라고 매도했으며 KNPP 핵발전소는 “독자적인 네트워크로, 외부 사이버 네트워크와 인터넷에 연결되어 있지 않아 핵발전소 제어 시스템에 대한 사이버 공격은 불가능하다”라고 주장했다. 

그러나 나중에 이 주장을 철회했다. 10월 30일, NPCI가 확인한 바에 따르면 시스템에 악성코드가 발견된 것은 사실이며 인도 컴퓨터 비상 대응 팀(CERT)이 2019년 9월 4일에 공격을 처음 발견했다는 것이다. 성명서를 통해, 감염된 PC가 연결되어 있던 관리 네트워크는 “중요한 내부 네트워크와는 분리”되어 있다고 주장했다.

이 성명서는 “조사 결과 발전소 시스템은 영향을 받지 않은 것으로 확인된다”라고 결론지었다.

표적 공격
사이버비트(CyberBit) 연구진에 따르면, 최초의 일부 보도와 달리 악성코드는 KNPP 시설을 구체적인 표적으로 삼았던 것으로 보인다. 악성코드 샘플을 역분석해 본 결과, KNPP 네트워크에 대한 내장된 관리자 인증 정보(사용자명: user:KKNPP\\administrator 암호: su.controller5kk)가 드러났을 뿐만 아니라, 당연히 인터넷 라우팅이 불가능한 RFC 1918 IP 주소도 드러났다.

즉, 공격자가 예전에 이미 KNPP 네트워크에 침투하여 NAT 대상 장비를 검색한 후 관리자 인증정보를 훔쳐낸 다음, 그 세부정보를 이번 새로운 악성코드에 적용했을 가능성이 매우 높다. 이번 악성코드는 KNPP 네트워크를 예전보다 깊고 철저하게 정찰하기 위한 2단계 페이로드(payload)이다.

사이버비트 소속 악성코드 분석가 호드 가브리엘은 <CSO>와의 인터뷰에서 “이 발전소만을 대상으로 한 고도의 표적 공격”이라고 전제하고 “아마도 이번이 공격 2단계였을 것”이라고 덧붙였다.

그런데, 발견된 악성코드에는 KNPP 시스템을 파괴하기 위한 스턱스넷(Stuxnet) 같은 기능이 포함되지 않았다. “이 단계는 정보 수집만을 위한 것이고 사보타지웨어(sabotageware)는 아니었다”라고 가브리엘은 설명했다.

북한의 소행이었나?
바이러스토탈(VirusTotal)에서 문제의 악성코드를 다운로드하여 분석해 본 많은 보안 연구자들은 예전에 북한의 라자루스(Lazarus) 그룹의 것으로 지목되었던 악성코드와 코드가 유사하다고 지적했다. 카스퍼스키 소속 한 분석가는 유사성이 2013년으로 거슬러 올라간다고 보고 다음과 같은 글을 적었다. “우리가 찾아낸 막대한 양의 디트랙 샘플을 보면 악성코드 개발에 관한 한 라자루스 그룹이 가장 활발한 APT 그룹에 속한다는 것을 알 수 있다.”

그러나 북한은 인도에 지정학적 관심이 거의 없다는 점을 감안하면, 누군가 일부러 북한의 소행인 것처럼 보이게 하기 위해 훔친 북한 코드를 사용했을 가능성이 꽤 높아 보인다.

악성코드 분석
문제의 악성코드는 7Zip 또는 NVC와 같은 합법 프로그램의 수정된 복사본 내부에 숨어 있었다. 이 기법을 사용하면 바이러스 검사기를 무사히 빠져나갈 때가 많다. 프로그램 서명을 제대로 확인했더라면 이 공격 벡터를 완화할 수 있었을 것이다. 수정된 프로그램 해시(hash)는 소프트웨어 업체의 서명 해시와 달랐을 것이다. 이 공격이 성공했다는 사실은 KNPP가 파일 해시의 소프트웨어 서명을 확인하지 않고 있었음을 강력히 시사한다.

이런 종류의 공격을 수동적으로 탐지하는 것은 매우 어렵다고 가브리엘은 밝혔다. 가브리엘은 “이런 종류의 고도의 표적 악성코드를 효과적으로 탐지하면 거짓 양성 반응이 발생할 가능성이 높으며 이를 가려내려면 숙련된 분석가들이 필요하다. 중요 표적 기반시설 보안 팀들은 네트워크에 수상한 활동이 없는지 지속해서 감시하여 위협을 찾아내고 조기에 근절하여 피해를 예방해야 한다”라고 전했다. ciokr@idg.co.kr
 


X