2020.10.07

윈도우 네트워크에서 디지털 포렌식을 시작하는 방법

Susan Bradley | CSO
전화벨이 울린다. 받으니 상대방이 긴장된 목소리로 “침해가 발생한 것 같다”라고 말한다. 자, 이제 무엇부터 시작해야 할까.
 
© Getty Images Bank

최근 오스트레일리아, 캐나다, 뉴질랜드, 영국이 함께 내놓은 보안 권고를 보면 악의적 활동을 찾기 위한 기술적 접근 방법과 최선의 완화 단계가 들어 있다. 이 권고의 목표는 기업의 사고 대응을 개선하는 데 있다. 사고 발생 시 가장 먼저 할 일은 관련 데이터, 즉 이벤트 로그, 브라우저 기록 파일, 수신 포트 증거, 파일 폴더 및 파일이 생성된 날짜 등을 수집하는 것이다.

한 걸음 물러서서, 사고가 발생하기 전에 로깅이 적절히 설정되도록 하는 것도 중요하다. 모든 관련 시스템에 Sysmon을 설치해 악성 또는 이상 활동을 찾는 이벤트를 로깅하고 침입자와 악성코드가 네트워크에서 어떻게 활동하는지 파악한다. 그 후 로그 파일을 SIEM(보안 정보 및 이벤트 관리)으로 내보낸다.
 

감염된 시스템 백업

시스템이 사용 중인 상태에서 조사하는 방식은 시스템에 남은 증거가 훼손될 수 있으므로 바람직하지 않다. 사용 중인 시스템을 조사하기보다는 시스템을 백업해서 그 이미지의 데이터를 조사해야 한다. FTK 이미저(FTK Imager)와 같은 툴을 사용해 컴퓨터의 포렌식 백업을 만들어 조사하고 원본 시스템은 증거 보존을 위해 유지하는 것이 좋다.

시스템에서 발생한 사건이 의심되지만 시스템이 침해되었는지가 확실하지 않아 분석을 수행하는 경우 PsLogList와 같은 툴을 사용하면 로컬 또는 원격 컴퓨터의 이벤트 로그 내용을 가져올 수 있다. Sigcheck를 사용하면 파일 버전 번호와 타임스탬프 정보, 그리고 인증서 체인을 포함한 디지털 서명의 세부 정보를 확인할 수 있다. ListDLLs는 프로세스에 로드된 DDL을 알려준다. 마지막으로, 핸들(Handle)을 사용하면 특정 파일 또는 디렉터리가 열린 프로그램을 볼 수 있다.
 

공격 발생 이후 수집할 데이터

일단 공격이 발생하면 시스템에서 다음 정보를 수집해야 한다.
 
  • 실행 중인 프로세스: C:\> tasklist /NH | sort를 사용해 프로세스 목록을 준비한다.
  • 실행 중인 서비스: net start > output.txt를 사용한다.
  • 상위-하위 프로세스 트리: 프로세스 익스플로러(Process Explorer)를 사용해 목록을 준비한다.
  • 백그라운드 실행 파일의 무결성 해시: Sigcheck를 사용해 파일의 무결성을 검토한다.
  • 설치된 애플리케이션: wmic product get /format:csv > Software_%Computername%.csv를 사용한다.
  • 로컬 및 도메인 사용자: net users username을 사용한다.
  • 흔치 않은 인증: 다양한 인증을 점검해서 어느 인증이 비정상적인 인증인지를 확인해야 할 수 있다.
  • 비표준 형식의 사용자 이름
  • 수신 포트 및 관련 서비스: netstat -an |find /i "listening"을 사용한다.
  • 도메인 이름 시스템(DNS) 확인 설정 및 정적 경로: ipconfig /displaydns를 사용한다.
  • 설정된 및 최근 네트워크 연결: netstat -f를 사용한다.
  • 실행 키 및 기타 자동 실행 지속성: autoruns를 사용해 조사한다.
  • 예약된 작업: schtasks /query /v /fo LIST를 사용한다.
  • 실행 아티팩트(Prefetch 및 Shimcache): 레지스트리 하이브를 통해 검토한다.
  • 이벤트 로그: 닐소프트(Nirsoft)의 이벤트 로그(event log) 같은 툴을 사용한다.
  • 안티바이러스 탐지 항목

