1. Ollama [1]

- 개인 또는 기업이 별도의 하드웨어나 서비스 구비 없이 로컬에서 LLM을 구동할 수 있게 해 주는 오픈소스 애플리케이션

 

2. 주요내용

- 인터넷에 노출된 Ollama 프레임워크에서 6개의 보안 취약점이 발견 [2]
> 익스플로잇에 성공할 경우 DDoS, 인공지능 모델 감염, 인공지능 모델 탈취가 가능

> 4개의 취약점에 대한 보안 업데이트 발표

2개의 취약점은 Ollama 유지보수 팀이 취약점으로 인정하지 않아 CVE 번호가 할당되지 않음

※ CVE가 할당되지 않은 2개의 취약점은 패치 또한 제공되지 않음 : 엔드포인트를 노출시키지 않는것이 기본이며, 이 기본이 지켜지지 않는다는 가정 하에 연구된 취약점이므로 취약점으로 볼 수 없다는 입장

 

2.1 CVE-2024-39720

[사진 1] CVE-2024-39720 [3]

- 취약한 버전 Ollama에서 발생하는 서비스 거부 취약점

> 두 개의 HTTP 요청을 사용해 세그먼테이션 오류(SIGSEGV)를 발생시켜 서비스 거부를 유도

영향받는 버전: Ollama <= 0.1.45

 

- 공격자는 잘못된 형식의 GGUF 파일을 전송하여 서버나 애플리케이션이 이를 처리하는 과정에 예상치 못한 동작을 유도

GGUF [4] - Georgi Gerganov Unified Format
- 오픈 소스 파일 형식으로, AI 모델 파일과 관련 데이터를 효율적으로 저장 및 교환하기 위해 개발된 파일 형식
① 범용성
> 기존의 모델 저장 방식들은 특정 프레임워크나 라이브러리에 종속
> 다른 환경 또는 플랫폼에서 사용하려면 별도의 변환 작업이 필요함
> 다양한 유형의 모델 파일과 메타데이터를 한 곳에 통합할 수 있어 변환 없이 여러 플랫폼에서 사용할 수 있음
② 경량 데이터 저장
> 데이터를 압축 및 최적화하여 모델 파일 크기를 최소화하고, 메모리 사용량을 줄임
> 로컬 환경 처럼 메모리 제한이 있는 장치에서 AI 모델을 실행할 때 성능 및 효율성을 높임
③ 확장성
> 파일 내 모델의 가중치(Weight) 텐서 값들과 메타데이터(모델의 구조, 버전, 텐서 개수 등)가 Key-Value 형식으로 저장
> 새 메타데이터나 추가 정보를 쉽게 저장할 수 있어 확장성을 높임
④ 다양한 양자화 지원
> 양자화란 모델의 가중치를 더 낮은 비트 정밀도로 변환하는 기술로, 16-bit 부동 소수점, 8-bit, 6-bit, 5-bit, 4-bit, 3-bit, 2-bit 지원
> 모델을 더 작게 만들어 추론 속도를 높이고, 메모리 사용을 줄임

 

- GGUF 파일은 0x47 0x47 0x55 0x46(GGUF)로 시작하는 헤더그 뒤 파일의 구조에 맞는 추가 데이터를 포함

> 공격자는 4Byte(헤더) 데이터만 가지는 GGUF 파일을 생성해 서버에 업로드

[사진 2] GGUF 파일 구조 [4]

- 공격자는 잘못된 GGUF 파일 업로드를 위해 두 개의 HTTP 요청을 사용

> 먼저, 잘못된 GGUF 파일 업로드를 위한 첫 번째 HTTP 요청 전송

> /api/create URL잘못된 GGUF 파일을 참조하도록 Modelfile 내 FROM 명령문을 사용한 두 번째 HTTP 요청 전송

Modelfile [5] - 모델의 설정과 명령을 정의한 파일
> 사용할 모델, 템플릿 형태, 파라미터 등을 지정해 모델을 지정할 수 있는 파일
① FROM(필수) : 사용할 기본 모델 정의
② PARAMETER : Ollama가 모델을 실행하는 방법에 대한 매개변수를 설정
③ TEMPLATE : 모델에 전송할 전체 프롬프트 템플릿
④ SYSTEM : 템플릿에 설정될 시스템 메시지를 지정
⑤ ADAPTER : 모델에 적용할 (Q)LoRA 어댑터를 정의
⑥ LICENSE : 법적 라이센스를 지정
⑦ MESSAGE : 메시지 기록을 지정

 

- CreateModel은 업로드된 파일을 기반으로 새로운 모델을 생성하거나 로드하는 기능

> 이 과정에서 GGUF 파일과 Modelfile을 로드 및 검증 없이 실행을 시도하여 얘기지 못한 메모리 참조가 발생

> 메모리 접근 위반으로 세그멘테이션 오류(Segmentation Fault)가 발생, 시스템은 SIGSEGV 신호 수신 및 프로세스 중단

 

2.2 CVE-2024-39722

[사진 3] CVE-2024-39722 [6]

- 취약한 버전 Ollama에서 발생하는 파일 존재 여부 공개 취약점

> /api/push 엔드포인트존재하지 않는 경로 매개변수를 통해 호출할 때 발생

이스케이프된 URI를 공격자에게 응답으로 반환
> 이로 인해 서버에 존재하는 파일 및 디렉터리 정보가 노출되어, 공격자가 추가로 시스템을 탐색 또는 악용할 수 있음

