본문 바로가기
정보보안기사 필기/1. 정보보안 일반

정보보안기사 필기 4-2. 윈도우 서버 보안

by kkmin93 2022. 4. 19.
반응형

정보보안기사 필기 4-2. 윈도우 서버 보안

1. 윈도우

1) 윈도우 시스템의 구조

  1-1) 개요

  • 윈도우 운영체제의 구조는 링 기반으로 5개의 링으로 구분된다. 가장 하단에 하드웨어가 있으며, HAL, 마이크로 커널, 각종 관리자, 응용 프로그램 순으로 나뉜다.
  • [하드웨어 → HAL → 마이크로 커널 → 각종 관리자] 까지를 커널 모드(Kernel Mode)로 구분하고, 마지막 링을 사용자 모드(User Mode)로 구분한다.
  • HAL(Hardware Abstraction Layer)은 윈도우에서 제시한 기본 표준이며, 하드웨어와 개발된 소프트웨어 간에 원활한 통신이 가능하도록 도와주는 번역자 역할을 한다. 

[ 그림 1-1. 윈도우 5개 링 구조 ]

  • 윈도우 운영체제는 사용자 모드에 문제가 생기면 해당 응용 프로그램을 종료하여 문제를 해결하고, 커널 모드에 문제가 생기면 메모리의 정보를 덤프하고 시스템을 재시작한다.

 2) 윈도우 파일시스템

  2-1) FAT

  • FAT16 : FAT은 기본적으로 2GB까지를 한 파티션으로 설정할 수 있으며, 총 16비트개의 클러스터를 가진다.
  • FAT32 : FAT16의 용량 문제를 해결하기 위해 개발된 것으로 총 32비트개의 클러스터를 가지며, 호환성이 좋아 리눅스나 다른 운영체제에 정보를 옮길 때 유용하지만, 보안과는 거리가 먼 파일시스템이다.
  • CONVERT 유틸리티를 이용해 FAT를 NFTS로 변환할 수 있다. (반대로는 불가능)

  2-2) NTFS

  • 접근제어가 적용된 윈도우 파일시스템으로, FAT보다 보안, 결함 관리(HotFixing)에 있어 훌륭하다.
  • 개별 폴더와 파일에 사용 권한을 설정할 수 있고, 암호화된 폴더나 파일은 복사나 이동을 해도 암호화 속성을 잃지 않는다. 단, NTFS 내에서 가능하며 NTFS에서 FAT로 파일을 옮길 경우 자동으로 복호화되며 암호화가 풀린다.
  • NTFS 디스크 구조

[ 그림 1-2. NFTS 파일시스템 구조 ]

  • MBR(Master Boot Record) : 파티션 생성 시 물리적 디스크의 첫 번째 섹터에 위치하는 512 Byte 크기의 영역으로 부트코드, 파티션 테이블, 시그너처로 구성되어 있으며 운영체제가 부팅될 때 BIOS에 의해 POST과정을 마친 후 MBR의 부트코드를 호출하고 부트코드는 부팅 가능한 파티션을 찾아 해당 파티션 VBR의 부트코드를 호출하여 운영체제가 기동하게 된다.
※ BIOS → POST → MBR 부트코드 호출 → Active 파티션 확인 → Active 파티션에 VBR 부트코드 호출 → 운영체제 ON

 

  • VBR(Volume Boot Record) : 윈도우 부팅을 위한 기계어 코드와 볼륨 및 클러스터의 크기, MFT의 시작 주소 등 설정 정보를 담고 있으며, 파티션의 가장 마지막 섹터에 VBR 백업본을 가지고 있어 복원 시 사용된다.
  • MFT(Mater File Table) : 볼륨/파일시스템에 존재하는 모든 파일과 디렉터리에 대한 정보를 담고 있는 테이블
  • 시스템 파일 : 파일 복사나 삭제 과정 중 시스템이 오류를 일으킬 시 복구하는데 사용할 디스크 자체에 대한 정보를 담는 파일이 저장된다.
  • 파일 영역 : 실제 데이터가 저장되는 부분

  2-3) 디스크 파괴형 악성코드의 특징

  • 디스크 파괴형 악성코드는 MBR, VBR 영역을 훼손하여 컴퓨터가 정상적으로 부팅되지 않도록 하는 악성코드이다.
  • MBR 영역이 손상된 경우 부트코드를 정상적인 디스크에 복사하고 각각의 파티션 정보를 수집하여 파티션 테이블을 완성함으로써 복구가 가능하다.
  • VBR 영역이 손상된 경우에는 파티션의 가장 마지막 섹터에 있는 VBR 백업본을 덮어써서 복구가 가능하다.
