보안정보

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

2022년 사이버 보안위협에 따른 악성코드 패러다임

2023.01.04

2,387

01. 2022년 사이버 보안위협 동향

2021년 말 발생한 Apache Log4j 취약점인 Log4Shell은 ‘컴퓨터 역사상 최악의 취약점’으로 불릴 정도로 IT 환경의 퍼펙트 스톰을 유발하였다. 2022년 초 Log4Shell의 이름과 유사한 Spring4Shell, Follina, 2021년 중순에 발생된 ProxyShell과 유사한 취약점인 ProxyNotShell까지 발견되었다. 해당 취약점들의 CVSS3.x 점수는 7~9점으로 여전히 파괴력 높은 취약점이 지속적으로 발견되고 있다.

또한, 오픈소스 저장소(Repository)에 악성파일을 업로드하여 다운로드하도록 유도하는 방식이 지속적으로 발생하고 있으며 2022년 초 시작된 우크라이나·러시아 전쟁에서는 전쟁 시작 이전부터 사이버전을 통해서 정부, 공공기관을 포함한 우크라이나를 타깃으로 한 정보 탈취, 심리전, 시스템 파괴 등의 공격을 진행했다. 랜섬웨어 역시 지속적인 진화로 인해 서비스형 랜섬웨어(RaaS), 특정 키값 요구를 통한 분석 활동 방해, 다양한 운영체제를 대상으로 한 감염 시도, 다크 웹 사이트에 유출시킨 정보를 공개하는 방식을 포함한 이중 협박 전략까지 다양한 방법으로 진화하였다.

이에 따라, 취약점을 악용한 악성코드 유포, 오픈소스 저장소(Repository)를 이용한 악성코드 유포, 랜섬웨어 동향, 우크라이나·러시아 전쟁에 사용된 사이버전까지 총 4종의 이슈를 가지고 2022년 사이버 위협 동향에 대해서 알아보고자 한다.

02. 취약점을 악용한 악성코드 유포

2022년 역시 2021년 말 발생한 Log4Shell 취약점에 버금가는 취약점이 다수 발생하였다. 과거에 패치가 진행되었던 취약점의 우회 취약점이 발생하여 더욱 큰 취약점으로 변모한 케이스도 있으며 침해 사고 분석 도중 확인된 0-day 취약점, 특정 국가 공격을 목표로 한 샘플에서 확인된 0-day 취약점 등 파급력이 높았던 0-day 취약점 발견이 많았던 2022년이었다고 볼 수 있다.

기본적으로 취약점 악용 시 공격자가 원하는 코드를 실행할 수 있으며 추가로 파일 다운로드 코드를 삽입하는 경우 악성코드가 실행되어 추가적인 피해가 발생하기 마련이다. 올해 발생한 다양한 취약점 중 파급력이 높았던 Spring4Shell(CVE-2022-22965), Follina(CVE-2022-30190), Atlassian Confluence(CVE-2022-26134), MS Exchange Server(ProxyNotShell, CVE-2022-41040, CVE-2022-41082) 취약점에 대해 간략하게 알아보고자 한다.

1) Spring4Shell(CVE-2022-22965)

2022년 3월 30일, JAVA 플랫폼에서 매우 널리 사용되는 오픈소스 프레임워크인 Spring Framework 코어에 0-day 취약점에 대한 정보가 공개되었다. 이미 2021년에 발생된 Log4Shell 취약점과 유사한 점이 발견되어 Spring4Shell이라는 이름이 붙었으며 2022년 3월 29일, 사이버 보안 연구원으로 추측되는 중국인의 트위터에 “A Java Springcore [sic] RCE 0-day exploit has been leaked”라는 글과 함께 JAVA library인 Spring Core를 익스플로잇 한 PoC(Proof of Concept) 스크린샷이 공개되었다.

Spring Core Framework에서 노출된 'class' 객체의 자식 객체인 'class.module.classLoader'에 매개변수를 통한 접근 이후 ‘AccessLogValve’ 객체에 엑세스하여 웹쉘 업로드 성공 시 원격 코드 실행이 가능한 취약점이다.