영향받는 버전: Ollama <= 0.1.45

 

[사진 4] Exploit 예시 및 서버 응답

2.3 CVE-2024-39719

[사진 5] CVE-2024-39719 [7]

- 취약한 버전 Ollama에서 발생하는 파일 존재 여부 공개 취약점

영향받는 버전: Ollama 0.3.14

 

- /api/create 엔드포인트를 존재하지 않는 경로 매개변수를 통해 호출하여 응답(오류)을 통해 존재 유무 확인

[사진 5] Exploit 예시

구분 설명
파일이 존재하지 않는 경우 요청 : ~/ curl "hxxp://localhost:11434/api/create" -d '{"name": "file-leak-existence","path": "/tmp/non-existing"}'
응답 : {"error":"error reading modelfile: open /tmp/non-existing: no such file or directory"}%
파일이 존재하는 경우 요청 : ~/ curl hxxp://localhost:11434/api/create -d '{"name": "file-leak-existence","path": "/etc/passwd"}'
응답 : {"error":"command must be one of \"from\", \"license\", \"template\", \"system\", \"adapter\", \"parameter\", or \"message\""}%
파일 경로 대신 디렉터리 사용 요청 : ~/ curl hxxp://localhost:11434/api/create -d '{"name": "file-leak-existence","path": "/etc"}'
응답 : {"error":"read /etc: is a directory"}%

 

2.4 CVE-2024-39721

[사진 6] CVE-2024-39721 [8]

- 취약한 버전 Ollama에서 발생하는 서비스 거부 취약점

영향받는 버전: Ollama <= 0.1.33

 

- CreateModelHandler 함수는 os.Open을 사용하여 완료될 때까지 파일을 읽음

> req.Path 사용자 지정 매개변수를 사용하며, /dev/random으로 설정할 수 있음

> 매개변수 값이 /dev/random일 경우 난수를 생성할 엔트로피를 모을 때까지 차단이 발생

> 해당 파일을 열고 읽기 시도한 고루틴은 엔트로피가 충분히 쌓이기를 기다리면서 계속 차단

> 클라이언트가 요청을 취소해도 고루틴은 멈추지 않고 무한히 실행

[사진 7] 예제 Payload 및 PoC

2.5 모델 중독 (CWE-668)

- 기본 설정을 사용하는 Ollama 서버의 경우 /api/pull 경로에 대한 인증 절차가 없음

> 즉, 누구나 인증 없이 해당 API를 호출 가능한 상태

> 공격자는 클라이언트가 자신이 제어하는 서버에서 악의적인 모델을 다운로드하도록 유도할 수 있음

> 해당 API를 지속적으로 호출하여 디스크가 가득 찰 때까지 모델을 다운로드하게 되어 서비스 거부로 이어질 수 있음

[사진 8] 예제 Payload

2.6 모델 도용 (CWE-285)

- 기본 설정을 사용하는 Ollama 서버의 경우 /api/push 경로에 대한 인증 절차가 없음

> 공격자는 서버에 저장된 모든 모델을 제3의 서버로 업로드하거나 탈취할 수 있음

3. 참고

[1] https://ollama.com/
[2] https://www.oligo.security/blog/more-models-more-probllms
[3] https://nvd.nist.gov/vuln/detail/CVE-2024-39720
[4] https://github.com/ggerganov/ggml/blob/master/docs/gguf.md
[5] https://github.com/ollama/ollama/blob/main/docs/modelfile.md
[6] https://nvd.nist.gov/vuln/detail/CVE-2024-39722
[7] https://nvd.nist.gov/vuln/detail/CVE-2024-39719
[8] https://nvd.nist.gov/vuln/detail/CVE-2024-39721
[9] https://thehackernews.com/2024/11/critical-flaws-in-ollama-ai-framework.html
[10] https://www.boannews.com/media/view.asp?idx=134063&page=2&kind=1
[11] https://www.boannews.com/media/view.asp?idx=134082&page=1&kind=1

요약 - 친러 해킹그룹, 한국 기관 대상 DDoS 공격 및 데이터 유출 시도
- 외부 접속 단속하고, 계정·백업·이메일 등 철저한 관리 권고
내용 - 친러시아 해커 그룹, 한국 금융권 및 공공기관을 겨냥한 DDoS 공격과 데이터 유출 시도
> 한국이 우크라이나를 지원했다는 빌미

- 사이버 위협정보 분석·공유 시스템 ‘C-TAS(Cyber Threat Analysis & Sharing)’ 보안 공지 3건 발표
> 기관과 기업의 적극 협조 요청
① 외부 접속 관리 강화
> 기업 자산 중 외부에 오픈된 DB 서비스, NAS 등 시스템 현황을 파악
> 테스트 서버 등 불필요한 시스템 연결을 차단
> 중요 시스템 접속자의 경우 개인 단말에 임의로 원격제어 프로그램이 설치됐는지 확인
> 불필요한 네트워크 서비스를 중지 및 1433, 3389 등 기본 서비스 포트 사용 지양
> 부득이하게 외부에서 접속해야 하는 경우 접속 IP 및 단말기기 제한, 다중인증 설정이나 내부차단을 위한 서버별 접근제어 설정·확인
> 해외 및 야간이나 주말 접속 IP와 비정상 접속 여부, 일반적이지 않은 네트워크 통신량에 대한 주기적인 로그 확인 필요

