2015년 12월 21일 월요일

사물인터넷(IoT) 시대의 디지털 포렌식

 

 
 
1. 개요
최근 디지털 포렌식은 PC 및 서버 등 전통적인 기기와 같은 저장매체의 범위를 넘어서 스마트폰, 테블릿과 같은 휴대용 스마트 단말기는 물론 자동차 시스템, 가정용 셋탑박스, 스마트TV, 스마트시계, 산업용기기 등 사물인터넷(IoT) 기기를 대상으로 그 범위가 빠르게 확대될 필요성을 요구하고 있다. 심지어 모든 디지털기기가 고성능·소형화 되면서 인간이 사용하는 디지털 장비의 대부분이 IoT 기기화 되고 있어서 이러한 IoT 기기에서 수집된 디지털 증거물이 이용자의 행위에 대한 사실관계를 규명하고 증명하는데 사용되는 사례가 급증할 것으로 예상된다. 이에 따라 본 컬럼에서는 IoT 기기를 분석하기 위한 전략과 방안을 제시하고자 한다.
 
2. IoT 포렌식 소개
어느 날 아침 주택가 인근 좁은 도로에서 살해된 여성의 시체가 발견된다. 유력한 용의자인 전 남자친구 김 모씨를 잡았지만 CCTV 기록도, 목격자도 없어 범행시간조차 파악이 어려웠다. 이를 해결해준 것은 그 여성이 착용하고 있던 스마트워치. 완전히 깨져 있었지만 스마트워치의 데이터를 복구해 심박수가 갑자기 높아진 시점을 범행시간으로 특정해 범인을 검거했다. 미국의 한 주에서 피해자가 찬 스마트워치 핏빗을 활용해 범인을 검거한 사례다.
 
2.1 IoT 시대 환경 변화
이메일, 모바일 메신저, 소셜네트워크서비스(SNS), 위치기반 서비스 등 스마트폰을 중심으로 인터넷에 접속하고 처리되는 개인정보를 통해 다양한 부가서비스를 제공받는 환경이 이제는 스마트워치, 디지털체중계, 디지털등산복 등을 통해 심박수, 체온, 체중, 수면상태를 비롯한 각종 신체상태 정보까지 센서를 통해 수집되고 처리되어 더욱 정밀하고 섬세한 인간중심 맞춤형 서비스를 제공받는 환경으로 변화하고 있으며 IoT 기기들은 이용자들의 모든 일상이 기록되어 처리되고 있다고 생각해도 과언이 아니다.
이에 따라 각종 범죄 현장에 존재하거나 용의자가 소지한 IoT 기기에서 수집한 데이터를 분석하여 범죄증거로 활용하는 사례가 급증할 것으로 보이며, 또다른 한편으로는 이용자들의 일상이 기록된 IoT 기기를 해킹하여 불법으로 수집한 정보를 활용하려는 시도도 증가할 것으로 보인다.
또한 최근 반도체기술의 향상으로 과거 첩보영화에서 보던 기기들이 오늘날 IoT 기기 형태로 실제 상용화되고 있으며 테러·범죄 조직들이 이를 활용 시에 대응하는데 어려움을 겪게 할 것으로 예상된다.
 
2.2 IoT 포렌식 대상
스마트폰, 스마트워치, 체중계, 스마트TV, 세탁기, 에어콘 등의 저장매체, 네트워크 송수신 패킷 및 로그기록 등 우리가 사용하는 일상적인 디지털기기와 그 기기가 접속되어 생성되는 데이터가 포렌식 대상이라고 볼 수 있다.
 
