맨땅에 코딩
침해대응/위협/포렌식 - 파일시스템 분석 본문
*화이트햇 스쿨 2기에서 이수한 이론교육 내용을 바탕으로 작성되었습니다.
1. 파일 포랜식 개요 및 프로세스
파일 포렌식의 의미를 설명할 수 있다.
휘발성 파일과 비휘발성 파일을 구분 지을 수 있다.
파일 포렌식 의미와 개념 소개
- 개념: 디지털 디바이스와 저장 매체에서 발견 된 파일과 데이터를 수집, 분석, 복구하고, 범죄와 관련된 정보를 찾아내어 법적인 증거로 활용하는 과정
- 목적
- 범죄 조사 지원: 범죄 수사나 기업 내의 부정행위 조사
- 데이터 보호 및 회복: 데이터 손실, 손상 또는 삭제에 대응하여 데이터를 복구/보호
- 디지털 보안 강화: 디지털 환경에서의 보안 위협을 탐지하고, 예방 / 파일 시스템의 취약성을 식별하고 보완
- 개인 정보 보호: 민감한 데이터의 유출을 방지
휘발성 데이터
RAM: 컴퓨터가 현재 실행중인 프로그램 및 데이터를 저장하는 "임시 메모리"
- 시스템 분석 및 해킹 조사: 해커가 공격한 컴퓨터의 RAM에는 공격의 증거가 남아있을 가능성이 높음
- 사이버 법 집행 가능: 범죄 수사에서는 범인의 컴퓨터에서 발견 된 휘발성 데이터를 수집하여 범죄 활동을 추적할 수 있음
- 재해 복구: 컴퓨터가 비정상적으로 종료되거나 시스템이 다운될 때, 휘발성 데이터를 분석하면 원인 파악을 할 수 있음
비 휘발성 데이터
- 데이터 유형: 문서, 이미지, 비디오, 오디오, 이메일, 데이터베이스 등
- 저장 위치: 하드 드라이브, SSD, 네트워크 서버, 클라우드 저장소 등
2. 파일 시스템
Windows 디스크 관리 패널에서 보여지는 내용들을 설명할 수 있다.
파티션, 볼륨, MBR이 무엇인지 설명할 수 있다.
각 OS 별 주요 파일 시스템 종류가 무엇이 있는지 설명할 수 있다.
소프트 링크와 하드 링크의 차이점을 설명할 수 있다.
Window OS 파일 시스템
FAT (File Allocation Table)
MS-DOS를 기반으로 함
Ex. 메모리카드, 디지털카메라, 플래시메모리
FAT12, FAT16, 그리고 FAT32
FAT 디렉토리 엔트리들은 파일 할당 테이블에 인덱스를 포함한다.
파일을 보려는 경우 FAT는 먼저 파일 할당 테이블을 읽고 파일이 존재하는지 확인한다.
FAT{num} : 이 숫자는 “클러스터“ 개수를 의미한다.
If, FAT12 = 2^12 = 4096
FAT 구조
FAT 레이아웃
FAT 32 Boot Record 주 내용
- Sector: 하드디스크 드라이브와 같은 데이터 저장 장치에서 사용되는 데이터 저장단위
1) 크기: 일반적으로 512바이트
2) 데이터 단위: 섹터는 데이터 저장의 최소 단위이며, 모든 데이터는 섹터 단위로 저장 됨
3) 주소지정: 섹터는 고유한 번호 또는 주소로 식별. (LBA – Located-Based-Addressing)
4) 읽기와 쓰기: 데이터를 읽거나 쓸 때, 시스템은 해당 섹터의 주소를 사용하여 데이터를 찾고
액세스
5) 오류 복구: 섹터는 데이터 손실 및 오류 복구에 쓰임
6) 포맷: 저장 장치를 포맷할 때, 섹터는 초기화되고 파일 시스템 구조가 설정 됨
Cluster: 파일 시스템에서 사용되는 또 다른 데이터 저장 단위
1) 크기: 클러스터의 크기는 파일 시스템에 따라 다름 / 디스크 공간의 효율성과 파일 시스템 성능을 고려
2) 논리적 단위: 클러스터는 파일 시스템의 논리적 단위로 간주 됨 / 파일 및 디렉터리는 하나 이상의 클러스터로 구성 됨
3) 오버헤드: 작은 파일을 저장할 때 클러스터 크기가 큰 경우, 공간이 낭비 될 수 있음
4) 파일 할당: 파일을 저장할 때 파일 시스템은 파일을 클러스터로 나누어 저장 / 만약, 파일이 클러스터 크기보다 크다면 클러스터 여러 개를 사용하여 저장하면 됨
NTFS (New Technology File System)
Microsoft에서 개발한 독점 저널링 파일 시스템
NTFS 파일 시스템은 OS Boot Record, MFT1, MFT 메타데이터, MFT2, 데이터 영역으로 구성
Linux OS 파일 시스템
ext1 -> ext2 -> ext3 -> ext4 -> XFS
ext3: ‘Extended File System 3’
Journal: 파일 시스템의 변경 내용을 기록하는 곳 / 시스템이 비 정상적으로 종료되는 등의 상황에서 빠르게 파일 시스템을 복구할 수 있게 됨
ext4: ‘Extended File System 4’
Extent: 대용량 파일 시스템에서 성능을 향상시키기 위해 도입되었음
연속된 데이터 블록을 하나의 큰 블록으로 관리
Delayed Allocation: 파일에 데이터를 기록하지 않고 쓰기 작업을 지연시켜 성능을 향상 시킴
Multi-Block Allocator: 여러 블록을 동시에 할당하거나 해제할 수 있는 기능
64-bit File Size Support: 대용량 파일 시스템을 지원
macOS 파일 시스템
모든 애플 플랫폼에서 사용됨
강력한 암호화 제공 (FileVault)
COW(Copy-On-Write)
공간 공유 : 단일 APFS 컨테이너에 다수의 볼륨이 포함된 경우, 컨테이너의 남은 공간을 공유하거나, 개별 볼륨에 할당 가능
파일 및 디렉터리 복제
스냅샷
빠른 디렉토리 크기 조절
Firmware 파일 시스템
SquashFS (IoT firmware에서 자주 출몰)
Data, inode, directory 압축 지원
Read Only!
압축 알고리즘 (zlib, xz, lz4, lzo) 사용
소프트링크 VS 하드링크
- 소프트링크(심볼릭링크)
서로 다른 inode
리눅스 프로그램 ‘/usr/bin/ln’을 이용하여 설정가능
- 하드링크
서로 같은 inode
리눅스 프로그램 ‘/usr/bin/ln’을 이용하여 설정가능
파일 내용 변경 되면, 같이 "변경 됨"
3. 침해사고 대응
침해사고 발생 시 진행해야 하는 매뉴얼을 설명할 수 있다.
침해사고: 비 인가된 접근, 전산 시스템의 오남용을 의미 / 해킹 사고는 물론이며, 악성코드 유입으로 인한 사고도 포함 / 회사 보안정책 위반되는 행위
침해사고 종류
- 악성프로그램 유포: 정상적인 프로그램을 저렴하게 이용하고자 하는 사람들의 심리를 잘 이용하는 프로그램 / 쉽게 말해서, 크랙 프로그램 내부에 악성코드를 많이 삽입해 둠
- 서비스 거부 공격: 혹은 어플리케이션에서 파라미터 미 검증으로 인해 서비스가 마비 되는 행위
침해사고 판단
- 침입 탐지 시스템 (IDS)
: 네트워크 또는 시스템에서 발생하는 이상 행위를 감지
보안 담당자에게 침입 시도 정보 제공, 공격을 직접 막을 수는 없음
경고 및 알림 생성에 초점을 둠
보안 담당자나 시스템 관리자가 이러한 경고를 분석하고 대응함
- 침입 방지 시스템 (IPS)
: 이상 행위를 감지하고, 직접 대응하고 차단할 수 있음
감지된 이상 행위에 대해 실시간으로 대응하여 트래픽을 차단하거나 수정함
로그 파일을 통한 이상 징후 확인
침해사고 증거 수집
- Window 기준
사용자 계정, 프로세스 정보 수집
공격 당한 OS 설치 시간 확인
공격 당한 OS 시간 정보 확인
사용중인 서비스 확인
작업 스케줄러 등록 여부 확인
레지스트리 내 항목 확인
네트워크 확인
공유폴더 유무 확인
방화벽 유무 확인
세션 정보 확인
의심 폴더 생성 확인
삭제 파일 로그 확인
이벤트 뷰어 로그 확인
- Linux 기준
메모리 덤프 수집 (with Volatility)
프로세스 및 서비스 확인 (ps aux + systemctl)
네트워크 연결 확인 (netstat)
로그 파일 확인 (/var/log …)
쉘 히스토리 확인 (.bash_history)
시스템 리소스 확인 (top)
저장 매체 상태 확인 (df)
세션 정보 확인 (who)
4. 파일 구조
다양한 파일 구조를 설명할 수 있다.
JPG/JPEG 파일
JPEG 파일은 최대 24비트 색상을 지원함
간편한 저장과 전송을 위해 손실 압축 방식으로 이미지를 저장함
주의 !
EXIF (Exchangable Image File Format)
: 교환 이미지 파일 형식은 디지털 카메라에서 이용되는 이미지 파일 포맷
i.e) JPEG, TIFF 6.0, RIFF, WAV etc
압축
Transformation : 인간의 눈은 주로 Luminance(밝기)에 민감하지만, “Chrominance(색차)” 에는 민감하지 않음
Chrominance 부분에서 많은 데이터를 손실하면서, 높은 압축도 가능함
핵심 키워드: RGB (Red Green Blue)
Down Sampling : 이미지의 크기를 줄이기 위해 컬러 구성 요소에서 다운 샘플링을 수행함
밝기 요소는 손상되지 않기 때문에 품질에 큰 영향이 없음
Organizing in Groups : 각 색 구성 요소의 픽셀을 8X2 픽셀의 그룹인 “데이터 단위"로 구성함
Discrete Cosine Transformation : 각 데이터 단위에 DCT 적용하여 8X8 변환 된 구성요소의 맵을 생성
DCT는 제한된 정밀도로 인해 정보 손실이 발생. 맵이 없어도 이미지 품질 손실이 발생하지만, 일반적으로 적음
Quantization : 각 데이터 단위의 변환 된 구성요소를 양자화 계수로 나누고 정수로 반올림 진행
시프트 연산을 잘못 수행했을 때 복구가 불가능 하듯이, 이 상황에서는 정보 손실이 엄청남
Encoding : 각 데이터 단위의 64개 양자화 된 변환 계수는 RLE와 Huffman 코딩의 조합을 사용하여 인코딩 됨
Adding Header : 마지막 단계이며, 헤더와 사용된 모든 JPEG 파라미터를 추가하고 결과를 출력
두번째 타깃: QR 코드
QR (Quick response code)는 1994년 DENSO WAVE가 개발한 고속 판독용 매트릭스 2차원 코드
사이즈는 상당히 다양하게 있음
패턴이란 것이 존재함
숫자, 문자, 심지어 한자 까지 저장할 수 있음
QR (Quick response code)는 1994년 DENSO WAVE가 개발한 고속 판독용 매트릭스 2차원 코드
세번째 타깃: PNG 파일
PNG(Portable Network Graphic)은 래스터 이미지 파일의 일종임
투명 또는 반투명 배경의 그래픽을 처리할 수 있음
"특허"가 없어서 우리가 자유롭게 쓸 수 있음
래스터 파일 VS 벡터 파일
래스터 파일은 JPEG, PNG, GIF가 대표 주자
픽셀 수가 제한되어 있어 이미지 손실이 쉬움
래스터 파일 == 비트맵
이미지 손실은 쉽지만, 고해상도에서는 디테일을 살릴 수 있음
품질이 좋음
웹 브라우저 등에서 쉽게 열 수 있어서 “호환성“ 보장
벡터 파일은 디지털 사진, 그래픽, 로고와 같은 여러 이미지 작업을 할 때 사용 됨
대표 주자로는, SVG, PS, 3DXML, STL 파일 등이 있음
벡터 파일은 “픽셀“ 따위 쓰지 않음
"그리드"를 써서 수학적으로 접근함 (직선 && 곡선의 조화)
수학적으로 접근하기에, 무한대로 조절 가능하며 자연스레 손실도는 낮아짐
Adobe Illustrator, EPS (PostScript – 악성코드에서도 단골손님이었던), PDF(Portable Document
Format), SVG(Scalable Vector Graphics)
네번째 타깃: ZIP 파일
“무손실 압축 포맷“
여러 개의 파일을 압축해서 하나의 파일로 만들기 위한 컨테이너 포맷임
알고리즘: Deflate
ZIP 포맷에서 파일 압축 시, 플래그 비트가 작용된다. “General purpose bit flag”
5. 파일 암호화
암호화가 각각 어떤 파일에서 어떤 기법으로 진행되는지 말할 수 있다.
전체 디스크 암호화 (Full Disk Encryption)
대상 파일 : 전체 디스크 혹은 디스크 파티션
프로그램 : BitLocker, FileVault, dm-crypt
파일 수준 암호화
대상 파일 : 특정 파일 또는 폴더
기술 : AES, DES, XOR
프로그램: VeraCrypt, AES Crypt, Boxcryptor, 7-Zip
이메일 암호화
대상 파일 : 이메일 및 첨부 파일
기술 : PGP
프로그램: Virtru, Proofpoint Email Security and Protection etc
네트워크 통신 암호화
대상 파일 : 네트워크 통신 데이터
기술 : SSL(Secure Sockets Layer), TLS(Transport Layer Security)
프로그램: OpenSSL, IPSec, WireGuard, SSH, HTTPS, OpenVPN
'화이트햇 스쿨 2기 > 이론교육' 카테고리의 다른 글
침해대응/위협/포렌식 - 포렌식 도구 이해 (0) | 2025.02.15 |
---|---|
침해대응/위협/포렌식 - 리버스 엔지니어링 (0) | 2025.02.13 |
취약점 분석 - 시스템 해킹 원리 (0) | 2025.02.13 |
취약점 분석 - 컴퓨터 구조 II (0) | 2025.02.13 |
취약점 분석 - 어셈블리 언어 (0) | 2025.02.13 |