2014년 8월 17일 일요일

활성 시스템 포렌식(Live System Forensics)


Page info


활성 시스템 포렌식 (Live System Forensics)

활성 시스템 (Live System)이란, 전원에 연결되어 정상적으로 가동 중인 시스템을 의미한다. 그리고 활성 시스템 포렌식(Live System Forensics)은 말 그대로, 디지털 포렌식 조사 과정 중 활성 시스템을 마주한 경우 이루어지는 절차를 의미한다. 

아래 그림은 활성 시스템 포렌식 조사의 단계를 개략적으로 나타낸 것이다. 해당 절차는 초기 대응(First Response)의 한 부분이기도 하며, 그림에서 알 수 있듯이 데이터의 분석 보다는 활성 상태에서 수집 가능한 모든 데이터를 최대한 수집하는 데 초점이 맞추어져 있다.  



이 때, 휘발성 데이터의 수집과 물리 메모리의 수집은 상황과 여건에 따라 순서를 바꾸어도 크게 무관하지만, 반드시 비 휘발성 데이터보다는 먼저 수집되어야 한다.

이어 지는 내용에서 그 이유와 각 데이터의 의미, 그리고 디지털 포렌식 관점에서 휘발성 데이터 조사의 필요성에 대해 알아보자.


휘발성 데이터

휘발성 데이터란, RAM 같은 휘발성 메모리에 저장되어, 전원이 꺼지면 사라지는 데이터를 의미한다. 그 특성 때문에, 활성 상태의 시스템에서만 획득 가능하며, 수집 시점에 따른 상태의 변화가 발생할 수 있으므로 신속한 수집이 매우 중요하게 여겨진다.  

따라서, 조사자는 사건 현장에 도착 시스템 전원이 켜져 있는 경우 휘발성 데이터에 대해 우선적으로 수집하는 것이 옳다.

이러한 휘발성 데이터의 수집에는, 물리 메모리 전체의 내용을 복사(덤프)하는 방법과 시스템 명령등을 이용하여 필요한 정보를 텍스트나 파일 형태로 추출하는 방법이 있다. 

각각의 방법에는 장.단점이 존재하는데, 물리 메모리 전체를 수집하는 방법은 휘발성 데이터 전체를 빠짐없이 수집하여 잔존 패스워드를 추출할 수 있도록 하는 등, 정밀한 조사를 가능하게 한다. 

하지만, 수집 과정에서 시스템에 손상을 있는 위험이 존재하고 수집 원하는 정보 획득을 위해서는 추가적인 분석 기술을 갖추어야 하는 부담이 동시에 존재한다. 
(최근에는, 유.무료의 강력한 물리메모리 수집/분석 도구가 다양하게 존재하여, 활성 시스템 포렌식 조사 자체가 물리 메모리 조사로 대체되어 가고 있는 추세이기도 하다.) 

반면, 시스템 명령 등 이용해 조사에 필요한 데이터를 각각 수집하는 방법은 손쉽고 안전하게 필요한 정보를 획득할 수 있다는 장점이 있으나, 시스템 명령 자체가 변조되었을 가능성이 있고, 추출된 결과 자체가 분석 결과이기 때문에, 물리 메모리의 비정형 데이터 분석과 같은 추가 정보를 기대할 수 없고, 조사 결과에 대한 사실관계 입증이 다소 어려울 수도 있다는 단점이 존재한다. 

여러가지 어려움이 존재함에도 휘발성 데이터를 획득하는 것이 중요한 이유는, 우선 조사의 목적이 당시 시스템의 상황에 관한 내용일 경우가 있다. 

예를 들어 사건 현장에서 용의자가 접속 중인 네트워크나 사용 중인 응용 프로그램으로 혐의를 입증하고자 할때나 침해사고를 당한 시스템에 실제로 동작 중인 악성코드를 파악하는 것은 사건 해결에 도움이 되는 정도가 아니라 그 조사의 목적 자체인 경우에 해당하는 것이다. 

