티스토리 뷰

Project

Forensic Tools -2

07VH 2017. 10. 19. 16:26

이전에 조사한 Forensic Tools들 중 EnCase와 Rekall에 대해서 좀 더 자세하게 조사해 보았다. 다음과 같다.


1. EnCase

EnCase 엔드포인트 Security는 다양한 유형의 경고에 응답하고 실제로 보안 이벤트가 발생했는지 여부를 확인하는 데 사용할 수 있다. SIEM 도구는 경고를 발행하기 위해 여러 시스템 간에 고급 상관관계를 생성하지만 실제로 대상이 실제로 발생했는지 여부를 확인하거나 손상 정도를 평가하지 않는다. EnCase 엔드포인트 Security​​사용하면 이벤트를 식별한 후 중요한 최종 응답 단계를 수행할 수 있다. 이 도구는 SIEM 도구로 생성 된 경고를 받아들이고 경고가 생성되는 순간 영향을 받는 시스템의 휘발성 데이터에 대한 실시간 스냅 샷을 자동으로 취하고 후속 스냅 샷은 시간이 지남에 따라 변경 사항을 관찰한다. 악의적인 프로세스가 탐지되면 EnCase 엔드포인트 Security는 시스템을 신뢰할 수 있는 상태로 되돌릴 수 있으며 위협 또는 유사한 버전의 추가 인스턴스에 대해 네트워크를 스윕할 수 있다. 또한 사용자는 과거의 위협에 대해 정기적인 검사를 예약하여 동일하거나 유사한 위협을 방지할 수 있다. Encase 엔드포인트 Security는 이벤트에 자동 또는 수동으로 응답하는 데 사용할 수 있다. 기존의 APT(Advanced Persistent Threat) 탐지 솔루션과 통합되어 엔드 포인트 스냅 샷을 캡처한다. 원본 및 대상 장치에서 즉시 분석하면 알 수 있거나 없는 숨겨진 프로세스의 세부 정보뿐만 아니라 TCP 네트워크 소켓 정보, 열린 파일, 장치 드라이버, 서비스 등을 알 수 있다. 이 인텔리전스는 시스템이 손상되어 오탐(false positives)을 사실상 제거할 수 있음을 나타낼 수 있다. 자동 스냅 샷은 이벤트 직후에 트리거되어 공격 결과를 조각으로 보여준다. 이를 통해 보안 팀은 사건이 실제로 발생했는지 여부를 판단할 수 있다. 이 경우 영향 및 근원이 표시된다. 보안 팀은 동일한 스냅 샷 기능을 사용하여 보안 사고를 신속하게 격리하고 대응할 수 있다. EnCase 엔드포인트 Security는 보안 이벤트가 발생했음을 확인한 후 기업 전체의 컴퓨터를 분석하여 동일하거나 유사한 위협으로 인해 손상된 다른 시스템을 찾아낸다. 대부분의 조직에서는 이러한 초기 감염 지점 이상으로 퍼지는 위협을 자동으로 식별, 실행 및 중지하는 데 도움이 되는 APT 탐지 및 샌드 박싱 솔루션을 이미 채택했다. 일반적으로 이러한 기술은 차세대 침입 방지 시스템(IPS)에 데이터를 제공하여 생산성과 운영에 영향을 미치지 않으면서 조직의 중요한 데이터를 안전하게 보호한다.


