KOROMOON

착한 사마리아인이 되고 싶습니다.

11/16/2021

합법적인 HTML5 및 JavaScript 기능을 활용한 HTML Smuggling 공격 기법


( 1 ) 설명


< HTML Smuggling 공격 개요 >


합법적인 HTML5 및 JavaScript 기능을 활용한 HTML Smuggling 공격 기법이 피싱이나 RAT 관련 이메일 공격 시도에 악용하고 있음.


HTML Smuggling 공격은 특수 제작된 HTML 첨부 파일이나 웹페이지 내에서 인코딩된 악성 스크립트를 밀수(Smuggling)할 수 있도록 하는 공격으로 피해자가 웹 브라우저에서 HTML 을 열면 브라우저는 악성 스크립트를 디코딩하여 피해자 PC 에 페이로드를 실행시킴. 따라서 공격자는 악성 실행 파일이 네트워크를 직접 통과하는 대신(방화벽 통과) 피해자 PC 에 악성 코드를 실행 후 감염시킴.


이 기술은 서명이나 패턴을 기반으로 하는 보안장비를 우회시키는 데 효과적임.

추가적으로 HTML 안에 있는 코드를 Base64 등과 같이 난독화할 경우 더욱더 효과적임.




( 2 ) 작동 방식


HTML Smuggling 공격은 모든 최신 브라우저에서 지원되는 HTML5 및 JavaScript 의 합법적인 기능을 사용하여 방화벽 통과없이 악성 파일을 생성함.

앵커 태그(<a> 태그)의 download 속성과 JavaScript Blob 생성 및 사용을 활용하여 피해자 PC 에 다운로드된 페이로드를 합침.


먼저 피해자가 공격자로부터 특수 제작된 HTML 첨부 파일을 실행시킬 경우(또는 링크를 클릭할 경우) HTML5 의 "download" 속성을 통해 HTML 파일이 "href" 태그에서 참조하는 파일을 자동으로 다운로드할 수 있음.

아래 코드 예제를 보면 웹 브라우저가 해당 위치에서 "malicious.docx" 를 다운로드하고 "safe.docx" 로 장치에 저장하도록 지시함.


<a href="/malware/malicious.docx" download="safe.docx">Click</a>


참고로 앵커 태그와 파일의 "download" 속성은 아래와 같이 JavaScript 코드에서도 동일함.


var sample Anchor = document.createElement('a');

sampleAnchor.download = 'safe.docx';


그 다음 JavaScript Blob 을 사용하면 밀수(Smuggling) 측면이 추가됨.

JavaScript Blob 은 파일의 인코딩된 데이터를 저장한 다음 URL 을 JavaScript API 에 전달될 때 디코딩됨.

즉, 사용자가 수동으록 클릭하며 다운로드해야 하는 실제 파일에 대한 링크를 제공하는 대신 해당 파일을 자동으로 다운로드하고 아래와 같은 JavaScript 코드를 사용하여 피해자 PC 에서 악의적인 행위를 실행시킬 수 있음.


var maliciousBlob = new Blob([maliciousFile], {type: 'octet/stream'});

var fakeSafeURL = window.URL.createObjectURL(maliciousBlob);

sampleAnchor.href = fakeSafeURL;

sampleAnchor.click();


현재 HTML Smuggling 공격은 두 가지 방식으로 사용함.

- HTML Smuggling 페이지에 대한 링크가 이메일 메시지 포함

- HTML Smuggling 페이지가 첨부 파일 포함




( 3 ) 악용 사례


< Mekotio 뱅킹 트로이목마에서 관찰된 위협 행동 >


Mekotio 뱅킹 트로이목마에 악용한 사례임.


< Mekotio 뱅킹 트로이목마에 사용된 샘플 이메일 화면 >


위 화면에서 악성 링크가 포함된 이메일을 보냄.

링크를 클릭하면 HTML Smuggling 공격이 시작됨.


< HTML Smuggling 페이지 >


