1. Microsoft Baseline Security Analyzer란?

Microsoft Baseline Security Analyzer는 Windows 2000/XP/2003 기반 시스템의 보안상 안정성을 최신의 상태로 유지하고 있는지 점검하는 것을 도와주는 응용 프로그램으로 로컬 시스템 또는 둘 이상의 시스템을 검색하여 누락된 보안 패치, weak password, Internet Explorer 및 Outlook Express보안 설정, Office의 매크로 보호 설정 등에 대한 보고서를 XML형식의 파일로 저장하고 리포팅한다. 또한 점검된 시스템의 현재 보안 문제, 그리고 문제의 수정 방법에 대한 정보와 관련 사이트 링크를 제공한다.

MBSA는 Windows 2000/XP/2003로 구성된 네트워크의 오버헤드 감소, 관리자로 하여금 네트워크의 보안 상태를 한눈에 파악할 수 있게 하고 일반 사용자에게는 자신이 사용하는 시스템에 대한 문제점 점검 및 보완 손쉽게 할 수 있도록 인터페이스를 제공한다.


[그림1] Microsoft Baseline Security Analyzer

2. MBSA 설치 및 고려 사항

MBSA 설치 시 고려해야 될 사항은 크게 3가지로 요약할 수 있다.

(1) 권한 문제

Windows 2000/XP/2003에서는 계정마다 적절한 권한 설정을 통해서 시스템에서 행할 수 있는 작업의 범위를 제한할 수 있는데 MBSA를 시스템에 설치하기 위해서는 administrators 그룹의 구성원 이거나 Administrator와 비슷한 권한을 가진 사용자만이 설치/사용을 할 수 있다. 만약 권한이 부족할 경우 아래와 같은 에러 창을 출력하며 설치할 수 없게 된다.


[그림2] 권한 관련 에러

(2) 사용자의 범위

MBSA는 설치 시 아래와 같이 두 가지 모드 중 하나를 선택하도록 되어 있다.


[그림3] 설치 옵션

설치 후 MBSA를 사용해 보면 알겠지만 MBSA는 시스템의 보안에 관련된 중요한 데이터를 추출해 내고 XML파일로 저장한다고 언급했다. 만약 “Anyone who uses this computer”를 선택하게 되면 누구든지 MBSA를 사용할 수 있고 MBSA를 통해 출력된 시스템의 보안 데이터를 악용할 수 있는 소지가 있기 때문에 “Only for me”를 선택하는 것이 보안상 안전하다.

위의 두 가지 사항을 고려해 본다면 오직 시스템의 administrator만이 설치/사용할 수 있도록 해야 한다.

(3) 백신의 오진문제


[그림4] 백신의 오진 화면


MBSA는 스크립트로 구성되어 있기 때문에 백신에서 악성 스크립트로 오진할 수 있는 가능성이 있다. 이는 백신의 악성 스크립트 차단 기능(또는 유사한 기능)때문이므로 백신의 옵션 설정을 통해서 문제를 해결할 수 있다.


3. 점검 및 분석

(1) 점검