EnCase 엔드포인트 Security는 알려지지 않은 위협이 IPS를 우회하는지 여부를 결정하거나 IPS의 응답이 대상 호스트를 보호하는데 성공했는지 여부를 확인할 수 있다. EnCase 엔드포인트 SecurityIPS(직접 또는 SIM을 통해) 연결을 통해 경고가 생성될 때 영향을 받는 시스템에서 정보를 수집하고 후속 검사를 수행하여 악성 데이터가 실제로 차단되었는지 확인할 수 있다. 이러한 모든 기술을 관리하는 것은 매우 어려울 수 있다. 360도 네트워크 보안 가시성, 고급 네트워크 법의학 및 모든 네트워크 활동에 대한 실시간 위협 탐지를 제공하려면 포괄적인 보안 분석 플랫폼이 필요하다. EnCase 엔드포인트 Security​​보안 분석 플랫폼과 통합하면 엔터프라이즈가 탐지되지 않은 위협을 사전에 식별하고 유효성을 검사하여 네트워크 및 엔드 포인트에서 고급 멀웨어 및 제로 데이 공격으로부터 보호 할 수 있다. EnCase 엔드포인트 Security는 경험이 입증된 포렌식 프로세스 및 기술을 통해 이루어지므로 경고가 수신되는 즉시 엔드 포인트를 완벽하게 파악할 수 있다. 각 시스템에 작은 수동적 서비스가 필요한 모든 것을 수행한다. 맬웨어 또는 악의적인 내부자에 의한 고지에 의해 삭제되지 않도록 위장할 수 있다. 멀티 플랫폼 솔루션은 잠재적인 용의자를 중단시키지 않고 랩톱, 데스크탑, 파일 서버, 전자 메일 서버, 인쇄 서버 및 POS (point-of-sale) 시스템 등 다양한 운영 체제에서 작동하는 것을 방지하기 위해 사용자에게 감지되지 않는다. EnCase 엔드포인트 Security의 고유한 기능으로 사용자는 제로 데이 및 공격자가 새로운 기술을 채택하거나 새로운 취약점을 악용하는 경우와 같은 알려지지 않은 위협을 탐지하는 문제를 해결할 수 있다.

위와 같이 Main office A, Branch Office, Company Headquarters 3가지 기본 구성 요소가 WAN으로 연결되어 있음을 알 수 있다.

Company Headquarters에서 추가 저장 장치에 있는 자료를 토대로 SAFE/Examiner를 통해 일정 수의 컴퓨터에게 잠재적으로 연관 있는 데이터에 대한 request 요청을 보낸다.

여기서 Target Node들만 powerful search를 하게 된다. 그 대상은 Main Office ABranch Office, Company HeadquartersTarget Node일 수 있다.

이를 통해 결과적으로 EnCase에서 특징점을 모은 메타데이터를 포함한 파일을 다시 SAFE/Examiner에게 보낸다. 이때 request나 메타데이터를 다시 보낼 때에 WAN을 걸쳐서 이동하게 된다.


2. Rekall 

기존 리눅스 시스템의 메모리 분석은 윈도우 시스템의 메모리 분석에 비하여 과정이 복잡하다그 이유는 메모리 변조를 방지하기 위해 적용된 KASLR(Kernel Address Space Layout Randomization)로 인한 기존 수집도구의 한계와 다양한 커널 버전에 의한 특정Profile을 위해 사용자가 한 단계 더 작업을 해야 한다는 문제점이 있기 때문이다.

 

현재 배포되는 커널 버전의 리눅스 메모리 수집에 주로 사용되는 LiME은 최초 수집 단계에서 컴파일을 필요로 하는 단점을 가지고 있다. Live-Response 에서 사고 혹은 증거 대상 시스템을 대상으로 한 무결성은 굉장히 중요하다. 컴파일은 소스 코드와 설치 파일 구동에 필요한 파일을 빌드하는 과정을 거치는데 이 과정 중에 다양한 임시 파일들이 생성된다생성되는 임시 파일들이 증거 대상 시스템의 슬랙 메모리에 존재하는 증거를 덮어 쓸 지도 모르는 많은 위험성을 가지고 있다이를 방지하기 위해서 LiME을 증거 대상 시스템과 유사하게 설정된 환경에서 우선적으로 컴파일을 하거나 다소 단순하지 않은 크로스 컴파일 과정을 거쳐야 한다.

 