깃허브에 있는 에릭 짐머만의 포렌식 툴을 사용하는 방법도 있다. 추가로 조사하면 좋은 그 외의 아티팩트에는 다음과 같다.
 
  • UserAssist는 윈도우 컴퓨터에서 실행된 프로그램 표를 보여준다. 표에는 실행 횟수와 마지막 실행 날짜 및 시간이 포함된다.
  • Shimcache는 전체 파일 경로, 마지막 수정 날짜, 파일 크기와 같은 메타데이터를 추적하지만 마지막 시스템 시작 이전까지의 정보만 포함한다. 현재의 항목은 메모리에만 저장된다.
  • hve는 실행된 애플리케이션 정보를 저장하는 레지스트리 파일이다.
  • 프리페치(Prefetch) 파일은 시스템에서 실행된 애플리케이션을 분석하려는 포렌식 조사관에게 매우 유용한 아티팩트다.
  • USN 저널(Journal)은 애플리케이션에 의해 특정 파일에 변경이 발생했는지 여부를 알아보는 데 사용한다.
  • MFT에는 수정, 액세스, 생성 날짜 및 파일 크기와 같은 파일시스템 정보가 포함된다.
 

로그 데이터 보존의 중요성

사고 대응 전문가가 데이터를 보호하고 복구하기도 전에 정보가 파괴되는 경우가 빈번하다. 시스템을 다시 온라인으로 되돌리고 비즈니스를 복구하려 했던 것인데, 그 과정에서 공격자가 누구이고 이들이 어떻게 시스템에 침입했는지 확인하는 데 필요한 포렌식 증거는 사라진다. ping, nslookup과 같은 명령을 사용하거나 탐색하는 경우 공격자에게 공격이 발각됐음을 알리게 된다. 방화벽에서 공격자를 차단하는 방법은 단기적으로는 통한다. 그러나 공격자는 손쉽게 다른 공격 위치로 전환할 수 있다.

로그 파일을 그대로 보존하는 것은 조사를 위한 핵심 요건이다. 공격자는 흔적을 지우기 위해 로그 파일을 삭제하는 경우가 많으므로, 로그 파일이 갑자기 삭제되면 알림이 전송되도록 설정해야 한다. 갑작스러운 로그 삭제는 일상적인 활동이 아니고 공격자가 시스템에 있다는 신호인 경우가 많기 때문이다. 공격자가 액세스하고 증거를 삭제할 수 없는 오프사이트에 로그 파일을 저장하는 것도 방법이다. 윈도우 네트워크를 운영한다면 무료 스플렁크(Splunk)를 설치해 SIEM 툴을 테스트할 필요가 있다. 오피스 365 또는 마이크로소프트 365를 사용한다면 파워셸을 사용해 로그를 추출할 수 있다.

동일한 네트워크를 사용하거나 라이브 시스템을 점검하는 경우 증거가 훼손되고 공격자에게 공격 사실이 발각되었음을 알리게 된다. 응급 대응 요원은 최소한 vlan, 가장 이상적으로는 셀룰러 네트워크와 같은 자체 네트워크로 연결되는 편이 좋다.

감염을 제거하기만 하고 공격자가 시스템 액세스 권한을 획득한 방법을 조사하지 않으면 네트워크가 더 많은 공격에 취약한 채로 방치될 수 있다. 공격의 근본 원인을 파악하지 못한 채 백업에서 시스템을 복원하면 같은 공격이 가능한 취약한 상태가 그대로 이어진다. 기업 내에 현장 조사팀이 없다면 외부 전문가의 도움을 받는 것도 좋다. 사이버 보안 업체에 공격 발생 시 어떤 리소스를 제공할 수 있는지를 확인하면 된다. editor@itworld.co.kr