MBSA를 실행하면 아래와 같은 옵션을 볼 수 있다.

  • Scan a computer(= Pick a computer to scan)
  • Scan more than one computer(= Pick multiple computers to scan)
  • View existing security reports(= Pick a security report to view)

    로컬 시스템을 점검할 것이기 때문에 “Scan a computer”을 선택, Computer name와 IP address의 두 가지 방법 중 하나를 선택한 후 Start Scan을 클릭한다.


    [그림5] Microsoft Baseline Security Analyzer 설정

    (2) 분석


    [그림6] MBSA의 분석 결과

    MBSA의 분석 보고서는 C:\Documents and Settings\Administrator\SecurityScans에 저장된다. 보고서는 Security Update Scan Results, Windows Scan Results, Additional System Information, Desktop Application Scan Results 등 총 4개의 메뉴로 구성되어 있으며, 그 중에서 가장 주의 깊게 살펴봐야 할 부분은 Security Update Scan Results, Windows ScanResults 이다.

    Security Update Scan Results는 OS, IIS Server, MS SQL Server, Exchange Server의 보안 패치와 관련된 정보를 리포팅하는 곳으로 만약 아래 그림처럼 보안패치가 안된 부분이 발견되었을 경우 그에 대한 자세한 내용과 함께 패치를 다운로드할 수 있는 링크가 포함된 정보를 제공한다.


    [그림7] Security Update Scan Results

    Windows Scan Results는 시스템의 자체 보안 설정(Password, 사용자 계정, SMB 관련)에 대한 문제점을 리포팅하고 해결방안을
    제시한다.


    [그림8] Windows Scan Results

    RestrictAnonymous 부분에 대해서 살펴 보자.

    RestrictAnonymous란 Null Session을 통해 민감한 정보의 목록화(Enumeration)를 막는 기술로 MS가 제공하며레지스트리를 통해서 수정할 수 있다. 기본적으로 0으로 설정되어 있을 것이다.


    [그림 9] 레지스트리 편집


    보안 레벨
    0 없음, Default Permission에 의존
    1 SAM 계정과 이름에 대한 목록화 허용 불가
    2 명확한 익명 퍼미션이 없으면 어떤 접속도 불가
    [표1] RestrictAnonymous 값

    공격자는 목표 시스템에 공격을 수행하기 전에 사전 정보 수집을 통해서 공격 방법 및 강도를 결정한다. 만약 목표 시스템이 Windows 2000/XP/2003계열로 확인되었다면 SMB를 통해서 null session을 맺은 후 목록화(Enumeration)를 통해서 목표 시스템의 중요한 정보를 추출할 것이다.


    [그림10] *n*m을 이용한 목표 시스템의 목록화(Enumeration)

    RestrictAnonymous=1로 설정한 후 테스트한 결과 아래 그림에서처럼 액세스 불가란 메시지가 출력된다.


    [그림 11] RestrictAnonymous=1로 설정된 시스템에 목록화 시도

    RestrictAnonymous=1로 설정된 시스템에 대한 목록화가 실패했다고 해서 공격자는 목록화를 포기할 것인가? 필자의 대답은 No이다. 비록 RestrictAnonymous=1로 설정되어 있다하더라도 이것을 우회하여 목록화를 성공할 수 있는 도구들이 많다.

    관리자(administrator)의 계정을 다른 이름으로 변경하는 것은 보안 기본 수칙이고 사용자들도 변경하면서 내 시스템의 관리자 계정은 안전할 것이라 믿는다. 그렇다면 과연 안전할까?

    물론 변경하는 것이 안했을 때 보다 공격자로부터 좀 더 안전하겠지만 공격자는 다른 방법을 강구할 것이고 결국은 관리자 계정의 정보를 알아낼 것이다. [그림 12]를 보면 그것이 공격자에게는 얼마나 쉬운 일인지 보여 준다.


    [그림 12] 변경된 관리자의 계정 정보


    [그림 13] 관리자의 SID 정보

    마지막 하이픈 뒤에 나오는 숫자열을 관계 식별자(RID)라 하는데, 내장 NT/2000/2003사용자와 administrator나 guest와 같은 그룹에 미리 정의되어 있다. 예를 들어, administrator의 RID는 항상 500이고 guest는 501이다. 로컬 시스템이나 도메인에 생성되는 첫 번째 계정은 1000으로 할당되고, 뒤에 생성되는 계정은 각각 연속적인 다음 숫자를 갖는다는 것이다.(1001, 1002, 1003등등...) 따라서 한번 SID가 노출되면 공격자는 기본적으로 시스템의 모든 사용자와 그룹을 목록화(Enumeration)할 수 있다.

    그렇다면 대응방법은 무엇인가?

    1) 레지스트리를 통해 자신의 시스템 환경에 맞게 RestrictAnonymous값을 적절히 설정하라.

    만약 RestrictAnonymous=2로 설정하는 것은 목록화를 효과적을 차단하지만 다른 응용 프로그램이나 2000계열 이전 버전의 윈도우와 연결 상의 문제가 발생할 수 있다.


    [그림 14] RestrictAnonymous=2로 설정한 후 목록화 시도

    2) SMB 서비스를 차단하라.

    SMB서비스가 필요 없는 시스템인데도 불구하고 많은 시스템이 SMB가 활성화된 채 사용되고 있다. 꼭 필요한 것이 아니라면 SMB서비스를 사용하지 않아야 한다. 강조하지만 필요 없는 서비스를 방치하는 것은 공격자에게 그 만큼 시스템에 침투할 수 있는 기회를 제공하는 것이다.


    [그림 15] SMB 서비스 Disable 1

    [그림 15]에서 보는 것과 같이 TCP/IP에서 NetBios 사용 안함으로 설정함으로써 시스템의 SMB 접근을 성공적으로 차단했다고 생각하지만 이것은 잘못된 것이다. 왜냐면 위의 설정은 단지 TCP 139번만 차단한 것이므로 TCP 445번 포트를 통한 목록화에 대해서는 여전히 취약하다. 따라서 [그림 16]에 보이는 것처럼 Microsoft 네트워크용 파일및 프린터 공유란을 체크해제 한다.


    [그림 16] SMB 서비스 Disable 2

    3) TCP 또는 UDP 135 ~ 139 그리고 445번 포트로 유입되는 트래픽을 제한하라.

    가장 확실한 방법은 네트워크나 개별 호스트들에서 방화벽을 사용해서 TCP 또는 UDP 135 ~ 139 그리고 445번 포트로 유입되는 신뢰할 수 없는 트래픽의 유입을 차단하는 것이다.

    4. 맺음말

    우리가 사용하는 응용프로그램은 사람에 의해 제작되기 때문에 자잘한 버그에서부터 보안상 위험한 버그에 이르기까지 많은 버그를 내포하고 있을 수 있다. 이에 벤더들은 패치나 별도의 서비스 팩을 통해서 발견된 버그를 보완하고 사용자들에게 패치를 하도록 권고하고 있다.

    그렇다면 사용자들은 각 벤더의 권고에 따라 자신이 사용하는 응용프로그램의 버그에 대해 숙지하고 패치를 잘 하고 있는가? 필자의 생각은 아니다. 아직도 다수의 사용자들이 보안 툴 사용 및 패치에 대해 소극적이며 외형만을 중요시하고 있는 것 같다.

    블래스터 웜의 경우 2003년 8월 13일 최초로 발견/보고(그 전부터 RPC 결함을 이용한 웜이 등장할 것으로 예상하고 여러 보안 사이트에서 이를 경고함.)되었고 피해는 감소했지만 여전히 사용자들을 괴롭히고 있고 동일한 RPC결함을 이용한 agobot웜 또한 사용자들을 괴롭히는데 한 몫하고 있다.

    Blaster나 Agobot 웜처럼 OS나 다른 응용프로그램의 결함을 이용하는 악성코드들이 증가할 것이다. 따라서 이러한 위협을 줄이기 위해서는 각 벤더들은 좀 더 안전한 응용프로그램을 만들도록 노력해야 하고 사용자들은 패치 및 보안 툴 사용하여 사전에 예방하는 습관을 길러야 한다.
  • '정보공유' 카테고리의 다른 글

    AI Robot Technology  (0) 2008.06.04
    Microsoft Baseline Security Analyzer  (0) 2008.06.02
    게임사용자 정보 노린 악성코드 확산  (0) 2008.05.29
    메모리해킹  (0) 2008.05.07

    + Recent posts

    티스토리 툴바