Study/Security

공격 흔적을 찾는 법 / 프로세스 분석을 통한 악성코드 식별

ChoiSenn 2022. 1. 1. 17:10

 

 

 

 

공격 흔적을 찾는 방법

 - 운영체제 메모리에 올라와있는 정보나 네트워크 통신 정보들은 시간이 지나면 사라지는 휘발성 정보이다. (RAM, temp 폴더의 데이터 등)

 - 세션 정보 수집 : 세션은 통신을 할 때 수많이 생성되기 때문에, 컴퓨터는 연결이 종료되면 세션 정보를 저장해두지 않고 사라지게 한다. 그러나 키로깅 프로그램이나 백도어 프로그램은 피해 시스템 정보 수집을 위하여, 시스템 간에 연결된 통신인 세션 정보를 수집하여야 한다.

 - 세션 정보를 수집하기 위해서는 'netstat.exe' 명령어를 사용한다. 비정상 세션을 추출하거나 PID를 통해 의심스러운 프로세스를 점검할 수 있다. 다만, 과거의 기록은 볼 수 없고 현재의 상황만 표시된다.

 - 실시간 외부 모니터링 프로그램은 TCPView로 확인 가능하다.

 

 

 

사례 분석

 - ex) 스팸 메일이 유포됐던 시스템을 분석

             [공격자] -> [중간 경유 서버(프록시 서버)] -> [웹사이트]

 - 익명 프록시 허용 서버 목록을 netstat, TCPView나 보안 장비로 확인.

 - 세션 정보를 분석해보니 다수의 웹 서비스 세션이 확인되었으며, 80번 출발지 포트가 아웃바운드 연결, 불특정 다수 사용자가 경유를 통해(프록시) 타 사이트로 접근했음이 드러남.

 - FIN_WAIT가 떴으므로 클라이언트가 아닌 서버로 의심.

 - 로그 점검을 해보니 제공하지 않은 서비스 로그가 확인됨. 경유로 인한 외부 서비스 URL 제공 로그를 확인.

 

 

 

프로세스 정보 수집 (기본 프로세스 정보)

 - 프로세스 실행 명령어 : ps -aux

 - Explorer.exe – 윈도우 작동에 있어 필수적이 아니며 작업 관리자에서 종료 및 재시작 가능

 - Spoolsrv.exe – 스풀된 프린트/팩스 작업을 책임지는 스풀러 서비스

 - Svchost.exe – 다른 프로세스들에 대한 호스트. 여러 개 생성 가능.

 - Services.exe – 시스템 서비스들을 시작/종료/상호작용하는 역할 담당

 - System – 대부분의 시스템 커널 모드 스레드들이 System 프로세스로서 실행

 - System Idle Process – 놀고 있는 프로세서들을 찾는다.

 - Taskmgr.exe – 작업관리자를 위한 프로세스

 - Csrss.exe – 콘솔 창, 스레드 생성 및 제거, 가상 도스 환경 일부를 관리.

...

 

 

 

악성코드 식별 사례

 - 프로세스 분석을 통해 악성코드를 식별한 사례.

 - 백도어 통신이 확인되었고, 통신 연결에 사용된 백도어 프로그램을 찾기 위해 프로세스 점검 수행.

 - 윈도우에서 svchost 프로세스는 시스템 프로세스로 윈도우의 여러 서비스를 관리하는 프로세스. 대부분 윈도우 부팅 시 프로세스가 올라와서 부팅 시간과 차이가 나지 않지만 차이가 꽤 나게 됨. -> svchost 프로세스 의심

 - 프로세스 리스트를 보았는데, tcpipt.dll 파일이 존재하나 system32 폴더에서는 보이지 않음 -> tcpipt.dll 의심

 - PEiD 프로그램을 이용해 API를 확인. 사용된 API를 통해 기능을 유추해보면 사용자 컨트롤이 가능하고, 레지스트리, 파일 컨트롤, FTP 통신으로 데이터 전송이 가능함을 알 수 있음 -> 전형적인 백도어 프로그램!!

 - BIN Text 프로그램을 이용해 문자열 추출하자 시스템 정보를 수집하는 것으로 확인  -> DDoS를 수행시킬 좀비 PC를 찾기 위한 단계임을 짐작