2020.10.07

윈도우 네트워크에서 디지털 포렌식을 시작하는 방법

Susan Bradley | CSO
전화벨이 울린다. 받으니 상대방이 긴장된 목소리로 “침해가 발생한 것 같다”라고 말한다. 자, 이제 무엇부터 시작해야 할까.
 
© Getty Images Bank

최근 오스트레일리아, 캐나다, 뉴질랜드, 영국이 함께 내놓은 보안 권고를 보면 악의적 활동을 찾기 위한 기술적 접근 방법과 최선의 완화 단계가 들어 있다. 이 권고의 목표는 기업의 사고 대응을 개선하는 데 있다. 사고 발생 시 가장 먼저 할 일은 관련 데이터, 즉 이벤트 로그, 브라우저 기록 파일, 수신 포트 증거, 파일 폴더 및 파일이 생성된 날짜 등을 수집하는 것이다.

한 걸음 물러서서, 사고가 발생하기 전에 로깅이 적절히 설정되도록 하는 것도 중요하다. 모든 관련 시스템에 Sysmon을 설치해 악성 또는 이상 활동을 찾는 이벤트를 로깅하고 침입자와 악성코드가 네트워크에서 어떻게 활동하는지 파악한다. 그 후 로그 파일을 SIEM(보안 정보 및 이벤트 관리)으로 내보낸다.
 

감염된 시스템 백업

시스템이 사용 중인 상태에서 조사하는 방식은 시스템에 남은 증거가 훼손될 수 있으므로 바람직하지 않다. 사용 중인 시스템을 조사하기보다는 시스템을 백업해서 그 이미지의 데이터를 조사해야 한다. FTK 이미저(FTK Imager)와 같은 툴을 사용해 컴퓨터의 포렌식 백업을 만들어 조사하고 원본 시스템은 증거 보존을 위해 유지하는 것이 좋다.

시스템에서 발생한 사건이 의심되지만 시스템이 침해되었는지가 확실하지 않아 분석을 수행하는 경우 PsLogList와 같은 툴을 사용하면 로컬 또는 원격 컴퓨터의 이벤트 로그 내용을 가져올 수 있다. Sigcheck를 사용하면 파일 버전 번호와 타임스탬프 정보, 그리고 인증서 체인을 포함한 디지털 서명의 세부 정보를 확인할 수 있다. ListDLLs는 프로세스에 로드된 DDL을 알려준다. 마지막으로, 핸들(Handle)을 사용하면 특정 파일 또는 디렉터리가 열린 프로그램을 볼 수 있다.
 

공격 발생 이후 수집할 데이터

일단 공격이 발생하면 시스템에서 다음 정보를 수집해야 한다.
 
  • 실행 중인 프로세스: C:\> tasklist /NH | sort를 사용해 프로세스 목록을 준비한다.
  • 실행 중인 서비스: net start > output.txt를 사용한다.
  • 상위-하위 프로세스 트리: 프로세스 익스플로러(Process Explorer)를 사용해 목록을 준비한다.
  • 백그라운드 실행 파일의 무결성 해시: Sigcheck를 사용해 파일의 무결성을 검토한다.
  • 설치된 애플리케이션: wmic product get /format:csv > Software_%Computername%.csv를 사용한다.
  • 로컬 및 도메인 사용자: net users username을 사용한다.
  • 흔치 않은 인증: 다양한 인증을 점검해서 어느 인증이 비정상적인 인증인지를 확인해야 할 수 있다.
  • 비표준 형식의 사용자 이름
  • 수신 포트 및 관련 서비스: netstat -an |find /i "listening"을 사용한다.
  • 도메인 이름 시스템(DNS) 확인 설정 및 정적 경로: ipconfig /displaydns를 사용한다.
  • 설정된 및 최근 네트워크 연결: netstat -f를 사용한다.
  • 실행 키 및 기타 자동 실행 지속성: autoruns를 사용해 조사한다.
  • 예약된 작업: schtasks /query /v /fo LIST를 사용한다.
  • 실행 아티팩트(Prefetch 및 Shimcache): 레지스트리 하이브를 통해 검토한다.
  • 이벤트 로그: 닐소프트(Nirsoft)의 이벤트 로그(event log) 같은 툴을 사용한다.
  • 안티바이러스 탐지 항목

