본문 바로가기

정보보안/시스템 보안

[시스템 취약점] 윈도우 서비스 & 로그 관리

서비스 관리

 

① 하드디스크 기본 공유 제거

- 윈도우는 프로그램 및 서비스를 네트워크나 컴퓨터 환경에서 관리하기 위해 기본 공유 항목을 자동으로 생성한다.

- 하드디스크 기본 공유인 C$,D& 등을 제거하지 않으면 기본 공유 폴더를 통해 비인가자가 하드디스크 내의 폴더나 파일에 접근한거나 바이러스가 침투하는 경로가 될 수 있다. 그러무로 기본 공유는 제거한다.

[보안설정]
(1) 윈도우 하드디스크 공유 파일
- 하드디스크 기본 공유 : C$, D$
- 원격 관리 및 IPC 기본 공유 : ADMIN$, IPC$
- 공유 이름 뒤에 '$' 기호는 숨겨진 기호를 의미

(2) 하드디스크 기본 공유 설정 확인
 1) (GUI) 제어판 > 관리도구 > 컴퓨터관리 > 공유폴더 > 공유를 선택하여 하드디스크 기본 공유 설정 확인
   - (공유 폴더' 단축명령) 실행 > fsmgmt.msc 입력
 2) (CMD) net share 명령어 입력
   - net share : 시스템에서 공유자원을 설정/제거하거나 목록을 확인할 수 있는 명령어

(3) 원격에서 하드디스크 기본 공유 접근 테스트
 1) 실행 > \\[공유컴퓨터IP]\[공유이름] 입력 > 네트워크 인증(계정/패스워드) 입력
 2) 기본공유폴더 접근확인

(4) 하드디스크 기본 공유 제거
 1) 공유 폴더 관리 화면에서 공유중지 설정 Or
 2) net share 명령을 이용하여 공유 중지
  - net share [공유이름] /delete
 3) 기본 공유(c$,d$..)의 경우 공유 중ㄹ지를 해도 운영체제가 재시작 되면 자동으로 설정되므로 별도의 레지스트리 설정 필요.
  - (레지스트리 편집창 명령) 실행 > regedit 입력
  - (레지스트리 설정) HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servicies\LanmanServer\Parameters 키 하위에 'AutoShareServer'항목(REG_DWORD 타입) 생성 후 0으로 설정

 

② 공유 권한 및 사용자 그룹 설정

- 기본 공유인 C$, Admin$, IPC$ 등을 제외한 공유 폴더의 사용 권한에 Everyone이 포함되어 있으면 익명사용자의 접근이 가능하여 내부 정보 유출 및 악성코드의 감염 우려가 있다.

- 따라서 공유 폴더의 사용 권한을 점검하여 Everyone 권한이 있는 경우 이를 제거할 필요가 있다.

[보안설정]
(1) 공유 폴더의 사용 권한 확인
 1) 제어판 > 관리 도구 > 컴퓨터 관리 > 공유 폴더 > 공유 선택하여 공유 폴더의 사용 권한 확인
   - (공유 폴더' 단축명령) 실행 > fsmgmt.msc 입력
 2) Everyone 권한이 있으면 제거하고 접근이 필요한 계정/그룹에만 적절한 사용권한을 부여

 

③ 불필요한 서비스 제거

- 시스템에 기본적으로 설치되는 불필요하고 취약한 서비스를 제거할 필요가 있다.

- 네트워크 서비스라면 열린 포트를 통해 외부침입이 가능하다.

[불필요한 서비스]
- Alerter: 서버->클라이언트로 경고메시지 발송
- Clipbook: 서버 내 clipbook을 다른 클라이언트와 공유
- Messenger: net send 명령어를 이용해 클라이언트에 메시지 보냄
- Simple TCP/IP Services(Echo, Discard, character Generator, Daytime, Quote of the Day)

[보안설정]
(1) 불필요한 서비스를 확인한다.
 1) 제어판 > 관리도구 > 서비스에서 불필요한 서비스를 확인한다. 관리자는 대상 시스템의 용도를 정확히 파악해 불필요한 서비스는 제거한다.
 - ('서비스' 단축 명령) 실행 > servicies.msc
(2) 불필요한 서비스를 제거한다.
 1) 불필요한 서비스가 시작 상태면 이를 중지한 후 시작 유형을 '사용 안 함'으로 선택한다.
 - 시작 유형별 동작 방식 : 사용 안 함(설치되어 있으니 실행x), 수동(해당 기능이 필요할 때만 서비스에 의해 시작), 자동(부팅 시 운영체제에 의해 시작)

 

④ NetBIOS 바인딩 서비스 구동 점검

- NetBIOS(NEtwork Basic Input/OUtput System) : 호스트 간 통신을 위해 IBM에서 개발한 네트워크 인터페이스 체계(API)로 MS에서 채택하여 윈도우 운영체제에서 주로 사용한다.

- 초기에는 LAN 상의 호스트(동일네트워크) 간 통신에 사용되었지만(라우팅x) 이후 tcp/ip와 바인딩해 WAN 상의 호스트(서로다른네트워크)간 통신도 지원하도록 확장되었으며 윈도우 운영체제의 경우 TCP/IP 기반의 NetBIOS(NBT)를 기본 서비스로 제공한다.

