본문 바로가기
사이버 보안

레지스트리개념에서 공격 보호가이드

by 윰노트 2024. 3. 11.

레지스트리개념

레지스트리 개념에서 공격 보호가이드 설명에 앞서 레지스트리는 윈도우 운영 체제에서 중요한 설정과 옵션을 저장하는 데이터베이스로 윈도우 95와 NT 출시와 함께 도입되었습니다. 이는 운영 체제, 설치된 프로그램, 하드웨어 설정, 사용자 환경 등에 대한 정보를 포함합니다. 레지스트리는 키와 값을 기반으로 구성되어 있으며, 운영 체제의 효율적인 관리와 사용자 맞춤 설정을 가능하게 합니다.
이전 운영 체제에서는 설정 정보가 여러 INI 파일에 분산되어 저장되었으나, 이 방식은 시스템의 복잡성과 관리 어려움을 초래했습니다. 레지스트리의 도입으로 이러한 문제들이 개선되었고, 중앙 집중식으로 시스템 설정을 관리할 수 있게 되었습니다. 레지스트리는 관리 단순화와 윈도우 운영 체제의 성능 향상을 목적으로 했습니다.
레지스트 변경 시 주의가 요구되며, 근간을 이루는 중요한 부분이기 때문입니다. 잘못된 변경은 시스템 오류나 성능 저하를 일으킬 수 있으므로, 전문 지식이 없는 사용자는 레지스트리를 임의로 수정하지 않는 것이 좋습니다. 따라서, 시스템 변경이 필요한 경우에는 레지스트리 편집기 또는 안전한 소프트웨어 도구를 사용하는 것이 권장됩니다.
레지스트리의 유래와 발전 과정은 윈도우 운영 체제의 진화와 밀접하게 연결되어 있습니다. 초기의 간단한 설정 저장 방법에서 시작하여, 현재는 시스템의 거의 모든 측면을 제어할 수 있는 강력한 도구로 성장했습니다. 이러한 발전은 윈도우 운영 체제의 사용성과 유연성을 크게 향상시켰으며, 사용자와 개발자 모두에게 중요한 자원이 되었습니다.

레지스트리구조

레지스트리 구조는 시스템 설정과 구성 정보를 저장하는 계층적 데이터베이스입니다. 그 구조는 크게 값 그리고 키, 하위 키로 구성됩니다. 이러한 구성 요소들은 윈도우 시스템과 설치된 애플리케이션들이 사용자의 설정과 선호도를 효과적으로 저장하고 검색할 수 있도록 해줍니다.
값은 각 키 또는 하위 키는 하나 이상의 값을 가질 수 있으며, 이 값은 실제 설정 데이터를 포함합니다. 값에는 이름, 데이터 유형(예: 문자열, 이진, DWORD 등), 그리고 실제 데이터가 포함됩니다. 예를 들어, 사용자가 특정 애플리케이션의 시작 시 자동 실행 여부를 설정할 경우, 이 정보는 해당 애플리케이션의 하위 키 아래에 특정 이름의 값으로 저장됩니다.
키와 하위 키는 폴더와 유사하며, 관련 설정 그룹을 포함합니다. 각 키는 하나 이상의 하위 키를 가질 수 있으며, 이는 다시 더 세분된 설정을 포함할 수 있습니다. 예를 들어, 'HKEY_CURRENT_USER\Software\Microsoft'는 마이크로소프트 소프트웨어에 대한 사용자별 설정을 저장하는 데 사용되는 키입니다. 이 경로 아래에는 다양한 애플리케이션 이름으로 된 하위 키가 있을 수 있으며, 각각의 하위 키는 해당 애플리케이션의 설정을 저장합니다.
레지스트리는 또한 몇 가지 주요 루트 키로 구성되어 있으며, 각각은 시스템의 다른 부분을 대표합니다. 예시로, 'HKEY_LOCAL_MACHINE'은 시스템 전체에 영향을 미치는 설정을 저장하는 반면, 'HKEY_CURRENT_USER'는 현재 로그인한 사용자의 설정을 저장합니다.