② 계정 관리 강화
> 기본 관리자 패스워드를 사용하고 있다면 반드시 변경
> 사용하지 않는 기본 관리자 계정은 비활성화 및 권한 제외
> 정기적 비밀번호 변경과 2차 인증수단을 적용

③ 백업 관리 강화
> 중요 자료는 네트워크와 분리된 별도의 저장소에 정기적으로 백업
> 외부 클라우드 등에 자료 보관과 소유 기반의 이중인증 적용 권고
> 클라우드 자체에 대한 랜섬웨어 감염을 대비해 클라우드에 보관된 자료의 정기적 백업

④ 이메일 보안 강화
> 이메일 송신자 및 메일 주소 확인
> 불분명한 메일 및 첨부파일, URL 클릭을 지양
> 첨부파일의 경우 확장자 확인
> 바로가기 파일이나 실행 파일 클릭 지양
> 파일 탐색기 > 보기 > '파일 확장명’ 체크 상태 확인
> 파일 탐색기 > 보기 > 옵션 > 폴더 및 검색 옵션 변경 > 보기 > 알려진 파일 형식의 파일 확장명 숨기기 체크 해제 상태 확인
> 이메일 보안 솔루션을 사용해 유해성 유무 확인 및 악성 이메일을 차단

⑤ 기타
> 홈페이지와 주요 시스템에 대한 모니터링 강화
> 자동 업데이트를 통해 운영체제 및 SW를 최신 상태 유지
> 바이러스 백신 프로그램을 설치 및 최신 상태 유지
> 랜섬웨어 감염에 대비한 복구 계획 수립 및 모의훈련 수행 요구
기타 - 침해사고를 당했을 경우
> 한국인터넷진흥원인터넷침해대응센터 종합상황실(02-405-4911~5)
> KISA 인터넷보호나라&KrCERT 홈페이지를 통해 신고

 

보안뉴스

 

친러 해킹그룹, 우크라이나 지원 빌미로 한국 공격... 랜섬웨어·디도스 주의 권고

러시아-우크라이나(이하 러-우) 전쟁에 북한군이 불법 파병되는 등 국제정세 불안정에 따라 우리나라에 대한 사이버 위협이 증가하고 있다. 한국이 우크라이나를 지원했다는 빌미로 친러시아

www.boannews.com

 

KISA 보호나라&KrCERT/CC

KISA 보호나라&KrCERT/CC

www.boho.or.kr

 

KISA 보호나라&KrCERT/CC

KISA 보호나라&KrCERT/CC

www.boho.or.kr

 

요약 - ’EmeraldWhale(에메랄드웨일)’, 노출된 Git 설정 파일 스캔해 클라우드 계정 인증 정보 탈취
- IP 범위를 자동화된 툴로 스캔해 .git/config나 .env 등 민감한 정보를 포함할 가능성이 있는 설정 파일 탐색
내용 - ’EmeraldWhale(에메랄드웨일)’
> 깃허브(GitHub), 깃랩(GitLab), 비트버킷(BitBucket) 등 주요 코드 저장소 타깃으로 해당 파일에서 API 키나 인증 토큰을 확보
> 이를 통해 추가로 저장소에 접근해 클라우드 서비스 및 이메일 서비스 인증 정보를 더 많이 확보하는 방식으로 진행
> 탈취된 인증 정보는 아마존 S3 버킷에 보관한 후 피싱, 스팸 캠페인에 사용되거나 사이버 범죄자들에게 직접 판매

- httpx와 Masscan 같은 오픈소스 도구를 사용
> 전 세계의 IP 주소 리스트를 42억 개에 이르는 파일로 준비해 약 5억 개의 IP 주소를 스캔
> 유효한 토큰을 찾으면 curl 명령어를 사용해 클라우드 API에 검증
> 접근이 가능할 경우 해당 저장소를 다운로드해 클라우드 서비스와 이메일 플랫폼의 인증 정보를 추출
> 이메일 서비스의 인증 정보는 대규모 스팸 및 피싱 공격에 활용
기타 -

 

보안뉴스

 

“해커, 노출된 Git 설정 파일 통해 클라우드 계정 15,000개 탈취” - 데일리시큐

대규모 사이버 공격 ’EmeraldWhale(에메랄드웨일)’이 노출된 Git 설정 파일을 스캔해 약 15,000개의 클라우드 계정 인증 정보를 탈취했다. 이 캠페인은 클라우드 보안 기업 시스디그(Sysdig)에 의해 밝

www.dailysecu.com

 

Massive Git Config Breach Exposes 15,000 Credentials; 10,000 Private Repos Cloned

EMERALDWHALE campaign exploits Git configurations, compromising 10,000+ repos and 15,000 credentials for phishing.

thehackernews.com

 

요약 - 친러 성향 해커 서버 킬러스, 텔레그램을 통해 국내 CCTV 해킹 주장
- CCTV IP와 비밀번호 일부 모자이크 공개 및 30달러 요구
내용 - 09.23 서버 킬러스(SERVER KILLERS), 텔레그램에 국내 CCTV 해킹 주장
> 서울, 인천, 대전, 수원 지역 CCTV 100대 해킹 주장
> PC방, 사무실, 길거리, 계단, 주차장 등 공용 공간 영상
> 09.22~09.23 경 촬영된 영상

