컴퓨터 포렌식의 경우, (현장에서 제거할 수 없는) 피의자의 컴퓨터가 리눅스 시스템이라면 다음과 같이 직접 사용할 수 있는가?DD또는dcfldd그의 컴퓨터에 디스크 이미지를 얻으시겠습니까? 아니면 기존 운영 체제 위에 Helix, Penguin sleuth 또는 FFCU와 같은 포렌식 라이브 CD가 필요합니까?
답변1
다음과 같은 명령을 실행할 때
# dd if=/dev/sda of=/path/to/external/medium/file.img
라이브 시스템에서 작업하는 동안 별도의 OS로 부팅하고 거기에서 이미지를 만들면 발생하지 않는 여러 가지 문제가 발생합니다.
전체 디스크를 이미지화하는 경우 다음이 포함될 수 있습니다.부트 로더그리고파티션 테이블. 이는 이미지에 대한 법의학/복구를 수행하려고 할 때 방해가 됩니다.
실제로 원하는 것은 각 파일 시스템을 독립적으로 미러링하는 것입니다.
# dd if=/dev/sda1 of=/path/to/external/medium/filesystem1.img # dd if=/dev/sda2 of=/path/to/external/medium/filesystem2.img ...etc...
이렇게 하면 파일 시스템을 간단하게 마운트할 수 있습니다.
# mount -oloop,ro filesystem1.img /mnt/fs1
(
mount
일부 Linux에서는 루트로 완료를 표시합니다.순환 장비잠겨 있어 일반 사용자는 사용할 수 없습니다. )실시간으로 마운트된 파일 시스템의 스냅샷을 찍기 때문에 나중에 마운트할 때 실제로는 컴퓨터를 다시 시작하는 것과 다르지 않습니다. 파티션은 "더러운,' 오류가 발생하여 손상 없이 설치하기가 어렵습니다.
당신은 의심스러운 기계를 사용하고 있습니다
dd(1)
. 누군가가 당신에게 뭔가를 숨기려고 한다면, 그 사람은 그것을 은밀하게 또는 악의적으로 제공하고 있을 수도 있습니다dd(1)
.
이제 그렇게 말했지만, 몇 가지가 있습니다좋아요온라인 복제의 이유. 가장 좋은 이유는 시스템이 어떤 형태의 파일 시스템을 사용하고 있거나전체 디스크 암호화, 다시 시작하면 탑재된 볼륨의 암호 해독 키가 삭제됩니다.
dd
그러나 이는 저장 중인 암호화된 데이터의 복사본만 제공하므로 작업에 적합한 도구는 아닙니다. 정기적으로 백업하는 것이 더 좋습니다. 예를 들어,
# tar -cvJf --exclude={'/proc/*','/sys/*','/tmp/*'} \
/path/to/external/medium/everything.tar.xz /
이렇게 하면 숨겨진 파티션 등이 발견되지는 않지만 최소한 운영 체제가 파일 시스템 루트에서 직접 액세스할 수 있는 모든 파일의 암호를 해독하도록 강제합니다.
답변2
법의학 조사에서는 잠재적으로 적대적인 시스템에서 데이터를 검색해야 하며 검색된 데이터가 진짜라는 강력한 증거를 제공해야 합니다. 라이브 머신에서 디스크 이미지를 얻는 것은 두 가지 측면 모두에서 끔찍한 일입니다.
시스템 소프트웨어는 귀하에게 거짓말을 하고 귀하에게 없는 자격 증명이 제시될 때만 "흥미로운" 데이터를 제공하도록 프로그래밍된 일부 비표준 소프트웨어일 수 있습니다. 예를 들어 실제 하드웨어로 위장한 가상 머신과 상호 작용할 수 있습니다. 실제 데이터가 보고되지 않도록 시스템 실행 파일이나 커널이 수정되었을 수 있습니다. 이는 실제 데이터를 원하기 때문에 귀하에게 문제가 되는 동시에 법적 절차에 있어서도 문제입니다. 왜냐하면 용의자의 변호사가 귀하가 잡은 것이 진짜라는 것을 증명할 수 없다는 것을 증명할 것이기 때문입니다.
포렌식의 일반적인 절차는 저장 매체의 연결을 끊고 이를 정확히 찾아낼 수 있는 소프트웨어를 실행하는 노트북에 연결하는 것입니다.
또한 dd
이것은 잘못된 도구입니다.전체 입력을 안정적으로 복사하지 않습니다.. (파이프가 아닌 블록 장치에서 읽는 경우에는 작동할 수 있지만 어느 수준의 자신감을 갖고 이를 증명했는지 행운을 빕니다.) 적어도 dcfldd
또는 적어도 와 같은 적절한 도구를 사용하십시오 cat
.
컴퓨터에서 실행되는 소프트웨어도 신뢰할 수 없을 뿐만 아니라 하드웨어도 신뢰할 수 없습니다. 따라서 피의자의 컴퓨터에서 자신의 미디어를 부팅하려고 시도하는 것은 안전하지 않습니다. 예를 들어 운영 체제는 감지할 수 없지만 손상된 데이터를 반환하는 하이퍼바이저에서 실행될 수 있습니다. 본인의 컴퓨터를 가져와서 하드 드라이브를 연결해야 합니다.
용의자의 컴퓨터에 글을 쓰지 않는 것도 중요합니다(용의자의 데이터에서 파생된 자신의 데이터가 아니라 용의자의 데이터가 필요하기 때문입니다). 따라서 표준 절차는 디스크에 기록되지 않을 프로토콜 수준(예: USB 저장 프로토콜)에서 시행하는 특수 하드웨어 구성 요소인 쓰기 차단기를 통해 하드 드라이브를 연결하는 것입니다. 그런 다음 스크랩된 콘텐츠를 참조 복사본(가능한 경우 물리적인 1회 기록 미디어, 절대 쓰지 않을 하드 드라이브)으로 보관하고 직접 사용하지 않고 보조 복사본에 대한 작업 수행에서만 사용합니다.
전체 디스크의 이미지를 캡처하고 거기에서 파일 시스템 등을 다시 빌드하는 것이 더 좋습니다. 볼륨을 조립하거나 파일 시스템을 마운트(읽기 전용이라도!)하는 단순한 작업으로 더티 비트 설정, 마지막 사용 날짜 업데이트, 로그 재생 등을 수정할 수 있습니다. 지원되지 않는 ext3/ext4 파일 시스템을 마운트하는 경우 설치 옵션을noload
완전히 제거합니다 ( 제외).ro
예를 들어 데이터가 암호화되어 있기 때문에 라이브 시스템에서 무언가를 가져와야 하는 경우 가능한 한 얻으십시오. 당신이 하는 일을 가능한 한 정확하게 기록하십시오(동영상을 촬영하는 것이 도움이 될 수 있습니다). 하지만 실제 기본 데이터도 확보해야 합니다. 라이브 시스템에서 얻은 정보(일반적으로 키)를 사용하여 쉽게 추적 가능한 방식으로 직접 덤프에서 흥미로운 데이터를 재구성합니다.
이 주제에 대한 자세한 내용은 다음에서 확인할 수 있습니다.보안 스택 교환, 특히: