1. 개요
- 모바일 보안수칙으로 보통 의심스러운(출처가 불분명한) 링크, 첨부파일 등을 클릭하지 말 것을 당부
- 이러한 대응방안을 무력화하는 방법이 제로클릭(Zero-Click) 기법
2. 제로클릭(Zero-Click)
- 단어 뜻 그대로 클릭이 제로인 상태를 뜻함
- 기존의 피싱 등을 통한 악성코드와 달리 사용자가 클릭하지 않아도 몰래 침투해 사용자의 스마트폰을 좀비폰으로 만듦
- 애플 iOS나 구글 안드로이드 운영체제, 왓츠앱 같은 메신저 프로그램의 취약점들을 악용해 사용자 몰래 기기에 침투
- 공격이 성공할 경우 통화 도청·녹음, 사진 촬영, 비밀번호 탈취 등이 가능해짐
- 제로클릭 공격은 정부기관 관계자, 정치인, 활동가 등 고위급 인사나 언론인을 대상으로 함
- 대중화됐다고 보기는 어렵지만 점점 증가하는 추세
- 제로클릭 공격에 대한 방어책을 신속하게 마련할 수 있도록 세부 논의가 필요
> 현재로써는 감염된 기기를 사용하지 않는 것 외에는 예방 방법이 없음
3. NSO 그룹의 페가수스(Pegasus)
- 이스라엘 보안업체 NSO 그룹이 개발하여 세계 각국 정부에 판매한 제로클릭 해킹 도구 (일종의 스파이웨어)
- 구글 프로젝트 제로(Project Zero) 팀은 지금까지 확인한 사이버 공격 가운데 기술적으로 가장 정교하다고 발표
3.1 분석 [1][4][5]
- CVE-2021-30860 할당
- 가짜 GIF로 코어그래픽스 PDF(CoreGraphics PDF) 파서의 취약점을 악용
※ 가짜 GIF는 확장자가 .gif이지만 실제로는 GIF 이미지 파일이 아님
- iMessage는 GIF 이미지를 네이티브로 지원하며, 해당 GIF를 무한반복 시키기 위해 ImageIO 라이브러리를 사용함
※ ImageIO 라이브러리는 파일 확장자에 상관없이 소스 파일의 올바른 형식을 추측하고 구문을 분석하는 데 사용
- 가짜 GIF 파일을 사용하면 20개 이상의 이미지 코덱이 아이메시지 제로클릭 공격 표면의 일부가 되어 수십만 줄의 코드를 원격으로 노출시킴
- JBIG2는 이미지 압축 표준으로, 몇가지 반복되는 문자를 대체해 파일 사이즈를 줄이는 기법
- 페가수스 스파이웨어는 이 과정에서 발생하는 취약점_참조된 세그먼트를 수집할 때 발생하는 오버플로_을 악용
Guint numSyms; // (1)
numSyms = 0;
for (i = 0; i < nRefSegs; ++i) {
if ((seg = findSegment(refSegs[i]))) {
if (seg->getType() == jbig2SegSymbolDict) {
numSyms += ((JBIG2SymbolDict *)seg)->getSize(); // (2)
} else if (seg->getType() == jbig2SegCodeTable) {
codeTables->append(seg);
}
} else {
error(errSyntaxError, getPos(),
"Invalid segment reference in JBIG2 text region");
delete codeTables;
return;
}
}
...
// get the symbol bitmaps
syms = (JBIG2Bitmap **)gmallocn(numSyms, sizeof(JBIG2Bitmap *)); // (3)
kk = 0;
for (i = 0; i < nRefSegs; ++i) {
if ((seg = findSegment(refSegs[i]))) {
if (seg->getType() == jbig2SegSymbolDict) {
symbolDict = (JBIG2SymbolDict *)seg;
for (k = 0; k < symbolDict->getSize(); ++k) {
syms[kk++] = symbolDict->getBitmap(k); // (4)
}
}
}
}
- 먼저 (1)에서 numSyms를 32bit 정수형으로 선언
- 조작된 참조 세그먼트를통해 (2)에서 numSyms에 반복적으로 추가하는 동안 numSyms에서 Integer Overflow가 발생
- 이후, (3)에서 gmallocn 함수로 numSyms * 8만큼의 syms 힙을 할당
- (4)에서 비트맵의 값으로 syms를 채우는데, Integer Overflow로 인해 비트맵의 크기보다 작은 힙이 할당되고 out-of-bounds write가 가능
∴ JBIG2Bitmap의 원래 경계를 벗어나 메모리를 읽고 쓸 수 있게 되는 것
- 추가적으로, JBIG2는 스크립트 기능이 없지만, 취약점과 결합하면 임의 메모리에서 작동하는 임의의 논리 게이트 회로를 실행시킬 수 있음
> 이 기능을 사용하면 독자적인 컴퓨터 아키텍처를 구축하고 실행할 수 있음
4. 대응방안 [5]
① 최신 버전으로의 업데이트 적용
> 당시 애플은 즉시 iOS 14.7.1 업데이트를 배포하며 취약점을 해결
② 데이터 보관 방법
- 중요 데이터 또는 민감 데이터는 별도의 장치에 저장
③ 검역소
- 제로클릭의 경우 대부분 GIF파일로 전파되므로, 격리된 메모리 공간에서 검증 후 격리
5. 참고
[1] https://www.ciokorea.com/t/34/%EB%AA%A8%EB%B0%94%EC%9D%BC/221704
[2] https://www.itworld.co.kr/news/216064
[3] https://www.digitaltoday.co.kr/news/articleView.html?idxno=437261
[4] https://googleprojectzero.blogspot.com/2021/12/a-deep-dive-into-nso-zero-click.html
[5] https://www.trendmicro.com/en_us/research/21/i/analyzing-pegasus-spywares-zero-click-iphone-exploit-forcedentry.html
[6] https://nvd.nist.gov/vuln/detail/CVE-2021-30860
'악성코드 > 분석' 카테고리의 다른 글
악의적인 MS Word RTF File 악성코드 유포 (CVE-2017-0199) #1 (0) | 2023.04.24 |
---|---|
BYOVD (Bring Your Own Vulnerable Driver) 기법 (0) | 2023.03.22 |
악성코드와 레지스트리 (1) | 2023.01.08 |
Gh0st RAT(Remote Access Trojan) (0) | 2022.11.28 |
2021.03.28 PHP Git 서버 해킹 사건_백도어 (1) | 2022.11.25 |