레지스트리 공격 이해 및 보호가이드
레지스트리 공격 이해 및 보호가이드

공격 방법

레지스트리는 윈도우 시스템의 중심적인 부분으로, 시스템 설정과 구성 정보를 저장합니다. 이러한 중요성 때문에, 레지스트리는 공격자에게 매력적인 대상이 될 수 있으며, 다양한 공격 방법을 통해 시스템에 침투하고 사용자 정보를 위험에 노출 수 있습니다.
부팅 시 악성코드 실행은 공격자는 레지스트리 수정을 통해 시스템 부팅 시 자동으로 악성코드가 실행되도록 설정할 수 있습니다. 예를 들어, 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run' 키에 악성 프로그램의 실행 파일 경로를 추가함으로써, 윈도우가 시작될 때마다 악성코드가 실행되게 만들 수 있습니다. 이 방법은 사용자의 지식 없이 백그라운드에서 실행되기 때문에, 악성코드의 활동을 숨기기 쉽고 지속적인 감염을 유지할 수 있습니다.
특정 확장자 실행 시 악성코드는 레지스트리를 이용하여 특정 파일 확장자와 연결된 애플리케이션을 악성코드로 변경할 수도 있습니다. 예를 들어, 공격자는 '.txt' 파일을 열 때마다 악성코드가 실행되도록 'HKEY_CLASSES_ROOT.txt' 키의 설정을 조작할 수 있습니다. 사용자가 텍스트 파일을 열려고 할 때마다, 악성코드가 실행되어 사용자의 시스템을 감염시킬 수 있습니다.
실제 사례로는, 유명한 랜섬웨어인 WannaCry가 언급될 수 있습니다. WannaCry는 SMB 취약점을 이용해 전파되었으며, 감염된 시스템에서는 레지스트리 수정을 통해 악성코드가 시스템 부팅 시 자동 실행되도록 설정되었습니다. 이는 랜섬웨어의 지속적인 활동이 가능하여 전 세계적으로 막대한 피해를 줬습니다.

보호가이드

레지스트리 공격으로부터 시스템을 보호하기 위한 전략은 다양하고, 각각은 중요한 보안 층을 제공합니다.

첫째, 정기적인 레지스트리 백업은 예기치 않은 변경이나 손상에서 빠르게 회복할 수 있는 기본적인 수단입니다. 사용자는 Windows의 내장 기능이나 신뢰할 수 있는 제3자 소프트웨어를 사용하여 레지스트리의 현재 상태를 정기적으로 저장해야 합니다.
둘째, 접근 권한 관리는 불필요한 변경으로부터 레지스트리를 보호합니다. 관리자 권한을 가진 사용자만이 레지스트리를 수정할 수 있도록 설정하고, 모든 사용자의 권한을 최소한으로 유지하는 것이 중요합니다. 이는 잠재적인 악성 사용자의 접근을 제한하는 데 도움이 됩니다.
셋째, 보안 도구 및 소프트웨어의 활용은 레지스트리 보호에 필수적입니다. 안티바이러스 프로그램은 악성 코드의 탐지와 제거에 있어 기본적이면서도 중요한 역할을 합니다. 또한, 레지스트리를 모니터링하고 무단 변경을 알려주는 전용 도구를 사용하는 것도 좋은 전략입니다.
마지막으로, 사용자 스스로 예방 조치는 보안을 강화하는 데 중대한 역할을 합니다. 이메일 첨부 파일이나 의심스러운 링크를 클릭하지 않는 것, 정품 소프트웨어만 사용하는 것, 정기적인 보안 업데이트 및 패치 적용 등이 포함됩니다. 사용자의 경각심과 주의는 보안의 첫 번째 방어선입니다.
이러한 조치들은 레지스트리 공격으로부터 시스템을 보호하고, 사용자의 데이터와 프라이버시를 안전하게 유지하는 데 필수적입니다. 보안은 단일 조치가 아닌, 여러 단계의 조합으로 이루어지는 지속적인 과정임을 기억해야 합니다.