북 해커 조직 APT43, 드롭박스 악용한 은밀한 공격 감행
북한 해커조직 APT43 그룹이 다단계 공격 체인을 활용해 시그니처 기반 Anti-Virus 탐지 기술 회피에 집중한 것으로 드러났다. 드롭박스(DropBox) 클라우드 저장소를 공격 거점으로 활용했으며, 위협 모니터링 범위에서 탈피하기 위한 전술 노력도 시도한 정황이 포착됐다. 특히 ‘바로가기(LNK)’ 타입의 공격이 지속돼 각별한 주의가 요구된다.
▲APT43 그룹의 DropBox 기반 BabyShark 공격 흐름도[이미지=지니언스]
지니언스 시큐리티 센터(이하 GSC) 측은 “지난해 말 한국내 통일분야 정책 간담회 및 강연, 사례비 지급서식 문서로 위장된 HTML 유형의 공격이 다수 포착됐다”며 “이는 전형적 스피어 피싱 기반의 APT 공격으로 실제 정부기관이 사용 중인 보안메일 내역처럼 위장한 게 특징”이라고 밝혔다.
공격 시나리오
당시 위협 행위자는 보안메일로 위장된 HTML 코드 속에 압축 파일을 삽입했다. 그 다음 압축 내부에 미끼용 정상 문서와 함께 ‘바로가기(LNK)’ 유형의 악성코드를 넣어 전달하는 전략을 구사했다. 해당 APT 공격 캠페인 중 명령제어(C2) 서버로 쓰인 ‘meatalk[.]com’, ‘kyungdaek[.]com’ 도메인에서 ‘r_enc.bin’ 이름의 ‘TutorialRAT(TutRAT)’ 유포가 관찰된 바 있다.
▲정부기관 보안메일로 위장된 HTML 실행 화면[이미지=지니언스]
이러한 사례 이후 공격 대상에 따라 전술이 일부 변경됐다. 비트코인과 같은 가상자산이나 대북 및 안보분야 종사자 겨냥 시 클라우드 저장소의 유효 URL 링크 주소를 통해 악성 압축 파일을 다운로드하도록 유도했다.
이러한 초기침투는 일반적 스피어피싱 수법이 쓰이지만, 악성 명령이 작동하는 과정과 위협 인프라는 탐지 회피를 위해 지속적으로 변화될 수 있다. GSC 조사에 따르면 2024년 1분기까지 이와 유사한 공격 패턴은 지속적으로 발견됐고, APT43 그룹의 ‘BabyShark’ 케이스와 동일한 문자열인 ‘뮤텍스(Mutex)’ 값이 식별됐다.
▲실제 스피어 피싱 공격 화면[이미지=지니언스]
이번 공격은 마치 주중 한국대사관에서 발송된 메일처럼 위장했다. 실제 이 내용은 한국의 안보분야 특정 전문가에게 수신됐고, 공격은 주중대사관 정책간담회 비공개 회의 참석요청 건처럼 현혹해 접근했다.
공격 초기에는 정책간담회 및 회의 참석 안내를 소개하고, 나름대로 신뢰도를 높여갔다. 그렇게 수차례 메일을 주고받다가 간담회 계획안 문서를 전달했다. 이때, 중국 인터넷 감시 시스템인 ‘만리장성 방화벽(Great FireWall of china, 防火长城)’ 때문에 메일이 발송되지 않는다며 구글 드라이브 링크로 보내겠다고 설명했다.
그렇게 구글 드라이브 링크를 통해 ‘202404주중대사관 정책간담회.rar’ 파일이 전달됐다. 압축파일 내부에는 악성 파일이 포함돼 있다. 공격자는 중국 북경에서 진행되는 회의처럼 소개하며, 출국 일정 조율과정에서 한국에서 생소한 ‘인차’라는 표현을 사용했다. 하지만 ‘인차’라는 단어는 ‘이내’라는 의미의 북한어다.
▲원드라이브 링크로 전달된 공격 사례[이미지=지니언스]
이는 공격자가 신분을 위장하고 수신자와 수차례 메일을 주고 받으며, 자신도 모르게 평소 사용하던 언어적 습관을 실수로 노출한 것으로 OPSEC Fail 흔적에서 중요한 단서다. 이와 유사한 공격은 최근 다양한 형태로 발견되고 있으며, 마이크로소프트(MS)사의 OneDrive 링크를 활용하는 등 합법적인 클라우드 링크를 통한 유사 공격이 이어지고 있다.
악성 파일 분석
실제 APT 공격에 쓰인 악성 파일은 다양한 형태의 변종들이 제작돼 국내에 유포되고 있다. 최근 국내 사례에서 식별된 두개의 파일은 RAR 압축 형태인데, △202404주중대사관 정책간담회.rar △국회입법조사처 정책간담회.rar 등이다. 모두 암호가 설정된 압축 파일이기 때문에 공격 초기에 Anti-Virus 시그니처 탐지율은 0%에 가깝다.
RAR 압축 내부에는 정상 한컴문서(.hwp) 파일과 이중 확장자로 위장된 바로가기(.hwp.lnk) 유형의 악성 파일이 함께 포함돼 있다. 공통적으로 정상 문서와 악성 파일을 함께 포함한 현혹 전략에 가깝다. 두 케이스 모두 거의 같은 시기에 동일하게 진행된 실제 공격이다.
‘202404_주중한국대사관 한중 북중·안보현안 1.5트랙 비공개 정책간담회 대면회의 계획(안).hwp.lnk’ 파일을 살펴보면 여러 LNK 바로가기 기반 공격과 마찬가지로 의심을 피하기 위해 정상 HWP 문서를 포함했다. 폴더옵션 디폴트 조건인 확장자 숨기기가 설정된 경우 아이콘 화살표로 어느 정도 구분이 가능하다. 파일명을 길게 만들거나 다수의 공백을 넣어 화면상 확장자가 생략되도록 조작했다.
이럴 경우 이용자는 아이콘 좌측 하단에 화살표 기호가 존재할 경우 육안상 LNK 파일이라는 것과 압축 파일 내 포함 조건이 부합될 경우 위험도를 높게 지정할 수 있다.
실제 공격에 쓰인 ‘202404_주중한국대사관 한중 북중·안보현안 1.5트랙 비공개 정책간담회 대면회의 계획(안).hwp.lnk’은 파일 속성 정보를 통해 내부에 삽입된 cmd.exe 명령을 확인할 수 있다. 다만, 전체 명령은 별도의 분석을 통해 파악해야 한다.
내부에 삽입된 명령은 PowerShell 호출을 통해 진행된다. LNK 파일 전체 크기 ‘0x0010F27C’(1,110,652 바이트)를 확인하고, 정상 HWP 문서가 시작되는 ‘1,057,248’ 오프셋부터 끝나는 ‘1,110,496’ 오프셋 위치까지 확인한 후 파일을 교체하고 실행한다. 이는 악성파일이 실행되는 순간 악성 기능은 계속 수행되면서 이용자를 속이기 위해 정상파일로 바꿔치기한 것이다.
그 다음 PowerShell 명령은 하드코딩된 드롭박스(DropBox)의 clientID, clientSecret, refreshToken 값을 통해 Access Token 키를 획득하고 API 통신을 수행한다. 해당 저장소 소유자의 ‘step5/ps.bin’ 경로로 접근해 파일을 요청하고, AESDecrypt 함수 루틴과 ‘pa55w0rd’ 비밀번호를 결합해 복호화한다.
이는 공격자가 드롭박스 클라우드 서버에 ‘step1’부터 ‘step8’까지 만들어 악성코드를 넣어놓은 후 공격 활용에 편리하게 세팅해 놓은 것이란 얘기다.
더불어 LNK 파일 실행 후에 보여지는 정상 HWP 문서에는 [비공개]라는 표기와 함께 ‘한중 북중·안보현안 비공개 정책간담회 계획(안)’ 제목으로 위장하고 있다.
본문에는 개최 목적과 세부 계획이 담겨 있는데, 4월19일(금) 오전 9시 30분부터 오후 4시 20분까지 한중 동시통역 제공으로 주중한국대사관에서 주최한다는 내용이 기재돼 있다. 그리고 문서 정보 요약 부분에 ‘SoftPower’ 계정이 지은이로 기록돼 있다.
특히 첫 번째 단계에서 호출하는 ‘ps.bin’ 파일의 주석 처리된 코드에는 ‘clientx64.bin’이라는 기록이 있다. 이 파일은 태국[TH] 소재 아이피 ‘122.155.191[.]33’ 주소에서 ‘XenoRAT’ 악성파일이 사용된 이력이 있다.
‘XenoRAT’와 관련해 GSC는 지난 2월 21일 ‘새해 오피니언 언론 칼럼 위장 해킹 분석’ 리포트에서 소개된 바 있으며, 이번 공격 사례와 동일한 배후의 소행으로 분류돼 있다.
‘r_enc.bin’ 이름의 ‘TutRAT’ 파일은 태국 소재 C&C 서버에서도 동시에 발견됐고, ‘user.bin’ 파일은 ‘clientx64.bin’ 파일과 동일한 ‘XenoRAT’ 파일로 분석됐다. 모두 Gz 압축 포맷이며, C&C 내용은 ‘크리미널 IP’ 조회 결과로도 과거 내역 확인이 가능하다.
PowerShell 명령으로 AESDecrypt 함수를 통해 복호화 후 실행된다. 그리고 DropBox Token 값을 통해 저장소 동일 경로에 존재하는 ‘r_enc.bin’ 파일을 읽어온다. 참고로 공격 명령 내부에 한글로 된 주석처리가 다수 발견됐다.
호출된 ‘r_enc.bin’ 파일은 GzExtract 함수를 통해 압축이 해제되고, 내부에는 TutorialRAT 악성 파일이 포함돼 있다.
BASE64 인코딩 값을 파라미터로 사용하며, 압축 해제 후 ‘r_enc.bin’ 파일을 실행한다. 특정 문자열 호출을 통해 디코딩된 값은 ‘version103.vbs’ 파일로 특정 경로에 생성 후 실행되며,이 명령은 ‘r_enc.bin’ 파일과 연동해 작동된다.
‘version103.vbs’ 스크립트는 DropBox API 토큰을 실행하고, ‘step5’ 하위 경로에서 ‘info_sc.txt’ 파일을 호출해 실행한다.
‘info_sc.txt’ 파일은 원래 DropBox 토큰을 사용해 ‘regard.co[.]kr’ 도메인에서 미끼용 정상 문서 ‘5.hwp’ 파일을 다운로드 해 임시폴더 경로에 저장한다. 이때 사용하는 파일명은 ‘세종연구소_제30기_세종국가전략연수과정_강의의뢰서_***원장님.hwp’이다. 하지만 공격 코드에서는 주석처리되어 작동하지 않고 스킵됐다.
이중 ‘BabyShark 캠페인’에서 사용되는 이른바 ‘RandomQuery’ 타입의 스크립트 명령 이력이 관찰되고, 작업 스케줄러 등록 부분 역시 주석처리돼 있다. 물론 공격에 따라 실제 유효했던 사례가 존재한다. 해당 코드의 하단 영역은 PowerShell 명령을 통해 ‘info_ps.bin’ 파일을 호출한다.
‘info_ps.bin’ 파일은 컴퓨터 단말의 주요 정보를 수집하는 시스템 인포스틸러 기능을 수행한다. 수집된 정보는 AESEncrypt 루틴으로 암호화하고, 비밀번호는 동일한 ‘pa55w0rd’ 값을 사용한다.
암호화된 개인정보는 DropBox 저장소 ‘log5’ 경로에 단말 IP 주소를 추가해 피해자를 개인별로 구분하고, 하위에 특정 형태로 저장한다. 그리고 DropBox 토큰을 통해 자료를 유출한다.
앞서 ‘info_sc.txt’ 파일은 발견 당시 다수의 명령어가 주석처리된 상태였다. 하지만 실제 공격 사례 중에는 코드가 모두 작동된 경우가 존재한다.
공격자가 해당 코드를 활성화할 경우 작업 스케줄러에 등록된 PowerShell 명령을 통해 ‘m_ps.bin’ 파일을 호출해 복호화하고 실행한다.
명령을 수행하는 DropBox 저장소에는 ‘m_ps.bin’ 파일이 존재하고, 공격자에 따라 가변적 공격에 쓰였다고 볼 수 있다. ‘m_ps.bin’ 파일도 ‘AESEncrypt’, ‘AESDecrypt’ 함수를 가지고 있으며, DropBox 액세스 토큰 값을 두었다.
중복 실행 방지를 위해 뮤텍스(Mutex)를 특정값으로 생성한다. 이 문자열은 공격에 따라 조금씩 상이한 형태를 띠고 있다. 또, 위협의 지속성을 유지하기 위해 ‘GetTimeInterval’ 함수를 통해 10,000초(약 2시간 46분) 사이에서 임의의 간격으로 시간을 설정해 DropBox 통신을 유지한다.
‘m_ps.bin’ 파일은 DropBox 저장소에서 ‘ad_ps.bin’ 파일을 호출해 복호화 후 실행되는 과정을 거친다. 현재까지 확인된 바에 의하면, 이 파일은 다양한 기능을 가진 여러개의 명령이 선택적으로 사용됐다.
보통 마지막으로 사용되는 ‘ad_ps.bin’ 파일은 4가지 유형이 공격목적에 따라 가변적으로 선택된다. 이는 △키로거(Keylogger) △화면 캡처(Screenshot Capture) △웹 브라우저 크리덴셜 스틸러(Browser Credential Stealer) △가상 네트워크 컴퓨팅(Virtual Network Computing)을 통한 원격제어 등이다.
먼저 키로거용 PowerShell 명령은 사용자의 키보드 입력과 클립보드 저장 내용을 특정 경로에 텍스트 파일로 저장된다. 그리고 중복 실행 방지를 위해 뮤텍스(Mutex) 문자열을 특정 값으로 설정한다. ‘BabyShark APT 캠페인’에서 지속 식별된다.
두 번째 유형은 피해자 화면을 PNG 파일로 캡쳐해 저장하고, DropBox ‘screenlog’ 경로에 유출을 시도하는 방식이다. 실제 공격에서 포착된 바는 없지만, DropBox 저장소에 보관 중이다.
세 번째로 웹 브라우저의 크리덴셜 정보를 수집해 탈취하는 케이스다. 구글 크롬, MS 엣지, 네이버 웨일 브라우저에 저장된 ‘User Data’ 경로를 확인한다. 그리고 ‘Cookies’, ‘History’, ‘LoginData’ 값을 수집해 DropBox 경로로 유출을 시도한다.
윈도우용 크롬에서는 DPAPI(Data Protection API)인 CryptProtectData를 사용해 ‘Cookies’, ‘History’, ‘LoginData’ 내용을 암호화해 보관한다. 이를 복호화하기 위해 암호화 키가 저장된 로컬 파일에서 키값을 활용하고, 마스터 키 값을 구한다. 그리고 해당 정보를 함수를 사용해 압축하고, ToBase64String 변환 후 ConvertTo-Json을 통해 저장되는 여러 과정 등을 거친 후 공격자의 DropBox 저장소로 업로드 한다.
마지막 네번째는 위협 행위자가 지정한 구글 드라이브를 통해 ‘UltraVNC’ 원격제어 모듈을 설치한 케이스다. 구글 드라이브 주소에서 ‘aaa.bin’ 파일을 다운로드하고, AESDecrypt 함수로 복호화해 실행한다. 그리고 또 다른 구글 드라이브 주소에서 ‘UltraVNC’ 파일이 포함된 압축 파일을 다운로드하고 실행한다.
특히, 상기 명령 하단 부분에 다음과 같은 한글 주석처리가 포함돼 있는데, 영어 ‘File’ 단어의 북한식 한글 표현 중 하나인 ‘화일’ 문자가 관찰된다.
공격자는 사전에 다양한 PowerShell 명령어와 원격제어 모듈을 드롭박스와 구글 드라이브 등에 치밀하게 준비했다. 인터넷에 공개된 오픈소스 기반의 RAT 프로그램을 커스텀해 사용하는 특성을 보인다.
TutorialRAT 소개
‘TutorialRAT’은 ‘C-Sharp-R.A.T’ 이름으로 깃허브에 소스코드가 공개된 C# 기반 원격제어 프로그램이다. 개발 과정을 튜토리얼 동영상으로 소개한 바 있다. 이 때문에 악성 파일은 ‘TutRAT’ 또는 ‘TutClient’ 등으로 표현되고 있다.
APT43 캠페인에서 사용된 ‘TutRAT’ 변종 중에는 하기와 같이 한글 경로에서 빌드된 이력이 존재한다. 주로 2023년 초기에 개발된 형태에서 발견되고, 다양한 변종이 보고된 바 있다.
해당 ‘TutRAT’ 파일의 PDB 빌드 경로는 다음과 같고, ‘work’ 폴더 하위에 ‘비루스관련’, ‘자료조사’ 등의 표현이 존재한다.
이는 ‘TutClient’ 오픈소스를 APT 공격용으로 자료 조사해 준비한 정황으로 해석되며, ‘비루스’ 의미는 영어 ‘Virus’ 단어를 북한에서 쓰는 한글 표현이다. 반면 다른 유사 변종들은 주로 다음과 같은 경로가 쓰였는데, ‘virus’ 영단어로 경로명이 변경됐다.
GSC는 이번 위협 캠페인을 조사하는 과정 중 동일 배후가 제작한 것으로 추정되는 C# 언어기반 악성 파일을 분석했다. 이 파일은 2023년 6월 15일에 개발된 것으로 ‘ConsoleApplication1.pdb’이다. 이때 개발된 경로는 [D:\work\Virus] 경로와 동일하다.
이 악성 파일은 가짜 메시지 창을 보여주며, 단말 정보를 수집해 유출하는 전형적 인포스틸러 기능을 수행한다. 이때 나타나는 메시지 창에는 [열기 오유], [문서가 파괴 되였습니다.]라는 표현이 존재한다.
‘오유’는 ‘오류’의 북한말이며, ‘되였습니다’ 표현 역시 ‘되었습니다’의 대표적 북한식 언어 표기 중 하나다. 공격자도 언어 구사에 주의를 기울이는 편이라 앞으로는 AI 활용할 가능성도 있다.
이처럼 공격자는 C# 프로그래밍 언어를 APT 공격에 적극 활용한다. 또, 악성 프로그램 전부를 자체 개발하기 보다 인터넷에 공개된 여러 오픈소스를 선택해 공격에 활용한 점도 특징이다. 오픈소스를 사용해 공격 거점이나 국적, 신분 등을 은닉하는데 활용할 수 있다.
추가로 본 악성 파일이 사용한 스크립트 코드에는 [“http://” & ui & “/list.php?query=1”:Do while .busy] 내용을 담고 있으며, 전형적인 ‘BabyShark’ 캠페인의 ‘RandomQuery’ 명령을 볼 수 있다.
결론 및 대응방법(Conclusion)
2024년 1분기까지 바로가기(LNK) 유형의 APT 공격은 계속 이어지고 있다. 한국을 공격 대상으로 활동하는 주요 위협 행위자들은 초기 침투 단계시 단말에 설치된 Anti-Virus 탐지 회피 효과를 극대화하기 위해 이 방식을 전략적으로 사용 중이다.
특히, 합법적으로 서비스 중인 글로벌 클라우드 저장소를 일종의 위협거점 인프라로 지속 활용 중이다. 그러므로 개인 이용자를 포함해 기업 및 기관의 보안관리자는 주요 클라우드 저장소의 통신 이력도 세심히 살펴볼 필요가 있다.
주로 PowerShell 스크립트와 클라우드 서비스가 제공하는 정상 API 기능을 활용해 Fileless 기반 공격을 수행하기 때문이다. 특히, 암호화된 코드와 통신으로 인해 이상행위 탐지와 식별이 쉽지 않다.
한편 구글드라이브, 드롭박스, 원드라이브 등은 APT 공격에 악용된 서비스 계정 차단과 후속조치를 위해서는 많은 보안 전문가들의 지원과 협력이 중요하다.
지니언스는 “2024년 1분기 국내서 발생한 주요 APT 공격은 파일리스가 일반화됐다”며 “이러한 공격을 탐지하지 못할 경우, 내부 침해사고로 발전할 수 있는 만큼 기업 및 기관의 보안 관리자는 위협 가시성 제공 뿐만 아니라, 파일리스 탐지에 특화된 EDR 솔루션을 적극 활용해야 한다”고 당부했다.
위 포스팅이 문제될 경우 삭제하겠습니다.