구분 FAT NTFS
장점 - FAT32 경우 호환성이 우수
- 단순성
- 저용량 볼륨의 최적화
- 대용량 볼륨 지원
- 디스크의 효율적 사용
- 강력한 보안 기능
- 자동 압축 및 안전성
- 향상된 파일이름 저장, 파일길이 지원
단점 - 보안 취약
- 대용량 볼륨의 비효율적
- 낮은 호환성
- 저용량 볼륨에서 FAT보다 속도 저하

 3) 윈도우 부팅 순서

  • 1단계 : POST(Power On Self Test), 하드웨어 스스로 시스템에 문제가 없는지 기본사항을 검사하는 과정
  • 2단계 : 기본 부팅 관련 설정 사항 로드, BIOS는 CMOS에 설정된 시스템 설정사항 및 부팅 관련 정보를 읽어 시스템에 적용한다.
  • 3단계 : MBR, 저장 매체의 첫 번째 섹터(LBA 0)에 위치하는 512 Byte의 영역으로, 부팅 매체에 대한 기본 파일시스템 정보가 들어 있다.
  • 4단계 : NTLDR(NT Loader), 하드디스크의 부팅 파티션에 있는 프로그램으로, 간단한 파일시스템을 실행하고 boot.ini 파일의 내용을 읽어 가능한 부팅 옵션을 보여준다.
  • 5단계 : NTDETECT.com, NTLDR에서 제어권을 위임받아 시스템에 설치되며 하드웨어를 검사한다.
※ 검사항목 : PC의 CPU 유형, 버스 유형, 키보드 및 마우스 종류, 포트, 디스크 등
  • 6단계 : ntoskrnl.exe(NT OS Kernel) 실행, HAL.DLL을 로드한다.

2. 윈도우 보안

 1) 윈도우 설치

  • 파티션이란 하나의 물리적인 하드디스크에 논리적인 분할 영역을 만들어 별개의 하드디스크처럼 쓰기 위한 것이다.
  • C 드라이브에 심각한 오류가 발생해도 D 드라이브에 있는 파일들은 안전하게 보존이 된다. 때문에 멀티 부팅, 중요한 데이터 저장 시 파티션을 나누게 된다.

 2) 윈도우 계정

  2-1) 기본 사용자

  • 윈도우를 설치할 때 기본적으로 생성되는 계정(빌트인 계정)은 Administrator, SYSTEM, Guest가 있다.
  • Administrator : 관리자 권한의 계정으로 사용자가 사용 가능한 계정 중 가장 강력한 권한을 가진다.
  • SYSTEM : 시스템에서 최고 권한을 가진 계정으로 로컬에서 관리자보다 상위 권한을 가진다. 원격 접속이 불가능하며, 사용자가 이 계정을 사용하여 시스템에 로그인할 수 없다.
  • Guest : 제한적인 권한을 가진 계정, 기본 설정은 사용 불능이다.

  2-2) 기본 그룹

  • Administrators : 도메인 자원이나 로컬 컴퓨터에 대한 모든 권한이 있다.
  • Account Operators : 사용자나 그룹 계정을 관리하는 그룹이다.
  • Backup Operators : 시스템 백업을 위해서 모든 시스템의 파일과 디렉터리에 접근할 수 있다.
  • Guests : 도메인 사용 권한이 제한된 그룹으로 시스템의 설정 변경 권한이 없다.
  • Print Operators : 도메인 프린터에 접근할 수 있다.
  • Power Users : 디렉터리나 네트워크 공유, 공용 프로그램 그룹 생성, 컴퓨터의 시계 설정 권한이 있다.
  • Replicator : 도메인에 있는 파일을 복제할 수 있는 권한을 가지고 있는 그룹, 디렉터리 복사 서비스에 이용된다.
  • Server Operators : 도메인의 서버를 관리할 수 있는 권한을 가진 그룹, 로컬 로그인과 시스템 재시작 및 종료 권한
  • Users : 도메인과 로컬 컴퓨터를 일반적으로 사용하는 그룹, 개개인에 할당된 사용자 환경을 직접 만들 수 있지만, 설정할 수 있는 항목에는 한계가 있으며, 시스템 서비스의 시작 및 종료 권한, 디렉터리 공유 설정을 할 수 있는 권한이 없다.

  2-3) 윈도우 보안 식별자, SID(Security Identifier)

  • 윈도우의 각 사용자나 그룹에 부여되는 고유한 식별번호(계정명이 아닌 ID값으로 식별)
  • 사용자가 로그인을 수행하면 접근 토큰이 생성되며, 해당 토큰에는 로그인한 사용자와 그 사용자가 속한 모든 작업 그룹들에 관한 보안 식별자(SID) 정보가 담겨있다.
  • 접근 토큰의 사본은 해당 사용자에 의해 시작된 모든 프로세스에게 할당된다.
  • 윈도우의 계정을 하나의 코드 값으로 표시한 것으로, "whoami /user" 명령어로 로그인 한 사용자의 SID를 확인 할 수 있다.
  • SID 정보는 SAM 파일(C:\Windows\system32\config\SAM)에 저장된다.