3. IoT 대응 포렌식 전략
과학수사의 개척자 에드몬드 로카드에 의하면 과학수사의 기본원칙으로 모든 접촉은 흔적을 남긴다고 했다. IoT기기에서 실행되는 모든 소프트웨어는 메모리에 실행 코드, 데이터 등 관련 정보들이 적재되어야만 CPU에서 처리가 가능하며, 오늘날 대부분의 IoT 기기가 데이터와 로그자료를 생성한다는 점을 살펴볼 때, 인간이 사용하는 모든 IoT 기기는 그 이용자가 사용한 디지털 흔적을 남긴다고 생각할 수 있다. IoT 기기 이용자의 행동은 본인의 의지와는 무관하게 어디엔가는 저장될 가능성이 높다고 추정할 수 있다. 또한 범죄현장은 증거의 보고이므로 현장의 유류 흔적을 단서로 진실을 추구해야 한다는 점을 고려할 때 IoT 기기 뿐만 아니라 IoT 기기가 통신하던 무선네트워크 환경, 블루투스 등과 IoT 기기의 센서에 영향을 주는 GPS정보, RF카드, 온도, 습도, 광량 등의 다양한 주변 환경도 반드시 조사되고 수집되어야 한다.
이러한 적절한 IoT 포렌식 과정을 통해 수집된 디지털 증거에서는 그 이용자의 행동을 찾을 수 있다. 물론 주도면밀한 범인의 경우 자신의 존재와 행위를 숨기기 위해 흔적을 지우려고 하겠지만, 범인의 의도와 무관하게 남겨지거나 인식하지 못한 디지털 흔적에 대해서는 범인 역시 지울 수가 없다.
 
3.1 IoT 기기 특성
대부분 휴대가 가능한 모바일 기기 형태 또는 임베디드 기반 장치로 구성되어 있고 회로가 집적화되어 있어 분해가 어려운 경우가 많다. 또한 에어콘, 보일러, 산업기기에 임베디드 되어 있는 경우 증거수집 과정에 기기손상 우려가 있으며 이에 따라 자칫 IoT 기기에 의해 통제되는 장비에 심각한 영향을 줄 수도 있다.
오늘날 센서와 메모리와 같은 반도체 기술은 급성장하고 있으며 사용되는 기기들의 성능과 용량은 증가하고 크기와 무게는 점점 경량화 되고 있는 추세이다. 또한 저장된 데이터의 형식이 암호화되어 있어 그 암호화 알고리즘과 해독을 위한 암호키를 알지 못하면 사실상 분석이 불가능한 어려움이 존재한다.
이와 같은 IoT 기기를 실제 사용하는 이용자는 기기내부의 세부적인 구조와 원리 및 구동과정을 알지 못하며 단지 기기가 제공하는 인터페이스와 그 기능에 의존하기 때문에 부정한 방법으로 접근권한이 없는 자가 접속하여 IoT 기기를 오동작하게 하거나 IoT 기기로부터 생성되는 정보를 악용하는 등의 해킹행위를 하더라도 치명적인 피해가 발생할 때까지 이용자는 전혀 눈치를 채지 못할 수도 있다.
또한 스마트폰의 이용증가로 최근에 출시되는 대부분의 IoT 기기는 이용자가 24시간 온라인 상태로 켜두고 있는 스마트폰과 연동되는 추세이다. 이와 같은 점은 IoT 기기와 이용자의 행동이 융합되는 형태로 발전되고 있어 이용자의 행동이 본인의 의사와 무관하게 스마트폰의 메모리 공간 또는 스마트폰과 연동되는 서버에 저장되는 경우가 많다.
이와 같은 점을 볼 때 범죄와 관련성이 있는 기존 물리적인 형태의 흔적과 IoT 기기에서 생성되는 디지털 형태의 흔적을 수집하고 분석하여 범행과 연관성 있는 정보를 추출 및 범인의 행동을 재구성할 수 있으며, 이를 통해 범행동기를 알아내거나 범인을 특정하고 알리바이를 검증하거나 범죄사실을 입증하고, 범인을 추적하는데 큰 효과를 발휘할 수 있다.
그리고 IoT 기기에서 실행되는 운영체제의 특성을 살펴볼 때 적은 메모리 공간을 효율적으로 이용하기 위해 리눅스 계열 운영체제를 많이 사용한다. 오늘날 널리 보급된 스마트폰에서 사용되는 안드로이드와 iOS 역시 리눅스 환경을 이용한 운영체제이다. 마이크로소프트사에서 기존에 출시한 Windows CE 기반의 운영제체를 이용하는 기기들도 있으며, 최근 라즈베리파이용 Windows 10 기반 IoT 운영체제를 발표하여 개발자들의 참여를 독려하고 있어 Windows 10 기반 IoT 기기의 출시도 예상된다.
 