Mirai Botnet이 싱가포르 지역의 취약한 서버를 대상으로 한 감염 시도에서 Spring4Shell 취약점을 적극적으로 악용하여 /tmp 폴더에 다운로드 후 스크립트 권한 변경을 통한 무기화를 이미 진행하였고, 이후 전 세계 서버를 대상으로 한 감염 시도로 이어지게 되었다.

[표 1] Spring4Shell(CVE-2022-22965) 취약점 타임라인

2) Follina(CVE-2022-30190)

2022년 5월 30일, 마이크로소프트(Microsoft)에서 MSDT 원격코드 실행 취약점(CVE-2022-30190, CVSS3.x:7.8) 주의 권고를 발표하였다. MSDT(Microsoft Support Diagnostic Tool) Windows 환경에서 문제 발생 시 정보를 수집하여 Microsoft 지원 부서에 전달하기 위한 목적으로 만든 도구로 취약점을 악용한 Word 파일의 경우 외부 OLE 개체 참조를 위한 HTML 링크 포함하고 있으며 요청된 HTML 파일 내부 “ms-msdt:”를 추가하여 MSDT 도구 호출 이후 공격자가 원하는 페이로드 다운로드가 가능하다.

사이버 보안 연구팀인 나오섹(nao_sec)이 벨라루스에서 발견된 악의적인 MS 워드 문서 파일에 대한 내용을 트위터에 업로드하였으며 Kevin Beaumont에 의해 취약점이 최초 공개되었다. 분석 도중 0438(Follina 지역번호 코드)을 참조하는 샘플이 존재하여 ‘Follina’로 명명하였다.

[표 2] Follina(CVE-2022-30190) 취약점 타임라인

공격에 사용되는 샘플의 경우 Microsoft Word 파일이 대다수를 차지하나 MSDT가 설치되어 있으며 MSDT URL 요청이 가능한 Windows 기반 프로그램이면 동작 가능한 것으로 확인된다.

[표 3] Follina(CVE-2022-30190) 취약점 분석에 사용된 샘플

샘플 파일인 VIP Invitation to Doha Expo 2023.docx 최초 실행 시 공격자가 설정한 C2로 연결을 시도한다.

[그림 1] Follina 취약점이 포함된 샘플 최초 실행화면

Word 문서는 Doha Expo 2023 관련 VIP 초대 내용으로 확인되며 매크로 실행 시도는 없는 것으로 확인된다.

[그림 2] 샘플 내부에 MS Word 문서 내용

Folina 취약점을 악용한 Word 파일의 경우 외부 OLE 개체 참조를 위한 HTML 링크 포함하며 다음 순서에 따라 동작한다.


① word_rels\document.xml.rels에서 1차 C2로 (hxxps://files.attend-doha-expo.com/inv[.]html)로 파일 요청
② 요청된 HTML 파일 내부에 “ms-msdt:”를 추가하여 MSDT 도구 호출
③ MSDT 호출 성공 시 MSDT를 이용하여 Powershell 코드 실행
④ Powershell 코드 실행결과 2차 C2(5[.]206.224.233)로 파일 요청

[그림 3] document.xml.rels에서 확인되는 Folina 취약점 악용 방식

최종 다운로드한 osdupdate.exe 파일 확인 결과 Cobalt Strike Beacon로 확인되며 Beacon 설치를 위해 유포 중인 샘플로 확인된다.

[그림 4] Virustotal 검색 결과

3) Atlassian Confluence(CVE-2022-26134)

2022년 6월 2일, Athanasian 사가 Confluence Server 및 Confluence Data Center의 인증되지 않은 원격 코드 실행 취약점(CVE-2022-26134, CVSS3.x:9.8)에 관한 보안 권고를 발표하였다. 공격자는 별도의 크리덴셜 정보 및 사용자의 특정 행위 유도 없이 OGNL Injection 공격 기법을 사용해 원격에서 임의의 명령어를 실행할 수 있는 취약점으로 확인된다.

보안 전문 업체인 볼렉시티(Volexity)는 하프늄(Hafnium)에서 제작된 것으로 추정되는 China Chopper 웹쉘이 Confluence Server에 업로드된 서버를 침해 사고 조사 도중 0-day 취약점으로 발견되어 아틀라시안(Atlassian)사에 제보한 것으로 확인되었다.