[ 그림 2-1. SAM 파일 위치 ]
[ 그림 2-2. SID 구조 ]

  • S-1 : 윈도우 시스템을 의미
  • 5-21 : 시스템이 도메인 컨트롤러 이거나 단독 시스템임을 의미
  • 180167521-558652115-175234865 : 해당 시스템만의 고유한 식별자, 시스템을 설치할 때 시스템의 특성을 수집하여 생성된다.
  • 500 : 사용자 식별자(관리자 : 500번, 게스트 : 501번, 일반 사용자 : 1000번 이상의 숫자 할당)
SID 설명
S-1-0-0 SID를 모를 때 사용하는 SID
S-1-1-0 Everyone
S-1-5-7 Anonymous
S-1-5-18 System Profiles(시스템 서비스용 계정)
S-1-5-19 Local Service
S-1-5-20 Network Service
S-1-5-domain-500 Administrator
S-1-5-domain-501 Guest

[ 그림 2.3 SID 명령어 확인 ]

  2-4) 윈도우의 권한 상승

  • 윈도우에서 권한 상승이란 일반 권한의 사용자가 Administrator와 SYSTEM으로 실행되고 있는 프로세스의 권한을 빼앗는 것이다.
  • 기본적인 방법은 "상위 권한으로 수행되고 있는 프로그램의 프로세스에 다른 작업 끼워넣기"하는 방법이다.

 3) 윈도우 인증과 패스워드

  • 윈도우의 인증과정에서 가장 중요한 구성 요소는 LSA, SAM, SRM이며, SAM은 윈도우에서 패스워드를 암호화하여 보관하는 파일의 이름과 동일하다.

  3-1) LSA(Local Security Authority, 식별)

  • (로컬, 원격)모든 계정의 로그인에 대한 검증을 하고, 시스템 자원 및 파일 등에 대한 접근 권한을 검사한다.
  • 계정명과 SID를 매칭하며, SRM이 생성한 감사 로그를 기록하는 역할도 하기 때문에 NT 보안의 보안 서브시스템이다.

  3-2) SAM(Security Account Manager, 인증)

  • 사용자/그룹 계정 정보에 대한 데이터베이스를 관리하며 사용자의 로그인 입력 정보와 SAM 데이터베이스 정보를 비교해 인증 여부를 결정하여 SRM으로 알려준다. → 접근통제가 필요
  • Administrator 및 SYSTEM 그룹 외에는 SAM 파일에 대한 접근을 제한하여야 한다.
  • 로컬 인증에서 ID와 패스워드를 입력하면 LSA 서브시스템이 인증 정보를 받아 NTLM 모듈에 ID와 패스워드를 넘겨주고 이를 다시 SAM이 받아 확인하고 로그인을 허용한다.
  • SAM 파일은 "%systemroot%\system32\config\sam"에 위치하며 %systemroot%는 윈도우가 설치된 폴더 경로이다. 보통 "C:\Windows"이다.

  3-3) SRM(Security Reference Monitor, 인가)

  • (커널 모드)인증된 사용자에게 SID를 부여하며, SID에 기반하여 파일이나 디렉터리에 대한 접근을 허용할지 결정하고, 이에 대한 감사 메시지를 생성한다.
  • 감사 메시지는 (사용자 모드)LSA가 기록하게 된다.

  3-4) NTLM(NT LAN Manager)

  • 사용자 계정과 패스워드 인증을 위해 서버나 도메인 컨트롤러에 증명하는 Challenge & Response 기반의 인증 프로토콜이다.

  3-5) 도메인 컨트롤러

  • 인증정보를 확인하여 접속하고자 하는 사용자에게 접근토큰을 부여하고 해당 권한으로 프로세스를 실행

