1. 개요
보안 취약점(脆弱點, vulnerability)은 공격자가 시스템의 정보보증[1]을 낮추는 데 사용되는 약점이다.보안 취약점은 세가지 요소를 갖추고 있는데 1. 시스템에 결함이 있고, 2. 공격자가 결함에 접근할 수 있으며, 3. 공격자가 해당 결함을 익스플로잇[2]할 가능성이 있어야 한다.
쉽게 말하면 버그는 버그인데 매우 심각하고 방치하면 위험한 버그를 다른 버그들과 달리 특별히 구분지어 불러야 할 때 쓰는 말이다.
따라서 버그가 없는 프로그램은 없듯이 취약점이 없는 프로그램은 없다. 사소한 실수나 정상적인 데이터인지 체크하는 루틴이 부실해서 취약점이 발견되기도 하고 그 프로그램을 돌리는 운영체제 자체의 버그로 인해 취약점이 발견될 수 있다.
이 때문에 전 세계적으로 각 회사의 제품의 취약점을 찾아서 회사 또는 공공기관[3]에 제보할 경우 보상금을 주는 '버그바운티' 제도를 시행하는 추세다. 대한민국에서는 취약점을 KISA에 제보할 경우 KISA가 판단하기에 위험한 취약점일수록 보상금을 많이 주는데 기본 30만원이다. 브로커나 해외에서 주는 보상금과 비교하면 많이 적어 암시장에 제로데이어택용으로 팔아버리는게 더 나을 지경이다.
현대에도 보안 취약점은 그야말로 쏟아지고 있다. 만약 보안 취약점이 발견되자마자 공개된다면 전 세계의 수많은 컴퓨터가 제로 데이 공격에 시달리며 정상적인 구동조차 보장하기 힘들어질 것이다. 그래서 보안 취약점이 발견된 즉시 공개되지 않고, 보통 30일까지 공개가 유예되는 경우가 많다.
오픈소스 소프트웨어는 소스 코드가 공개되어 있기 때문에 해커들이 코드에서 알려지지 않는 취약점을 찾아낼 가능성이 있다. 오픈소스가 아니더라도 어떠한 이유로 소스코드가 유출될 경우에는 유출된 코드에서 취약점을 찾아낼 수 있다. 2020년 9월 27일, Windows XP와 Windows Server 2003 소스코드가 유출되는 사건이 발생했는데 보안전문가들은 이에 대해 유출된 소스코드를 이용해 취약점을 쉽게 찾아낼 수 있다고 한다.
소프트웨어뿐만 아니라 하드웨어에서도 취약점이 발견되는 경우가 있는데 소프트웨어 취약점와 다르게 수정이 불가능하다. 대표적인 사례가 CPU 게이트인데 소프트웨어가 아닌 CPU의 취약점이라 직접 패치할 수 없고 운영체제 레벨에서 패치하게 되었는데 성능 저하가 발생했다. 하드웨어 상의 취약점까지는 아니더라도 수정 불가능한 ROM[4]에 기록된 펌웨어에 취약점이 발견되는 경우도 있으며 이 경우에도 문제가 해결된 최신 하드웨어로 새로 구입하는 수밖에 없다.
Windows 11은 TPM 2.0 의무화와 함께 인텔 8세대, AMD 라이젠 2세대 이후 CPU만 지원한다는 가혹한 하드웨어 제한을 걸어놨는데 외국 커뮤니티에서는 구형 CPU에 존재하는 CPU 게이트를 비롯한 각종 보안 취약점 때문으로 보고 있다.
2. 주요 사건
시간 순서대로 나열함. 괄호 안에 있는 문자열은 CVE Identifier를 나타낸다.- 2002년
- SQL 인젝션 (CVE-2002-0287(최초 보고) 외 103개)
- 2014년
- 하트블리드 (CVE-2014-0160)
- 셸쇼크 (CVE-2014-6271(최초 보고), CVE-2014-6277 , CVE-2014-6278 , CVE-2014-7169 , CVE-2014-7186, CVE-2014-7187)
- 2017년
- 클라우드블리드
- KRACK (CVE-2017-13077, 13078, 13079. 13082, 13084, 13086, 13087, 13088)
- 인텔 관리 엔진 (CVE-2017-5689(최초 보고), CVE-2017-5705, CVE-2017-5706, CVE-2017-5707, CVE-2017-5708, CVE-2017-5709, CVE-2017-5710, CVE-2017-5711)
- 멜트다운-스펙터 (CVE-2017-5754) - 일명 CPU 게이트
- 2020년
- 캐시아웃 (CVE-2020-0549)
- 2021년
- V8 자료형 혼동 취약점 (CVE-2021-30563) #
해당 취약점으로 인해 V8 엔진을 사용하는 모든 애플리케이션이 보안에 취약해졌다. 해당 이슈가 브라우저계에서만 논란이 되었고 Electron 프레임워크, Node.js를 사용한 애플리케이션 진영에서는 크게 논란이 되지 않아서 더 큰 문제가 발생할 수도 있었다. 다행히 Electron은 현재 해당 취약점이 패치되었지만 Node.js는 아직 패치됐다는 소식이 없다. - Log4j 보안 취약점 사태 (CVE-2021-44228)
- 2023년
- 위즈베라, 라온시큐어 보안 플러그인 스캔들 (해당 없음[5]) #
AdBlock Plus의 원 개발자이자 해당 프로그램을 현재 유지보수중인 eyeo 사의 공동창업자 블라디미르 팔란트가 2023년 1월 2일부터 기획연재 식으로 한국 보안 프로그램의 실상을 낱낱이 까발린 사건. 물론 보안 프로그램들이 책임전가의 수단일 뿐이고 그 자체가 보안 취약점 내지 암덩어리라는 사실 자체는 한국인들 사이에서는 공공연한 비밀이었긴 하지만 국제적으로 지명도 높은 보안 전문가[6]가 흥미를 보이고 따로 저술함으로써 세계적 관심을 환기했다는 데 의의가 있다. 1/2일자의 최초의 폭로 이후 최소 3월까지는 거의 한 달에 한 번 꼴로 한국 보안 플러그인 특집을 냈다. 저자의 허락 하에 한국어로도 번역되고 있다. # - ESXiArgs 랜섬웨어 감염 서버_23년3월 기준 2,000여개 이상 발견 (CVE-2021-21974) #
현재 위 링크에서는 확인되지 않지만 Vmware ESXi 서버에서 사용되는 OpenSLP(Service Location Protocol) 서비스의 힙오버플로(Heap Overflow) 취약점을 활용한 랜섬웨어라고 한다. 이 취약점은 원격코드실행(RCE) 공격이 가능하다. 2023년 2월 3일 피해가 보고되었으며 최근까지 공격이 이어지고 있다. 이 새로운 ESXiArgs 랜섬웨어 공격은 감염 시 서버 확장자가 .vmxf, .vmx, .vmsd, .nvram 인 파일이 전부 암호화 되고 '.args'로 변경되기 때문에 쉽게 감염여부 파악이 가능하다. - Zenbleed 취약점(CVE-2023-20593)
예측 실행을 이용한 취약점. Zen 2 기반 CPU가 대상이며, 예측 실행이 틀렸을 때 레지스터에 정보가 남아 유출된다. AMD가 배포한 마이크로코드 업데이트로 해결이 가능하다. - LogoFAIL 취약점 (CVE-2023-5058) #
UEFI 환경에서 기본 부팅 로고 외에도 사용자가 직접 지정한 부팅 로고로 변경할 수 있는데 루팅 로고 이미지를 검증하는 루틴이 없어 이미지 파일로 가정한 악성코드를 삽입하여 해당 시스템에 대한 모든 권한을 가지게 할 수 있다. 부팅 영역에 악성코드가 삽입되지 않도록 막아주는 Secure Boot를 우회하는 심각한 취약점으로 UEFI 펌웨어의 취약점이기 때문에 전 세계의 95%에 이르는 컴퓨터가 영향을 받는다.[7] 이에 따라 메인보드 제조사들은 LogoFAIL 취약점 대응 패치를 만들어서 배포하고 있다. ASUS기준 패치버전에선 바이오스 진입키를 알리는 글씨가 커졌다. - CVE-2023-205XX #
모든 Zen 기반 아키텍처를 사용한 프로세서, 즉 모든 라이젠시리즈와 Zen 기반 아키텍처를 사용한 애슬론 시리즈, EPYC에 해당된다.[8] 보통 위의 LogoFAIL 패치 버전 바로 다음 버전 바이오스에서 패치되었다. - 2024년
- 인텔 XTU, 칩셋 드라이버등 펌웨어 및 소프트웨어 취약점 34종 #
인텔에서는 지원이 중단된 소프트웨어를 제외한 모든 소프트웨어에서 취약점을 패치했고 지원이 중단된 경우 제거를, 아니라면 업데이트를 권장하고 있다. - 고스트레이스#
모든 커널과 ARM, AMD64 기반 CPU가 대상이다. AMD는 스펙터 1 관련 패치로 대응 가능하다 밝혔으며 리눅스 커널에서는 약 5% 정도의 성능 하락이 있는 것으로 보인다. - XZ Utils 취약점(CVE-2024-3094)#
XZ Utils의 5.6.0, 5.6.1 버전에 해당되는 취약점으로, MS 직원이 단순히 없어야 할 500ms의 지연[9]을 발견해서 조사해 보았더니 백도어였음이 확인되었다. - 크롬 브라우저 앵글 취약점 (CVE-2024-4058)#
- 리눅스/유닉스 인쇄모듈(CUPS) 취약점#[10]
위험도 9.9의, 그 악명높은 하트블리드(위험도 7.5)를 초월하는 사상 최악의 취약점으로 전 세계 모든 리눅스 및 유닉스 계열 OS가 영향을 받았다. 프린트 모듈(CUPS)의 취약점으로 인해 미인증 공격자가 프린터의 IPP URL을 악성 URL로 바꾸거나 새 프린터를 설치할 수 있으며 인쇄 시 임의의 명령을 해당 컴퓨터에서 원격으로 실행 가능한 약점이다. 심지어 macOS도 해당 취약점의 영향을 받았는데, 애초에 CUPS를 개발한 데가 애플이기 때문이다. - NVIDIA 보안 취약점 8종#
디스플레이 드라이버에서 CVE‑2024‑0126, CVE‑2024‑0117, CVE‑2024‑0118, CVE‑2024‑0119, CVE‑2024‑0120, CVE‑2024‑0121 6종. vGPU 소프트웨어에서 CVE‑2024‑0127, CVE‑2024‑0128 2종이다. 2024년 11월 4일 기준으로 Studio 드라이버는 해결되지 않았기에 용도 상관없이 Game Ready 드라이버의 최신 버전을 설치해야한다.
3. 관련 문서
[1] 원어로는 Information Assurance라고 하며 시스템의 신뢰(무결성)를 보장하는 기술적, 관리적 수단을 일컫는다.[2] 보안 취약점 혹은 그 취약점을 이용한 공격을 뜻하며 주로 후자의 의미로 사용된다.
참고로 비디오 게임 분야에서는 창발적 플레이의 요건 내지는 꼼수에 대응하는 의미의 용어로 쓰인다.[3] 대한민국의 인터넷진흥원 같은 공공기관이라고 생각하면 된다.[4] Mask ROM[5] 대한민국 한정 이슈이며 이들 기업은 국제적인 공조는커녕 오히려 자사 제품은 안전하다는 꼰대짓으로 일관하기 때문에 이들 이슈에 CVE가 붙을 가능성은 없다.[6] 사실 보안 전문가로서 유명한 건 아니지만 알다시피 보안 전문가는 개인정보 보호에 별로 신경을 안 쓸 수 있을지언정 역은 성립하지 않으며 전술했듯 세계구급 광고 차단 프로그램의 고안자로서 보안에도 상당부분 조예가 있음을 그의 블로그를 통해 보여줬다.[7] 5%에 해당되는 컴퓨터는 UEFI 자체를 지원하지 않는 컴퓨터다.[8] 다만 라이젠 8000 시리즈의 경우 ASUS 기준 애초에 지원 UEFI가 해당 취약점을 해결한 버전의 후속 버전이기에 문제가 없다.[9] 백도어 때문에 필요 이상으로 시스템 자원을 사용해 지연이 발생하였다.[10] CVE-2024-47076, 47175, 47176, 47177
참고로 비디오 게임 분야에서는 창발적 플레이의 요건 내지는 꼼수에 대응하는 의미의 용어로 쓰인다.[3] 대한민국의 인터넷진흥원 같은 공공기관이라고 생각하면 된다.[4] Mask ROM[5] 대한민국 한정 이슈이며 이들 기업은 국제적인 공조는커녕 오히려 자사 제품은 안전하다는 꼰대짓으로 일관하기 때문에 이들 이슈에 CVE가 붙을 가능성은 없다.[6] 사실 보안 전문가로서 유명한 건 아니지만 알다시피 보안 전문가는 개인정보 보호에 별로 신경을 안 쓸 수 있을지언정 역은 성립하지 않으며 전술했듯 세계구급 광고 차단 프로그램의 고안자로서 보안에도 상당부분 조예가 있음을 그의 블로그를 통해 보여줬다.[7] 5%에 해당되는 컴퓨터는 UEFI 자체를 지원하지 않는 컴퓨터다.[8] 다만 라이젠 8000 시리즈의 경우 ASUS 기준 애초에 지원 UEFI가 해당 취약점을 해결한 버전의 후속 버전이기에 문제가 없다.[9] 백도어 때문에 필요 이상으로 시스템 자원을 사용해 지연이 발생하였다.[10] CVE-2024-47076, 47175, 47176, 47177