보안 제품정보


불친절하고 재미없지만 중요한 CVE, 무엇을 위주로 봐야 하나? 2021.10.06

CVE는 중요하다. 취약점에 대한 정보이기 때문이다. 그런데 이 정보를 관심 있게 보는 사람은 드물다. 하지만 읽는 방법만 알면 좀 더 쉽고 편하게, 시간을 절약하면서 CVE를 활용할 수 있게 된다.

[보안뉴스 문가용 기자] CVE라는 관리 번호가 붙은 취약점들에 깊은 관심을 가진 사람들은 많지 않다. 어쩌면 각 CVE마다 부여되는 CVSS 점수에 관심이 더 클 것이다. 그나마 점수가 높으면 어떤 제품에서 나왔는지 한 번 훑어보고는 잊는 게 대부분이다. 보안 담당자들이 검토해야 할 것이 산더미처럼 많은 상황에서 어쩔 수 없는 일이기도 하다. 2021년 현재까지 나온 CVE들이 벌써 1만 4천개가 넘는 상황을 생각하면 이해가 안 가는 것도 아니다. 참고로 2021년 10월 현재 시점에서 보안 업계가 관찰하고 조사하고 대처한 CVE들은 1만 4천여 개 중 40% 정도다.

[이미지 = utoimage]


CVE를 하나 접했을 때, 이게 나랑 상관이 있는 문제인지 아닌지를 어떻게 알 수 있을까? 어디를 봐야 그것을 최대한 빨리, 정확하게 파악할 수 있을까? 안타깝지만 CVE의 개요만 보고서는 이게 무시해도 되는 건지 아닌지를 정확히 결정하기는 힘들다. CVE의 세부 데이터를 봐야 한다. 그 안에는 당장에 취할 수 있는 행동이 무엇인지, 그렇게 함으로써 어떤 보안 문제를 예방하거나 해결할 수 있는지, 각종 보조적 데이터에는 무엇이 있는지 등이 저장되어 있다. 약간의 읽기와 조사를 해야 하지만 그 만큼 되돌아오는 것들이 있다. 놓칠 뻔한 취약점을 찾아내 패치한다는 건 해커와의 시합에서 이긴 것이다.

CVE를 제대로 파악하기 위해 알아야 할 것들을 조금 더 상세히, 그러나 간추려서 풀어 본다.

1) 이 CVE는 어디서 나왔는가?
CVE들은 소프트웨어 취약점이므로 당연히 소프트웨어에서 나온다. 그런데 정말 중요한 건 소프트웨어의 ‘이름’이 아니라 ‘버전’이다. “옛날 버전에만 있는 취약점”이라는 사실은 빼고, “오피스에서 취약점 나왔대!”라고 취약점 소식은 전파되기 마련인데(여기에는 다양한 이유가 있는데, CVE 제목 붙이기에 아무런 표준이나 규정이 없다는 것이 가장 크다), 이 때문에라도 더더욱 버전부터 확인하는 게 시간을 아낀다는 측면에서 좋다.

CVE는 하루에 50개 이상 새롭게 등록된다. CVE 소식을 매일처럼 접하고 하나도 빠짐없이 점검한다는 건 불가능에 가깝다. 심지어 CVE라는 이름을 달고 나오는 정보가 다 완전한 것도 아니다. 부정확한 것도 있고, 일부 중요 데이터가 빠진 것도 있다. 그렇기에 CVE는 “진실을 담은 그릇”이라기보다 “일단 우리가 할 수 있는 최선”에 가깝다.

CVE 정보가 불완전할 수밖에 없는 이유 중 하나는 CVE 설명 칸에 기입할 수 있는 글자 수가 500자로 제한되어 있다는 것이다. 500자 안에 모든 CVE 관련 설명을 빠짐없이 넣을 수는 없다. 그러니 CVE 조사는 CVE 설명글을 읽는 것만으로는 부족하고, 그러므로 정말 필요한 것을 얼른 찾아내는 것이 중요하다.