[ 그림 2-4. 윈도우 인증 구조 ]

※ 로컬인증
 - 윈도우 부팅 후 로그인 창(Winlogon)에서 ID/PW 입력하면 LSA 서브시스템이 인증정보를 받아 NTLM 모듈에 넘기고 이를 다시 SAM이 받아 로그인을 처리하게 된다.
※ 원격/도메인 인증
 - 윈도우 부팅 후 로그인 창(Winlogon)에서 ID/PW 입력하면 LSA 서브시스템이 인증정보를 받아 로컬인증인지 원격/도메인 인증인지 확인하고 원격/도메인 인증이면 커버로스(Kerberos) 프로토콜을 이용해 "도메인 컨트롤러"에 인증 요청을 한다.

 4) 윈도우 인증 구조

  4-1) 개요

  • 단순히 ID/PW만 전달하여 인증하는 방식은 공격자가 스니핑을 한다면 정보 노출 및 패스워드 재사용 공격에 매우 취약하게 된다.
  • 윈도우는 "Challenge & Response 방식"의 인증 구조를 사용한다. 공격자가 스니핑을 한다고 해도 Challenge 값과 조합된 값으로 전달되기 때문에 PW 알 수 없고, 그 값을 재전송 공격을 한다고 해도 일회성 값이기 때문에 실패하게 된다.
