AI가 생성한 첫 번째 실제 사이버 공격, 2FA를 우회하다
요약
AI가 소프트웨어의 로직 결함을 찾아내어 2단계 인증(2FA)을 우회하는 실제 사이버 공격 사례가 발생했습니다. Google은 AI가 생성한 제로데이 익스플로잇이 보안 계층을 무력화할 수 있음을 확인했습니다.
핵심 포인트
- AI를 활용한 첫 번째 실제 제로데이 익스플로잇 사례 발생
- 시스템 관리 도구의 로직 결함을 이용해 2FA 우회 성공
- AI 생성 코드 특유의 과도한 주석과 환각 현상 발견
- 전통적인 보안 스캐너가 놓치는 논리적 취약점 탐지 가능성
사상 처음으로 소프트웨어 취약점을 악용하는 데 AI가 사용되었습니다. Google은 이를 2026년 5월에 발견했으며, 그 결과는 심각할 수 있습니다.
모든 것이 변한 순간
2026년 5월, Google의 위협 인텔리전스 그룹(Threat Intelligence Group)은 보안 연구원들이 수년 동안 경고해 온 현상을 식별했으며, 이는 예상보다 빨리 찾아왔습니다.
해커들은 AI 모델을 사용하여 작동 가능한 제로데이 익스플로잇(zero-day exploit), 즉 아직 아무도 알지 못하는 취약점을 겨냥한 사이버 공격을 생성했습니다. 그리고 이것은 단순한 공격이 아니었습니다. 그것은 수백만 명의 사람들이 매일 신뢰하는 보안 계층인 2단계 인증 (2FA)을 우회했습니다.
이것은 AI가 실제 공격을 위해 취약점을 무기화한 첫 번째 사례입니다. 이전에는 제로데이를 찾기 위해 엘리트 해커와 수개월의 연구가 필요했습니다. 하지만 이제 AI는 단 몇 시간 만에 이를 찾아낼 수 있습니다.
무슨 일이 일어났는지, 그리고 왜 이것이 그토록 무서운지 자세히 살펴보겠습니다.
무엇이 공격받았는가?
공격 대상은 오픈 소스 웹 기반 시스템 관리 도구였습니다. Google은 이름을 공개하지 않았지만, IT 기업들이 서버, 웹사이트 및 컴퓨터를 관리하기 위해 사용하는 대중적인 시스템입니다.
이 익스플로잇(exploit)을 통해 공격자들은 2FA가 활성화되어 있을 때조차 두 번째 인증 코드를 입력하지 않고 로그인할 수 있었습니다. 비밀번호를 입력하면 시스템이 전화 코드를 통한 설정 과정을 완전히 건너뛰고 즉시 로그인시켜 주었습니다.
이 취약점은 메모리 오류(memory error)와 같은 단순한 코딩 실수가 아니라, 로직 결함(logic flaw)이었습니다.
개발자들은 다음과 같은 코드를 하드코딩해 두었습니다:
if user_is_admin:
skip_2fa = True
전통적인 보안 스캐너(security scanners)는 이를 놓쳤지만, AI는 이를 찾아냈습니다.
공격은 어떻게 작동했는가?
해커들이 사용한 AI는 몇 가지 Python 스크립트를 작성했습니다.
이 스크립트가 작동하려면 여전히 유효한 자격 증명(credentials)이 필요했으므로, 정확한 비밀번호를 아는 것이 필수적이었습니다. 하지만 일단 이 자격 증명을 확보하자마자, 2FA를 완전히 우회할 수 있었습니다. 전화 코드나 별도의 인증이 필요하지 않았으며, 계정으로 바로 접속되었습니다.
주요 계획은 대규모 악용 (mass exploitation)이었습니다. 사이버 범죄 그룹은 이 수법을 해당 도구의 수천 명의 사용자에게 동시에 사용하고자 했습니다. 그들의 목표는 단 하나의 기업이 아니라, 해당 소프트웨어를 사용하는 모든 사람을 노리는 것이었습니다.
Google은 대규모 악용이 발생하지 않도록 벤더(vendor)와 협력하여 취약점 (vulnerability)을 수정했습니다. 하지만 이 공격 기법 (exploit)은 실재했으며, AI가 생성한 것이었습니다.
AI의 흔적: 이것이 AI임을 어떻게 아는가
이는 단순한 추측이 아니었습니다. 코드에는 명확한 AI의 지문 (fingerprints)이 남아 있었습니다.
-
과도하게 설명적인 주석 (Overly Explanatory Comments): 스크립트에는 마치 교사가 코드를 설명하며 걸어가는 것처럼, 모든 함수가 무엇을 하는지 설명하는 주석이 달려 있었습니다. 인간 해커는 그런 식으로 주석을 달지 않지만, AI는 그렇게 합니다.
-
환각된 CVSS 점수 (A Hallucinated CVSS Score): 코드에는 CVSS 점수, 즉 보안 취약점 등급이 포함되어 있었으나, 그 점수는 실제로 존재하지 않는 것이었습니다. AI가 지어낸 것이었습니다. 이는 AI의 흔한 실수인 환각 (hallucination) 현상이었습니다.
-
교과서적인 Python 형식 (Textbook Python Format): 코드는 해커 특유의 지름길이나 최적화 없이 완벽하게 깔끔했습니다. 마치 AI 학습 데이터에 있는 교과서적인 Python 코드 같았습니다.
-
쓰레기 값인
_C컬러 클래스 (A Junk_CColor Class): 스크립트는_C라는 이름의 기본적인 ANSI 컬러 클래스를 사용했습니다. 이는 AI 생성 코드에서 흔히 나타나는 패턴입니다. Google은 여러 AI 스크립트에서 정확히 이 패턴을 발견했습니다.
인간 해커라면 이러한 요소들을 포함하지 않았을 것입니다. 너무 깔끔하고, 너무 교육적이며, 너무 명백합니다. 이는 AI가 이런 작업을 수행한다는 것을 나타냅니다.
왜 AI가 이 결함을 찾아냈는가
제로데이 취약점 (Zero-day vulnerabilities)은 엘리트 보안 인재를 필요로 합니다. 실제로 코드를 읽고, 의도를 이해하며, 모순을 찾아낼 수 있는 사람이 필요한데, 이는 매우 어려운 일입니다.
현대의 대규모 언어 모델 (LLMs)은 문맥 추론 (context reasoning)이라고 불리는 능력을 갖추고 있습니다. 이들은 다음과 같은 일을 할 수 있습니다:
- 수천 줄의 코드를 읽기
- 개발자가 무엇을 하려고 했는지 이해하기
- 의도와 구현 사이의 모순 찾기
- 겉보기에는 올바르지만 실제로는 망가진 논리적 오류 (logic errors) 드러내기
해당 제로데이 (Zero-day)는 고차원적인 논리적 결함 (logic flaw)이었습니다. 보안 스캐너 (Security scanners)는 이러한 결함을 잡아내지 못합니다. 스캐너는 메모리 오류 (memory errors), 구문 오류 (syntax mistakes), 알려진 취약점 패턴 (known vulnerability patterns)을 찾지만, 개발자의 의도 (developer intent)를 이해하지는 못하기 때문입니다.
Google은 프런티어 LLM (frontier LLMs, 가장 거대한 AI 모델들)이 이 작업에 점점 더 능숙해지고 있다고 밝혔습니다. 이들은 숙련된 보안 엔지니어와 같은 방식으로 논리적 오류 (logic errors)를 찾아낼 수 있습니다. 하지만 이들은 더 빠르고, 지치지도 않습니다.
이것이 모든 것을 바꾸는 이유
무서운 점은, 이런 일이 더 자주 발생할 것이라는 사실입니다.
-
제로데이 (Zero-Days)의 확장성 확보: AI 이전에는 제로데이를 찾는 것이 숙련된 기술이 필요한 작업이었지만, 이제 AI는 몇 시간 만에 코드를 스캔하고, 논리적 결함 (logic flaws)을 찾아내며, 익스플로잇 (exploits)을 작성할 수 있습니다.
-
2FA는 100% 안전하지 않음: 2단계 인증 (Two-factor authentication, 2FA)은 보안의 표준입니다. 기업이 직원들에게 사용하도록 권장하는 방식이며, 뱅킹 앱이 계정을 안전하게 보호하기 위해 요구하는 사항입니다. 하지만 이번 익스플로잇 (exploit)은 이를 우회했습니다.
-
AI는 인간이 놓치는 결함을 찾을 수 있음: 전통적인 보안 도구들은 패턴을 찾고 알려진 취약점 (known vulnerabilities)을 점검하지만, 의도 (intent)를 이해하지는 못합니다. AI는 의도를 이해하고, 인간처럼 코드를 읽으며, 가장 위험한 취약점인 모순 (contradictions)을 찾아냅니다.
개발자가 지금 당장 해야 할 일
AI가 취약점을 찾는 것을 막을 수는 없지만, 스스로를 더 공략하기 어려운 목표로 만들 수는 있습니다.
-
패키지를 더 빠르게 업데이트하세요: 취약점이 발표되면 가능한 한 빨리 패치하세요. 공격자들은 AI를 사용하여 더 빠르게 움직이고 있으므로, 업데이트를 위해 몇 주를 기다리는 것은 위험합니다. 수정 사항(fix)이 있다면 즉시 적용하세요.
-
종속성(Dependencies)을 감사하세요: 사용 중인 라이브러리와 도구들을 점검하세요. 그것들은 대중적인가요? 보안 팀이 있나요? 오픈 소스인가요? 전체 종속성 트리(dependency tree)를 감사하세요. 각각이 잠재적인 공격 벡터(attack vector)가 될 수 있습니다.
-
AI 코드를 100% 신뢰하지 마세요: AI를 사용하여 코드를 작성한다면 항상 검토하세요. AI는 잘못된 내용을 작성하거나, 보안에 취약한 코드를 추가하거나, 실제로 작동하지 않는 솔루션을 제안할 수 있습니다.
-
더 많은 AI 기반 공격에 대비하세요: AI 주도 공격은 사라지지 않을 것입니다. 모니터링을 설정하고, 비정상적인 활동을 감시하며, 비밀번호와 키를 정기적으로 교체하고, 보안 사고를 처리하기 위한 계획을 세워두세요.
마치며
AI가 생성한 제로 데이(zero-day)는 전환점입니다. 이는 AI가 더 이상 미래의 위협이 아니라, 이미 실제 공격에 사용되고 있음을 보여줍니다.
2FA(2단계 인증)는 여전히 강력한 보안 계층이지만, 완벽하지는 않습니다. 로직 결함(Logic flaws)은 여전히 위험하며, 이제 AI는 이를 더 빠르게 찾는 데 도움을 줄 수 있습니다. 제로 데이는 여전히 흔치 않지만, 이를 생성하는 것은 점점 더 쉬워지고 있습니다.
이것은 시작일 뿐입니다.
다음 단계는 훨씬 더 클 수도 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기