공격자는 Apache Struts2의 OGNL 표현식을 이용한 악성 페이로드를 GET, POST, PUT 등의 방식으로 전송해 임의의 명령어를 실행할 수 있으며 공격 시 별도의 크리덴셜 정보 및 인증 정보가 필요 없어 만약 외부에서 Atlassian Confluence 서버에 접근이 가능하다면 쉽게 Exploit 가능한 것으로 확인된다.

[표 4] Atlassian Confluence(CVE-2022-26134) 취약점 타임라인

4) MS Exchange Server(ProxyNotShell, CVE-2022-41040, CVE-2022-41082)

2022년 8월, 베트남 보안업체 ‘지티에스씨(GTSC)’에서 Microsoft Exchange Server 2013, Exchange Server 2016 및 Exchange Server 2019에 영향을 미치는 0-day 취약점 2종 발견되었다. 취약점은 총 2종으로 2021년 발표된 ProxyShell 취약점과 유사한 공격 구문(SSRF)을 사용하며 웹쉘 다운로드, Certutil 연결, DLL Injection 등의 공격 가능하다는 특징이 존재한다.

공격의 전제조건으로 취약한 버전의 Exchange Server를 사용 중인 환경에서 서버에서 사용자 권한(자격 증명)을 가지고 있는 환경에서만 취약점 악용이 가능하기 때문에 Kevin Beaumont는 이 취약점들을 이전 Exchange 취약점인 ProxyShell에서 이름을 따서 ProxyNotShell이라고 명명하였다.

[표 5] MS Exchange Server 취약점
[표 6] MS Exchange Server 취약점 타임라인

03. 오픈소스 저장소(Repository)를 이용한 악성코드 유포

오픈소스 저장소(Repository)는 아티팩트와 메타데이터, 라이브러리, 패키지를 저장하고 관리하는 장소를 의미하며 패키지 관리자가 패키지를 다운로드하고 업로드할 수 있는 기능을 제공한다. 의존성 있는 라이브러리의 설치/갱신/삭제를 편리하게 하기 위한 측면도 존재하나 외부 오픈소스 저장소의 경우 특별한 제약 없이 사용자가 업로드한 패키지를 다운로드할 수 있다는 점도 존재한다.

이를 악용할 경우 공격자가 악성 패키지를 업로드하여 사용자가 다운로드해 실행하게 되며 이를 위해 타이포스쿼팅(Typosquatting) 공격을 이용하게 된다. 오픈소스 저장소에서 사용되는 타이포스쿼팅 공격은 정상적인 패키지 명과 유사한 이름의 패키지 명으로 업로드한 이후 사용자의 오타나 부주의로 인해 악성코드를 다운로드하게 하는 공격이다. 타이포스쿼팅 공격으로 피해를 본 PyPI, NPM, GitHub, Docker Hub에서 발생한 사이버 위협 동향에 대하여 알아보려 한다.

1) PyPI

2022년 11월, PyPI에 업로드된 패키지 중 약 30개의 패키지에서 타이포스쿼팅 공격을 통해 악성코드를 포함하여 업로드한 것으로 확인되었다. 악성코드가 포함된 패키지는 보통 setup.py, init.py 내부에 공격자가 업로드한 악성코드를 다운로드하는 링크를 requests-httpx, requests를 이용하여 다운로드하는 것으로 확인되며 패키지 설치 시 다른 패키지를 몰래 설치하는 방법 또한 사용된 것으로 확인되었다. Base64로 인코딩된 데이터를 디코딩 이후 특정 URL에서 W4SP 인포 스틸러를 다운로드해 최종적으로 실행하게 된다.

[표 7] W4SP 인포스틸러가 포함된 악성 패키지 목록 (출처 : Phylum blog)

2) npm

2022년 2월, 공식 NPM 패키지 레지스트리에 Discord 토큰 및 환경 변수를 포함한 정보 탈취성 악성 JavaScript 라이브러리 총 25개가 업로드되었다. 초보적인 악성코드 제작자가 제작한 것으로 보이며 타이포스쿼팅 공격을 통해 colors.js, crypto-js, discord.js, marked 및 noblox.js 등 정상 패키지로 위장한 채 업로드된 것으로 확인되었다. Discord 채널에 악성 링크를 전파할 목적으로 Discord 토큰을 탈취하며 추가적인 악성 행위를 위해 API 액세스 토큰, 인증키, API URL 및 계정 이름 탈취를 시도하는 것으로 확인되었다.