※ Challenge & Response
 - 인증 요청 : 인증하고자 하는 사용자가 윈도우 시스템에 요청
 - Challenge 값 생성 및 전송 : 인증 요청을 받은 서버는 특정 규칙 또는 랜덤한 Challenge 값을 생성하여 사용자에게 전달(Challenge 값은 일회성)
 - Response 값 생성 및 전송 : 사용자는 전달받은 Challenge 값과 사용자 패스워드 정보를 이용해 Response 값을 생성하여 서버에 전달
 - Response 값 확인 및 인증 성공 : 사용자가 전달한 Response 값을 확인하여 인증 성공 여부 결정

  4-2) 인증 암호 알고리즘

  • LM(LAN Manager) 해시 : 윈도우 2000, XP의 기본 알고리즘으로 구조적으로 취약한 알고리즘(현재 사용X)
  • NTLM 해시 : LM 해시에 MD4 해시가 추가된 형태
  • NTLMv2 해시 : 윈도우 시스템의 기본 인증 프로토콜로 기존 인증 알고리즘과 전혀 다른 알고리즘으로 해시값을 생성하며 현재까지 복잡도가 충분해 크래킹이 어렵다.
  • LAN Manager 인증 수준은 보다 안전한 인증을 위해 NTMLv2 사용을 권장한다.

  4-3) 패스워드 크래킹

  •  사전 공격/사전 대입 공격(Dictionary Attack) : 패스워드로 자주 사용되는 문자열을 미리 사전(Dictionary) 파일로 만든 후 이를 하나씩 대입하여 패스워드 일치 여부를 확인하는 패스워드 크래킹 방법
  • 무차별 공격/무작위 대입 공격(Brute Force Attack) : 패스워드에 사용될 수 있는 문자열의 범위를 정하고, 생성 가능한 모든 패스워드를 생성하여 이를 하나씩 대입, 일반적으로 사전 대입 공격이 실패 후 진행된다.
  • 레인보우 테이블(Rainbow Table)을 이용한 공격 : 레인보우 테이블은 하나의 패스워드에서 시작해 특정한 변이 함수를 이용해 여러 변이된 형태의 패스워드를 생성한다. 각 변이된 패스워드의 해시를 고리처럼 연결하여 일정 수의 패스워드와 해시로 이루어진 체인을 무수히 만들어 놓은 테이블이다.

 5) 공유자료 관리

  5-1) 파일과 폴더의 보안권한

  • 윈도우는 폴더에 6가지 기본 권한설정을 제공하며, 파일에는 5가지 권한을 제공한다.
  • 모든 권한 : 디렉터리에 대한 접근 권한과 소유권을 변경 및 서브 폴더와 파일을 삭제할 수 있다.
  • 수정 : 폴더를 삭제할 수 있으며, "읽기 및 실행" 과 "쓰기"가 동일한 권한을 갖는다.
  • 읽기 및 실행 : 읽기를 수행할 수 있으며, 디렉터리나 파일을 이동할 수 있다.
  • 읽기 : 디렉터리의 내용을 읽기만 가능하다.
  • 쓰기 : 해당 디렉터리의 서브 디렉터리와 파일을 생성할 수 있으며, 소유권이나 접근 권한의 설정 내용을 확인할 수 있다.
  • 폴더 내용 보기(폴더만 해당) : 디렉터리의 파일이나 서브 디렉터리의 이름을 볼 수 있다.

  5-2) 디렉터리 및 파일에 대한 접근 권한 규칙

  • NTFS 접근 권한은 누적된다.
  • 파일에 대한 접근 권한이 디렉터리에 대한 접근 권한에 우선한다.(파일 > 디렉터리)
  • 허용보다 거부가 우선한다.(거부 > 허용)

  5-3) 공유 자료 관리

  • 공유 폴더의 리소스를 공유하면서도 침입자에게 숨기게 설정하려면 "$" 기호를 끝에 붙이면 된다.
  • 숨겨진 공유를 보려면 "net share" 명령어를 통해 확인이 가능하다.

[ 그림 2-5. net share 실행 화면 ]

  • 기본 공유제거 방법은 "net share 공유이름 /delete"이지만 운영체제가 재시작되면서 다시 자동으로 기본 공유 폴더를 만들기 때문에 완전히 제거하려면 레지스트리 편집기(\HKLM\SYSTEM\CurrentControlSet\services\LanmanServer\parameters)에서 DWORD를 "AutoShareServer"로 새로 만들어 0으로 설정한다.(Windows NT일 경우 : AutoShareWks)

[ 그림 2-6. 레지스트리 기본 공유 중지 ]

  • IPC$(Inter Process Communication) : "프로세스 간 통신"으로 네트워크 등에서 프로세스 간의 통신을 위해서 사용하는 통로이며 동시에 수행될 개별 프로그램을 생성하고 다룰 수 있게 해주는 인터페이스이다.
  • IPC$를 제거하면 네트워크 서비스 일부에 문제가 발생할 수 있으므로 제거보다는 레지스트리 값을 수정해서 익명 사용자의 네트워크 접근이 불가능하도록 설정하는 것이 좋다.
  • Everyone이 공유계정에 포함되어 있으면 익명 사용자의 접근이 가능하므로 디폴트 공유 폴더 제외한 나머지 폴더는 공유가 금지되어야 한다.

3. 암호 기능 사용

 1) 폴더 및 파일 암호화(EFS)

  • EFS(Encrypting File System)는 윈도우 운영체제에서 개별 파일 또는 특정 폴더 안에 들어 있는 모든 파일을 암호화할 수 있는 기능을 제공한다.
  • 파일이나 폴더의 속성 부분을 변경하여 사용할 수 있으며 인증서 추가/삭제를 통해 EFS가 적용된 파일을 읽을 수 있는 사용자 추가/변경이 가능하다.

