문맥 (context)
일반적으로 운영체제가 기록하는 메타데이터는 별도의 메타데이터만을 모아놓은 파일 형태로 시스템에 존재한다. 이를 다른 말로 ‘메타데이터 파일’이라고 한다. 반면 응용 프로그램이 기록하는 메타데이터는 응용 프로그램이 생성하는 파일 내부에 존재한다. 본 논문에서는 전자를 ‘외부 메타데이터’, 후자를 ‘내부 메타데이터’라 부르겠다. 외부 메타데이터는 단독으로 생성될 수 있지만, 내부 메타데이터는 단독으로 생성될 수 없다. 응용 프로그램에서 파일을 생성하기 위해서는 반드시 운영체제를 통하여 파일시스템에 접근해야만 한다. 따라서 내부 메타데이터는 생성될 때 필수적으로 외부 메타데이터의 생성을 동반한다. 예를 들어 컴퓨터를 안전모드 중 하나인 명령 프롬프트 모드로 부팅한 후, ‘copy con’명령어를 이용하여 정보저장매체에 임의의 파일을 하나 생성했다고 가정해보자. 폴더가 생성되는 순간 운영체제에서는 해당 파일을 관리하기 위한 외부 메타데이터만을 생성할 것이다. 응용 프로그램을 이용한 것이 아니기 때문에 ‘내부 메타데이터’는 생성되지 않는다.
대표적인 외부 메타데이터로는 MFT가 있다. MFT는 NTFS 파일 시스템의 핵심적인 구조체로 정보저장매체에 존재하는 모든 파일 및 폴더에 대한 다양한 정보를 가지고 있으며, 파일이 생성될 거나 수정, 삭제될 때마다 해당 정보를 재구성한다. NTFS 파일 시스템의 특성상 MFT도 파일로 취급되기 때문에 각 엔트리별 별도의 파일로 존재하는 것처럼 보이지만, 실제로는 하나의 구조체로 이루어져 있다. MFT에 존재하는 각 엔트리는 별도의 속성정보를 가지고 있다. 파일 탐색기 등에서 속성 메뉴를 이용해 확인할 수 있는 파일 속성 정보에 비해 상당히 많은 정보들이 저장되어 있다. MFT에 남겨진 메타데이터를 조합하면, 파일명, 파일의 크기 및 디스크 상 할당된 위치, 파일이 생성된 시간, 파일이 수정된 시간, 파일이 최근 사용된 시간, 소유자 정보 등의 다양한 정보를 확인할 수 있다. 각각의 메타데이터의 저장 항목은 생성 주체의 목적에 따라 달라진다. MFT는 운영체제의 파일 관리를 위한 구조체이기 때문에, MFT의 저장 항목은 주로 파일의 내용이 아닌 파일의 관리에 초점이 맞추어져 있다.
윈도우 레지스트리는 윈도우 시스템에서 사용하는 운영체제와 응용 프로그램 운영에 필요한 시스템 구성 정보를 저장한 계층형 데이터베이스이다. 레지스트리는 부팅 과정부터, 로그인, 서비스 실행, 응용 프로그램 실행, 사용자 행위 등 모든 활동에 관여한다. 시스템 또는 사용자가 설정한 설정 정보들을 가지고 있다. 이 설정 정보들을 통해 작성자 컴퓨터의 제반 환경을 재구성해 낼 수 있으며, 그를 토대로 작성자가 해당 디지털 전문증거를 작성했음을 입증할 수 있다. 윈도우 7에서 레지스트리는 단일 파일로 존재하지 않는다. ‘SAM’, ‘SECURITY’, ‘SYSTEM’, ‘SOFTWARE’ 등 여러 개의 파일로 ‘\windows \system32\config’폴더 아래에 위치한다. 이 파일들을 ‘하이브’ 파일이라고 부른다. 활성 시스템의 레지스트리는 이런 하이브 파일들이 모여서 재구성된다. 이런 하이브 파일의 목록을 ‘하이브 셋’이라고 한다. 활성 시스템에서는 레지스트리 관리 응용 프로그램인 레지스트리 편집기(regedit.exe)를 통해서 레지스트리를 확보할 수 있다. 비활성 시스템에서는 하이브 셋을 확보한 후 재구성하면 활성 시스템에서와 같은 전체 레지스트리를 구성할 수 있다.
레지스트리는 ‘HKEY_CLASSES_ROOT’를 비롯한 6개의 ‘루트키’를 기점으로 계층적으로 ‘키’를 가진다. 각각의 ‘하위 키’들은 ‘값’과 ‘데이터 타입’, ‘데이터’를 가지고 있다. 각각의 루트키는 성격에 따라 유사한 하위키에 다양한 설정 정보를 가지고 있다. 현재 사용자의 프로파일과 관련된 ‘HKEY_ CURRENT_USER’를 예로 들면, 하위에 ‘ControlPanel’, ‘Identities’, ‘Network’, ‘Printers’, ‘Software’ 등의 하위키를 가진다. ‘ControlPanel’은 데스크탑 테마, 키보드/마우스 세팅 등의 환경 설정 정보를 가지며, ‘Identities’는 윈도우 메일 계정 정보를 가진다. ‘Network’는 네트워크 드라이브 매핑 정보 및 환경 설정 값을 가지며, ‘Printers’는 프린트 연결 설정, ‘Software’는 로그온한 사용자 소프트웨어 목록 정보를 가진다.
이벤트 로그는 운영체제의 성능 개선을 위해 도입된 운영체제 구성요소이다. 운영체제 또는 응용 프로그램의 구동 중에 사전에 지정된 특정 이벤트들이 발생하면, ‘%System Root%\System32\winevt\Logs’ 경로에 ‘*.evtx’ 파일 형태로 누적하여 기록한다. 이를 토대로 동작의 성공이나 오작동, 오류에 대한 기록을 분석하고 이를 운영체제의 성능 개선에 활용하는 것이 이벤트 로그의 원래 목적이다. 하지만 컴퓨터의 작동 내역을 확인할 수 있기 때문에, 시스템 감사나 보안 감사의 용도로도 많이 사용된다. 이벤트 로그는 크게 ‘전역 로그와 ‘응용 프로그램 및 서비스 로그’의 두 가지 범주로 구분할 수 있다. 전역 로그에는 시스템 로그와 응용 프로그램 로그, 보안 로그, 설치 로그 그리고 원격 수집 로그가 포함되며, 응용 프로그램 및 서비스 로그에는 관리 로그, 작업 로그, 분석 로그, 디버그 로그가 포함된다.
전역 로그에 포함되는 하위 로그들과 각 하위 로그별 저장되는 이벤트들은 다음과 같다. 우선 시스템 로그에는 윈도우 시스템 구성 요소에서 기록한 이벤트들이 저장된다. 시스템 로그에 저장되는 이벤트 유형들은 운영체제에서 미리 결정되어 있다. 그리고 응용 프로그램 로그에는 응용 프로그램이나 프로그램에서 기록하는 이벤트들이 저장된다. 응용 프로그램 로그에 저장되는 이벤트 유형들은 프로그램 개발자가 결정한다. 보안 로그에는 시스템 자원 사용과 관련된 이벤트들과 로그온과 관련된 이벤트들이 저장된다. 보안 로그에 저장되는 이벤트 유형들은 시스템 관리자가 결정하며, 오직 ‘로컬 보안 권한 서브시스템 서비스(lsass.exe)’에 의해서만 직접 기록이 가능하다. 마지막으로 설치 로그에는 응용 프로그램 설치와 관련된 이벤트들이 저장되며, 원격 수집 로그에는 원격 컴퓨터에서 수집한 이벤트들이 저장된다.
응용 프로그램 및 서비스 로그는 전역 로그와 달리 시스템 전체에 영향을 줄 수 있는 이벤트가 기록되지 않는다. 단순히 단일 응용 프로그램이나 구성요소의 이벤트가 저장된다. 관리·작업·분석·디버그 로그에는 각각 관리·작업·분석·디버그 이벤트가 저장된다. 관리 이벤트는 특정한 문제가 생겼을 때 문제 해결 방법을 제시하는 이벤트가 발생할 때 기록되며, 작업 로그는 시스템 자원의 이용과 관련된 이벤트가 발생했을 때 기록된다. 작업 로그는 주로 문제나 사건의 분석 및 진단에 사용된다. 분석 로그에는 문제의 원인을 추적하는 과정의 이벤트가 저장되며, 목적 상 대개 대용량의 이벤트가 기록된다는 특징이 있다. 디버그 로그는 개발자가 응용 프로그램을 디버그해서 프로그램 문제를 해결하는 데에 사용된다. 응용 프로그램 및 서비스 로그는 시스템 전체에 대한 이벤트 로그가 아니기 때문에 보편적인 상황에 적용하기에는 어려운 점이 있다. 하지만 사건과 증거가 특정 응용 프로그램과 관련이 되었고, 운영체제에서 해당 응용 프로그램에 대한 응용 프로그램 및 서비스 로그를 저장하고 있다면, 전역 로그보다 더 구체적인 정보를 제공할 수 있다는 특징이 있다.
지시문 (instruction)
다음 문맥을 읽고 질문에 답하시오.
질문 (question)
응용 프로그램이 생성하는 내부 메타데이터와 운영체제가 기록하는 외부 메타데이터의 생성 방식 측면에서의 차이점은 무엇인가?
추론 과정 (compact_reasoning)
-
1과제 해석
task_interpretation외부 메타데이터와 내부 메타데이터의 생성 방식에 관한 차이점을 비교하여 설명해야 한다.
-
2정보 추출
information_extraction외부 메타데이터와 내부 메타데이터의 정의 및 생성 특성을 추출한다.
- 외부 메타데이터는 단독으로 생성될 수 있지만, 내부 메타데이터는 단독으로 생성될 수 없다.
- 내부 메타데이터는 생성될 때 필수적으로 외부 메타데이터의 생성을 동반한다.
-
3근거 선택
evidence_selection두 메타데이터의 생성 가능 여부와 상호 관계를 나타내는 문장을 핵심 근거로 선택한다.
- 외부 메타데이터는 단독으로 생성될 수 있지만, 내부 메타데이터는 단독으로 생성될 수 없다.
- 내부 메타데이터는 생성될 때 필수적으로 외부 메타데이터의 생성을 동반한다.
-
4논리 통합
logical_integration외부 메타데이터는 독립적인 생성이 가능한 반면, 내부 메타데이터는 응용 프로그램이 파일시스템에 접근해야 하므로 반드시 외부 메타데이터의 생성을 수반한다는 논리적 관계를 결합한다.
- 응용 프로그램에서 파일을 생성하기 위해서는 반드시 운영체제를 통하여 파일시스템에 접근해야만 한다.
-
5결론 도출
conclusion_formulation외부 메타데이터는 단독 생성이 가능하지만, 내부 메타데이터는 생성 시 반드시 외부 메타데이터의 생성을 동반한다는 결론을 도출한다.
-
6답변 생성
answer_generation도출된 결론을 바탕으로 질문에 대한 최종 답변을 작성한다.
최종 답변 (final_answer)
외부 메타데이터는 단독으로 생성될 수 있는 반면, 내부 메타데이터는 단독으로 생성될 수 없으며 생성될 때 반드시 외부 메타데이터의 생성을 동반한다.
핵심 해석 (core_interpretation)
외부 메타데이터와 내부 메타데이터의 생성 독립성 및 상호 의존성을 비교하여, 내부 메타데이터가 생성될 때 외부 메타데이터가 필수적으로 수반된다는 차이점을 도출한다.