[표 8] 정보탈취성 악성 JavaScript 목록

3) GitHub

2022년 8월, 소프트웨어 개발자인 Stephen Lacy가 깃허브(GitHub)에 업로드된 약 35,000개 이상의 파일이 악성 행위에 사용된다는 내용을 트위터에 업로드하였다. 정상적인 저장소의 피해는 없으나 해당 저장소의 데이터를 복사본으로 만들어 악성 URL을 포함한 뒤 업로드 한 것으로 확인되었다. 악성파일이 가장 많이 발견된 'redhat-operator-ecosystem‘ 저장소의 경우 약 13,000개 이상의 파일이 존재하는 것으로 확인되었으며 현재는 사용되지 않는 것으로 (404 에러) 확인된다. 악성 행위를 하는 파일은 공통으로 “hxxp://ovz1.j19544519.pr46m.vps.myjino[.]ru” URL이 포함되었으며 API 키, 토큰, Amazon AWS 자격 증명 및 암호화 키를 포함한 민감한 정보가 공격자에게 탈취될 가능성이 있다.

[그림 5] 특정 C2가 포함된 악성 리포지토리 목록(출처 : Bleeping Computer)

4) Docker Hub

2022년 11월, Sysdig 위협 연구팀에서는 Docker Hub 내 존재하는 25만 개 이상의 Linux Docker 이미지 분석 결과 약 1,600개의 Linux Docker 이미지가 악성 행위를 내포하고 있는 것으로 확인되었다. 계정 정보 탈취의 경우 SSH 키, AWS 인증정보, GitHub 및 NPM 토큰을 탈취하는 시도가 대부분을 차지하였다. 대부분의 코인 마이너 유포 시도는 타이포스쿼팅 공격을 이용하여 정상적으로 배포되는 서비스에 철자를 바꾸는 식으로 XMRig 코인 마이너가 포함된 악성 이미지를 유포한 것으로 확인되었다.

[표 9] 정상 소프트웨어로 위장한 악성 이미지 목록(출처 : Sysdig blog)

04. 랜섬웨어 동향

1) 귀신(Gwisin)

귀신(Gwisin) 랜섬웨어는 2021년 9월부터 한국 기업만을 대상으로 공격하고 있는 랜섬웨어이다. 표적형 공격을 수행하는 것이 특징이며 2022년 7월부터 언론 기사를 통해 5개 이상의 한국 기업을 공격한 것으로 기사화되었다.

알려지지 않은 침투 방법으로 내부 시스템을 장악한 뒤 파일 배포 프로그램을 이용해 악성 MSI 파일을 배포한다. MSI 파일 내에 Binary.helper 파일이 존재하며 실행을 위한 인자(SERIAL, LICENSE, SMM, ORG)가 추가로 필요하다. 암호화된 파일과 동일한 대상 폴더에 생성되는 랜섬 노트는 ‘!!!HOW_TO_UNLOCK(업체명)FILES!!!.txt’의 영문으로 작성된 텍스트 문서로 피해 업체 이름, 유출 정보 등을 포함한다. 특이한 점으로는 법 집행기관(한국 경찰, 국가정보원, KISA)을 포함한 국가/정부 기관에 연락하지 말라는 내용이 포함되어 있다는 점이다.

[그림 6] 귀신(Gwisin) 랜섬웨어가 생성한 랜섬노트의 일부

2) 하이브(Hive)

하이브(Hive) 랜섬웨어는 서비스형 랜섬웨어(RaaS)로 랜섬웨어 감염 시 데이터를 유출하며 지정된 시간까지 협상되지 않을 경우 다크 웹에 존재하는 HiveLeaks 사이트에 유출된 데이터를 공개하는 랜섬웨어다.

2021년 6월 최초로 발견되어 초기에는 고(GO) 언어로 작성되었다가 새로운 하이브 랜섬웨어 변종은 러스트 언어로 변경하여 안정성과 병렬처리 메커니즘, 리버스 엔지니어링 난이도 증가를 가져오는 것으로 확인된다. 랜섬웨어를 감염시킨 뒤 피해자에게 접속할 수 있는 주소와 로그인 정보를 담은 랜섬 노트를 남긴다. 최신 하이브(Hive) 랜섬웨어는 다양한 매개변수를 사용할 수 있으며 특히 “-u ID:PW”가 없으면 랜섬웨어가 실행되지 않도록 하여 악성코드 분석을 어렵게 하고 있다.

