사이버 포렌식

    1. 파일시스템

    디지털 저장매체

    - 하드디스크 : 자기장을 이용해 플래터[platter, 금속원판]에 데이터 기록

    - 광학 저장매체 [ Optical Disc ]

    CD-ROM [ Compact Disc ] : 기존 음성정보 저장을 위해 개발된 CD의 발전된 형태로 ISO 9660포맷 사용

    DVD-ROM [ Digital Versatile Disc ] : CD-ROM 의 7배 이상의 데이터를 저장

    기타 HD-DVD, BD[ Blue-Ray Disc ] : 등이 있음

    - ROM[ Read-Only Memory ]

    읽기만 가능한 기억장치이며 비휘발성

    - RAM [ Random Access Memory ]

    전원이 꺼지면 내용이 지워지는 휘발성 메모리


    - FLASH

    종류

    NAND

    NOR

    구조

    셀이 직렬로 연결

    셀이 병렬로 연결

    특징

    제조단가가 싸고 대용량

    데이터 처리속도가 빠르고 안정성이 우수

    이용

    USB Drive, Memory Card

    핸드폰, 셋톱박스용 칩에 Embedded

    주요 업체

    삼성전자

    인텔


    - SSD [ Solid State Drive ]

    플래시 메모리의 장점을 활용하여 하드 디스크 드라이브와 동일한 형태로 개발된 대용량 플래시 메모리

    HDD와 동일한 연결 인터페이스를 사용

    고속 데이터 입출력

    저전력

    소음과 발열이 낮음

    외부의 충격으로 데이터 손상 가능성 작음


    - HDD [ Hard Disk Drive ]


    플레터 : 데이터가 직접 기록되는 장치

    액추에이터 : 헤드를 움직이는 장치

    헤드 : 플레터에 기록된 데이터를 읽거나, 기록하는 정치, 플레터 하나 당 헤드 두개가 존재한다.


    실린더 - 트랙의 모임

    트랙 - 섹터의 모임

    섹터 - 디스크상의 읽거나 쓰는 최소 단위 ( 512 Byte )

    클러스터 - OS의 개념으로 섹터를 모아 만든공간, 파일의 DISK에 할당되는 최소단위이다. ( 4096Byte )

    헤드 - 몇번헤드를 가리키는가


    논리적 주소 지정 : CHS Address

    C(Cylinder), H(Head), S(Sector)

    세가지의 값을 따로 주어 플레터의 값을 읽거나 씀

    Cylinder과 Head는 0부터, Sector는 1부터 시작


    논리적 주소 지정 : LBA Address

    하드의 모든 섹터를 논리적으로 1차원의 섹터로 나열

    LBA는 0부터 시작


    Flash Memory 의 이해

    1. One Way Programing - 블록에 데이터를 쓰면 일부를 삭제, 수정할 수 없어, 수정이 발생하면 해당 블록을 Invalid하고 다른 Block에 Write함. Invalid Block은 후에 제거됨


    2. Wearing Erase Write Cycle - 소모성으로 1만회 또는 10만회 쓰기가 가능


    3. Spare Area - 데이터 영역 이외에도 MetaData정보를 저장하고  있는 16Byte의 영역이 존재, 직접 접근 불가

    4. Garbage Collection - Invalid Block이 모였을 때 그 블록들을 리셋


    InterFace의 이해

    1. ATA ( Advanced Technology Attachment )

    기존 병렬전송방식을 사용하는 Parallel ATA에서 직렬 전송방식을 사용하는 Serial ATA 인터페이스로 발전


    2. SCSI ( Small Computer Systems Interface )

    SCSI의 가장 큰 특징은 ATA에 비해 하나의 컨트롤러가 최대 16개 장치가 연결가능

    SAS(Serial Attached SCSI) : 기존 병렬방식을 SCSI 직렬로 변경


    파일시스템의 이해

    - 파일시스템의 정의

    자료를 쉽게 발견 및 접근할 수 있도록 보관 또는 조직하는 체제


    - 파일시스템의 분류

    FAT32(4GB), NTFS - Window OS

    HFS - MAC OS

    EXT - LINUX / UNIX


    - 플래시의 파일시스템

    YAFFS, JFFS


    - 일반적인 파일시스템의 구성


    Boot Sector, Index, Data 영역으로 구분


    1. Boot Sector

    Drive의 시작 부분으로 Drive를 어떻게 읽어야 할지를 결정하는 영역


    2. Index, MetaData

    Drive에 존재하는 파일이나 폴더들의 정보를 제공

    일반적으로 파일의 이름, 타입, 사이즈, 상태, MAC 시간, User 등의 정보저장


    3. Data

    각 파일에 대한 실제 Data 저장


    - 파일 데이터의 구성


    1. Fragmentation

    하나의 파일이 연속된 클러스터에 저장되어 있지 않고 분산되어 저장되어 있는 형태


    2. Cluster Chain

    파일의 크기가 커서 연속되거나 분산된 여러 클러스터를 저장하고 이를 연결한 구조 및 형태


    파티션의 이해

    연속된 저장공간을 하나 이상의 연속되고 독립된 영역으로 나누어 사용할 수 있도록 정의한 규약


    - MBR [ Mast Boot Record ]

    일반적으로 x86 환경에서 사용되며 파티션에 대한 위치를 포함한 정보, OS 부팅을 위한 부트 코드 등을 포함

    4개의 파티션 정보를 포함하고있는 파티션 테이블을 가지고 있으며 확장 파티션에 의해 4개 이상의 Partition을 생성할 수 있음


    - Apple Partition [ APM ]

    Boot Code 대신 시스템의 Firmware에 존재

    63개의 파티션 가능


    - GPT

    128개의 파티션 가능


    1. FAT 파일 시스템


    USB, FLASH MEMORY에서 사용된다.

    FAT#1은 CLUSTER CHAIN을 저장한다.

    FAT#2는 FAT#1의 백업


    - FAT 16

    주소를 표현할 때 2의 16승으로 한정된다.


    - FAT 32

    주소를 표현할 때 2의 32승으로 한정된다.


    - 16, 32의 차이

    16 BOOT DIRECTORY 의 위치가 고정되어있고

    32 BOOT DIRECTORY 의 위치가 DATA 영역의 랜덤하게 들어간다.


    2. NTFS


    데이터 복구 기능 - 모든 작업을 트랜잭션 단위로 기록하고 시스템 장애로 인한 문제 발생시 복구

    암호화  - EFS (Encryption File System)

    압축 - ZIP 형식의 LZ77 변형 압축 기술 사용

    디스크 쿼터 - 디스크 사용량 제한

    ADS(Alternate Data Stream) - 다중 스트림으로서 하나의 파일이 여러 이름의 데이터를 가질 수 있음, Alternate Sream 영역의 파일 안에 다른 데이터를 작성할 수 있다.

    Sparse 파일 - 파일의 내용이 0으로 채워진 경우 해당 영역을 메타데이터에 크기만을 표시하고 실제 데이터 영역을 할당하지 않음

    대용량 지원 - 이론적으로 주소가 2의 64승까지 표현 가능


    트랜잭션? 

    파일을 복사할 때 OPEN, READ, CLOSE

         CREATE, WRITE, CLOSE

    가 일어난는데 하나를 종합하여 트랜잭션 단위라고 한다.


    - NTFS의 기본 구조


    Boot Record : 해당 볼륨의 여러가지 설정 값, 부팅을 위한 실행코드를 포함한다.

    Master File Table(MFT) : 존재하는 모든 파일과 폴더에 대한 정보를 저장하고 있는 곳

    Data 영역 : MFT을 포함하고 파일 또는 폴더 등의 데이터가 저장되며 Cluster 단위로 접근한다. MFT의 위치는 무조건 Boot Record의 뒤가 아니다.


    - Boot Sector


    Byte per Sector = 512

    Sector per cluster

    Total Sector

    Start of MFT/MFTMirr

    MFT Entry Size

    Unused [ Must be Zero ]


    - MFT [ Master File Table ]

    메타데이터파일[Meta Data File]과 일반파일 또는 디렉토리에 대한 정보를 저장하고 있는 MFT Entry [ Metadata]로 구성

    $LogFile = 트랜잭션 기록 파일

    $BadClus = BadCluster 정보를 모아 저장

    $Objid = 파일의 PID 정보를 저장


    2. 윈도우즈 포렌식

    2.1 실시간 대응의 중요성


    1. 전자상거래는 시스템상에서 실시간으로 처리되며, 시스템이 Down되어 있는 경우 분당 수백에서 수천 달러의 손실이 발생

    2. 전원을 내리고 이미징하더라도 많은 시간이 소요

    3. 메모리에 상주된 데이터를 전원을 내리면 찾지못한다.

    (범죄에 이용되는 프로그램은 메모리에만 존재할 수 있다. 임시파일의 경우 사라질 수 있다.)

    4. 클라우드 환경의 시스템 전체 이미징 불가(크기, 법적권한)


    2.2 수집자료


    - 시스템 기본정보

    기본정보를 수집하는 이유는 시스템 특징을 파악하면 수집할 범위와 시간이 줄어든다.

    - 시간 정보의 수집

    현재 시간과 시스템시간과의 차이 [ 시간 동기화 ]

    수정, 생성, 접근시간

    파일 : MAC TIME (Modify, Access, Create - 여기서 Access는 하드에서 메모리로 올라온 시간을 의미)

    프로세스 : 시작 [ 실행 ] 시간, Uptime

    휘발성 증거자료의 수집 당시 시간, 수집당시 프로세스가 수집되었다면 해당시간에 실행되고 있음을 의미한다.


    - 사용자 정보의 수집

    계정목록, 원격 IP, 계정에 대한 실제 사용자 식별


    - 사건 관련 정보 수집


    1. 해킹관련

    Process, Network ,Network Sniffing


    2. 지적재산 침해관련

    숨김파일, 삭제파일, 유출(메신저, 채팅기록, 메일), 불법 라이센스 설치 프로그램


    3. 인터넷 사용관련

    접속기록, 인터넷기록


    2.3 휘발성 비 휘발성 데이터


    휘발성 - 전원이 끊어지면 손실되는 데이터, 현재 상태와 관련있다.

    비 휘발성 - 전원이 끊어져도 손실되지 않는 데이터, 시간 인터넷 관련정보(캐시, 쿠키, history), Email, 암호화파일, 윈도우 로그


    - 휘발성 순위(Order of Volatile)

    네트워크 연결정보, 클립보드를 먼저 수집해야한다. (사라질 수 있기 때문)


    - 일반적 환경에서의 휘발성 순위(휘발, 비휘발 모두 포함)

    CPU에 근접할수록 순위가 높다.

    1. CPU 영역(Logical, Register, Cache)

    2. Memory 영역

    3. Temparary File System(HDD에 존재하고 Memory에 존재할 수 있다. 리눅스의 /proc 같은 것)

    4. HDD

    5. 시스템 감시, 로그데이터

    6. 네트워크 구성도


    2.4 실시간 수집 및 분석

    - Local Reponse Method

    시스템에 직접 USB를 직접 연결하여 USB에 수집


    - Remote Response Method

    대상 시스템에 Agent 를 설치 후 명령을 통해 자료를 한번에 수집


    - Hybrid Response Method

    포렌식툴이 담긴 USB를 대상 시스템에 연결하여 툴을 실행하면 분석자료를 서버로 보냄


    레지스트리 분석

    1. 레지스트리란?


    운영체제에서 동작하는 환경설정 정보들을 저장하는 데이터베이스


    HKEY


    '고사' 카테고리의 다른 글

    인터넷 보안  (0) 2017.10.16
    PHP  (0) 2017.10.11
    자료구조  (0) 2017.10.06
    SHELL PROGRAMING  (0) 2017.10.03
    암호학  (0) 2017.10.01
    Posted by Config