일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 코드이그나이터
- 주식 청약 일정
- codeigniter
- 오라클
- SQL
- 주식 청약
- java
- 자바스크립트
- JavaScript
- Eclipse
- 맥
- IPO
- php
- 공모주 청약
- 제이쿼리
- html
- 리눅스
- linux
- 주식
- css
- Stock
- Oracle
- MYSQL
- 자바
- 공모주
- 공모주 청약 일정
- jquery
- 6월 공모주 청약 일정
- 7월 공모주 청약 일정
- Stock ipo
- Today
- Total
개발자의 끄적끄적
[공격] Fileless Attack(파일리스 공격) 탐지 및 방지 사례 [펌] 본문
[공격] Fileless Attack(파일리스 공격) 탐지 및 방지 사례 [펌]
최근(2019.7.8) Microsoft사는, Astaroth(아스타로스)라 불리는 파일리스(Fileless) 공격(Attack)을 탐지하여 malware가 설치되기 전에 무력화시켰다고 자사의 Blog에서 발표하였습니다. 그리고, 최초 침투가 시작되는 시점부터 마지막 payload가 실행되기 까지, 합법적인 Tool들이 사용되어졌지만, 자사의 "Microsoft Defender ATP" 에서 제공하는 next-gen protection 기능에 의해, 공격을 탐지하고 방지하는 것이 가능하였다고 발표하였습니다.
Microsoft사의 주장에 의하면, 자신들의 next-gen protection 기능으로, Fileless Attack도 탐지하여 방지 할 수 있다는 것입니다. 최종 악성코드인 payload가 Fileless 기법을 사용하여, memory에서 동작 중인 기존 Process에 바로 주입되어 실행되어 지지만, memory에 주입되기 전까지, 복잡한 단계들을 거칠지라도, 알려진 악성코드(malware) 침투 기법들을 사용하기 때문에, Microsoft Defender ATP 기능으로 방지 할 수 있다는 것입니다.
아래는 Microsoft의 Security Blog에서 Microsoft Defender ATP Research team이 발표한 내용을 요약한 것입니다.
1. 탐지된 malware의 이름은 Astaroth(아스타로스)로 불리며, Trojan malware 에 속하며, 내부 정보를 훔치는 backdoor 기능을 가지고 있습니다. OS call 가로채기, clipboard 모니터링, key-logger 모듈을 사용하여 감염된 시스템의 내부 민감한 정보를 훔쳐, 공격자가 지정한 C&C(Command and Control) 서버로 유출시키는 기능을 수행합니다.
2. Astaroth는 사용자(희생자) 시스템에 설치되기 위해, 아래와 같은 여러 단계의 감염(infection) process를 거치고 있습니다.
(1) 악성(malicious) LNK를 포함하고 있는 스피어피싱 이메일을 보냄(메일 내용에 포함된 URL은 일반적인 URL 로 보이지만, 클릭하면 zip 파일을 가리키는 주소로 redirect하며, zip file은 LNK file을 압축한 것임)
(2) 이메일 수신자가 마우스로 URL link를 클릭하면, 연결된 LNK file은 WMIC(Windows Management Instrumentation Command) tool을 실행 시킵니다(좀 더 자세히 기술하면, Batch file이 실행되며, Batch file안에 WMIC를 수행시키는 난독화된 command가 들어 있음).
(3) WMIC는 JavaScript code를 실행시킵니다. 좀 더 자세히 기술하면, WMIC는 난독화된 JavaScript code를 가진 XSL file을 다운로드하여 JavaScript를 실행시키고, JavaScript는 다시 WMIC를 실행시키고, WMIC는 다시 난독화된 JavaScript code를 가진 XLS file을 다운로드하여, JavaScript를 실행시킵니다. 참고로, WMIC 실행 시 “/format” 를 사용하면, 특정 URL 주소에서 file을 다운로드하여 실행하게 할 수 있습니다.
(4) JavaScript는, Bitsadmin tool을 사용하여 Base64 방식으로 encoding 된 payload들을 다운로드 시키고, Certutil tool을 사용하여 payload들을 decoding 시킨 후, Regsvr32 tool을 사용하여 payload 중 한 개의 DLL을 메모리에 load 시킵니다. 참고로, “Regsvr32 /s xxxxx.dll” 하면, dll file을 메모리에 load하는 기능이 수행됩니다.
(5) Certutil tool에 의해 decoding 되어지는 payload는 모두 6개이지만, 5개의 DLL로 되어 있습니다. 두 개는 plain DLL 이며, 한 개는 두 개의 file로 나누어져 있고, 나머지는 encryption되어 있습니다.
(6) 첫 번째로 load된 DLL은, 두 번째 DLL을 load시키고, 두 번째 DLL은 세 번째 DLL을 만든(두 개 file로 나누어 진 것을 하나로 합침) 후, reflectively DLL 기법으로 load시키며, 세 번째 DLL은 Userinit process를 실행 시킨 후, 네 번째 DLL을 decrypt 시킨 후에, process hollowing 기법을 사용하여 Userinit process안에 inject 시킵니다.
(7) 네 번째 DLL은 마지막(다섯 번째) DLL을 decrypt 시킨 후에, reflectively DLL 기법으로 메모리에 load시킵니다.
참고로, Code Injection 방법에는, Remote DLL injection, Remote code injection, Reflective DLL injection, Hollow process injection, 이렇게 4가지가 있는 데, 위에서 사용된 2가지만 간단히 설명하고자 합니다.
a) Reflective DLL injection : DLL을 기존 동작되는 합법적인 Process의 memory space 안에 write시키는 기법입니다. 이 때 DLL은 스스로를 초기화 시키는 기능을 가지고 있습니다.
b) Hollow process injection : 합법적인 Process의 새로운 instance(process)를 생성하여, process를 start 시키기 전에, code 영역 memory를 free시키고(hollow it out), 악성코드로 replace시킨 후, start시키는 기법입니다.
3. 마지막에 load된 DLL이 바로 Astaroth 이며, Userinit process에 inject되어 동작합니다.
4. 위 과정에서 사용되고 있는 tool들은 Windows System에 설치되어 있는 합법적인 tool 입니다. 이렇게 System에 이미 설치되어 있는 합법적인 tool만을 사용하는 기법을 “LOL(Living-Off-the-Land)” 라고 부른다고 합니다. 이런 이유로 Astaroth를 LOL binaries를 사용하여 설치되는 malware라고 합니다. 합법적인 tool을 사용하는 목적은 정상적인 activity임을 나타내어 탐지를 피하기 위해서라고 합니다.
4. 위 과정을 그림으로 도식화 하면 아래와 같습니다.
(출처 : Microsoft Security Blog)
참고로, encoding/decoding과 encryption/decryption의 차이는, 변환 시킬 때, 암호키의 사용 여부 입니다. 즉 encoding/decoding은 암호키를 사용하지 않고, 공식을 사용하여 변환 시킵니다. 그리고 난독화란, 읽기를 어렵게 하여 탐지를 피하는 기법입니다. 사람의 눈으로 판독이 어렵게 하여 분석을 지연시킬 뿐만 아니라, 컴퓨터는 문자 string을 가지고 비교하므로, 단순 string 비교만으로 탐지되지 않도록 하는 효과가 있습니다. 넓은 의미의 난독화는 encoding과 encryption 기법을 포함하지만, 좁은 의미의 난독화는 알려진 encoding과 encryption을 제외한 기법을 의미 합니다.
Microsoft Defender ATP(Advanced Threat Protection)
MS사에서 Windows 10에 설치하여 공급하고 있는 기능으로, 엔터프라이즈 네트워크가 advanced threat(고급 위협)에 대하여 예방, 탐지, 조사 및 대응할 수 있도록 도와주는 플랫폼 이라고 합니다.
Microsoft Defender ATP 는 1년 단위로 제공하는 유료 서비스로(1인당 1년에 $72.72), Microsoft Defender ATP가 동작되려면 Windows 10 Enterprise 라이선스를 가져야 하며, Windows 10 Enterprise 라이선스는, Windows 10 Pro 라이선스를 가진 자가 연간 유료 서비스 비용을 지불해야 한다고 합니다.
Microsoft Defender ATP 가 제공하는 기능 중 Next Generation Protection 기능이, 이번 Astaroth Campaign을 탐지해서 방지 했다고 합니다.
출처 : m.blog.naver.com/PostView.nhn?blogId=aepkoreanet&logNo=221583196950
'기타 > 컴퓨터' 카테고리의 다른 글
[티스토리] 구글 웹마스터 도구 티스토리 색인 생성 오류 해결방법 (0) | 2020.11.12 |
---|---|
[컴퓨터] 윈도우 10 원격 데스크톱 연걸하기 (feat. mstsc) [펌] (0) | 2020.10.05 |
[애드센스] seller.json 해결 방법 (0) | 2020.09.19 |
[컴퓨터]telnet 으로 포트 통신 상태 확인 (0) | 2020.09.09 |
[컴퓨터] windows 10에서 telnet 사용하기 [펌] (0) | 2020.09.09 |