깃허브에 있는 에릭 짐머만의 포렌식 툴을 사용하는 방법도 있다. 추가로 조사하면 좋은 그 외의 아티팩트에는 다음과 같다.
 
  • UserAssist는 윈도우 컴퓨터에서 실행된 프로그램 표를 보여준다. 표에는 실행 횟수와 마지막 실행 날짜 및 시간이 포함된다.
  • Shimcache는 전체 파일 경로, 마지막 수정 날짜, 파일 크기와 같은 메타데이터를 추적하지만 마지막 시스템 시작 이전까지의 정보만 포함한다. 현재의 항목은 메모리에만 저장된다.
  • hve는 실행된 애플리케이션 정보를 저장하는 레지스트리 파일이다.
  • 프리페치(Prefetch) 파일은 시스템에서 실행된 애플리케이션을 분석하려는 포렌식 조사관에게 매우 유용한 아티팩트다.
  • USN 저널(Journal)은 애플리케이션에 의해 특정 파일에 변경이 발생했는지 여부를 알아보는 데 사용한다.
  • MFT에는 수정, 액세스, 생성 날짜 및 파일 크기와 같은 파일시스템 정보가 포함된다.
 

로그 데이터 보존의 중요성

사고 대응 전문가가 데이터를 보호하고 복구하기도 전에 정보가 파괴되는 경우가 빈번하다. 시스템을 다시 온라인으로 되돌리고 비즈니스를 복구하려 했던 것인데, 그 과정에서 공격자가 누구이고 이들이 어떻게 시스템에 침입했는지 확인하는 데 필요한 포렌식 증거는 사라진다. ping, nslookup과 같은 명령을 사용하거나 탐색하는 경우 공격자에게 공격이 발각됐음을 알리게 된다. 방화벽에서 공격자를 차단하는 방법은 단기적으로는 통한다. 그러나 공격자는 손쉽게 다른 공격 위치로 전환할 수 있다.

로그 파일을 그대로 보존하는 것은 조사를 위한 핵심 요건이다. 공격자는 흔적을 지우기 위해 로그 파일을 삭제하는 경우가 많으므로, 로그 파일이 갑자기 삭제되면 알림이 전송되도록 설정해야 한다. 갑작스러운 로그 삭제는 일상적인 활동이 아니고 공격자가 시스템에 있다는 신호인 경우가 많기 때문이다. 공격자가 액세스하고 증거를 삭제할 수 없는 오프사이트에 로그 파일을 저장하는 것도 방법이다. 윈도우 네트워크를 운영한다면 무료 스플렁크(Splunk)를 설치해 SIEM 툴을 테스트할 필요가 있다. 오피스 365 또는 마이크로소프트 365를 사용한다면 파워셸을 사용해 로그를 추출할 수 있다.

동일한 네트워크를 사용하거나 라이브 시스템을 점검하는 경우 증거가 훼손되고 공격자에게 공격 사실이 발각되었음을 알리게 된다. 응급 대응 요원은 최소한 vlan, 가장 이상적으로는 셀룰러 네트워크와 같은 자체 네트워크로 연결되는 편이 좋다.

감염을 제거하기만 하고 공격자가 시스템 액세스 권한을 획득한 방법을 조사하지 않으면 네트워크가 더 많은 공격에 취약한 채로 방치될 수 있다. 공격의 근본 원인을 파악하지 못한 채 백업에서 시스템을 복원하면 같은 공격이 가능한 취약한 상태가 그대로 이어진다. 기업 내에 현장 조사팀이 없다면 외부 전문가의 도움을 받는 것도 좋다. 사이버 보안 업체에 공격 발생 시 어떤 리소스를 제공할 수 있는지를 확인하면 된다. editor@itworld.co.kr


X