[그림 7] 하이브(Hive) 랜섬웨어 실행 시 확인되는 필수 인자 요구 내용

하이브 랜섬웨어는 피싱 메일 또는 Exchange Server 취약점(CVE-2021-34473, CVE-2021-34523, CVE-2021-31207), 외부로 오픈된 RDP를 활용하여 목표 시스템 내부에 침입한다. 내부 시스템 장악 후 코발트 스트라이크 비컨(Cobalt Strike Beacon)을 통해 시스템을 제어하고, 랜섬웨어를 유포한다.

[그림 8] 하이브(Hive) 랜섬웨어가 정보 유출에 사용하는 HiveLeaks 페이지

3) 락빗(LockBit)

2019년 9월 처음 등장한 것으로 알려진 락빗(LockBit) 랜섬웨어는 서비스형 랜섬웨어(RaaS)로 미국, 중국, 인도, 인도네시아, 우크라이나 및 여러 유럽 국가에 기반을 둔 조직을 대상으로 랜섬웨어 감염을 시도하였다. 최초 등장한 락빗 랜섬웨어는 암호화한 확장자를 “abcd”로 바꿨는데, 이에 따라 ‘ABCD 랜섬웨어’로 알려진 역사가 존재한다.

2021년 6월, 버전 2.0으로 업데이트되어 유포되었으며 당시 공격자는 "전 세계에서 가장 빠른 암호화 소프트웨어"라고 주장하며 비교 데이터를 보여준 것으로 유명하다. 전문 서비스, 건설, 도매 및 소매, 제조업을 중심으로 랜섬웨어 공격을 시도하였으며 암호화 도중 유출한 데이터를 공개하는 다크 웹 페이지를 가지고 있었다.

[그림 9] 락빗(LockBit) 2.0 당시 정보 유출에 사용했던 페이지

2022년 7월, 버전 3.0으로 업데이트되어 랜섬웨어 최초로 버그 바운티 프로그램을 도입하여 버그를 신고하면 보상을 지급하는 페이지를 오픈하였다. 2022년 9월 21일, GitHub에 락빗 랜섬웨어 버전 3.0 빌더가 유출되어 실제 락빗 랜섬웨어를 제작/변형이 가능하다. 현재는 해당 GitHub 페이지에 접근 시 비활성화된 것으로 확인된다.

[그림 10] GitHub에 유출된 락빗(LockBit) 랜섬웨어 빌더

05. 우크라이나·러시아 전쟁에 사용된 사이버전

러시아는 우크라이나와의 전면전 이전부터 사이버전을 개시하여 장기간 우크라이나 및 그 외 목표물에 대한 전술적 공격을 진행해왔다. 전면전 이후 첫 4개월 동안 러시아가 공격 배후로 추정되는 공격 그룹이 약 50개 이상의 우크라이나 기관 및 기업에 대한 파괴적인 사이버 공격 및 스파이 활동을 중점적으로 진행한 것으로 확인되었다. 이러한 공격을 바탕으로 전면전 초기에 균형을 무너뜨려 우세한 위치에 서고자 한 것으로 보인다.

Microsoft에서 발간한 “Microsoft Digital Defense Report 2022”에서 러시아는 우크라이나의 군사적·인도적 지원 방해, 대중의 미디어 및 서비스 접근 방해, 경제적 가치가 있는 정보 탈취 등 다방면의 공격을 시도하였다. 2022년 2월~6월까지 우크라이나 이외의 42개국을 대상으로 한 네트워크 침입 시도를 탐지하였으며 최대 목표는 미국이었고 폴란드, 덴마크, 노르웨이, 핀란드. 스웨덴의 네트워크 침입 시도를 확인하였다.

이에 따라, 전면전 전/후 우크라이나를 대상으로 한 사이버전 공격 개요, 공격 도구, 공격 행위 및 기능, 공격 배후를 정리하여 공격의 실태를 알아보고자 한다.

