GRR은 Google Rapid Response의 약자로써, 원격 라이브 포렌식에 중점을 둔 침해사고대응 프레임워크입니다. 구글은 GRR을 보안 커뮤니티 전체에 공개했고 오픈소스화 시켜서 기존의 사건 대응 플랫폼에 대한 대체재를 마련해주었습니다. 


GRR은 파이썬 기반의 서버 구조로 이루어져 있으며, 에이전트(클라이언트) 또한 파이썬 기반으로 구현되어 타겟 시스템에 설치하여 운용합니다. 서버를 통해서 에이전트를 원격으로 관리할 수 있습니다.



클라이언트 프로그램 구성

  • 리눅스, Apple Mac, 윈도우 등 크로스플랫폼 지원
  • 리눅스, 맥, 윈도우 환경에서 메모리 분석을 할 수 있는 Rekall 프레임워크를 사용하여, 원격지에서 활성 메모리 분석 가능.
  • 파일이나 윈도우 레지스트리 등의 아티팩트를 효과적으로 검색하고 다운로드 할 수 있음.
  • 인터넷 기반으로 데이터를 송수신할 때 암호화하여 기밀성 제공.
  • 클라이언트 자동 업데이트를 통해 수월하게 관리
  • 클라이언트의 CPU, 메모리, IO 사용률 등에 대한 세부정보 모니터링 및 자원한계량 자가진단.


서버 프로그램 구성

  • 침해사고대응 및 포렌식 업무에 필요한 방대한 기능 제공,
  • 슬루스킷(SleuthKit, TSK)를 사용하여 운영체제 수준이나, 파일 시스템 영역 등에 접근가능
  • 다수의 클라이언트에 대한 통합 관리(일괄 검색 등)기능 제공
  • 대규모 시스템에 적용하여도 무리가 없는 확장성 제공
  • 단순반복되는 작업에 대해 자동으로 스케쥴링하여 효율성 제공
  • 수백가지의 디지털 포렌식 아티팩트들을 쉽고 빠르게 수집
  • 효율적인 클라이언트 스케쥴링 관리를 위한 비동기적 설계(다수의 노트북 환경에서 작동하려는 상황 등)
  • AngularJS를 이용한 Web UI와 RESTful JSON API.
  • 스크립트화하여 사용할 수 있도록 IPython console 접속 지원 
  • 기본적인 타임라인 분석 기능
  • 기본적인 보고서 생성 기능


시작하기

GRR의 서버와 클라이언트 모두를 설치하고, 처음으로 구동하려는 방법을 설명합니다. 다음과 같이 두가지 방법이 있습니다.

  1. 이미 세팅이 완료되어있는 도커 이미지를 다운받아서 실행하세요. 이것이 가장 쉽고 빠른 방법입니다. 다운로드 후 모든 설치와 서버 초기세팅을 끝내는데는 2분도 채 걸리지 않습니다.
  2. 아래의 설명을 따라 우분투 시스템에 직접 설치하는 방법입니다. 안정성이나 커스터마이징을 위해서는 이 방법을 더 추천드립니다. 설치에는 약 20분이 소요되며, 설치과정 중에 몇가지 세팅을 직접 선택할 수 있습니다.


설치 요구사항

  • 리눅스 시스템이 필요합니다. Ubuntu Server 14.04의 64bit버전을 기준으로 하였으며, 아직 15.10 이상의 버전에 대해서는 공식적으로 지원하지 않습니다. 이를 수행하기 위해서는 몇가지 script를 직접 수정하셔야하며 여기에서 방법을 확인할 수 있습니다.
  • (분산형이 아닌 단일 시스템 기준에서) 1GB이상의 메모리(RAM)과 현대적인 CPU가 요구됩니다. 아마존 AWS의 EC2 서비스를 사용하신다면, 무료버전에서 제공되는 성능만으로는 RAM이 부족하므로 작동이 원활하지 않을 수 있습니다.
  • 윈도우, 매킨토시, 리눅스 운영체제에 에이전트(클라이언트)를 설치하고, 서버(우분투 리눅스)와 통신하도록 합니다. 이때 테스트를 위해 하나의 장치에서 서버와 클라이언트를 동시에 구동할 수 있습니다.


서버측 설치

우분투14.04 에서 wget을 사용하여 설치용 스크립트 파일을 다운로드하고, bash쉘을 사용하여 실행합니다. 설치 스크립트는 다른 쉘에서는 정상적으로 작동하지 않을 수 있습니다. 그러므로 반드시 bash쉘을 사용하여 설치해주세요.

+2016. 9. 2. 추가사항 : 이제 pip 명령어로 설치가 가능합니다.