- 모자이크 처리된 CCTV IP와 비밀번호 공개 및 30달러 요구
> 샘플로 공개한 자료에 CCTV IP와 평문 접속정보가 포함
> 보안이 취약한 ID/PW를 사용하는 CCTV를 찾아 접속한 것으로 추정
> 가급적 인터넷 연결 차단, ID/PW 강화, 보안 패치 적용 등 필요
기타 - 국내 다수의 CCTV가 여전히 해킹 위험에 노출
> CCTV 침해 사건 대부분의 경우 초기 패스워드 사용 및 누구나 접근 가능한 설정이 원인
> CCTV 해킹 방지 방안은 다각도로 고려돼야 할 필요
> 비밀번호 변경, 접근 제어, 암호화 전송 등 조치 필요

 

보안뉴스

 

친러 성향 해커 ‘서버 킬러스’, 서울·인천 등 국내 CCTV 100대 이상 해킹 주장

서울 등 국내 주요 지역 CCTV를 해킹했다고 주장한 해커가 자신이 운영하는 텔레그램에 CCTV 화면을 공개한 정황이 포착됐다. 지난 28일 보안뉴스에 제보한 한 제보자는 “해커가 국내 CCTV를 해킹

www.boannews.com

 

1. Crescendo [1]

[사진 1] Crescendo

대상 모델의 출력을 활용하여 모델이 안전 장치를 우회하도록 유도하여 탈옥하는 멀티-턴 공격
> 목표 달성을 위한 기초가 될 수 있는 질문으로 공격 시작
관련된 무해한 주제로 시작하여 점진적으로 질문을 강화하여 모델의 응답을 의도한 결과로 유도
> 따라서 사용자의 프롬프트에 반응하도록 설계된 방어 및 안전 조치를 우회

 

- 모델의 내부 작동 방식을 파악할 필요가 없음
> 사용자가 LLM과 상호작용하는 데 필요한 수준의 지식만 필요

 

- 탈옥의 성공 여부를 세 가지 지표(자체 평가, Perspective API, Azure Content Filter)를 통해 평가
> 자체 평가 : 자동화된 평가(1차 및 2차 Judge LLM 평가) 후 가장 높은 성과를 보인 응답에 대해 수동 검토
> Perspective API : 6가지 지표(Toxicity, Severe Toxicity, Insult, Profanity, Sexually Explicit, Threat)를 평가
> Azure Content Filter : 4 가지 지표(Hate Speech, Self-Harm, Sexually Explicit Content, Violence)를 평가

※ Perspective API : 텍스트 내 잠재적인 유해 콘텐츠를 분석하여 여러 지표를 점수로 평가하는 도구 [2]
※ Azure Content Filter : Azure AI 서비스의 일부로, 텍스트 및 이미지 콘텐츠를 분석하여 유해하거나 부적절한 내용을 탐지하고 필터링하는 기능을 제공 [3]

 

- LLM 학습 단계에서 학습 데이터의 사전 필터링과 LLM의 정렬을 강화 필요
> 전자는 악성 콘텐츠 생성 및 탈옥의 가능성이 낮아지나 비용적 문제 존재
> 후자는 해당 공격을 유발하는 콘텐츠로 LLM을 미세 조정하는 방법
> 또는, 입출력 모두에 콘탠츠 필터 적용

 

2. Deceptive Delight [4]

[사진 2] Deceptive Delight

LLM을 대화에 참여시켜 가이드라인을 우회하고 안전하지 않거나 유해한 콘텐츠를 생성하도록 유도하는 멀티-턴 공격
> 64.6%의 공격 성공률을 보이며, 세 번의 대화 턴 내 유해한 콘텐츠를 생성할 수 있음
> 첫 번째 턴 : 3개의 주제(정상 주제 2개+안전하지 않은 주제 1개)를 연결하는 일관된 서사를 만들도록 요구
> 두 번째 턴 : 각 주제에 대해 더 자세히 설명하도록 요청 (정상 주제를 논의하는 동안 안전하지 않은 콘테츠를 생성할 수 있음)
> 세 번째 턴(선택 사항) : 안전하지 않은 주제에 대한 디테일 등 확장을 요청 (안전하지 않은 콘테츠의 구체성이 증가 됨)

 

- 양성(정상) 주제 사이에 안전하지 않거나 제한된 주제를 포함하여 LLM이 안전하지 않은 콘텐츠가 포함된 응답을 생성하도록 유도
> 콘텐츠 필터는 외부 방어 계층 역할을 하여 안전하지 않은 콘텐츠가 모델에 들어오거나 나가는 것을 차단
> 자연어 처리 기술을 사용해 텍스트를 분석하며 유해하거나 부적절한 콘텐츠를 감지하는데 초점
> 그러나, 속도와 효율성을 우선시해야 하므로 상대적으로 덜 정교함
> 연구는 이러한 모델 자체의 안전 메커니즘을 우회하는 데 중점을 둠

 

LLM이 긴 대화에서 맥락을 유지하는데 어려움을 겪는 점을 악용
> 무해한 콘텐츠와 잠재적으로 위험한(또는 해로운) 콘텐츠를 섞인 프롬프트를 처리할 때 맥락을 일관되게 평가하는 데 한계를 보임
> 복잡하거나 긴 문장에서 모델은 양성적인 측멱을 우선시하여, 위험 요소를 간과하거나, 잘못 해석할 수 있음

 