3.2 증거 수집 시 고려사항
3.2.1 은닉된 IoT 기기
IoT 기기는 소형화되고 임베디드화 되고 있는 경우가 많아서 IoT 기기의 존재 자체를 발견하기 어려운 경우가 많다. 공항 또는 중요시설 등의 검색대에 설치된 스피드게이트에서 검색이 되지 않는 경우도 많다. IoT 기기를 찾아내기 위해 금속탐지기나 전파감지기 등의 부가적인 장비가 필요하며 현장에 경험있는 전문가의 참여가 필요하다. 때로는 소지중인 소형 IoT 기기를 찾기 위해 신체수색을 해야 하는 경우도 발생할 수 있다.
 
3.2.2 저장매체의 접근성
IoT 기기에서 주로 사용되고 있는 플래시메모리는 제조사와 규격이 다양하고 기판에 결합되어 있거나 IoT 기기가 다른 장비에 임베디드 되어 있는 경우가 많아서 기기를 분리하거나 저장매체로부터 증거분석용 이미지를 추출하는데 제품의 구조도와 전자공학적인 지식이 요구된다. 분해과정을 통해 본 기기의 훼손이 발생할 가능성이 많아 소지자의 협조를 얻기 어려운 경우도 예상된다. 또한 IoT 기기에 전력이 차단되거나 전원을 공급하는 배터리가 방전될 경우 메모리가 초기화되거나 휘발성이 강한 데이터가 손실될 가능성도 있으므로 이에 대한 대비와 증거물 수집 시 신중한 판단이 요구된다.
 
3.2.3 통신 환경
IoT 기기가 인터넷 또는 블루투스 등으로 통신하는 경우 무선공유기(AP), 네트워크 프린터, 웹서버 형태의 시스템 또는 기기가 함께 확보되어야 전송된 데이터 및 로그 정보 등의 수집이 가능하다. 이때 통신과 관련된 주변기기의 소유자는 분석 대상인 IoT 기기의 소유자와 다를 수도 있다는 점을 고려해야 한다.
LTE 또는 CDMA 기반의 무선통신망을 이용하는 IoT 기기의 경우 USIM도 함께 확보되어야 하며, 증거수집과 분석이 진행되는 동안 데이터의 변형이 이루어지지 않도록 전파차단 조치가 필요하다.
IoT 기기 및 통신장비를 직접 접근할 수 없는 경우 네트워크 포렌식 형태로 패킷(Packet)에 기반한 분석을 통해 송수신 데이터의 정보를 얻을 수도 있다. 물론 이와 같이 패킷을 수집하여 분석하는 것이 기술적으로는 어려운 일이 아닐 수 있지만, 현행법상 감청에 해당하는 행위가 될 수 있어 적법한 절차와 범위 내에서 분석이 이루어져야 하겠다.
 
3.2.4 주변 환경
디지털 포렌식을 통해 IoT 기기로부터 생성된 정보를 분석하는 것은 사건해결에 중요한 의미가 있으나 IoT 기기에만 의존해서 사건을 해결하려는 것은 착오에 빠지는 실수를 할 수 있다. 현장 주변의 네트워크 정보, 블루투스 등의 전파발생 정보, 내장된 센서에 영향을 줄 수 있는 조명, 온도, 습도, GPS정보, 기압 등의 현장 환경이 종합적으로 기록되고 분석되어야 종합적인 정황분석이 가능하고 사건의 재구성 또는 재현이 가능하다. 때문에 증거를 수집하는 시점에 주변 환경이 제대로 기록되지 않으면 사건의 원인을 파악하거나 사건과 연관성이 있는 간접적인 증거를 수집할 수 있는 골든타임을 놓쳐버릴 수도 있다.
 