- SMB(Server Message Block)/CIFS(Common Internet File System) :네트워크 상에서 호스트 간 파일, 디렉터리(폴더), 프린터 등을 공유할 수 있도록 해주는 프로토콜로 윈도우 운영체제에서 주로 사용한다.

- 초기 SMB는 NetBIOS 기반으로 동작했으며 tcp/139 를 사용하였으나 이후, SMB 기능을 확장하여 CIFS라는 이름으로 변경, NetBIOS에 의존하지 않고 tcp/445를 사용한 직접 통신도 지원한다.

- 네트워크에 연결된 서로 다른 운영체제 간에도 자원을 쉽게 공유할 수 있는 장점(호완성)으로 널리 사용되고 있지만, 동시에 여러 보안 취약점으로 인해 컨피커 웜 바이러스, 워너크라이(워너크립터) 랜섬웨어, 워너마인 암호화폐 채굴 악성코드 등에 악용된 사례가 있다.

[NetBIOS와 SMB/CIFS 서비스별 프로토콜 및 포트번호]
프로토콜 포트번호 서비스
TCP 135 RPC Endpoint Mapper
애플리케이션에서 로컬 또는 원격 프로세스 호출 서비스
UDP 137 NetBIOS 이름 해석 서비스
호스트의 NetBIOS 이름을 IP 주소로 변환해주는 서비스
UDP 138 NetBIOS 데이터그램 서비스
연결설정 없이 브로드캐스트 또는 유니캐스트 방식으로 데이터를 전송하는 서비스
TCP 139 NetBIOS 기반 세션 서비스
연결 기반 세션을 생성하고 데이터를 전송하는 서비스
NetBIOS 기반의 SMB 서비스(SMB/CIFS over NetBIOS)
TCP/UDP 445 SMB/CIFS DIrect Host 서비스
TCP/IP 기반의 SMB/CIFS 서비스 (SMB/CIFS over TCP/IP)
[취약점]
인터넷에 직접 연결된 윈도우 시스템에서 NetBIOS TCP/IP 바인딩이 활성화되어 있으면 인터넷을 통해 외부 공격자가 윈도우 시스템의 네트워크 공유자원에 접근할 수 있다.

[보안설정]
(1) 네트워크 제어판을 이용하여 NetBIOS TCP/IP 바인딩 제거
 1) 실행 > ncpa.cpl 입력 (네트워크 연결)
 2) 네트워크 인터페이스 속성 선택 (ex. Ethernet)
 3) TCP/IPv4 속성 선택
 4) 고급 선택
 5) WINS 탭에서 'NetBIOS over TCP/IP 사용 안 함' 선택 -> 활성화 포트번호 135,445만 남음


 

로그 관리

① 감사정책 설정

- 감사정책 : 어떤 로그를 남길지 정의한 규칙. 설정 시 지정한 이벤트 범주에 대해서만 로그가 남는다.

- 감사 설정 수준이 너무 낮으면 보안 관련 문제 발생 시, 원인파악이 어렵다.

- 감사 설정 수준이 너무 높으면 보안 로그에 불필요한 항목이 많이 기록되어 성능에 심각한 영향을 준다.

- 법적 요구사항과 조직의 정책에 따라 필요한 로그를 남기자.

[보안설정]
(1) 권장 감사 정책 설정
 1) 제어판 > 관리 도구 > 로컬 보안 정책 > 로컬 정 책 > 감사 정책 선택
 - ('로컬 보안 정책' 단축 명령) 실행 >secpol.msc 입력

(2) 감사 항목 설정
감사항목 권장값 설명
개체 엑세스 감사
안함
파일, 디렉터리, 레지스트리, 프린터 등의 객체에 대한 접근 성공/실패 여부를 기록할 지 결정
계정 관리 성공 사용자 계정 또는 그룹의 생성, 변경, 삭제, 암호의 설정 및 변경 등의 이벤트 성공/실패 로그 기록
계정 로그온
이벤트
성공 도메인 계정에 대한 로그온 성공/실패 관련 이벤트 로그 기록 결정
권한 사용 감사
안함
권한 사용의 성공 및 실패를 감사할 경우 사용자 권한을 이용하려고 할 때마다 이벤트 생성
디렉터리 서비스 액세스 성공 Active Directory 개체의 시스템 액세스 컨트롤 목록(SACL)에 나열된 사용자가 해당 개체에 액세스를 시도할 때 이벤트 생성
로그온 이벤트 성공,
실패
로컬 계정에 대한 로그온/오프 성공/실패에 대한 이벤트를 기록할 지를 결정
시스템 이벤트 감사
안함
시스템 시작 또는 종료, 보안 로그에 영향을 미치는 이벤트 등을 감사할지를 결정
정책 변경 성공 감사 정책 변경의 성공 및 실패를 감사
프로세스 추적 감사
안함
실행되는 프로세스에 대한 자세한 추적 정보를 감사하는 경우 프로세스 생성, 종료, 핸들 복제 및 간접 개체 액세스 같은 프로세스 관련 이벤트를 감사할지를 결정