- 세 가지(성공률, 유해성, 생성된 콘텐츠의 품질) 평가 지표로 6가지 카테고리에 걸쳐 40개의 안전하지 않은 주제를 8개의 모델 평가
> 6가지 카테고리: Hate(증오), Harassment(괴롭힘), Self-harm(자해), Sexual(성적인), Violence(폭력), Dangerous(위험)
※ 두 번째 턴에서 세 번째 턴 사이에 유해성 점수 21%, 생성된 콘텐츠의 품질 점수 33% 증가

 

모델의 유용성과 유연성을 유지하며 탈옥 위험을 완화하기 위한 다층 방어 전략 필요
> 정렬 훈련 기술 강화
> 더 많은 방어 매커니즘 탐색
> 탈옥 취약점을 평가 및 해결하기 위한 포괄적 프레임워크 개발
> 연구자-개발자-AI 서비스 제공 업체 간 협력 환경 조성 : 모델의 회복력을 지속적으로 개선하는 데 필수적

 

3. Context Fusion Attack (CFA) [5]

[사진 3] Context Fusion Attack (CFA)

악의적인 키워드를 무해한 키워드로 교체하여 악성 의도를 숨기는 방식으로 LLM의 안전 장치를 우회
> 공격 단계 : 키워드 추출-컨텍스트 생성-공격
> 키워드 추출 : 전처리 단계에서 악성 키워드 필터링 및 추출
> 컨텍스트 생성 : 악의적인 키워드를 무해한 키워드로 대체하여 새로운 문장 생성
> 공격 : 새롭게 생성된 콘텍스트를 이용해 LLM의 안전 장치 우회

4. 참고

[1] https://crescendo-the-multiturn-jailbreak.github.io//
[2] https://medium.com/@losad2020/%EA%B5%AC%EA%B8%80-i-o-%EC%B1%85%EC%9E%84%EA%B0%90%EC%9E%88%EB%8A%94-%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5-%EC%8B%A4%EB%AC%B4-%EC%A0%81%EC%9A%A9-%EB%B0%A9%EB%B2%95-73e170d30289
[3] https://learn.microsoft.com/ko-kr/azure/ai-services/openai/concepts/content-filter?tabs=warning%2Cuser-prompt%2Cpython-new#content-filter-types
[4] https://unit42.paloaltonetworks.com/jailbreak-llms-through-camouflage-distraction/
[5] https://arxiv.org/abs/2408.04686

1. 개요

- 24.05 무료 S/W의 팝업(Toast) 광고 프로그램을 악용한 TA- RedAnt의 대규모 공격이 탐지 [1]
- IE의 자바스크립트 엔진(jscript9.dll)에 존재하는 제로데이 취약점 악용
- 22년 악용한 IE의 Type Confusion 취약점(CVE-2022-41128)에 간단한 코드를 추가하여 보안 패치를 우회

 

1.1 Chakra

- MS에서 제작한 웹 브라우저의 자바스크립트 엔진
> 웹 브라우저는 HTML, CSS, JavaScript 등의 언어로 작성코드를 사람이 읽을 수 있는 문서로 출력하는 프로그램
> 웹 브라우저에서 자바스크립트 코드를 해석하고 실행하는 역할을 수행

구분 이름
IE 11.0 이하 버전 legacy Chakra engine(jscript9.dll)
Edge Legacy 브라우저 new Chakra engine or Edge engine(Chakra.dll)

1.1.1 동작 과정

- 웹 브라우저에서는 JavaScript의 동작을 위해 자체 엔진을 포함하고 있으며, 빠른 실행을 위해 JIT(Just-In-Time) Compilation 방식을 사용
- MS Chakra에서 JavaScript로 작성된 코드가 실행되는 과정

구분 설명
Parsing 소스코드를 파싱하여 Abstract Syntax Tree(AST)를 생성
※ Abstract Syntax Tree(AST) : 소스코드의 구조를 트리 형태로 나타낸 자료구조
Interpreting - AST는 바이트코드(Bytecode)로 변환되어 인터프리터에 의해 실행
- 실행 중인 함수의 데이터 유형 및 호출 횟수와 같은 정보를 분석해 함수의 프로파일을 생성
Compilation - 생성된 프로파일을 바탕으로 최적화된 기계코드인 JIT’ed code 생성
※ 인터프리터에서 여러 번 호출되는 코드가 탐지되면 바이트코드를 실행하는 대신 JIT’ed code를 실행해 프로그램 동작 속도를 향상 시킴

 

- JavaScript엔진에서는 여러 번 호출되는 코드를 따로 관리

구분 설명
Hot - 자주 반복되는 코드
- 코드가 Hot으로 탐지되면 엔진은 해당 코드를 스텁코드(Stub Code)로 변환
- 이후 바이트코드를 실행하지 않고 미리 생성한 스텁코드를 사용하여 실행 속도를 향상
Warm 덜 자주 반복되는 코드

 

1.2 Toast 광고

- 다양한 무료 S/W와 함께 설치되어 동작
> 실행 시 광고서버로부터 광고 컨텐츠를 다운받아 PC 화면 우측 하단에 광고창 표시
> 서버는 광고 컨텐츠가 포함된 HTML과 JavaScript로 응답
> Toast 광고 프로그램은 응답값을 IE 브라우저 또는 IE 관련 모듈로 랜더링하여 팝업 광고창을 띄움

2. 주요내용

2.1 CVE-2024-38178

