1. 개요 [1]

- SmartScreen, Windows Smart App Control는 평판 기반 보호를 제공

- 평판 기반 보호는 낮은 오탐률을 유지하면서 탐지 기능을 향상 시킬 수 있으나, 우회가 가능

> 공격자가 SmartScreen, Windows Smart App Control을 경고나 팝업 없이 우회할 수 있는 설계상 약점 존재

 

2. SmartScreen, Windows Smart App Control

2.1 SmartScreen [2][3]

- Window 8 부터 적용된 보안 기능

- 사용자를 악성 웹 사이트, 악성 파일 다운로드 등의 위협으로부터 보호

- 사용자가 웹 사이트를 방문하거나 임의의 파일을 다운 또는 설치할 때 사이트와 파일의 안전성을 검증하여 차단 또는 경고를 발생

- 방문하는 웹 사이트 또는 다운로드 파일의 평판(사전 정의 목록 비교, 다운로드 트래픽, 백신 조회 결과 등)을 비교하여 정상과 악성 판단

> 사용자로부터 사이트 또는 파일에 대한 의견을 받아 목록 업데이트 가능

> 웹 사이트의 경우 상위 트래픽(정상), 위험(차단), 알 수 없음(사용자가 접근 여부 결정)

> 파일의 경우 다운로드 허용 또는 차단(파일 실행 시 경고 창을 발생시켜 마지막으로 확인)

※ 설정 (Windows + I) > 개인 정보 및 보안 > Windows 보안 > 앱 및 브라우저 컨트롤 > 평판 기반 보호 > 평판 기반 보호 설정 > Microsoft Edge SmartScreen

[사진 1] SmartScreen

2.2 Windows Smart App Control (SAC) [4]

- Window 11 부터 적용된 보안 기능

- 사용자가 직접 설치하는 모든 앱을 실시간 분석 및 평판을 확인(사전 정의 목록 비교, 서명 출처 등)하여 악성 앱으로부터 시스템을 보호

> 앱 실행 시 앱에 대한 정보를 MS의 클라우드 기반 보안 서비스로 전송하여 악성 여부 확인

> 앱에 대한 확실한 예측을 할 수 없는 경우 서명의 유효성을 확인

> 악성이거나 유효한 서명이 없는 경우 또는 유효하지 않은 경우 앱 차단

※ 설정 (Windows + I) > 개인 정보 및 보안 > Windows 보안 > 앱 및 브라우저 컨트롤 > 스마트 앱 컨트롤

[사진 2] Windows Smart App Control (SAC)

3. 우회 방법

3.1 서명된 악성코드 (Signed Malware)

- SAC악성 코드에 코드 서명 인증서를 사용하여 서명함으로써 우회 가능

> 공격자는 기업을 사칭하여 EV(Extend Validation) 서명 인증서를 도용하는 방법을 찾아냄

> 인증 기관(CA, Certificate Authority)는 부정하게 취득한 인증서를 최소화하고 남용을 단속하는데 더 많은 노력 필요

 

* 참고 [5]

구분 설명
DV (Domain Validation) 도메인의 소유정보만으로 인증
OV (Organization Validation) DV + 소속되어 있는 회사(조직) 정보를 추가로 인증
EV (Extend Validation) OV + 확장적인 검증이 필요

 

3.2 평판 하이재킹 (Reputation Hijacking)

- 평판 기반 멀웨어 방지 시스템에 대한 일반적인 공격 방법

> 평판이 좋은 앱을 찾아 용도를 변경하여 시스템을 우회하는 것을 포함

> FFI(Foreign Function Interface) 기능을 포함하는 경우 공격자는 메모리에 임의의 코드와 멀웨어를 쉽게 로드하고 실행할 수 있음

* Foreign Function Interface(FFI): 한 프로그래밍 언어로 작성된 프로그램이 다른 언어로 작성된 서비스를 이용할 수 있거나 그에 따른 함수를 호출할 수 있는 구조 [6]

 

- 또는, 정상적인 애플리케이션을 악용하여 평판을 가로챌 수 있음

> BoF 또는 여러 애플리케이션을 체인으로 연결하여 임의의 코드를 실행시킬 수 있음

 

* 관련 PoC [7]

3.3 평판 씨딩 (Reputation Seeding)

- 격자가 제어하는 바이너리를 시스템에 시드하는(≒뿌리는) 것