3.2.5 프라이버시 이슈
IoT 기기는 이용자의 모든 일상 생활이 기록되거나 민감한 정보가 노출될 수 있어 증거수집 및 분석시 이용자의 프라이버시와 인권을 고려해야 한다. 최근 대법원에서는 선별적 출력 및 복제가 불가능할 경우 이미징이나 저장매체 반출이 허용될 수 있으나 혐의사실에 대한 구분 없이 임의로 저장된 디지털 증거를 출력 또는 복제하는 행위는 위법하다고 판단하였다. 비록 압수수색 과정이 적법하다고 하더라도 전자정보의 복제, 출력 과정은 압수수색의 목적에 해당하는 중요한 과정으로, 이 과정에서 혐의사실과 무관한 정보가 수사기관에 넘겨지게 되면 피압수자의 다른 법익이 침해될 가능성이 커지게 된다는 이유이다.
하지만 IoT 기기는 제조사나 그 제품의 개발자 이외에는 증거수집 시에 어떤 정보가 어느 위치에 저장되어 있는지 알기 힘들어 사실상 선별적 출력 및 복제가 어려운 상황이다. 심지어 IoT 기기에는 이용자 본인의 정보 뿐만 아니라 이용자와 관련된 제3자의 정보까지 기록되는 경우가 많아서 동의없이 수집되는 경우 심각한 프라이버시 침해 우려가 존재한다.
이와 같은 점들을 고려할 때 IoT 기기로부터 선별적 출력 또는 복제를 위해서는 IoT 기기로부터 수집할 수 있는 정보의 종류와 위치, 수집방법 등의 많은 연구가 필요하다. 또한 수사기관 중심의 법 집행기관에서는 이와 같은 연구 기반의 절차와 매뉴얼 마련이 필요하다. 이러한 절차와 매뉴얼은 범인을 검거하기 위해 중요한 수사기법이 될 수 있는 반면, 노출되어 범죄에 악용될 경우 범행 또는 증거인멸에 악용될 소지가 있어 적절한 관리와 보호도 필요하다.
 
3.3 증거 수집 및 분석 도구
3.3.1 하드웨어
모든 IoT 기기의 저장매체의 내용을 변형시키지 않고 IoT 기기의 인터페이스를 이용하여 데이터를 수집할 수 있는 만능도구가 있다면 매우 좋겠지만 현실적으로는 그렇지 않은 경우가 많다. 또한 IoT 기기 제조사마다 CPU를 비롯한 메모리에 접근하는 통신 프로토콜을 다르게 사용하고 있고, 메모리와 메모리 컨트롤러 종류 또한 다양하기 때문에 해당하는 저장매체 규격을 분석하는 과정이 필요하다.
다행히 라즈베리파이와 같은 범용적인 하드웨어를 사용하는 기기라면 기판에 장착된 SD메모리를 분리한 후 분석용 컴퓨터에 SD메모리용 어뎁터를 연결하여 이미지를 추출하는 것으로 쉽게 해결된다.
플래시 메모리가 기판에 결합되어 있는 형태의 기기의 경우 제조사가 개발자를 위해 플래시 메모리 백업 기능을 제공하는 경우에는 제조사의 개발자 매뉴얼에 설명된 방법과 절차를 통해 메모리 이미지 추출과정을 진행하면 된다. 제조사에서 JTAG(Joint Test Action Group) 인터페이스를 제공하는 경우 이 JTAG 포트를 통해 메모리의 데이터를 획득하는 방법도 많이 사용되고 있다. 원래 JTAG 인터페이스는 임베디드 시스템 개발 시에 사용하는 디버깅 목적으로 하드웨어의 테스트나 연결상태를 테스트하기 위해 사용되지만, 반도체 칩 내부를 조사(Capture)하거나 제어(INTEST))할 수 있는 기능을 이용하여 임베디드 시스템의 ROM이나 플래시 메모리의 내용을 기록하거나 읽어낼 수도 있다.