그 밖에도 당시 시스템 상황을 알고 있을 경우사건 해결의 실마리가 제공되는 경우가 많기 때문에 활성 데이터의 수집이 가능한 환경에서는 반드시 활성 시스템 포렌식이 이루어져야 한다. 

또한, 초기 대응(First Response)에 대한 설명에서도 언급했듯이 디스크 이미지의 획득 자체가 어려운 경우가 존재하기 때문에 활성 시스템 포렌식은 포렌식 분석가의 역량 개발에 선택이 아닌 필수 요소라 할 수 있겠다. 



     휘발성 데이터


    휘발성 데이터란 휘발성 데이터와 다르게 전원이 꺼져도 하드디스크(HDD)나 SSD와 같은 보조 기억 장치에 남아있는 데이터를 의미한다. 

    이와 같은 비 휘발성 데이터는 디스크 사본 생성 획득 가능하지만, 디스크 이미징에 소요되는 시간을 활용한 효율적인 조사를 위해 일부 데이터의 선별 수집이 요구되기도 한다. 

    비 휘발성 데이터를 선별적으로 우선 수집을 하고자 할 때의 기준에 정답은 없으며, 숙련된 분석가의 판단에 의해 사건에 가장 관련이 깊은 정보를 가진 데이터 중 용량이 크지 않은 것들이 주 수집 대상이 된다. 

    예를 들면, 일반적인 경우 윈도우 시스템을 조사하고자 할 때에는, 레지스트리 하이브와 이벤트 로그를 추출하여 조사 대상 시스템에 관한 전반적인 정보를 얻고자 할 때가 많다. 이와 같은 조사는 사건 전체에 대한 그림을 그리는데 도움을 준다. 결국,  주요 파일에 대한 조사 만으로 올바른 조사 방향이 설정 되고, 사본 생성이 완료되는 시점에는 정밀 조사로 유효 증거 획득에 집중하는 등 효율적인 조사를 가능하게 하는 효과를 가질 수 있는 것이다. 

    이러한 비 휘발성 데이터의 수집이 이루어지기 이전에는 반드시 휘발성 데이터의 수집을 수행해야 한다. 휘발성 데이터는 말 그대로, 쉽게 증발할 수 있는 데이터로 시스템의 조사를 위한 작은 운용에도 크게 영향 받기도 하며, 네트워크 접속 상태와 같은 일부 휘발성 데이터는 전원 차단 여부와 관계없이 시간 흐름에 따라 자연스럽게 사라지기도 하기 때문이다. 


    활성 시스템 조사  유의점


    활성 시스템 조사는 상대적으로 가벼운 데이터를 다루기 때문에 보조저장장치의 사본을 조사할 때보다 더욱 세심한 준비가 필요하다. 아래에 기술된 내용이 활성 시스템 조사를 위한 준비의 전부는 아니지만, 자칫 소홀할 수 있는 부분에 대해 간략히 기술했으니, 한번 쯤 확인하고 조사에 임하길 바란다. 



    • 조사 도구에 대한 사전 준비 : 분석가는 조사 대상을 미리 알 수 없는 포렌식 조사의 특성 상, 늘 다양한 시스템 환경에 대응이 가능하도록 각 시스템에 맞는 도구 및 장비의 미리 보유하고 있어야 한다. 

      실제 조사 환경에서는 유사
       운영체제 간에도 버전 별로 사소한 차이점이 존재하고, 이에 따른 문제는 조사 결과의 신뢰도에 문제를 발생시킬 수 있기 때문에, 세세한 특징을 모두 기억하여 출동 시 준비하기에는 현실적인 한계가 따른다

      따라서 조사자는, 
      자신의 준비상태를  점검하고문제 발생  도구와 운영 체제의 버전 등을 정밀 확인하여 원인을 파악, 해결 할 수 있는 역량을 지녀야 한다. 

      준비 되어야 하는 도구는 가급적 시스템 메모리에
       영향을 최소한으로 미치는 것을 사용하는 것이 옳다. 따라서 현장 분석을 위한 도구는 GUI 기반 보다는 CLI 기반의 도구가 적합하다. 

      물론, 이와 같은 제약은 물리 메모리 수집 시 의 피해를 최소화 하기 위한 것이므로, 물리
       메모리 덤프를 우선 수행하고다소 유연하게 도구를 활용하는 것도 하나의 방법이다.

      이처럼 도구의 사용에서도 역시 정답은 없다. 관련 법제와 절차에 대해서는 현재도 전문가들의 끊임없는 논의가 진행 중 이므로, 사용하는 도구가 시스템에 미치는 영향을 조사자가 정확하게 파악하고 있는 것 만이 답이라고 할 수 있겠다.

    • 도구의 신뢰성 확보 : 조사의 편의성이나 효과에 도움을 준다고 하여 임의로 변조하였거나, 아직 검증이 완전히 되지 않은 도구의 사용은 자제하는 것이 옳다. 아무리 조사자가 열심히 조사를 하였어도, 상대에게 공격의 여지를 마련해주는 행위일 뿐임을 기억하자. 

      비슷한 관점으로, 스스로
       제작한 도구나 스크립트의 경우에도 동작 매커니즘을 정확하게 설명하고 입증할  없다면, 조사 결과는 무용지물이 될 수도 있다. 

      또한, 조사자는 분석
       대상 시스템의 명령어도 신뢰해서는 안된다. 분석 대상의 시스템은 기본적으로 조사가 완전히 이루어지기 전 까지는 신뢰할 수 있는 환경이라 볼 수 없기 때문에, 공격자나 용의자에 의해 이미 교체(오염)된 도구를 구동할 가능성이 있기 때문인다.

    • 같은 기능을 하는 다양한 도구 활용 : 이는 필수적인 사항은 아니지만, 가능할 경우 수행해 두면, 조사 결과의 신뢰성을 높일  있다. 소프트웨어는 필연적으로 오류를 동반할 수 있다는 점을 염두에 두고, 여러 가지 도구를 교차 분석하여 결과를 도출한다면, 결과의 신뢰도를 크게 높일 수 있으며, 실제로 도구의 오동작에 의해 결과가 오염될 여지를 방지할 수 있을 것이다.

      • 수집 과정에서의 적법 절차 : 활성 시스템을 분석하는 과정에서 조사에 사용한 도구조사 시각수집된 결과 등을 문서화하는 것은 다른 어느 때보다도 중요하다. 왜냐하면, 활성 시스템의 조사는 특성상 추후에 정당성을 입증할만한 비교 자료가 없기 때문이다. 

        따라서 결과의 신뢰도에 대한 공격을 받읐을 때를 대비하여, 철저한
         문서화와 조사 과정의 기록을 통해 정보 조사 과정의 정당성을 입증해야 한다. 

        ※ 침해사고
         조사와 같이 사고 원인 파악  시스템 정상화가 목적인 경우 이와 같은 절차가 생략되는 경우도 많다.
      • 휘발성 순서에 관하여 : 휘발성 순서에 관한 논의는 활성 시스템의 정보를 분석하기 시작한 시점부터 지속적으로 있어 왔다. RFC 3227(Guidelines for Evidence Collection and Archiving), NIST Special Publication 800-86(Guide to Integrating Forensic Techniques into Incident Response)와 같은 가이드가 존재하기도 하지만, 아직도 논란이 많은 부분 이므로, 필자는 물리메모리, 시스템 시간을 우선 수집하는 것 이외에는 별도의 방안을 기술하지는 않기로 한다.

        하지만 휘발성 데이터의 종류에 따라 휘발성 정도의 차이는 분명 존재하므로 수집 주체별로 수집 순서를 정해둘 필요는 있으며, 역시나 결과의 정당성을 입증하기 위해서는 조직별로 수집 순서를 결정한 배경에 대한 논리적인 근거를 반드시 마련할 필요가 있다. 

      관련 문서 

      PFP Documents(http://portable-forensics.com/document.html)

      댓글 없음:

      댓글 쓰기

      질문이나 조언은 언제든 환영입니다.
      악의적 댓글이나 무조건적인 비방은 삼가주세요.