침해사고분석 이론 5
루트킷
개념
- 루트킷은 컴퓨터 시스템에 침투하여 악의적인 활동을 수행하고, 자신의 존재를 숨기기 위한 악성 소프트웨어입니다.
- 주요 기능:
- 시스템 권한 획득
- 사용자 정보 탈취
- 시스템 제어 및 악성코드 유포
- 특징:
- 침투 후 자신의 존재를 숨기며 지속적으로 활동
- 탐지 및 제거가 어려워 공격자에게 지속적인 접근 권한 제공
- 시스템의 중요한 함수를 후킹하거나 커널 오브젝트를 조작하여 탐지 및 분석 회피
종류
- 커널 루트킷 (Kernel Rootkit)
- 운영 체제의 커널에 침투하여 동작
- 시스템에 대한 높은 수준의 접근 권한 획득
- 사용자 모드 루트킷 (User-mode Rootkit)
- 사용자 애플리케이션 수준에서 동작
- API 함수를 후킹하여 정보 가로채기 및 수정
- 부트킷 (Bootkit)
- 시스템 부팅 과정을 감염
- 부팅 전에 실행되어 탐지 및 제거가 매우 어려움
- 하이퍼바이저 루트킷 (Hypervisor Rootkit)
- 가상 머신 환경의 하이퍼바이저를 감염
- 가상 머신의 동작을 제어하고 정보 탈취
- 펌웨어/하드웨어 루트킷 (Firmware/Hardware Rootkit)
- 시스템 펌웨어 또는 하드웨어에 침투
- 탐지 및 제거가 거의 불가능
동작 방식
1.시스템 침투
- 취약점 공격: 시스템 또는 애플리케이션의 취약점을 악용하여 설치
- 소셜 엔지니어링: 사용자를 속여 악성 파일을 실행하도록 유도
- 악성코드 감염: 다른 악성코드에 의해 설치
2.권한 획득
- 권한 상승: 시스템 취약점을 이용하여 관리자 권한 획득
- 패스워드 크래킹: 사용자 계정 비밀번호를 크래킹하여 권한 획득
3.존재 은닉
- 후킹: 시스템 함수 또는 API를 변조
- 코드 인젝션: 악성 코드를 다른 프로세스에 주입
- 파일/프로세스 은닉: 특정 파일과 프로세스를 숨김
- 레지스트리 수정: 시스템 설정 변경
- 네트워크 트래픽 변조: 통신 데이터를 조작하여 탐지 회피
탐지 도구
- 파일 무결성 검사 도구: 설치된 파일의 무결성을 확인
- 메모리 분석 도구: 메모리 상태를 검사하여 루트킷 탐지
- 네트워크 분석 도구: 네트워크 트래픽에서 이상 징후 탐지
- 루트킷 탐지 전용 도구:
chkrootkit
,rkhunter
분석기술
- 정적 분석
- 루트킷 파일을 실행하지 않고 코드 분석
- 예: 바이너리 파일의 구조 및 코드 분석
- 동적 분석
- 루트킷을 가상 환경에서 실행하여 행위 분석
- 예: 시스템 변화 및 네트워크 통신 모니터링
- 시스템 로그 분석
- 시스템 로그에서 루트킷 관련 의심스러운 이벤트 탐지
- 메모리 포렌식
- 시스템 메모리 스냅샷을 분석하여 루트킷의 프로세스, 코드, 데이터를 식별
Everything 검색 도구
개념
- Everything은 Windows 파일 시스템에서 빠른 파일 검색을 제공하는 도구
- 파일 이름을 인덱싱하여 거의 실시간 검색이 가능
- 정규 표현식을 지원해 복잡한 패턴 검색을 구현할 수 있음
- 정규 표현식을 사용하려면
regex:
를 입력한 뒤 정규 표현식을 추가
- 정규 표현식을 사용하려면
- 매우 빠른 검색 속도를 제공하지만, 초기 실행 시 파일 인덱싱에 시간이 소요될 수 있음
주요 기능
- 빠른 파일 및 폴더 검색
- 다양한 검색 연산자 지원
- AND, OR, NOT, 와일드카드 등
- 정규 표현식 지원
- 복잡한 검색 조건 작성 가능
- 파일 내용 검색
- NTFS 파일 시스템에서 지원
- 검색 결과 필터링 및 정렬
- 네트워크 드라이브 검색
- 네트워크 상의 파일도 검색 가능
- 휴대용 버전 지원
- 설치 없이 바로 실행 가능
고급 연산자
- AND: 여러 키워드를 모두 포함하는 파일 검색
- 예:
report AND 2023
- 예:
- OR: 여러 키워드 중 하나 이상을 포함하는 파일 검색
- 예:
invoice OR receipt
- 예:
- NOT: 특정 키워드를 제외한 파일 검색
- 예:
log NOT error
- 예:
- 와일드카드:
*
: 여러 문자를 대체- 예:
*.txt
(모든 텍스트 파일 검색)
- 예:
?
: 한 문자를 대체- 예:
file?.doc
(파일 이름에 한 문자 차이가 나는 .doc 파일 검색)
- 예:
LiME 도구
개념
- LiME (Linux Memory Extractor)는 리눅스 시스템의 메모리 내용을 덤프하는 오픈 소스 도구
- 휘발성 데이터를 수집하여 악성코드 분석, 루트킷 탐지, 시스템 동작 분석 등에 활용됨
- 커널 공간에서 작동하여 높은 권한으로 메모리에 접근 가능
- 실행 중인 프로세스, 네트워크 연결, 열린 파일 등의 정보를 수집하여 분석에 필요한 데이터 제공
특징
- 최소한의 시스템 영향
- 메모리 덤프 수행 시 시스템 오버헤드를 최소화하도록 설계됨
- 커널 호환성
- 대상 시스템의 커널 버전과 정확히 일치하는 LiME 모듈을 빌드해야 함
- 보안
- LiME 모듈은 커널 권한으로 실행되므로 악의적인 목적으로 사용되지 않도록 주의 필요
- 증거 무결성
- 덤프 파일 무결성을 보장하기 위해 해시 값(MD5, SHA256 등)을 계산하고 기록해야 함
- 법적 고려 사항
- 메모리 덤프는 개인 정보를 포함할 수 있으므로 관련 법률 및 규정을 준수해야 함
주요 기능
- 메모리 덤프
- LiME는 물리 메모리와 커널 메모리의 전체 또는 일부를 덤프
- 덤프 파일은 raw 이미지 형식으로 저장됨
- 다양한 덤프 옵션
- 압축, 암호화, 분할 덤프 등의 옵션 제공
- 덤프 파일 크기를 줄이거나 보안을 강화할 수 있음
- 원격 덤프
- 네트워크를 통해 원격 시스템의 메모리 덤프 가능
- 물리적 접근이 어려운 시스템의 침해사고 분석에 유용
- 라이브 응답
- 실행 중인 시스템에서 메모리 덤프 수행 가능
- 시스템을 종료하지 않고도 침해사고 분석을 진행할 수 있음