Home > 전체기사

윈도용 인증 API인 크립토API의 취약점, 익스플로잇 코드 공개됐다

  |  입력 : 2023-01-26 15:19
페이스북 보내기 트위터 보내기 네이버 밴드 보내기 카카오 스토리 보내기 네이버 블로그 보내기
크립토API라는 중요 인증 API에서 취약점이 발견됐고, 지난 8월에 패치됐다. 하지만 이 취약점에 대한 정보가 너무 부족해 방어 계획을 제대로 수립하기가 어려운 상황이다. 이에 보안 전문가들이 개념 증명용 익스플로잇을 개발해 공개했다.

[보안뉴스 문가용 기자] 보안 전문가들이 X.509 인증서 도용 취약점에 대한 익스플로잇 코드를 개발해 공개했다. 문제의 취약점은 NSA와 NCSC가 작년에 발견해 MS에 제보한 것으로, 윈도 크립토API(Windows CryptoAPI) 내에 존재하며, CVE-2022-34689라는 관리 번호가 부여됐다. MS는 8월에 조용히 이 취약점을 패치했고, 10월에 보안 권고문을 내며 세상에 알렸다. 하지만 세부 내용이 다소 부족했기 때문에 큰 이슈가 되지 않았다.

[이미지 = utoimage]


보안 업체 아카마이(Akamai)의 보안 전문가 요니 로젠샤인(Yoni Rozenshein)은 “처음 패치가 발표되었을 때 권고문이 빠졌다”며 “두 달 후 권고문이 나올 때까지 이 패치가 있는 줄도 몰랐던 사람들이 꽤 있었을 것”이라고 말한다. “지금까지도 이 취약점에 대한 정보는 매우 부족한 상황입니다. 어떻게 익스플로잇이 되는지, 누가 공격을 주로 할 것으로 예상되는지 등 방어 계획을 수립하는 데 도움이 되는 정보들이 없었죠.”

개념 증명용 익스플로잇 코드
그래서 아카마이 연구원들은 취약점 익스플로잇 방법을 스스로 개발했다. 수개월 동안 작업을 진행했고, 그 결과를 이번 주에 발표했다. “공격자들이 익스플로잇에 성공하면 인증서를 조작함으로써 자신들이 운영하는 악성 웹사이트를 정상 웹사이트로 위장할 수 있게 됩니다. 취약점 패치가 진행되지 않은 브라우저는 이런 사이트들에 접속하고서도 안전하다는 표시를 그대로 화면에 내보냅니다. 저희는 이번 개념 증명용 코드를 통해 이러한 상황을 구현하는 데 성공했습니다.”

취약점이 발견된 크립토API는 일종의 윈도용 API로, 개발자들은 자신이 개발하고 있는 애플리케이션들에 암호화 기술 호환성을 부여하기 위해 사용한다. 디지털 인증서의 진본성을 확인하는 역할을 담당하는데, 바로 이 부분에 취약점이 존재한다고 로젠샤인은 설명한다.

“인증서의 진본성을 확인할 때, 크립토API는 제일 먼저 인증서 저장소에 이미 같은 인증서가 존재하는지 확인합니다. 동일한 것을 발견한다면 올바른 인증서라고 결정을 내리죠. 그런데 지금 확인해야 하는 인증서와, 저장소에 저장된 인증서를 비교할 때, 각 인증서의 MD5 해시 지문(thumbprint)을 비교합니다. 즉 인증서의 실제 내용을 확인하는 게 아니라는 겁니다. 공격자가 해시 지문만 조작한다면 아무 인증서나 통과시킬 수 있다는 뜻이 되죠.”

MD5 지문
로젠샤인의 설명에 따르면 “MD5 지문만으로 두 인증서를 같은 것이라고 결론을 내리는 건 꽤나 위험할 수 있다”고 한다. “저희는 실험을 통해 두 개의 인증서를 만들었습니다. 하나는 정상적으로 서명했고, 다른 하나는 악성 인증서였죠. 그리고 이 두 가지 모두 같은 MD5 지문을 보유하도록 조작했습니다. 그 다음 정상적인 인증서를 먼저 크립토API가 인증하도록 함으로써 인증서 저장소에 저장했습니다. 다음으로 악성 인증서를 내보냈을 때, 정상 인증서인 것으로 인식이 됐습니다. 이것만으로도 중간자 공격을 실시할 수 있게 된 것입니다.”