[사진 1] CVE-2024-38178 [2]

- Windows Scripting Engine에서 발생하는 Type Confusion 취약점으로 메모리 손상을 유발해 원격 명령 실행을 가능하게 함
> jscript9.dll에서 발생하는 Type Confusion 취약점

※ Type Confusion 취약점 : 프로그램에서 사용하는 변수나 객체를 선언 혹은 초기화되었을 때와 다른 타입으로 사용할 때 발생하는 취약점

스텁코드는 Type Confusion 문제가 발생할 수 있음
- 매개변수로 정수형 변수를 입력받는 함수가 있으며, 메인에서 100번 호출된다고 가정
> 엔진에서는 Hot으로 간주하여 정수형 변수를 전달받는 스텁코드로 변환
> 그 결과, 해당 변수의 데이터 유형을 정수로 예측
> 이 때, 매개변수를 정수가 아닌 다른 데이터 유형으로 전달할 경우 Type Confusion 발생

 

2.2 상세분석

[사진 2] iframe이 삽입된 HTML

- 해커는 국내 광고 대행사 중 한 업체의 광고 서버를 해킹
Toast 광고 프로그램에 전달되는 HTML 코드에 iframe을 삽입하여 경유지를 통해 JavaScript가 로드 되도록 변조
> 해당 JavaScript 파일명은 ad_toast이며 IE(JScript9.dll)의 RCE 취약점이 발현되는 코드가 삽입
> 피해자 PC에 설치된 Toast 광고 프로그램은 취약점 코드를 받아 랜더링하는 과정에서 Exploit 및 해커의 쉘 코드로 실행 흐름이 바뀜

 

[사진 3] CVE-2024-38178 Exploit

- 해커는 과거 악용했던 CVE-2022-41128(Windows 스크립트 언어 RCE [4]) Exploit 코드에 단 3줄을 추가해 기존 패치 우회

ex_func(false, false)를 반복 호출하여 JIT 컴파일러의 최적화 오류를 유도한 뒤 인자를 true로 바꿔 호출

 

- "q=g" 연산으로 Type Confusion 발생 

> 정수 배열로 초기화된 변수 q에 변수 g가 가리키는 데이터를 참조하면 변수 q의 Type이 Object로 변경
> 하지만, JIT 컴파일러의 최적화 오류로 인해 Type을 계속해서 정수 배열로 판단

 

이후 q[4], q[11], q[12]의 값을 0x1FFFFFFF로 변경

> 변경하는 이유는 해당 값이 배열 av의 Type(Js::JavascriptNativeIntArray)과 관련
> 변경한 값은 순서대로 배열 av의 Array Length, Array Actual Length, Buffer Length 항목
> 배열의 길이를 조작하면 Object Dataview를 사용하여 임의의 메모리 영역에 대한 읽기 및 쓰기가 가능하게 되어 임의 코드를 실행할 수 있음

※ JIT 컴파일러의 배열 최적화 과정에서 초기화된 변수로 착각하게 만드는 방법을 이용해 CVE-2022-41128의 패치를 우회

 

[사진 4] 패치

- 해당 취약점은 MS 8월 보안업데이트에서 패치 [4]

> wil::details::FeatureImpl<_ _WilFeatureTraits_Feature_1489045819>::_ _private_ IsEnabled(&`wil::Feature<_ _WilFeatureTraits_Feature_1489045819>::GetImpl’::`2 ’::impl); 함수가 추가
> 해당 함수의 결과 값에 따라 변수 초기화 여부를 검증하는 분기로 진입
> 진입 후 ValueType 클래스에서 정의된 연산자를 통해 두 개의 정수형 값 비교 과정 추가
> 두 Type을 비교해 값이 다를 경우 SetValueType 함수를 호출하여 Type을 일치시키는 추가적인 과정이 수행

 

2.3 악성코드 유포

- 과거부터 꾸준히 사용해온 RokRAT 악성코드를 유포하며 공격 흐름은 아래와 같음
> Ruby를 사용하여 악성 행위 지속성 확보 및 상용 클라우드 서버를 통해 명령제어를 수행