2) 권고문을 읽으라
CVE 정보의 가치를 높이는 요소 중 하나는 바로 보안 권고문이다. 해당 취약점을 어떻게 해결해야 하는지, 패치가 존재하긴 하는지, 있다면 어디서 받아야 하고 없다면 다른 대안이 무엇인지가 적혀 있는 게 바로 이 권고문이다. 이는 CVE 설명글에는 극도로 요약이 되거나 빠지기 일쑤인 부분이다. 이 권고문은 CVE 정보에 링크로 걸리는 경우가 대부분이니 꼭 따라가서 읽는 것을 권한다.

3) CPE 데이터가 중요하다
CVE 내에는 CPE 데이터라는 게 있다. 사실 ‘그래서 이 CVE 때문에 진짜로 위험해지는 게 뭐라는 거냐?’라는 답을 가장 정확히 제공하는 게 바로 이 CPE 데이터다. 제이슨 스키마(JSON Schema)에서 CPE 데이터 포인트들은 크게 네 종류로 나뉘는데, 이를 파악하는 것이 CVE 조사에 큰 도움이 된다. 이 네 종류는 다음과 같다.
- VersionStartIncluding
- VersionStartExcluding
- VersionEndIncluding
- VersionEndExcluding

이 정보들을 통해 해당 CVE가 어떤 버전에 국한되어 있는지를 파악할 수 있고, 만약 CMDB가 최신화 되어 있는 상태라면 현재 시스템 혹은 네트워크 내에 존재하는 소프트웨어 버전 정보와 비교 분석할 수 있다. 그러므로 취약한 버전이 담당 구역 내에 있는지 없는지를 보다 빠르게 파악할 수 있게 되고, 그럼으로써 시간을 아낄 수 있게 된다.

물론 이 CPE가 만능은 아니다. 현재 CVE 작성 방법에는 기준이 없고, 따라서 정확한 버전 정보를 정확히 넣을 의무도 없다. 실제로 MS는 CPE 데이터에 버전 정보를 넣지 않고 있다. 그래서 MS의 CPE 정보는 사실 별 쓸모가 없다. CVE를 관리하는 NVD가 위 네 가지 데이터 포인트를 ‘필수 항목’으로 지정하면 되겠지만, 아직 그러한 움직임은 없다.

그래서 사실 버전 정보를 확인했음에도 별다른 소득을 얻지 못했을 때 할 수 있는 일은 두 가지다. 모든 버전을 하나하나 조사하든가, 해당 CVE를 못 본 것처럼 무시하든가. 둘 다 보안 전문가들에게는 그리 달가운 상황은 아니다.

위에 언급한 몇 가지만 살펴봐도 CVE를 휙 지나치는 일은 줄어들게 된다. 그리고 필자는 버전 정보(CPE)와 권고문을 확인하는 것만으로도 현 상황에서는 충분한 조사를 감행한 것이라고 본다. 물론 더 깊이 들어갈 수도 있고, 그렇게 해야 할 때도 있다. 그럴수록 오탐의 확률은 분명히 낮아질 것이다. 다만 그만큼 다른 CVE를 확인하지 못할 가능성도 높아진다. 그러므로 균형을 잘 잡는 게 중요하다.

NVD는 CVE와 관련된 데이터를 보다 효율적으로 검색하고 검토할 수 있도록 API를 제공하고 있기도 하다. 이 역시 보안 담당자라면 시간을 들여 살펴볼 가치가 있다.

CVE는 아직 불완전하긴 하지만 분명히 필요한 정보다. CVE를 가지고 노는 방법을 익혀둔다면 보안 담당자로서 큰 무기가 될 것이다. 마치 외국어를 공부하는 사람이 사전을 손에서 놓지 않음으로써 사전의 활용법을 더 깊이 있게 깨달아 가듯, CVE 정보 역시 그런 식으로 다루어야 한다. 그럴 때 CVE는 우리의 친구가 된다.

글 : 제리 갬블린(Jerry Gamblin), 보안 연구 책임자, Kenna Security
[국제부 문가용 기자(globoan@boannews.com)]

<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>