[그림 11] 러시아의 우크라이나 침공 이후 우크라이나에 가장 많은 표적이 된 산업 부문
(출처: Microsoft Digital Defense Report 2022)

러시아가 우크라이나에 대한 사이버전 공세는 실제 개전일인 2022년 2월 24일 이전부터 지속적으로 발생된 정황이 확인되었다. 이에 따라 우크라이나를 대상으로 한 시스템 파괴, 심리전 활용, 정보 탈취 목적의 공격 시도 분류로 나눠 정리하였다.

1) 시스템 파괴

[표 10] 러시아 측의 시스템 파괴적 공격 형태 (출처 : Cyber Peace Institute 일부 재구성)
※ 일부 국가의 경우 공격 사실을 부인한 경우에 한해 (추정) 이라고 명시

2) 심리전 활용

[표 11] 러시아 측의 심리적 공격 형태 (출처 : Cyber Peace Institute 일부 재구성)
※ 일부 국가의 경우 공격 사실을 부인한 경우에 한해 (추정) 이라고 명시

3) 정보 탈취

[표 12] 러시아 측의 정보 탈취 공격 형태 (출처 : Cyber Peace Institute 일부 재구성)
※ 일부 공격의 경우 공격 배후가 알려지지 않음

06. 마무리

지금까지 취약점을 악용한 악성코드 유포, 오픈소스 저장소(Repository)를 이용한 악성코드 유포, 랜섬웨어 동향, 우크라이나·러시아 전쟁에 사용된 사이버전까지 총 4종의 이슈에 대해서 알아보았다.

과거에 이용된 취약점을 재발견하여 새로운 0-day 취약점을 만들거나 사용자가 신뢰하는 오픈소스 저장소를 이용한 유포 시도, 서비스형 랜섬웨어(RaaS)의 정밀한 타깃형 공격으로 공격 방식의 다변화가 눈에 띈다. 특히, 현재까지 전쟁 중인 우크라이나·러시아 전쟁에 사용된 사이버전의 경우 실제 전쟁 시 부분적 비대칭 전략으로 분류된 사이버전으로 확대되어 양측 간 피해가 여전히 발생 중이다.

2023년에도 역시 다양한 방식의 공격이 발생할 것으로 예상되며 오픈소스 저장소를 이용하여 악성코드 유포가 높아질 것으로 예상된다. 또한, 현재 우크라이나·러시아 전쟁에서 발생 중인 사이버전의 여파로 전쟁을 미끼로 하여 피싱을 포함한 사이버 공격이 매우 증가할 것으로 예상된다. 이를 대비하고자 평소에 0-day 취약점을 포함한 악성코드의 동향에 대한 다방면의 정보 수집이 필요할 것이다.

07. 참고자료

1) 35,000 code repos not hacked—but clones flood GitHub to serve malware
https://www.bleepingcomputer.com/news/security/35-000-code-repos-not-hacked-but-clones-flood-github-to-serve-malware/
2) Analysis on Docker Hub malicious images: Attacks through public container images
https://sysdig.com/blog/analysis-of-supply-chain-attacks-through-public-docker-images/
3) Phylum Discovers Dozens More PyPI Packages Attempting to Deliver W4SP Stealer in Ongoing Supply-Chain Attack
https://blog.phylum.io/phylum-discovers-dozens-more-pypi-packages-attempting-to-deliver-w4sp-stealer-in-ongoing-supply-chain-attack
4) CVE-2022-30190: Microsoft Support Diagnostic Tool (MSDT) RCE Vulnerability “Follina”
https://www.fortinet.com/blog/threat-research/analysis-of-follina-zero-day
5) GwisinLocker ransomware targets South Korean industrial and pharma firms
https://blog.reversinglabs.com/blog/gwisinlocker-ransomware-targets-south-korean-industrial-and-pharmaceutical-companies
6) Hive ransomware gets upgrades in Rust
https://www.microsoft.com/en-us/security/blog/2022/07/05/hive-ransomware-gets-upgrades-in-rust/
7) LockBit ransomware — What You Need to Know
https://www.kaspersky.com/resource-center/threats/lockbit-ransomware
8) Microsoft Digital Defense Report 2022
https://www.microsoft.com/en-us/security/business/microsoft-digital-defense-report-2022