상용으로 판매되는 IoT 기기의 경우 제조사에서 많은 예산과 시간을 투자하여 개발한 노하우가 제품의 운영프로그램에 녹아들어 있기 때문에 플래시메모리에 저장된 내용이 노출되지 않도록 보호조치를 하는 경우가 많다. 이와 같은 이유로 메모리의 이미지를 케이블이나 JTAG 인터페이스 등으로 추출하는 기능이 제공되지 않은 경우에는 IoT 기기의 기판에 납땜에 되어 있는 플래시메모리를 인두나 열풍기를 이용하여 기판에서 분리 후 [그림 3-1] [그림 3-2]와 같은 롬 라이터(Rom Writer) 장비에서 증거분석용 이미지를 추출해야 하는 과정이 필요할 수도 있다.


[그림 -1] 다양한 메모리를 위한 롬 라이터 소켓 샘플



[그림 3-2] 범용으로 많이 사용되는 롬 라이터 SuperPro 610P

이와 같은 물리적인 방식으로 증거분석용 이미지를 획득하는 방법은 제품의 인터페이스와 케이블을 이용한 논리적인 방법으로 데이터를 복사하는 것에 비해 번거로운 반면에 IoT 기기가 부팅시 읽어들이는 Firmware를 비롯한 삭제된 영역의 데이터까지 확보할 수 있고 획득한 메모리 데이터의 무결성을 보장할 수 있는 장점이 있다.
또한 NAND플래시메모리는 기존 하드디스크 형태의 저장매체와 달리 그 특성상 시스템에서는 사용하지 않는 메모리 영역을 자동으로 다시 사용 가능한 메모리로 되돌려주는 기능, 즉 삭제된 데이터의 블록을 비워주는 가비지 컬렉션(Garbage Collection) 기능에 의해 증거분석용 이미지를 최초 획득한 이후 다시 이미징 작업을 진행할 경우 다른 해쉬 결과값이 출력될 수 있다는 점은 주의가 필요하다. 이것은 낸드 플래시 메모리에 존재하는 각각의 블록당 쓰고 지우는 횟수가 제한되는 문제점을 해결하기 위한 것으로 전체 블록의 쓰고 지우는 횟수를 평준화하기 위한 방안으로 가비지 컬렉션이 수행되는 것이다. 가비지 컬렉션은 하드웨어 방식으로 수행되는 경우도 있고 운영체제 기반으로 수행되는 경우도 있다.
 