이 공격이 성공하려면 두 가지 조건이 성립해야 한다고 로젠샤인은 설명을 이어갔다. “일단 윈도가 지난 8월 패치를 적용하지 않은 상태여야 합니다. 그 때의 패치를 적용한다면 MD5 지문만 확인하는 원리가 존재하지 않으니까요. 그 다음으로는 크립토API로 인증서를 인증하는 방식의 애플리케이션이 사용되어야 하는데, 이 때 크립토API의 ‘최종 인증서 저장(end certificate caching)’ 기능이 활성화 되어있어야 합니다. 비활성화 된 게 디폴트 상태입니다.”

익스플로잇 난이도, 낮아
전제 조건들이 있어 실제 공격 가능성이 높지 않게 느껴지지만 로젠샤인은 “그렇지 않다”고 말한다. “피해자의 네트워크에 이미 침투한 상태라면 꽤나 쉽게 취약점을 익스플로잇 할 수 있습니다. 먼저 MD5 충돌값을 계산해야 하는데, 이건 공격하기 전에 간단히 수행할 수 있습니다. 수시간 정도 걸리며, 비용도 크게 많이 들지 않습니다. 이 과정을 거치면 같은 MD5 지문을 가진 인증서 두 장을 만들 수 있습니다.”

그나마 인증서 두 장을 만드는 게 어렵지 그 다음부터는 공격을 일사천리로 진행할 수 있다는 게 로젠샤인의 설명이다. “결국에는 멀쩡한 인증서를 먼저 내보내고, 그 다음 악성 인증서를 인증하도록 하는 게 관건입니다만 이는 피해자의 시스템과 네트워크 상황에 따라 방법이 정해지는 것이지, 하나의 정해진 방법이 존재하는 건 아닙니다. 브라우저 애플리케이션들의 경우, 첫 번째 인증서의 확인이 끝난 후 와이파이 연결만 새롭게 해줘도 다시 인터넷에 접속하는 과정 중에 두 번째 인증서를 확인하게 만들 수 있습니다.”

3줄 요약
1. 중요 디지털 인증서와 관련된 취약점이 윈도용 API에서 발견됨.
2. 패치는 지난 8월에 이미 있었으나, 아직까지 상세 정보가 부족한 상황.
3. 개념 증명용 익스플로잇 코드 개발돼 보다 상세한 정보가 공개됨.

[국제부 문가용 기자(globoan@boannews.com)]

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

  •  
  • 0
  • 페이스북 보내기 트위터 보내기 네이버 밴드 보내기 카카오 스토리 보내기 네이버 블로그 보내기

  •  SNS에서도 보안뉴스를 받아보세요!! 
아스트론시큐리티 파워비즈 2023년2월23일 시작 시큐아이 위즈디엔에스 2018
설문조사
오픈AI가 개발한 인공지능 챗봇 챗GPT가 GPT4 버전까지 나오면서 디지털 혁신의 촉매재 역할을 하고 있습니다. 보안 분야에서도 챗GPT로 인해 보안위협이 가속화될 것이라는 전망과 함께 보안업무에 효과적으로 활용된다면 보안대응 역량 향상에도 크게 기여할 것이라는 의견도 제기됩니다. 이에 대한 여러분들의 생각은 어떠신가요?
챗GPT 악용으로 인해 보안위협이 더욱 고도화되고 증가할 것
챗GPT를 악용하는데 한계가 있어 보안위협이 소폭 늘어나는 추세에 그칠 것
챗GPT 활용에 따라 보안대응 업무에 적지 않은 도움이 될 것
챗GPT의 적극적인 도입 및 적용 통해 보안대응 역량이 획기적으로 향상될 것
보안위협 또는 보안대응과 관련해서는 큰 영향이 없을 것
기타(댓글로)