컴퓨터 보안 사고를 조사하는 것은 마치 범죄 현장을 조사하는 것과 같습니다. 형사는 증거를 수집하고 눈에 띄는 단서를 기록하며 도난 당하거나 손상된 물품의 목록을 기록합니다. 공격이 행해지는 동시에 사고를 분석하거나 또는 침해 공격이 발생한 후 (post-mortem) 보안 사고를 분석할 수도 있습니다.
보안 사고가 발생한 시스템의 시스템 로그 파일을 믿는 것은 현명하지 않습니다. 따라서 보안 사고를 분석하고 수사하는데 도움이 될 만한 다른 도구를 사용하실 수 있습니다. 이 도구들은 각자 다른 기능과 목적을 지니고 있지만, 기본적으로 매체의 비트 이미지를 생성한 후 사고와 프로세스 간에 상호 관계를 밝히고 저수준 파일 시스템 정보를 보여주며 삭제된 파일을 최대한 복구합니다.
다음 예시와 같이 script 명령을 사용하여 보안 사고가 발생한 시스템 상에서 실행된 모든 조사 과정을 기록해두시는 것이 좋습니다:
script -q <file-name> |
<file-name> 부분을 script 로그의 파일 이름으로 대체하시기 바랍니다. 보안 침해 당한 시스템의 하드 드라이브가 아닌 다른 매체에 로그 파일을 저장하셔야 합니다 — 플로피 디스크가 이러한 용도로 특히 잘 사용됩니다.
조사 과정을 기록함으로서 만일 침입자가 발견될 경우 이러한 추적 정보가 유용하게 사용될 수 있습니다.
먼저 첫 단계로서 매체의 비트 이미지를 복사하셔야 합니다. 데이터 수사 작업을 수행하신다면 반드시 필요한 작업입니다. 두 개의 복사본을 만드시길 권장합니다: 한 개는 사고 분석과 조사를 위해, 다른 하나는 원본과 함께 법정에서 증거로 제출하기 위해 보관하셔야 합니다.
Red Hat Enterprise Linux의 coreutils 패키지에 포함된 dd 명령을 사용하여 보안 침해 당한 시스템의 단일 이미지를 생성하여 조사 과정에서 증거로 사용하거나 신뢰할 수 있는 이미지와 비교하는데 사용하실 수 있습니다. 만일 이미지를 복사하려는 시스템에 한개의 하드 드라이브가 있다고 가정합니다. 이 드라이브를 시스템에 슬레이브로 접착하신 후 다음과 같이 이미지 파일을 생성하기 위해 dd 명령을 사용하시기 바랍니다:
dd if=/dev/hdd bs=1k conv=noerror,sync of=/home/evidence/image1 |
이 명령은 1k 블록 사이즈 속도를 사용하여 image1라는 단독 파일을 생성합니다. conv=noerror,sync 옵션은 드라이브에서 잘못된 섹터가 발견되어도 dd 명령이 계속해서 데이터를 읽고 덤프하도록 강제합니다. 이제 결과 이미지 파일을 조사하거나 삭제된 파일을 복구 시도하는 것도 가능합니다.
디지털 수사와 분석이란 주제는 매우 광범위한 의미이지만 수사와 분석 도구들은 대부분이 특정 구조에 한정되어 사용되기 때문에 일반적으로 적용될 수는 없습니다. 그러나 사고 대응, 분서 및 복구는 매우 중요한 주제입니다. 사용자에게 적절한 지식과 경력만 있다면 Red Hat Enterprise Linux는 보안 사고 발생 후 대응과 복구를 수행하는데 사용될 수 있는 여러 도구를 포함하고 있으므로 이러한 유형의 분석을 수행하는데 훌륭한 플랫폼이 될 수 있습니다.
표 10-1에서는 파일 감사와 관리에 사용되는 몇몇 명령어를 보여줍니다. 또한 파일과 파일 속성 (예, 허가와 마지막 접근 날짜)을 적절하게 식별하여 사고 분석을 위해 증거 항목을 수집하는데 사용 가능한 일부 예시 도구도 나와있습니다. 이러한 도구를 침입 검색 시스템, 방화벽, 보안 강화된 서비스 및 다른 보안 조치와 함께 사용한다면 보안 침입시 최대한 손상을 줄일 수 있습니다.
![]() | 알림 |
|---|---|
각 도구에 대한 자세한 정보를 보시려면 상응하는 메뉴얼 페이지를 참조하시기 바랍니다. |
| 명령 | 기능 | 예제 |
|---|---|---|
| dd | 파일과 파티션의 비트 이미지 복사본 (디스크 덤프)를 생성합니다. 관리자는 각 이미지의 md3sum 검사와 더불어 보안 침입이 발생하기 전 파티션이나 파일의 이미지와 이후 이미지를 비교하여 체크섬이 일치하는지 확인하실 수 있습니다. | dd if=/bin/ls of=ls.dd |md5sum ls.dd >ls-sum.txt |
| grep | 파일과 디렉토리 내에서 유용한 문자열 (텍스트) 정보를 찾아낼 뿐만 아니라 허가, 스크립트 변경 사항, 파일 속성 등과 같은 정보도 보여줍니다. 대부분의 경우 ls, ps, 또는 ifconfig와 같은 명령어와 함께 파이프된 명령어로 사용됩니다. | ps auxw |grep /bin |
| strings | 파일 내에서 인쇄 가능 문자열을 인쇄합니다. 실행 가능 파일에서 예외적인 증상을 찾아내는데 매우 유용합니다. 예를 들어 mail 명령어가 알 수 없는 주소로 메일을 보내거나 표준이 아닌 로그 파일로 기록하는 것과 같은 증상을 찾아낼 수 있습니다. | strings /bin/ps |grep 'mail' |
| file | 파일의 특성을 형식, 인코딩, (만일 있다면) 링크된 라이브러리와 파일 유형 (이진 파일, 텍스트 파일 등)을 알아냅니다. 이 명령은 /bin/ls와 같은 실행 파일이 정적 라이브러리를 사용하여 수정되었는지를 알아내는데 유용합니다. 만일 수정되었다면 침입자가 이 실행 파일을 새로 설치한 파일로 대체했다는 증거입니다. | file /bin/ls |
| find | 디렉토리에서 특정 파일을 찾아냅니다. 키워드, 날짜, 접근 날짜, 파일 허가 등을 사용하여 디렉토리 구조를 검색하는데 유용한 도구입니다. 또한 관리자가 특정 디렉토리나 파일에서 일반 시스템 감사 작업을 수행하는데도 유용하게 사용됩니다. | find -atime +12 -name *log* -perm u+rw |
| stat | 마지막으로 파일을 액세스한 시간, 허가, UID 및 GID 비트 설정 등과 같은 파일에 대한 다양한 정보를 보여줍니다. 보안 침해된 시스템 실행 파일이 언제 마지막으로 사용되거나 수정되었는지 확인하는데 유용합니다. | stat /bin/netstat |
| md5sum | md5 해시 알고리즘을 사용하여 128 비트 체크섬을 계산합니다. 이 명령을 사용하여 보안 문제 발생시 가장 빈번히 수정되거나 대체되는 모든 중요한 실행 파일의 목록을 담은 텍스트 파일을 생성하십시오. 체크섬을 파일로 리다이렉트하여 단순 체크섬 데이터베이스를 생성 후 파일을 CD-ROM과 같은 읽기 전용 매체로 복사하시기 바랍니다. | md5sum /usr/bin/gdm >>md5sum.txt |
표 10-1. 파일 감사 도구