제가 직접 우분투 서버에 설치해본 결과 약 15분이 소요되었습니다. 이 과정에는 apt-get update, upgrade가 포함되어있으며, GRR에 포함된 라이브러리를 호환시키기 위해 먼저 pip를 설치한 후 pip를 이용해서 자동으로 전부 설치해줍니다.

설치 중간에 여러가지 환경설정을 입력해야합니다. 특히 데이터베이스 설정 관련된 부분이 등장하는데 Default는 Sqlite파일(/var/grr-datastore 에 저장)이고, 기타 mysql 등으로 활용 가능합니다. 그리고 관리자 패스워드를 설정하는 등의 작업이 진행됩니다.

설치가 완료되었으면, 웹 브라우져에서 8000번 포트를 사용하여 관리자용 페이지에 접속할 수 있습니다. 또한 grr_console을 이용하여 콘솔에 로그인 후 직접 명령어를 사용할 수 있습니다.

웹브라우져에서 http://서버주소:8000 을 입력하시면 위와같은 로그인 창이 뜹니다. admin으로 관리자 계정으로 설정한 뒤에, 설치시 설정했던 패스워드를 입력하시기 바랍니다.

클라이언트측 설치

여기에서 클라이언트 설치를 위한 패키지 파일을 다운로드 하실 수 있습니다. 하지만 각 서버 및 클라이언트별로 호환하는 정확한 버젼을 설치하기위해서는, 직접 세팅하셨던 서버에서 제공하는 바이너리 설치파일을 다운로드하시는 것이 좋습니다. 관리자용 웹 UI에 접속하신 후에 Manage Binaries 탭을 선택하시고, 각자의 운영체제에 맞는 Installers를 선택하여 다운로드합니다.


이제, 설치하려는 대상 시스템에서 관리자 권한으로 클라이언트를 실행하세요.


  • 만약 윈도우 사용자라면, 32bit나 64bit에 적합한 설치 파일이 제공됩니다. 관리자 권한으로 설치를 하십시오.(권한이 없다면 이를 요구하는 안내창이 뜹니다.) 설치경로는 c:\windows\system32\grr\%version%\ 에 위치할 것이며, 기본적으로 윈도우 부팅시 자동으로 서비스가 시작되도록 레지스트리에 등록될 것입니다. 컴퓨터가 켜져있는 동안 일정간격(설정 가능)으로 주기적 데이터 수집을 하여 서버에 전송합니다. 이때 백신 프로그램이 구동되고 있다면 이상행위를 하는 프로세스로 의심받을 수 있습니다. 이를 '신뢰'한다고 표시해두면 지장없습니다.
AhnLab의 V3 백신에 걸림
AhnLab의 V3 백신에 걸림
  • 애플의 맥 OS X 운영체제에 설치하기 위해서는 pkg파일을 이용합니다. (2016년 현재 최신 운영체제인 OS X El Capitan을 지원하기 위해서는, Client 버전이 3.0.7.1 이상이어야합니다. 또한 Sleuthkit이 Yosemite 이상의 버전의 파일시스템을 탐색하지 못하는 상황입니다.) 다운로드받은 xar아카이브를 다음과 같이 해제하여 설치하세요.

이후에는 launch item에 등록되므로 부팅시 자동으로 수행됩니다.

  • 리눅스의 경우 deb파일이나 rpm형식으로 설치 패키지가 제공되오니 각자의 플랫폼에 적절한 패키지를 선택하십시오. 이미 서버용으로 설치한 시스템에다가 클라이언트를 설치해보는 테스트를 해보시는 것도 좋습니다. 잘 작동될 것입니다.


이제 클라이언트 등록이 완료되었습니다. 제 경험상, 설치후 해당 클라이언트를 한번씩 재부팅해주어야 원활하게 작동하기 시작하는 것 같습니다. 이제 관리자용 Web UI에 접속하여 상단 부분의 검색창(Search Box)에 Enter를 입력함으로써 등록되어있는 모든 클라이언트 목록을 조회할 수 있습니다. 이렇게해서 해당 클라이언트가 정상적으로 서버에 등록되었는지 확인하실 수 있습니다.

서버 자신을 클라이언트로 등록한 화면
서버 자신을 클라이언트로 등록한 화면

이제 해당 클라이언트를 클릭하면, 호스트가 선택되어 여러가지 다양한 아티팩트들을 분석할 수 있습니다. 아래는 구글이 공개한 사용 스크린샷들입니다.

파일 시스템 분석
파일 시스템 분석
서버 부하 통계
서버 부하 통계
특정 아티팩트 지속 감시
특정 아티팩트 지속 감시

*저도 직접 설치 및 실행해보고 지속해서 후기를 올리도록 하겠습니다. 아래는 github에서 공식적으로 명시한 관련 사이트 링크 목록입니다.

CPUU님의 창작활동을 응원하고 싶으세요?