2023. 11. 4. 16:43ㆍ보안관제
목차
- 기초 분석
- virustotal
- 정적 분석
- Exeinfo
- Bintext
- 동적 분석
- 프로세스 분석
- Process monitor
- Process explorer
- 파일 및 레지스트리
- system explorer
- Autoruns
- 네트워크 분석
- Cport
- Wireshark
- 프로세스 분석
- 결론
- 기초 분석 결론
- 정적 분석 결론
- 동적 분석 결론
- 대응책
기초분석(VirusTotal)
- 바이러스 토탈에서 조회시, 트로이목마로 추정하며 해당 악성코드로 방향성 잡기 시작
*트로이목마: 악성 루틴이 숨어 있는 프로그램으로, 겉보기에는 정상적인 프로그램으로 보이지만 실행하면 악성행위를 하는 프로그램
- UPX로 패킹 처리되어 있다고 추정
* UPX(Ultimate Packer for eXecutables): 여러 운영체제에서 수많은 파일 포맷을 지원하는 오픈 소스 실행 파일 압축 프로그램
* 패킹: 코드 제작자가 안에 코드를 쉽게 해독당하지 않도록 안의 코드 내용을 난독화 처리하여 압축하는 것을 말함.
- 주로 107.163.241.198과 http://api.wisemansupport.com 사이트와 통신이 확인
- 107.163.241.198: 유해 IP는 아닌 것으로 추정
- 90개의 백신 중 10개의 백신이 악성 사이트로 진단
- 해당 사이트와 위 IP는 유해성이 낮은 것으로 추정
정적 분석
Exeinfo
- exeinfo로 확인해봤을 때, 정확히 어떤 툴로 패킹 처리됐는지 확인되지는 않았지만, RL!dePacker라는 프로그램을 이용하여 언패킹 시도를 문구를 확인
- RL!dePacker를 설치 후, dgrep 파일을 언패킹 처리 후, unpacked 라는 파일이 생성
Bintext
- cmd.exe를 이용해 ping 127.0.0.1 -n 2 명령어를 사용하는 것으로 보아 호스트 네트워크 상태 확인하려는 것으로 보임
- C:\Wiseman.exe 를 설치하여 실행하기 위한 문자열도 확인
- C:\Windows\System32\rundll32.exe 를 통해 windows 내에 있는 실행모듈도 악용하려는 것으로 추정
- RedTom21@HotMail.com: 해당 악성 파일과 연관된 메일로 추정
- 라이브리러 목록 중 WS_32.dll를 발견
- 107.163.241.198과 http://api.wisemansupport.com 사이트와 통신하기 위한 모듈로 사용되는 것으로 추정
*WS_32.dll: Windows에서 제공하는 라이브러리로 Windows Socket을 사용하기 위한 함수들이 정의되어 있고, 네트워크 통신시 사용되는 필수 모듈
동적 분석
프로세스(Process Explorer)
- 관리자 권한으로 실행후, rundll.exe 실행됨을 확인
- 악성코드 실행 전과 후 비교
*rundll32: *DLL (Dynamic Link Library) 파일을 다른 응용 프로그램에서 실행할 수 있도록하는 응용 프로그램. rundll32.exe 프로세스가 없으면 응용 프로그램이 라이브러리 코드를로드하고 제대로 실행할 수 없음.
프로세스(Process Monitor)
- cmd에서 ping 명령어 실행
- 나아가 hygxvslj 라는 자식 프로세스 생성
레지스트리(Autoruns)
- Run 레지스트리에 EvtMgr이라는 파일과 Wiseman 프로그램이 시작하자마자 자동으로 실행되도록 등록
파일(SystemExplorer)
- 악성코드 파일 실행 전과 후 비교
- 네트워크쪽 파일에서는 Cookie 값과 Session 값이 설정
- 107.163.241.198과 http://api.wisemansupport.com 사이트와의 통신을 위해 이용되는 파일로 보여짐
- wiseman.exe 실행 파일의 추가적 생성 확인
- Run 실행 파일안에 EvtMgr와 Wiseman 레지스트리 값이 추가
네트워크(Cport)
- 이전 정적 분석에서 악성코드가 rundll 함수를 악용하여 본인 코드를 실행 시키도록 하는 것으로 보임
- rundll32 함수가 현재 악성코드 프로그램에 의해 107.163.241.197/198 와 통신을 하도록 실행
- 이를 통해 악성코드가 107.163.241.197/198과 통신할려고 하는 것으로 필히 추정
네트워크(WireShark)
- wireshark에서는 패킷 필터를 이용하여 살펴봤더니 해당 IP와의 통신시도 확인
- 로컬에서 해당IP로 SYN 패킷을 주기적으로 송신
- 그러나, 해당 IP 쪽에서 계속 RST 패킷으로 답신 주는 것을 볼 수 있음.
- RST 패킷 이유: 인터넷 어느 구간에서 방화벽에 의해 막혀있다던가,서버가 현재는 다운되서 연결을 애초에 못하는 것으로 추정
*RST: Reset: 연결 확립된 회선에 강제 리셋 요청
*SYN: Synchronize: TCP 초기 연결설정 초기화를 위해 순서 번호 동기화
- 나아가 http://api.wisemansupport.com는 nslookup을 통해 조회볼려고 했지만 해당 URL에 관한 IP가 조회가 안되는 것으로 볼 때, DNS 서버에서 해당 도메인을 차단 or 해당 사이트의 폐쇄로 추정됨
결론
기초 분석 결론
- 트로이 목마로 추정
- UPX 패킹 확인
- 특정 IP 및 사이트과 통신 유무 확인
정적 분석 결론
- 107.163.241.198과 http://api.wisemansupport.com 사이트와 통신하기 위한 백도어를 형성 악성코드로 파악
- 언패킹된 해당 파일을 Bintext 결과
- cmd.exe를 이용해 ping 127.0.0.1 -n 2 명령어를 통해 호스트 네트워크 상태를 확인하고자는 문자열
- C:\Windows\System32\rundll32.exe 를 통해 windows 내에 있는 실행모듈도 악용한 것으로 추정
- 라이브리러 목록 중 107.163.241.198과 http://api.wisemansupport.com 사이트와 통신하기 위해 사용된 것으로 추정되는 WS_32.dll를 발견
동적 분석 결론
- 프로세스: rundll 함수를 통해 wiseman 프로그램 실행과 그와 관련된 자식프로세스 생성 및 ping 명령어 등을 확인
- 레지스트리: wiseman 프로그램이 자동으로 실행되도록 시작 레지스트리 값에 등록
- 파일: 네트워크 세션 및 쿠키 값 설정, wiseman.exe 실행 파일 추가 생성, Run 실행 파일안에 EvtMgr와 Wiseman 레지스트리 값 추가 생성
- 네트워크: wireshark를 기준으로 했을 때, 107.163.241.198쪽으로 통신 시도 확인
대응책
1. 현재 동작 중인 프로세스 확인
- 대부분 백도어 자체가 티가 나게끔 이름을 짓지 않음
- 그래서 현재 프로세스를 확인하여 백도어가 아닌 정상 프로세스를 아는 것도 매우 중요
2. 열린 포트 확인
- 백도어 상당수가 외부와 통신을 하려고 서비스 포트를 생성
- 시스템에서는 netstat 명령으로 열린 포트를 확인할 수 있는데, 일반 시스템에서 사용하는 포트가 그리 많지 않아 주의해서 살펴보면 백도어가 사용하는 포트를 쉽게 확인가능
3. SetUID 파일 검사
- 윈도우 시스템에는 해당되지 않지만 setUID파일은 리눅스 시스템에서 로컬 백도어로 강력한 기능을 가질 때가 많음
- setUID파일 중에 추가되거나 변경된 것은 없는지 주기적으로 살펴보기
4. 바이러스와 백도어 탐지 툴 이용
- 잘 알려진 백도어는 대부분 바이러스 일종으로 분류되는데, 백신 툴은 물론이고 다양한 탐지 툴에서 발견됨.
- 이런 툴을 사용하면 백도어를 쉽게 잡아낼 수 있음
- 하지만 리눅스에서는 이런 툴이 많이 부족하므로 수동으로 찾아야 할 때가 많음
5. 무결성 검사
- 무결성 검사에는 MD5 해시 기법을 많이 이용.
- 파일 내용이 조금만 바뀌어도 해시 결과 값이 다르기 때문에 관리자는 주요 파일의 MD5값을 주기적으로 수집하고 검사하여 변경되는 파일 내역을 확인 필요.
- 관리자가 변경하지 않았거나 시스템 운영상 변할 일이 없다면 변경된 파일 조치 금지
* 무결성 검사: 시스템에 어떤 변화가 일어나는지 테스트하는 것
6. 로그 분석
- wtmp: 사용자 로그인 및 로그아웃 정보
- secure 로그: 텔넷이나 ftp 원격접속등 인증과정을 거치는 모든 로그
- lastlog: 사용자의 최근 로그인 시간을 사용자 이름, 터미널, 마지막 로그인 시간
- history: 이전에 사용한 명령어들 기록
- messages: 로그파일 중 가장 중요한 부분으로서 로그인 기록부터 디바이스 정보 시스템 설정오류, 파일시스템, 네트워크 세션 기록과 같이 가장 다양한 정보를 가지고 있음
- 해당 로그들을 통해 백도어 형성에 쓰인 로그 기록들 분석
*악성코드 분석 보고서 주소
https://docs.google.com/document/d/1Y3CPTsoIuV5TCyiR_jaGBA7foVARNIow2nm0f_1ER0w/edit
'보안관제' 카테고리의 다른 글
Snort 환경 구축 (2) | 2024.01.14 |
---|---|
Snort (0) | 2023.11.18 |
악성코드 샘플 분석 1 (0) | 2023.10.15 |
정적, 동적 Tool 실습 (0) | 2023.09.18 |
악성코드 샘플 분석 환경 구성 (0) | 2023.09.18 |