3.3.2 소프트웨어
IoT 기기의 디지털 포렌식을 위해서는 기존 전통적인 디지털 포렌식과 같이 저장매체의 내용을 변형시키지 않고 데이터를 수집하고 분석할 수 있는 소프트웨어가 필요하다. 이러한 소프트웨어는 메모리에서 획득한 증거분석용 이미지에 존재하는 파일시스템을 인식하거나 재구성할 수 있고 파일시스템 내에서 존재하는 데이터의 형태를 분석하기 용이한 형태로 출력해 줄 수 있는 기능이 포함되어야 한다.
대부분의 IoT 기기 하드웨어는 제조사마다 다른 형태를 가지고 있지만 IoT 기기를 구동하는 운영체제는 리눅스, 안드로이드 등 널리 보급되고 안정화된 소프트웨어를 사용하므로, 이에 따라 범용으로 흔히 사용하는 EnCase, FTK, X-Way사의 상용 포렌식 소프트웨어나 Autopsy와 같은 오픈소스 기반 디지털 포렌식 소프트웨어도 IoT 기기 내부의 파일시스템을 인식하고 분석하는데 충분히 활용될 수 있다. 또한 IoT 기기 제조사에서 제공하는 관리소프트웨어, 개발용 SDK와 뿐만 아니라 개인이 개발한 파이썬 스크립트 같은 도구와 해킹용 도구도 때로는 좋은 분석용 소프트웨어가 될 수 있다.
일반적으로 IoT 기기 내부에서 구동되는 소프트웨어는 효율적인 데이터 및 정보의 축적을 위해 모바일 환경에 최적화된 SQLite와 같은 가벼운 데이터베이스를 많이 활용하고 있다. SQLite는 오픈소스 데이터베이스 소프트웨어로 가볍고 빠른 특성 때문에 간단한 정보를 체계적으로 저장해야 하는 응용프로그램이나 스마트폰, 임베디드 장비에 탑재되는 소프트웨어에서 주로 사용되고 있으며, 안드로이드 운영체제에 기본적으로 탑재된 데이터베이스이기도 하다.
포렌식 관점에서는 IoT 기기를 분석할 때 SQLite 파일의 구조를 분석하고 그 내용을 브라우저 형태로 볼 수 있는 소프트웨어가 범용으로 많이 활용되고 있다. 최근에는 IoT 기기에서 존재하는 SQLite의 구조를 분석하고 삭제된 영역을 복구한 후 사용된 어플리케이션과 타임라인으로 재구성한 내용을 GUI 형태로 보여주는 프로그램을 개발하여 상용화한 소프트웨어들도 있다.
파일시스템에서 삭제된 파일을 복구하듯이 SQLite에서 삭제된 영역을 복구할 수 있는 이유는 데이터베이스에서 레코드를 삭제할 때 삭제된 레코드가 있었던 영역을 사용하지 않는 영역으로 구분하지만 해당 영역이 반드시 초기화되는 것은 아니기 때문이다.
 
3. 결 론
IoT 기기의 포렌식은 기존 디지털 포렌식 분야에서 다루던 저장매체 포렌식, 메모리 포렌식, 네트워크 포렌식 등의 지식과 소형화 설계된 기기의 전자회로적 특성 그리고 연결된 센서의 특성을 파악할 수 있는 지식들이 함께 융합되고 종합되어야 가능하다. 또한 분석 단계별로 관리연속성(Chain of Custody)과 증거의 무결성이 보장된다면 각 단계별 전문가의 분업도 가능하다.
위에서 살펴본 IoT 기기의 특성을 고려할 때 사건의 상황과 IoT 기기의 종류에 따라 달라질 수도 있겠지만 대략적으로 다음과 같은 단계와 절차가 필요할 것으로 예상된다.
 
현장 채증사진 및 환경정보 수집
IoT 기기 모델 및 하드웨어 구성 정보 확인
IoT 기기 매뉴얼 확보
펌웨어 버전 확인
저장매체(메모리) 획득
증거분석용 이미지 추출
파일시스템 분석 및 삭제데이터 복구
어플리케이션 데이터베이스 분석
시나리오 기반 데이터 재구성 및 시각화
분석 보고서 작성
 
지금까지 사물인터넷 시대에 디지털 포렌식을 위한 현황을 짚어보고 향후 예상되는 포렌식 업무를 위해 연구되어야 할 방향을 작성하였다. IoT 기기에는 이용자의 모든 일상이 기록된다는 점을 고려한 프라이버시 보호와 기기의 발달에 따른 역기능에 대비한 IoT 기기의 분석기술과 절차 마련을 위해 적극적인 연구가 필요한 상황이다.


홈페이지 jQuery 라이브러리에서 CVE-2019-11358 취약점 패치 여부 확인 방법

현재 홈페이지에서 사용 중인 jQuery 라이브러리가 CVE-2019-11358 취약점 패치를 적용했는지 확인하는 방법은 다음과 같습니다. 1. jQuery 버전 확인 홈페이지 소스 코드를 확인하여 jQuery 라이브러리 버전을 직접 확인합니다. 웹 ...