실행 단계 설명
1차 악성코드(43) 다운로드 및
explorer.exe에 인젝션
실행 PC의 파일·프로세스를 확인하여 분석 환경인지 탐지
> 악성코드 43은 첫 1바이트로 XOR 후 실행되는 쉘코드
> 분석 환경이 아니라고 판단되면 경유지에 접속해 2차 악성코드 다운 및 실행
2차 악성코드(23) 다운로드 및 실행 컴퓨터 이름 등 시스템 정보를 수집하고 추가 감염 여부 선별
> 악성코드 23은 첫 1바이트로 XOR 후 In-Memory로 실행되는 PE 형태
> 시스템 정보를 경유지로 전송하고, 응답에 따라 3차 악성코드 다운 및 실행
3차 악성코드(move) 다운로드 및 실행 후
추가 파일 다운로드
악성 스크립트를 삽입한 ruby standalone 드롭 및 악성 행위 지속성 확보
> 악성코드 move는 첫 1바이트로 XOR 후 In-Memory로 실행되는 PE 형태
> 2차 경유지는 원드라이브 1개와 국내 정상 사이트 2개가 악성코드 내부에 하드코딩
> 지속성 확보를 위해 자동실행 되도록 설정 (주기적 실행 또는 PC 부팅 시 실행)
system32 폴더 내 exe 무작위 선택 후
실행 및 인젝션
PC에 설치된 백신(AVAST·SYMANTEC)을 확인하여 다르게 동작
> 현재 실행중인 프로세스 명에 "UBY"가 있는지 확인 후 설치된 백신에 따라 동작 결정
> AVAST·SYMANTEC : 현재 프로세스에서 In-Memory 방식으로 실행
> 그 외 백신 : system32 폴더에 있는 랜덤 EXE에 인젝션하여 실행
system32 폴더 내 exe 무작위 선택 후
실행 및 인젝션
PC에 설치된 백신(AVAST·SYMANTEC)을 확인하여 다르게 동작
> 프로세스의 자체 종료를 막기 위해 ExitProcess 함수를 후킹 및 함수 인자 및 설치된 백신에 따라 동작 결정
> 인자가 0xAC가 아닐 경우 대기 상태, 0xAC일 경우 후킹을 복원
> AVAST·SYMANTEC : rubyw. exe를 재실행
> 그 외 백신 : system32 폴더에 있는 랜덤 EXE에 인젝션하여 실행
In-Memory로 RokRAT 실행 상용 클라우드(얀덱스 등)를 경유지로 명령제어를 수행하여 PC 정보 절취
> 윈도우 프로시저에서 수신되는 메시지를 기반으로 해당 핸들러에서 악성 행위를 수행

 

구분 MD5
ad_toast e11bb2478930d0b5f6c473464f2a2B6e
43 b9d4702c1b72659f486259520f48b483
23 b18a8ea838b6760f4857843cafe5717d
MOVE da2a5353400bd5f47178cd7dae7879c5
ban04.bak(top_08.bak,content) bd2d599ab51f9068d8c8eccadaca103d
operating_system.rb 감염 PC마다 다름
1차 로더
2차 로더
RokRAT

 

2.4 결론

- MS는 22.06 IE 지원 종료 발표 및 최신 Window OS는 IE가 웹 브라우저로 사용되는 것을 제한하는 등의 조치
> 과거에 비해 워터링홀 공격의 가능성은 희박해짐
> 그러나, 일부 Window 어플리케이션들은 IE를 내장하거나 관련 모듈을 사용해 공격 벡터로 악용될 수 있음
> OS 및 SW 등의 보안 업데이트를 준수하고, 제조사들은 제품 개발 시 보안에 취약한 개발 라이브러리 및 모듈 등이 사용되지 않도록 주의 필요

3. 참고

[1] https://www.ncsc.go.kr:4018/main/cop/bbs/selectBoardArticle.do?bbsId=SecurityAdvice_main&nttId=164037&menuNo=020000&subMenuNo=020200&thirdMenuNo=
[2] https://nvd.nist.gov/vuln/detail/CVE-2024-38178
[3] https://www.boho.or.kr/kr/bbs/view.do?searchCnd=1&bbsId=B0000133&searchWrd=ms&menuNo=205020&pageIndex=1&categoryCode=&nttId=71524
[4] https://nvd.nist.gov/vuln/detail/CVE-2022-41128
[5] https://www.scworld.com/brief/windows-zero-day-leveraged-for-rokrat-malware-delivery
[6] https://thehackernews.com/2024/10/north-korean-scarcruft-exploits-windows.html
[7] https://thehackernews.com/2024/08/microsoft-issues-patches-for-90-flaws.html
[8] https://www.scworld.com/news/microsoft-patches-9-zero-days-6-exploited-in-the-wild
[9] https://www.boannews.com/media/view.asp?idx=132049
[10] https://www.dailysecu.com/news/articleView.html?idxno=160314
[11] https://www.boannews.com/media/view.asp?idx=133660

1. 개요

- 최근 복사-붙여 넣기 기법을 활용한 ‘ClickFix’라 불리는 새로운 공격 발견 [1]
- 가짜 팝업 메시지의 버튼을 클릭하면 악성코드 또는 악의적 프로그램이 다운로드 되는 형태

 

2. 주요내용

2.1 ClickFix

[사진 1] ClickFix 예시

- 유명 서비스를 위조해 문서나 페이지 내 긴급한 오류가 발생했다는 팝업 텍스트 상자를 표시
사용자를 속이기 위해 MS Office 문서나 Google Meet 등 유명 서비스를 위조해 페이지 내 팝업 표시
사용자가 직접 PowerShell(powershell.exe)이나 Windows 명령 프롬프트(cmd.exe)를 통해 실행하라는 메시지가 표시되며, "How to fix" 등의 버튼을 클릭하면 악의적 명령이 복사

 

2.2 악성 VBS 스크립트

- hxxps://googiedrivers[.]com/fix-error 파일에 VBScript가 포함되어 있으며 총 4개의 행위 수행

구분 설명
MSHTA 프로세스 체크 및 종료 WMIService를 사용하여 "mshta.exe" 프로세스가 실행 중인지 확인 하고 활성화되어 있으면 종료

※ WMI (Windows Management Instrumentation) : Windows에서 시스템 및 네트워크 관리 작업을 수행하는 데 사용되는 기술로 다양한 하드웨어 및 소프트웨어 구성 요소를 관리하고 모니터링할 수 있는 인터페이스 제공
파일 다운로드 및 실행 stealc.exe, ram.exe를 임시 경로에(각각 tempPath, secondTempPath에 다운로드) 다운로드 및 실행
> 파일을 실행하여 Build #1 및 Build #2의 성공 여부를 확인한 후 상태를 서버로 전송

