패치 튜즈데이는 IT 역사에 길이 남을 업적이다. MS는 이것을 창안함으로써 보안에 거대한 기여를 했다. 하지만 최근 스스로가 이런 공적을 없애고 있다. 조금만 더 신경 쓰면 실질적인 도움이 될 수 있는데, 그 길을 가지 않고 있는 것이다.
[보안뉴스 문정후 기자] 2023년은 ‘패치 튜즈데이(Patch Tuesday)’ 20주년이 있는, 보안 분야로서는 꽤나 의미가 큰 해다. 패치를 규칙적으로 함으로써 보안을 강화한다는 MS의 생각은 지난 20년 동안 많은 시스템가 네트워크를 지켜왔으며, 어도비, 지멘스, 슈나이더 일렉트릭 등 수많은 대기업들도 이를 하나 둘 도입함으로써 패치 튜즈데이가 성공적인 개념임을 증명하기도 했다.

[이미지 = gettyimagesbank]
그러나 세상에 완벽한 것은 없다. 최근 들어 MS가 패치 튜즈데이를 통해 발표하는 보안 권고문의 품질은 눈에 띄게 하락하고 있다. 취약점 정보는 번호만으로는 아무런 의미를 갖지 못한다. 여러 가지 세부 내용들이 포함되어 있어야 비로소 쓸 수 있는 정보가 된다. 하지만 MS의 최근 보안 권고문은 사실 숫자만 있는 것이나 다를 바가 없다. 2017년의 취약점 정보와 2023년의 취약점 정보를 비교해 보자.
1) CVE-2017-0290 : MS 포프론트(Microsoft Forefront)와 MS 디펜더(MS Defender, Windows Server 2008 SP2와 R2 SP1, Windows 7 SP1, Windows 8.1, Windows Server 2012 Gold 및 R2, Windows RT 8.1, Windows 10 Gold, 1511, 1607, 1703, Windows Server 2016)에 탑재된 마이크로소프트 멀웨어 보호 엔진(Microsoft Malware Protection Engine)이 특수하게 조작된 파일을 올바로 스캔하지 않아 발생하는 메모리 변형 현상. 마이크로소프트 멀웨어 보호 엔진의 원격 코드 실행 취약점이라고도 불린다.
2) CVE-2023-21554 : 마이크로소프트 메시지 큐잉(Microsoft Message Queuing) 원격 코드 실행 취약점
첫 번째 취약점 정보에는 다양한 세부 정보가 들어 있다. 취약점의 영향을 받는 요소가 무엇인지(포프론트와 디펜더), 어떤 버전들이 위험한지(각종 윈도 버전), 공격이 어떤 방식으로 들어오는지(조작한 파일), 취약점의 유형이 무엇인지(메모리 변형) 등이다. 이 모든 정보들은 두 번째 취약점 정보에 빠져 있음을 한 눈에 알 수 있다.
방어하려는 자들에게 어떤 의미인가
취약점 정보가 부실하다는 건 방어 담당자들에게 큰 문제가 된다. 제일 먼저는 어떤 취약점부터 패치해야 하는지 결정할 수가 없기 때문이다. ‘마이크로소프트 메시지 큐잉 원격 코드 실행 취약점’이라는 문장 한 줄만 보고 이것이 시급히 해결해야 하는 건지, 얼마나 위험한 건지 도대체 어떻게 알 수 있을까? 애초에 메시지 큐잉이 무엇인지, 어떤 프로그램이나 애플리케이션에서 사용되는 건지 IT 전문가라면 다 알아야 하는 걸까? 네트워크 포트와 관련이 있는 것인지 정책적으로도 해결해야 하는 것일까? 이 모든 문제들을 보안 담당자들이 하나하나 조사해서 판단을 내려야 한다. 패치 자체만으로도 할 일이 많아지는데, 그 패치를 준비하는 과정조차 순탄하지 않은 것이다.
그래서 마이터(MITRE)는 CVE 설명에 포함되어야 할 정보가 무엇인지 다음과 같이 정해두고 있다.
1) 읽는 사람들이 취약점의 영향을 받는 제품에 대해 충분히 이해할 수 있게 해 주는 제품 정보가 포함되어야 한다.
2) 취약점 유형, 취약점 발생의 근본 이유, 취약점 발동 시 영향 중 하나가 반드시 들어가야 한다.
MS의 취약점 정보는 이런 마이터의 필수 요건을 만족시키고 있는가? MS가 잘 알 것이다.
MS의 CVE에 할당된 CWE 번호
MITRE는 취약점 정보에 반드시 포함되어야 할 정보를 명시하고 있고, MS는 이를 무시하고 있다. 마이터가 왜 이를 그냥 두고 보는 것인지는 아직 확실하지 않다. 다만 둘의 이러한 행위(무시와 간과) 때문에 많은 보안 전문가들과 MS 제품 사용자들이 피해를 입고 있는 것은 확실하다. 그리고 이것은 NIST의 취약점 관리 현황만 봐도 알 수 있다.
NIST는 취약점 데이터베이스인 NVD를 관리할 때 모든 CVE 번호에 CWE를 따로 정해서 부착한다. CVE의 취약점 정보가 부실할 때, NIST는 NVD-CWE-noinfo라는 관리 표식을 부여하는데, 이건 “이 취약점 정보에는 사실 볼 만한 내용이 하나도 없다”는 뜻이다. 2015년만 해도 NIST는 MS의 CVE 정보에 이 NVD-CWE-noinfo라는 표식을 거의 부착하지 않았었다. 하지만 2022년에 와서는 거의 모든 MS 취약점에 이 표시가 붙는다.
NIST의 CWE 정보는 사용자 기업들이 패치 순서를 정할 때 요긴하게 사용된다. 하지만 수많은 사용자를 거느린 MS의 제품은 사실상 이 CWE에 반영되지 않고 있으니 CWE라는 번호가 가진 유효성 자체에 의문을 제기하는 사용자들이 많아지고 있는 게 사실이다. MS만의 문제가 아니라, 취약점 관리 시스템 전체가 피해를 보고 있다고 할 수 있다.
MS가 참고해야 할 예시
MS는 왜 중요한 패치 제도를 스스로 마련해 놓고, 더 큰 범위에서의 패치 시스템을 망쳐놓고 있는 것일까? 그나마 다행인 것은 외부 업체와 조직들이 MS가 만들어 둔 거대한 공백을 메우려 한다는 것이다. 예를 들어 제로데이이니셔티브(Zero Day Initiative)의 경우, 패치 튜즈데이가 진행될 때마다 후속 설명을 담은 보고서를 발표한다. 위에서 예를 든 CVE-2023-21554의 경우, 제로데이이니셔티브는 다음과 같은 설명을 제공했다.
CVSS 기준 9.8점짜리 버그로, MS도 익스플로잇 가능성이 매우 높은 것으로 분류하고 있다. 원격에 있는, 승인 과정을 통과하지 않은 공격자가 높은 권한을 가지고 피해자의 서버에서 공격자가 원하는 코드를 실행시킬 수 있게 해 준다. 이 때 서버에는 메시지 큐잉(Message Queuing) 서비스가 활성화 되어 있어야 공격이 가능해진다. 메시지 큐잉 서비스는 디폴트상 비활성화 되어 있으나, 많은 사용자들이 필요에 따라 활성화 하기도 한다. 그랬을 때 TCP 포트 1801과 연결이 된다. 따라서 이 포트를 차단하면 외부로부터 들어오는 공격을 막을 수 있다. 하지만 사업 운영 등에 영향을 미칠 수 있다. 따라서 업데이트를 실험해 보고, 아무 일 없다면 적용하는 게 최선의 방법이다.
이 설명에는 온갖 정보가 풍성하게 들어 있다.
1) 메시지 큐잉은 일종의 서비스다.
2) 메시지 큐잉은 원래 비활성화 되어 있다.
3) 메시지 큐잉은 TCP 포트 1801과 연결되어 있다.
4) 취약점 익스플로잇에 성공하면 권한이 상승된다.
보안 담당자에게 이 모든 정보는 굉장히 유용하다. 그리고 CVE 취약점 정보에 포함되어 있어야 하는 것들이다. 보안 담당자들은 그렇지 않아도 시간에 쫓기는 사람들이다. 그런 사람들을 도우려면 매 달 두 번째 화요일에 수수께끼를 더 주는 게 아니라 친절한 답지를 줘야 한다.
글 : 제이콥 베인즈(Jacob Baines), 취약점 수석 연구원, VulnCheck
[국제부 문정후 기자(globoan@boannews.com)]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>