이번에 리뷰 해볼 논문은 한국컴퓨터정보학회에 2021년에 투고된 Windows 10에서의 심캐시(ShimCache) 구조 분석과 안티 포렌식 도구 실행 흔적 탐지 도구 제안 이라는 논문이다.
논문 원문은 아래의 주소에서 확인해 볼 수 있다. URL : http://www.koreascience.or.kr/article/CFKO202125036451369.pdf
<aside> 3️⃣ 심캐시(ShimCache) 파일은 Windows 운영체제에서 응용 어플리케이션 간의 운영체제 버전 호환성 이슈를 관리하는 파일이다. 응용 프로그램 실행흔적 확인하는 Prefetch는 최대 128개의 파일까지 저장하기에 한계점이 존재하지만 심캐시는 저장 개수에 제한이 없기 때문에 분석에 꼭 필요한 아티팩트이다.
</aside>
심캐시(ShimCache, AppCompatCache) 파일은 Windows 운영체제에서 응용 어플리케이션 간의 운영체제 버전 호환성 이슈를 관리하는 파일이다. 호환성 문제가 발생한 응용 어플리케이션에 대한 정보가 심캐시(ShimCache)에 기록되며 프리패치(Prefetch)파일이나 레지스트리의 UserAssist 키 등과 같이 응용 어플리케이션의 실행 흔적을 기록한다는 점에서 포렌식적 관점에서 중요한 아티팩트이다. 본 논문에서는 기존의 상용 툴을 개선하고 안티 포렌식 흔적을 탐지하는 방법을 제시한다.
AppCompatCache, ShimCache, Application Compatibility, Anti-Forensics
응용 어플리케이션의 실행 흔적을 분석하기 위해서 일반적으로 프리패치(Prefetch) 파일 들의 아티팩트를 주로 수집 및 분석을 진행 하며, 해당 아티팩트에서 얻을 수 있는 정보를 이용하여 타임라인 등을 구성할수 있다.
프리패치 파일은 최대 128개를 초과하는 정보를 기록할 수 없기 때문에 타임라인 구성에 한계가 존재한다.
심캐시(ShimCache, AppCompatCache) 파일은 Windows 운영체제에서 응용 어플리케이션 간의 운영체제 버전 호환성 이슈를 관리하는 파일이다. 한번이라도 호환성 문제가 발생한 응용 어플리케이션의 정보는 심캐시(ShimCache)에 기록되며 심캐시 뿐만아니라 프리패치와 UserAssist 에서도 확인이 가능하다.
즉, 심캐시는 프리패치와 달리 정보를 저장할 수 있는 최대 개수가 한정되어 있지않고, 특정한 운영체제 종류와 버전이 정해져 있지 않아서 대규모 공격에서도 디지털 증거 확보가 용이하다.
심캐시 구조를 분석하여 얻을 수 있는 정보를 소개하고, 기존 도구를 개선하여 안티포렌식 도구를 탐지 할 수 있는 방법을 제시한다.
운영체제의 버전이 업그레이드 될 경우 신규 생성 또는 삭제되는 DLL의 모음인 API로 인해 프로그램 간 호환성 문제가 발생하고 이를 응용 프로그램 호환성 데이터베이스(Application Compatibility Database)구조를 이용하여 해결한다. 응용 프로그램 호환성 데이터 베이스의 구조를 심 데이터베이스(Shim Database)라고도 하는데, shim은 API 후킹의 형태로 응용 어플리케이션과 Windows 운영체제 사이에 위치한다.
Shim Structure Between Windows and Applications
응용 어플리케이션이 실행될때 필요한 DLL을 Windows 측에 요청하게 되면, Windows의 API가 직접 호출하는 것이 아닌 shim을 통해서 요청과 응답을 진행한다.