Meta AI 챗봇 악용으로 Instagram 계정 20,000개 이상 해킹 확인
Meta confirms 1000s of Instagram accounts were hacked by abusing its AI chatbot
TL;DR Highlight
Meta의 AI 챗봇에 있던 이메일 검증 버그로 인해 2FA(2단계 인증)를 사용하지 않던 Instagram 계정 2만 개 이상이 약 2개월간 해킹됐다. AI를 계정 복구 시스템에 통합할 때 발생할 수 있는 보안 취약점의 실제 사례다.
Who Should Read
AI 챗봇을 사용자 인증이나 계정 복구 플로우에 통합하려는 백엔드/풀스택 개발자, 또는 서비스 보안 아키텍처를 담당하는 개발자.
Core Mechanics
- Meta가 Maine 주 법무장관실에 제출한 데이터 유출 신고서에 따르면, 최소 20,225개의 Instagram 계정이 이번 해킹으로 피해를 입었고 Maine 주민만 30명이 포함됐다.
- 해킹 캠페인은 2026년 4월 17일경 시작해 Meta가 이 사실을 확인한 이번 주까지 약 2개월간 지속됐다.
- 버그의 핵심은 비밀번호 재설정 시 이메일 주소 검증 로직 누락이다. 챗봇이 비밀번호 재설정을 요청할 때 요청자가 제공한 이메일이 해당 계정에 등록된 이메일과 일치하는지 확인하지 않았다.
- 공격자는 챗봇에게 단순히 자신이 제어하는 이메일 주소로 인증 코드를 보내달라고 요청하기만 하면 됐고, 챗봇은 이를 그대로 수행했다. 2FA가 없는 계정은 이 단계만으로 완전히 탈취가 가능했다.
- 계정이 탈취되면 공격자는 연락처 정보, 생년월일, 프로필 정보, 게시물, 다이렉트 메시지, 계정 활동 기록, 그리고 연동된 다른 계정까지 접근할 수 있었다.
- Meta는 공식 입장에서 '챗봇 도구 자체는 의도대로 정상 작동했으나, 별도 코드 경로(code path)의 버그로 인해 이메일 검증이 제대로 이루어지지 않았다'고 설명했다. 커뮤니티에서는 이 표현이 책임을 희석하려는 것 아니냐는 비판을 받았다.
- Meta는 현재 해당 AI 챗봇을 비활성화하고 계정 재설정을 허용하던 코드 경로를 완전히 제거했으며, 자사 플랫폼 전체의 다른 챗봇들도 유사한 취약점이 있는지 점검 중이라고 밝혔다.
- 피해 사용자들에게는 비밀번호를 재설정하고 안전한 검증 채널을 통해 재인증하도록 안내했으나, Meta 측은 해킹 기간 동안 어떤 개인정보가 실제로 접근/탈취됐는지는 '파악하지 못하고 있다'고 밝혔다.
Evidence
- Meta의 공식 해명 '챗봇은 의도대로 정상 작동했다'는 표현에 대해 커뮤니티에서는 강한 비판이 쏟아졌다. '정상 작동'과 '의도대로'가 이 상황을 제대로 묘사하는 표현이 맞냐는 반응이 대다수였다.
- '비밀번호 재설정 API가 왜 이메일 주소와 계정 ID를 별도 파라미터로 받으면서 두 값이 일치하는지 검증하지 않느냐'는 지적이 있었다. 한 댓글에서는 챗봇이 아니라 API 자체가 근본 원인일 수 있으며, AI가 작성한 코드 문제일 수도 있다는 추측도 나왔다.
- 실제로 Meta로부터 의심스러운 비밀번호 재설정 이메일을 받았다는 사용자가 댓글을 남겼다. 본인은 MFA를 설정해 두었고 Instagram 감사 로그를 확인한 결과 실제 침해는 없었다고 전하며, MFA 설정의 중요성을 간접적으로 강조했다.
- '왜 사용자가 다른 이메일을 요청할 수 있는지 여부가 이런 시스템을 만들 때 가장 먼저 떠올리는 테스트 케이스가 아니냐'는 비판도 있었다. 규모가 너무 크다 보니 기본적인 QA도 제대로 하지 않는 것 아니냐는 의문이 제기됐다.
- 이번 사건을 '열린 문을 통해 들어간 것을 악용이라고 부르는 것'에 비유하는 댓글도 있었다. 'abusing(악용)'이라는 표현 자체가 Meta가 책임을 사용자나 공격자에게 전가하는 방식이라는 비판이었으며, 소송으로 이어지길 바란다는 반응도 있었다.
How to Apply
- AI 챗봇을 계정 복구나 비밀번호 재설정 플로우에 연동하는 경우, 챗봇이 내부 API를 호출할 때 요청자가 제공한 값(이메일, 전화번호 등)이 실제 계정에 등록된 값과 일치하는지를 챗봇 레이어가 아닌 API/백엔드 레이어에서 반드시 검증해야 한다. 챗봇이 '의도대로 작동'하더라도 별도 코드 경로에서 검증이 누락되면 이번 사례처럼 전체 시스템이 뚫린다.
- AI 에이전트(자율적으로 외부 시스템을 호출하는 AI)가 민감한 작업(계정 변경, 결제, 권한 수정 등)을 수행하는 경우, '요청자가 실제로 해당 리소스의 소유자인가'를 반드시 별도 인증 단계로 분리해야 한다. 챗봇 자체의 로직과 무관하게 서버 측에서 독립적으로 소유권을 재확인하는 구조가 필수다.
- 서비스에 2FA(2단계 인증)를 선택이 아닌 기본값으로 활성화하거나 강력히 권장하는 UI를 적용하면, 이번처럼 단일 코드 경로 버그가 터졌을 때 피해 범위를 대폭 줄일 수 있다. Meta의 경우 2FA 미사용 계정만 피해를 입었다는 점이 이를 잘 보여준다.
- AI 챗봇에 계정 관련 API 접근 권한을 부여할 때는 최소 권한 원칙(principle of least privilege)을 적용해서, 챗봇이 호출할 수 있는 API 범위를 필요한 것만으로 제한해야 한다. 계정 복구 기능이 비활성화됐을 때 Meta가 '코드 경로를 완전히 제거'한 방식처럼, 기능별로 권한을 분리해두면 문제 발생 시 영향 범위를 통제할 수 있다.
Terminology
관련 논문
Anthropic의 오픈소스 AI 기반 취약점 자동 탐지 프레임워크 공개
Anthropic이 Claude를 활용해 코드 취약점을 자율적으로 탐지·트리아지·패치하는 오픈소스 레퍼런스 구현체를 공개했다. 실제 보안팀과의 협업 경험을 바탕으로 만들어진 파이프라인이라 실전 적용성이 높다.
에이전트는 스스로 물러날까? LLM 에이전트의 In-Band Access-Deny 신호 준수 측정
서버가 SSH 배너나 DB NOTICE로 'AI 에이전트는 접근하지 마세요' 신호를 보내면 GPT-4o, Claude Code 같은 LLM 에이전트가 실제로 물러나는지 실험으로 측정했다.
ToolChoiceConfusion: 신뢰할 수 있는 LLM 에이전트를 위한 Causal Minimal Tool Filtering
LLM 에이전트에 도구를 100개 다 보여주지 말고, 지금 당장 필요한 것 1개만 보여주면 성공률은 그대로에 토큰은 90% 절약된다.
AI Agent를 위한 TDD(테스트 주도 개발) Skill 만들기
AI 에이전트가 형편없는 테스트를 작성하는 문제를 해결하기 위해, Kent Beck의 Canon TDD 원칙을 'Skill'로 만들어 에이전트에게 주입하는 방법을 공유한다. 에이전트 코딩에서 테스트 품질을 높이고 싶은 개발자에게 실용적인 접근법을 제시한다.
Paseo – 오픈소스 코딩 에이전트 통합 인터페이스 (모바일/데스크탑/CLI 지원)
Claude Code, Codex, GitHub Copilot 등 여러 코딩 에이전트를 하나의 UI로 제어하는 오픈소스 프로젝트로, 로컬 데몬 방식으로 자기 머신에서 실행하면서 모바일에서도 접근할 수 있다.
AI Agent가 가능하게 한 적응형 Computer Worm
단일 GPU에서 돌아가는 오픈소스 LLM만으로 네트워크를 자율 전파하는 AI 웜을 실제로 구현해서, 이게 이론이 아닌 현실임을 증명했다.