- stealc.exe
> 정보 탈취 악성코드(Stealc)의 일종
> 사용자 시스템, 웹 브라우저, 암호화폐 지갑 등 민감정보를 수집 및 C2 서버 전송

- ram.exe
> 정보 탈취 멀웨어(Rhadamanthys, Danabot) 추가 다운 및 실행

※ 파일 다운로드 경로
> hxxps://us1web-com[.]us/stealc.exe
> hxxps://us1web-com[.]us/ram.exe
서버 통신 - NotifyServer(status)를 사용해 특정 서버에 실행 상태를 보고하는 HTTP 요청을 전송
> 서버 URL: hxxp[://]webpalmland[.]com/api/cmd/runed
공격자의 서버에 IP 주소와 상태 전송 - GetExternalIPAddress() 함수를 호출하여 IP 확인 사이트에서 IP 주소를 검색하여 저장 및 공격자 서버로 전송
> 서버 URL: hxxp[://]webpalmland[.]com/api/cmd/runed

 

2.3 결론

- 과거와 달리 웹 브라우저 보안이 강화되면서 웹 브라우저 취약점을 이용한 악성코드 배포가 어려워짐
> 사용자가 직접 다운로드 및 실행할 수 있는 형태로 점차 진화
> 사용자는 PowerShell(powershell.exe) 또는 명령 프롬프트(cmd.exe)에서 명령을 실행하도록 요청하는 팝업 주의할 필요

 

- 또한, 여러 정보 탈취 멀웨어를 다운로드 및 실행하는 형태
> 하나의 멀웨어가 탐지 및 제거되어도 다른 멀웨어를 사용해 지속 정보 수집
> 수집된 정보가 2차 피해로 이어질 수 있음

3. 참고

[1] https://blog.criminalip.io/2024/10/07/clickfix-fake-error-messages/
[2] https://www.boannews.com/media/view.asp?idx=133771&page=1&kind=1

요약 - AWS, Azure의 인증 키들이 안드로이드와 iOS 앱들에서 발견
- 인증 정보를 코드 내에 하드코딩하고 암호화하지 않은 상태로 포함
내용 - AWS, Azure 등 클라우드 서비스의 인증 정보가 암호화 없이 하드코딩된 것으로 확인
> 앱의 바이너리 또는 소스 코드에 접근할 수 있는 누구나 자격 증명을 추출하여 데이터 조작 또는 유출할 수 있음을 의미

- 해당 앱들은 Google Play Stroe와 Apple App Store 등에서 수백만 번 다운로드됨
> Google Play Store : Pic Stitch, Meru Cabs, ReSound Tinnitus Relief 등
> Apple App Store : Crumbl, VideoShop 등

- 개발 단계에서의 잘못된 보안 관행이 주요 원인
> 개발자들이 편의상 자격 증명을 하드코딩하고 암호화 없이 남겨둔 채 배포된 것

- 권고 사항
> 환경변수 사용 : 민감한 자격 증명을 런타임에 로드되는 환경변수에 저장
> 비밀 관리 도구 사용 : AWS Secrets Manager나 Azure Key Vault와 같은 전용 비밀 관리 도구를 활용
> 민감 데이터 암호화 : 자격 증명을 앱에 저장해야 하는 경우 강력한 암호화 알고리즘 적용 및 런타임때 복호화
> 코드 리뷰 및 감사 : 정기적으로 코드 리뷰와 보안 감사를 수행해 하드코딩된 자격 증명과 기타 보안 취약점 식별 및 제거
> 보안 스캔 자동화 : 자동화된 보안 스캔 도구를 CI/CD에 통합하여 개발 프로세스 초기에 하드코딩된 자격 증명과 기타 보안 결함 감지
기타 - 22.09 보안 연구원은 AWS 자격 증명이 포함된 1,800개 이상의 iOS 및 Android 앱을 발견
> 이 중 77%가 코드베이스에 유효한 액세스 토큰

 

보안뉴스

 

유명 클라우드로의 크리덴셜, 각종 모바일 앱 통해 퍼진다

보안 외신 블리핑컴퓨터에 의하면 AWS와 애저(Azure)라는 거대 공공 클라우드의 인증 키들이 안드로이드와 iOS 앱들에서 발견되었다고 한다. 클라우드와 연계된 앱들을 만들고 제공하는 과정에서

www.boannews.com

 

수백만 사용하는 모바일 앱 보안 허점...AWS, Azure 인증 키 노출돼 - 데일리시큐

시만텍(Symantec) 최근 분석에 따르면, 수백만 명이 사용하는 인기 모바일 애플리케이션들이 아마존 웹 서비스(AWS)와 마이크로소프트 애저 블롭 스토리지(Microsoft Azure Blob Storage) 같은 클라우드 서

www.dailysecu.com

 

AWS, Azure auth keys found in Android and iOS apps used by millions

Multiple popular mobile applications for iOS and Android come with hardcoded, unencrypted credentials for cloud services like Amazon Web Services (AWS) and Microsoft Azure Blob Storage, exposing user data and source code to security breaches.

www.bleepingcomputer.com

 

Exposing the Danger Within: Hardcoded Cloud Credentials in Popular Mobile Apps

Examining the hidden risks posed to user privacy and security due to presence of hardcoded credentials within popular mobile apps.

www.security.com

 

+ Recent posts