메모리에 대한 원시 액세스는 데이터 포렌식을 수행하거나 장치를 해킹하는 동안 유용합니다. 때때로 잠긴 부트로더에서 무슨 일이 일어나고 있는지 분석하기 위해 메모리 스냅샷이 필요할 때가 있습니다. 버그를 추적하거나 Angry의 적절한 메모리 위치를 알아내기 위한 메모리 위치 스냅샷 새 점수. 이것이 바로 Linux Memory Extractor, 즉 a.k.a입니다. 라임 포렌식, 들어 온다. LiME는 전체 범위의 장치 메모리에 액세스할 수 있게 해주는 로드 가능한 커널 모듈입니다. 커널 모듈은 메모리에 로드되자마자 기본적으로 스냅샷을 찍기 때문에 매우 효율적인 디버깅이 가능합니다.
저는 LiME Forensics의 저자인 Joe Sylve에게 viewmem과 같은 기존 도구에 비해 LiME가 갖는 이점에 대해 설명해 달라고 요청했습니다.
귀하의 질문에 답하기 위해 도구는 목적에 따라 다양한 용도로 설계되었습니다. LiME는 법의학 분석이나 보안 연구를 위해 RAM의 물리적 메모리 레이아웃 전체 덤프를 획득하도록 설계되었습니다. 커널 공간에서 모든 작업을 수행하며 로컬 파일 시스템이나 TCP를 통해 이미지를 덤프할 수 있습니다. 이는 시스템과의 상호 작용을 최소화하면서 실제 메모리 사본에 최대한 가깝게 제공하도록 설계되었습니다.
viewmem은 /dev/mem 또는 /dev/kmem과 같은 메모리 장치에서 가상 메모리 주소 범위를 읽고 내용을 stdout에 인쇄하는 사용자 영역 프로그램인 것 같습니다. 해당 장치 중 하나에서 단순히 dd를 사용하는 것 이상의 기능을 수행하는지 잘 모르겠습니다.
이는 여러 가지 이유로 법의학에서는 허용되지 않습니다. 우선, /dev/mem 및 /dev/kmem은 단계적으로 폐지되고 있으며 점점 더 많은 장치가 해당 장치와 함께 제공되지 않습니다. 둘째, /dev/mem 및 /dev/kmem은 처음 896MB RAM부터 읽는 것으로 제한합니다. 또한 이 도구는 모든 메모리 블록 읽기에 대해 사용자 영역과 커널 영역 간에 여러 컨텍스트 전환을 일으키고 해당 버퍼로 RAM을 덮어씁니다.
각 도구마다 용도가 있다고 말하고 싶습니다. 첫 번째 896MB RAM 내에 있는 주소의 내용을 알아야 하고 장치에 /dev/mem 및 /dev/kmem이고 법의학적으로 건전한 이미지 캡처에 관심이 없다면 viewmem(또는 dd)은 유용한. 그러나 LiME는 해당 사용 사례를 위해 특별히 설계되지 않았습니다.
메모리 해커 여러분에게 가장 중요한 것은 viewmem이 /dev/mem 그리고 /dev/kmem 장치. 이후 /dev/mem 그리고 /dev/kmem 장치는 장치 메모리에 대한 직접 액세스를 허용하므로 취약점입니다. 이러한 Linux 장치는 최근 여러 공격의 대상이 되었기 때문에 단계적으로 폐지되고 있습니다. LiME는 viewmem 유틸리티를 대체할 뿐만 아니라 더 나은 기능을 제공합니다.
제조업체의 참고 사항: 개발자가 원하는 기능을 잠그면 더 나은 도구 개발이 촉진됩니다.
원천: 라임 포렌식 & 작가 Joe Sylve와의 인터뷰
[이미지 출처: 라임 프레젠테이션 조 실브 지음]