[ 그림 3-1. 파일과 폴더의 암호화 ]

 2) 볼륨 암호화(BitLocker)

  • BitLocker는 윈도우 운영체제에서 제공하는 볼륨 단위의 데이터 암호화 기능이다.
  • 볼륨은 파티션 드라이브를 의미하며, BitLocker가 활성화되면 해당 볼륨에 저장된 모든 파일이 자동으로 암호화된다. 단, 컴퓨터를 시작하는데 필요한 시스템 파티션 부분은 암호화되지 않는다.
  • EFS는 사용자 단위의 데이터 암호기능을, BitLocker는 컴퓨터 단위의 데이터 암호기능을 제공한다.
  • 전체 하드 드라이브를 암호화 하여 비인가 사용자에 대한 접근을 막을 수 있다.

4. 레지스트리 

 1) 레지스트리(Registry) 개요

  • 레지스트리는 윈도우 시스템이 운영되는데 필요한 정보를 담고 있어 사고분석에 있어 공격자의 중요한 흔적을 찾을 수 있다.
  • 사용자가 레지스트리를 조작하는 작업은 레지스트리 편집기에서 할 수 있으며, "regedit, regedt32"로 열 수 있다.
  • 레지스트리는 윈도우 부팅 시 하이브 파일에서 값을 읽어 들여 구성하는데, 하이브 파일에서 직접 읽어 들여 구성되는 키를 Master Key라고 하고, Master Key로부터 값을 가져와서 재구성하는 키를 Derived Key라고 한다.
※ Master Key : HKLM(HKEY_LOCAL_MACHINE), HKU(HKEY_USERS)
※ Derived Key : HKCU(HKEY_CURRENT_USER), HKCC(HKEY_CURRENT_CONFIG), HKCR(HKEY_CLASSES_ROOT)
 → 하이브 파일의 Master Key, Derived Key를 레지스트리의 핸들키/루트키라고 한다.

  1-1) HKEY_CLASSES_ROOT(HKCR)

  • 시스템에 등록된 파일 확장자와 그것을 열 때 사용할 애플리케이션에 대한 맵핑(바로가기) 정보 그리고 COM(Component Object Model) 오브젝트 등록 정보를 저장하고 있다.

  1-2) HKEY_CURRENT_USER(HKCU)

  • 현재 시스템에 로그인하고 있는 사용자와 관련된 시스템 정보를 저장하고 있다.
  • HKEY_USERS보다 우선권을 갖고있어, HKEY_CURRENT_USER키값이 변경된다면 HKEY_USERS키의 보안 식별자에 해당되는 키의 내용도 변경되게 된다.

  1-3) HKEY_LOCAL_MACHINE(HKLM)

  • 컴퓨터에 설치된 하드웨어와 하드웨어를 구동시키는데 필요한 드라이버나 설정 사항에 관련된 정보를 갖고 있다.
  • 루트키 중 가장 다양한 하이브로 구성되어 있다.
레지스트리 서브키 하이브의 위치
HKLM\HARDWARE - 파일로 존재하지 않고 메모리에 휘발성 정보로 존재
- 부팅시 감지된 모든 하드웨어와 그 하드웨어 장치의 드라이버 맵핑 정보들이 보관된다.
HKLM\SAM - 사용자의 패스워드, 소속 그룹, 도메인 정보와 같은 로컬 계정 정보와 그룹 정보를 가진다.
HKLM\SECURITY - 시스템 범위의 보안 정책과 사용자 권리 할당 정보를 가지고 있으며, SAM과 마찬가지로 시스템 계정 이외의 접근이 불가능하다.
HKLM\SOFTWARE - 시스템 범위의 소프트웨어 목록과 그 환경 설정 정보가 저장되어 있다.
- 환경 설정 정보에는 애플리케이션 이름, 경로, 라이센스 정보 등이 포함된다.
HKLM\SYSTEM - 시스템이 부팅될 때 필요한 시스템 환경 설정 정보를 가지고 있다.
- 성공적으로 부팅될 시 값을 복사본으로 만들어 두었다가 비정상적으로 종료되었을 시 복사해둔 정보를 바탕으로 부팅할 수 있는 옵션을 사용자에게 제공한다.
HKLM\SYSTEM/CLONE - 파일로 존재하지 않고 메모리에 휘발성 정보로 존재

  1-4) HKEY_USERS(HKU)

  • 시스템에 있는 모든 계정과 그룹에 관한 정보를 저장하고 있다. 모든 계정의 프로파일이 있다는 것을 제외하고는 서브키가 HKCU와 동일하다.
  • 윈도우 사용자가 한 명일 경우, 모든 설정 사항이 HKCU와 동일하게 된다.
  • HKCU에 저장된 정보 전체와 데스크톱 설정, 네트워크 연결 등의 정보가 user.dat에 저장되어 있다.

  1-5) HKEY_CURRENT_CONFIG(HKCC)

  • 시스템이 시작할 때 사용하는 하드웨어 프로파일 정보를 저장하고 있다.
  • 레지스트리 중 가장 단순한 부분으로 HKLM에 서브로 존재하는 config(자주 사용하는 정보)의 내용만을 담고 있다.

 2) 레지스트리 공격

 2-1) 부팅 시 악성코드 실행

  • 시스템 재부팅 시 악성 프로그램을 구동시키기 위해 레지스트리를 변조하게 된다. 이 중에서 악성 코드 구동을 위해 사용되는 레지스트리는 HKLM과 HKCU이다.
  • 디렉터리 위치