악성 웹사이트 hxxp://poocardy[.]net/diretorio/ 를 이용하여 악성 다운로더 파일을 드롭함.

위 화면은 웹 브라우저에 렌더링될 때 HTML Smuggling 페이지를 보여줌.

"href" 태그가 악의적인 ZIP 파일을 다운로드하기 위해 octet/stream 유형의 JavaScript Blob 을 참조함.

난독화된 JavaScript 파일이 포함된 ZIP 파일을 드롭함.


그리고 피해자가 ZIP 파일을 열고 JavaScript 를 실행하면 hxxps://malparque[.]org/rest/restfuch[.]png 에 접속하여 PNG 파일로 가장한 다른 ZIP 파일을 다운로드함.

두 번째 ZIP 파일에는 DAEMON Tools 와 관련된 다음 파일이 포함되어 있음.


sptdintf.dll - 합법적인 파일임. DAEMON Tools 및 Alcohol 120% 를 포함한 다양한 가상 디스크 응용 프로그램은 이 DLL(동적 연결 라이브러리) 파일을 사용함.

imgengine.dll - Themida 또는 VMProtect 로 패킹된 악성 파일임. 대상의 지리적 위치 정보에 액세스하고 자격 증명 도용 및 키로깅을 시도함.

임의의 이름을 가진 실행 파일 - 합법적인 파일인 "Disc Soft Bus Service Pro" 로 이름이 변경됨. "Disc Soft Bus Service Pro" 명명식으로 이름이 변경된 합법적인 파일로 DAEMON Tools Pro 일부이며 두 DLL 파일을 모두 로드함.


마지막으로 피해자가 기본 실행 파일(이름이 변경된 합법적인 파일)을 실행하면 DLL 사이드로딩을 통해 악성 DLL 을 시작하고 로드함.




( 4 ) 방어


MS 사는 분석가 측면에서 다음을 포함한 HTML Smuggling 공격의 일반적인 특성을 확인할 것을 제안함.


- 첨부된 ZIP 파일에 JavaScript 가 포함되어 있음

- 첨부 파일은 비밀번호로 보호되어 있음

- HTML 파일에 의심스러운 스크립트 코드가 포함되어 있음

- HTML 파일은 Base64 코드로 디코딩하거나 JavaScript 를 난독화함


그리고 보안장비 운영자는 다음을 포함한 HTML Smuggling 공격과 관련된 활동을 차단하거나 감사해야 함.


- JavaScript 또는 VBScript 가 다운로드한 실행 가능한 콘텐츠를 시작하지 못하도록 차단

- 잠재적으로 난독화된 스크립트의 실행 차단

- 보급, 연령 또는 신뢰할 수 있는 목록 기준을 충족하지 않는 실행 파일 실행 차단


위의 내용 외에도 사용자는 .js 및 .jse 파일을 메모장과 같은 텍스트 편집기와 연결하여 자동 JavaScript 코드 실행을 방지할 수 있음.


궁극적으로 가장 좋은 방어책은 사용자가 이메일 및 첨부 파일의 링크를 통해 다운로드한 파일을 열지 않도록 교육하는 것임.

이메일에서 다운로드한 모든 파일은 조심스럽게 다루어야 하며 열기 전에 주의 깊게 확인해야 함.


또한, 첨부 파일 또는 이메일 링크가 .js 확장자로 끝나는 첨부 파일을 다운로드하는 경우(JavaScript), 절대 열지 않아야 하며 삭제해야 함.


불행히도 Windows는 기본적으로 파일 확장자 표시를 비활성화하므로 많은 경우 확장자가 표시되지 않음.

이것이 사용자가 악성 파일을 여는 것을 방지하기 위해 파일 확장자 보기를 활성화하는 것이 항상 제안 되는 이유임.




참고 사이트 : 

https://twitter.com/MsftSecIntel/status/1418706920152522753

https://www.microsoft.com/security/blog/2021/11/11/html-smuggling-surges-highly-evasive-loader-technique-increasingly-used-in-banking-malware-targeted-attacks/


댓글 없음:

댓글 쓰기