이렇게 메모리를 수집한 이후에는 리눅스가 가지는 다양한 커널 버전의 특성상 Volatility가 모든 커널 버전을 지원할 수 없기 때문에 대상 시스템에서 Profile을 만들어야 한다. (기본적으로 Volatility에서 리눅스 ProFile을 지원하고 있으나 배포되는 다양한 종류의 리눅스 버전이 존재하고 사용자가 커스터마이징한 커널도 있기 때문에 다양한 ProFile이 존재한다.) Profile을 구성하기 위해서는 커널의 데이터 구조를 정의한 Vtypes Symbol을 얻어야 한다현재, Vtypes를 만들기 위해서는 Volatility  dwarfdump 도구가 필요하고 Symbol을 만들기 위해서는 /boot 디렉토리에서 적절한 System.map 파일을 복사해야한다. 그리고 이렇게 수집한 2개의 파일을 입력할 ProFile명으로 압축해야 한다. 하지만 이와 같이 Vtypes Sytstem.map이 존재하지 않는 시스템이라면 수집 시 커널의 모듈을 직접 빌드해야하는 복잡함이 추가된다.

 

이러한 몇 가지 문제점으로 인해 기존 수집도구인 LiME을 대신하여 Pmem을 통해 수집하고메모리 이미지를 메모리 분석 도구인 ReKall을 사용하여 분석할 수 있도록 ProFile을 얻는 방법을 연구해보고자 한다.

 

Rekall이란?

Rekall GRR(Google Rapid Response) 원격 포렌식과 관련한 프로젝트에서 메모리 분석을 담당하고 있는 도구이다. 먼저 GRR은 구글에서 사고 대응을 위해 라이브 포렌식에 포커스를 맞춰 제작된 프레임 워크이다클라이언트와 서버로 구성되어 있으며 서버에서 시스템의 아티팩트를 원격으로 수집분석이 가능하다이러한 기능을 위해 Rekall은 분석 도구이면서 수집이 가능한 Pmem을 내장하고 있다.

또한세계 최대 규모의 포렌식 및 침해사고 교육 단체라고 생각되는 SANS의 이번 메모리 포렌식 과정(FOR526: Memory Forensics In-Depth)에서 리눅스 메모리를 수집할 시 ReKall Pmem을 사용하는 것으로 보아 Rekall-Pmem을 통한 메모리 수집이 현재 가장 정형화 된 것으로 생각된다.


Rekall  메모리 수집

개요에서 소개한 것처럼 Rekall은 자체적인 수집 도구인 Pmem을 가지고 있다. Pmem은 AFF4(Advanced Forensic File Format) 형식을 기본으로 메모리를 수집한다.

Pmem은 리눅스뿐만 아니라윈도우, MacOS 또한 수집이 가능하다이와 관련한 실행파일은 다르지만 모두 AFF4 형식을 통해 메모리를 수집할 수 있다.

AFF4 라이브러리는 세 가지 옵션으로 메모리 수집을 지원한다.

Option

속도

압축률

Snappy

높음 (300-350mb/s)

중간

Zlib

중간 (90Mib/s)

높음

None

-

-

 

속도 비교를 위해 기존의 윈도우 체계에서 많이 쓰이는 DumpIt LiME과 비교하여 속도가 빠르고 압축되어 대상 시스템에서 메모리를 수집해 분석시 매우 유용하다.

시스템 환경 상 차이가 존재 하겠지만비트코인 채굴러가 동작중인 리눅스(ubuntu 16.04) 기준 8GB의 메모리를 수집하는데 걸리는 시간을 확인해 그 시간이 명백하게 차이가 난다.

 

수집도구

시간

용량(bytes)

비고

LiME

3 40 ~

8589334656

비트코인 채굴러 동작중.

Rekall-pmem(snappy)

39 ~

1923309850

Rekall-pmem(zlib)

2 11 ~

3172975410

Rekall-pmem(none)

2 32 ~

8683246891

 

시스템 환경상 미세한 시간의 차이는 의미가 없겠으나 snappy 옵션을 사용한 pmem으로 메모리를 수집할 시 압축되어 수집된 메모리의 용량이 작고 소요시간이 짧은 것으로 확인되었다.

 

Rekall - ProFile 생성

Rekall로 획득한 메모리를 Volatility를 이용하여 분석할 시 zip형태의 Profile이 필요한데 이를 Rekall에 존재하는 도구를 이용하여 단순히 make 명령어만 내려주면 간단히 획득할 수 있다해당 도구를 이용하면 LiME이나 기타 수집도구를 통해 메모리를 수집 할 때도 수동으로 작업할 필요 없이 편리하게 Profile을 얻을 수 있다.