디렉터리 경로
개별사용자 지속용 - HKCU\Software\Microsoft\Windows\CurrentVersion\Run
개별사용자 일회용 - HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
전체사용자 지속용 - HKLM\Software\Microsoft\Windows\CurrentVersion\Run
전체사용자 일회용 - HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
  • HKLM 아래의 시작점에는 사용자와 상관없이 언제나 공통적으로 시작되야 하는 프로그램이 등록된다.
  • HKCU 아래의 시작점에는 사용자별로 고유한 시작 프로그램이 등록된다.
  • Run 키 아래의 항목은 시스템이 부팅될 때마다, 사용자가 로그인 할 때마다 실행된다.
  • RunOnce 키 아래의 항목은 단 한 번만 실행되고 해당 항목은 자동으로 레지스트리에서 삭제된다.

  2-2) 특정 확장자 실행 시 악성코드 실행

  • 파일의 각 확장자에 따라 어떤 프로그램이 연결될지를 결정하는 HKEY_CLASSES_ROOT 위치의 값을 공격자가 임의로 조작하여 특정 확장자 실행 시에 원하는 악성 프로그램을 실행시킬 수 있다.
※ 확장자 EXE 파일 실행 시 마다 "warnning.exe" 파일이 구동되는 경우
 - 원본 : HKCR\exefile\shell\open\command = ""%1"%*"
 - 변조 : HKCR\exefile\shell\open\command = warnning.exe ""%1"%*"

[ 그림 4-1. 변조된 확장자 레지스트리 ]

  2-3) 공격자가 남긴 레지스트리 정보 수집

  • 최근 사용한 문서 목록 : HKCU\Software\Microsoft\windows\CurrentVersion\Explorer\Recentdocs
  • 터미널 서비스 접속 목록 : HKCU\Software\Microsoft\Terminal server Client\Default
  • 설치된 소프트웨어 목록 : HKCU\Software
  • 얼어본 파일 목록 : HKCU\Software\Microsoft\windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU

  2-4) Null Session 접근 차단 설정

  • Null Session이란 사용자가 ID와 패스워드를 입력하지 않고도 공유 대상인 IPC$에 연결하는 취약점이다.
  • NetBIOS를 사용하는 시스템에서는 IPC$, C$, Admin$은 항상 공유되어 있다.
  • 원격지에서 널 세션을 이용해 접속한다면 시스템의 사용자 계정과 공유파일, 프린터에 대한 정보를 제공해주게 되며 Null Session 포트는 TCP/UDP 135 ~ 139번 이다.
  • 패스워드 정보, 그룹 정보, 서비스 정보, 운영 중인 프로세스 정보 등 수집할 뿐만아니라 HKLM의 일부에도 접근이 가능하다.
※ 공격 방법
 - net use \\[공격서버 IP]\IPC$ "" /user:""
 - net use \\[공격서버 IP]\IPC$ "[Password]" /user:"[User ID]"
※ 방어 방법
 - HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\restrictanonymous
 - 0 : 기본권한 사용, 1 : Security Account Manager 계정과 이름의 열거를 허용하지 않는다, 2 : 명시적 익명 권한이 없이는 액세스 할 수 없다

[ 그림 4-2. Null Session 접근차단 설정 ]

 

반응형