> 신중하게 제작된 바이너리의 경우 무해한 것으로 보일 수 있으며, 추후 악용 가능

> SAC 같은 보안 시스템은 시간이 지남에 따라 파일의 신뢰도를 높이는 경향이 있으며, 이를 이용하여 악성 코드의 신뢰도를 높일 수 있음

 

* 관련 PoC [8]

3.4 평판 변조 (Reputation Tampering)

- 일반적으로 평판 시스템은 파일의 해시값을 사용하여 파일의 무결성을 보장

> 그러나 SAC는 파일의 일부분을 변경해도 평판이 유지되는 경우가 있음

> 공격자들은 파일의 일부분을 변경하여 악성 코드를 삽입할 수 있으며, 조작된 파일은 SAC의 검증을 통과할 수 있음

 

* 관련 PoC [9]

3.5 LNK Stomping

- 사용자가 파일을 다운로드하면 브라우저는 Mark of the Web (MotW)라는 데이터 스트림 생성

> SmartScreen는 웹 마크가 있는 파일만 검사하며, SAC는 특정 파일 형식이 있는 경우 이를 완전히 차단

* Mark of the Web (MotW): 파일이 인터넷에서 다운로드되었다는 것을 나타내는 것으로, 웹 마크가 있는 파일 실행 시 인터넷에서 다운로드되었으며 해로울 수 있음을 경고 [10]

 

- 비표준 대상 경로나 내부 구조를 가진 LNK 파일을 통해 우회가 가능

> 해당 LNK 파일은 explorer.exr에 의해 표준 형식으로 수정

> 이러한 수정으로 인해 보안 검사가 수행되기 전에 MotW 라벨이 제거되어 우회 가능

 

* 관련 PoC [11]

4. 탐지

- 평판 하이재킹은 특성상 탐지하기 어려움

> 남용되는 것으로 알려진 애플리케이션을 분류 및 차단하는 것은 지속적인 활동이나, 이러한 활동은 항상 공격자보다 뒤쳐짐

> 좀 더 강력한 접근 방식은 남용되는 소프트웨어의 일반적인 범주를 식별하기 위한 행동 시그니처를 개발하는 것

 

5. 결론

- 평판 기반 보호 시스템은 상용 악성 코드를 차단하는 강력한 계층

> 그러나 다른 보호 기술과 마찬가지로 우회할 수 있는 방법이 존재

> SAC, SmartScreen에는 보안 경고 없이 최소한의 사용자 상호 작용으로 초기 액세스를 허용할 수 있는 여러 근본적인 설계 약점이 존재

> 두 기능을 활성화 한다고 하더라도 추가 보안 장치들이 필요

 

6. 참고

[1] https://www.elastic.co/security-labs/dismantling-smart-app-control
[2] https://learn.microsoft.com/ko-kr/windows/security/operating-system-security/virus-and-threat-protection/microsoft-defender-smartscreen/
[3] https://blog.naver.com/ucert/222547866683
[4] https://support.microsoft.com/en-us/topic/what-is-smart-app-control-285ea03d-fa88-4d56-882e-6698afdb7003
[5] https://www.koreassl.com/support/faq/DV-OV-EV-%EB%B3%B4%EC%95%88-%EC%9D%B8%EC%A6%9D%EC%84%9C%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90%EC%9D%B4-%EB%AD%94%EA%B0%80%EC%9A%94
[6] https://ko.wikipedia.org/wiki/%EC%99%B8%EB%B6%80_%ED%95%A8%EC%88%98_%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4
[7] https://github.com/joe-desimone/rep-research/blob/ea8c70d488a03b5f931efa37302128d9e7a33ac0/rep-hijacking/poc-rep-hijack-jam.zip
[8] https://github.com/joe-desimone/rep-research/blob/ea8c70d488a03b5f931efa37302128d9e7a33ac0/rep-seeding/poc-rep-seeding.zip
[9] https://github.com/joe-desimone/rep-research/blob/ea8c70d488a03b5f931efa37302128d9e7a33ac0/rep-tampering/poc-rep-tampering.zip
[10] https://en.wikipedia.org/wiki/Mark_of_the_Web
[11] https://github.com/joe-desimone/rep-research/blob/8e22c587e727ce2e3ea1ccab973941b7dd2244fc/lnk_stomping/lnk_stomping.py
[12] https://www.boannews.com/media/view.asp?idx=131857&page=4&kind=1

+ Recent posts