Rekall을 통한 리눅스 메모리 분석 시에도 다양한 기능을 사용하기 위해서는 Json형식의Profile을 입력해 주어야하는데 사용되는 위에서 수집한 zip형식의 Profile Rekall을 이용하여 convert하여 사용이 가능하다.

 

그래서 결론은 추후 수집한 리눅스 메모리 파일의 분석에 대한 현재 상황과 그 한계점에 대하여 알아보는 과정이 필요할 것으로 보인다.


실제 메모리에 대한 액세스를 용이하게 하기 위해 커널을 기반으로 하는 네 가지 기본 구성 요소가 있음을 알 수 있다.

OSX에서 MacPmem 메모리 드라이버는 물리적 메모리에 대한 직접 액세스를 제공한다.

Windows에서 WinPmem 커널 드라이버는 실제 메모리 액세스를 제공한다.

Linux에서 우리는 주로 / proc / kcore 장치를 사용한다. 이 장치는 종종 활성화되어 있다. 이것은 원래 물리적 메모리 액세스를 기본적으로 제공한다.

그러나 때로는 Linux에서 kcore 장치가 비활성화 되어 있다. 이 경우 우리는 또한 물리적 메모리 접근을 용이하게 하는 pmem 커널 드라이버를 제공한다.

 

모든 커널 구성 요소는 메모리 획득 및 실시간 분석을 구현하는 데 사용하는 실제 메모리에 대한 액세스를 가능하게 한다. 운영체제별 메모리 획득 도구로 OSXPmem, WinPmem(2.1), LinPmem가 있다. 그것들은 모두 동일한 통합 AFF4 imager 프레임워크를 사용하므로 모두 동일한 명령 line arguments를 가지며 같은 방식으로 이미지를 생성한다.

마지막으로 Rekall은 지원되는 모든 운영 체제에서 실시간 분석을 수행할 때 모든 커널 구성 요소를 직접 사용할 수 있다. Rekall은 또한 독립 실행형 도구와 비슷한 방식으로 물리적 메모리 이미지를 얻기 위해 이 원시 물리적 메모리 액세스를 사용하는 aff4acquire라는 플러그인을 가지고 있다. Rekall을 통한 메모리 획득은 실시간 분석(: 매핑 된 파일 모두 캡처)에서 추론 할 수 있는 추가 데이터를 포함할 수 있지만 Rekall을 실행해야 한다.(풋 프린트가 더 크고 프로필 repository에 액세스해야 함).

 


참고 링크 :


http://forensic-proof.com/tools (Forensic Tool)

http://resources.infosecinstitute.com/computer-forensics-tools/#gref (22 Popular Computer Forensics Tools [Updated for 2017])

- https://www.guidancesoftware.com/docs/default-source/document-library/product-brief/encase-forensic-product-overview.pdf?sfvrsn=761867a2_20 (EnCase)

- https://www.guidancesoftware.com/docs/default-source/document-library/product-brief/encase-endpoint-security-complement-guide.pdf?sfvrsn=d89f9dad_6 (EnCase endpoint security)

- https://www.westconcomstor.com/content/dam/wcgcom/US_EN/westcon/vendors/Guidance-Software/Documentation/EnCase-Endpoint-Security.pdf (EnCase endpoint security 2)

- https://digital-forensics.sans.org/summit-archives/dfirprague14/Rekall_Memory_Forensics_Michael_Cohen.pdf (Rekall)

- https://www.slideshare.net/DamirDelijadamirdeli/e-ev7ediscovery-1 (EnCase procedure)


'Project' 카테고리의 다른 글

Forensic Tools - 1  (0) 2017.10.19
Git library 사용을 위한 절차  (2) 2017.07.06
PUP 분석 - 2  (0) 2017.05.04
GRR 프로젝트  (0) 2017.04.24
PUP(Potentially Unwanted Program) 분석 - 1  (0) 2017.04.23
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 31
글 보관함