Gemini가 추천한 사이트에서 해킹당했다: AI 추천의 보안 사각지대
안녕하세요, Tom입니다.
AI 보안을 다루면서 프롬프트 인젝션, 에이전트 하이재킹, ChatGPT Lockdown Mode 같은 주제들을 써왔어요. 그런데 이번 사례는 기존과 조금 다른 결이에요. 공격의 시작점이 AI 자체가 아니라 AI의 추천이거든요.
Geeknews에 올라온 사례인데, 사용자가 Gemini에게 질문하다가 추천받은 사이트에 들어갔고, 거기서 악성 스크립트에 감염됐어요. 공격 체인이 꽤 정교해서 그냥 넘기기엔 아까운 사례예요.
공격이 어떻게 진행됐나
전체 흐름을 순서대로 짚어볼게요.
첫 번째 단계는 Gemini가 특정 사이트를 추천한 거예요. 질문에 대한 답변으로 링크가 포함됐어요. 사용자 입장에서 "Google의 AI가 추천한 사이트"라는 맥락이 생긴 거예요.
두 번째 단계가 핵심이에요. 사이트에 들어가니 "로봇이 아님을 확인하세요"라는 체크박스가 있었어요. 흔히 보이는 Cloudflare Turnstile 스타일의 인증 UI처럼 생겼어요. 사용자는 아무 의심 없이 클릭했어요.
그런데 이게 실제 봇 인증이 아니었어요. 클릭하는 순간 클립보드에 악성 명령어가 복사됐어요. 사용자는 이 사실을 몰랐어요.
세 번째 단계에서 함정이 완성돼요. 사이트가 "확인을 완료하려면 터미널에서 다음 명령어를 실행하세요"라는 지시를 보여줬어요. 사용자는 방금 클립보드에 복사된 줄 알고 붙여넣기(Cmd+V)를 했고, 그 순간 curl | bash 패턴의 악성 명령어가 실행됐어요.
curl|bash 공격이 왜 위험한가
curl로 원격 스크립트를 받아서 bash로 바로 실행하는 패턴이에요. 내용을 확인하지 않고 즉시 실행하기 때문에 악성 코드가 들어 있어도 사용자는 알 수 없어요.
이 사례에서 악성 스크립트는 macOS LaunchAgent로 지속성을 확보하려 했어요. LaunchAgent는 사용자 로그인 때마다 자동 실행되는 macOS 서비스 등록 방식이에요. 재부팅해도 살아남는 거예요.
다행히 이 사례에서는 스크립트가 관리자 비밀번호를 요구하는 단계에서 사용자가 의심해서 멈췄어요. 권한 상승에 실패했지만, 그 전까지는 사용자 수준에서 이미 접근이 이뤄진 상태였어요.
감염 이후 대응
이 사례에서 사용자가 취한 조치가 꼼꼼해서 참고용으로 정리해요.
- 네트워크 연결 즉시 차단
~/Library/LaunchAgents/에서 설치된 plist 파일 제거- 실행 중인 관련 프로세스 강제 종료
- 브라우저 세션 전체 무효화 (로그아웃 후 토큰 재발급)
- SSH 키 로테이션
주의: 이런 상황을 겪은 경우 클라우드 서비스 계정(GitHub, AWS 등) 비밀번호도 즉시 변경하고 2FA 활성 여부를 확인해야 해요. 악성 스크립트가 자격증명 파일을 탐색했을 가능성이 있어요.
이 공격에서 AI의 역할
이게 이 사례에서 새로운 지점이에요. Gemini가 해당 사이트를 만든 것도 아니고, Gemini 자체에 취약점이 있는 것도 아니에요. 그런데 사용자가 피해를 입은 경로에 Gemini가 있어요.
AI 추천이라는 맥락 자체가 사용자의 경계심을 낮추는 역할을 했어요. "Google AI가 추천했으니까"라는 신뢰가 평소보다 의심 문턱을 낮춘 거예요. 같은 사이트를 검색 결과에서 직접 발견했다면 더 신중했을 수도 있어요.
이건 AI를 소셜 엔지니어링 도구로 활용하는 새로운 공격 벡터예요. 공격자가 AI 추천에 들어갈 사이트를 미리 악성으로 만들어두거나, 합법 사이트처럼 보이는 사이트를 AI 추천 결과에 노출시키는 방식이에요.
저는 이 블로그에서 AI 보안 주제를 꾸준히 다뤄왔는데, 프롬프트 인젝션이나 에이전트 하이재킹 같은 기존 벡터와는 결이 달라요. AI가 직접 공격을 수행하는 게 아니라, AI에 대한 신뢰를 활용해서 사용자를 속이는 간접적인 방식이에요. 사회공학 공격과 AI가 결합된 형태라고 볼 수 있어요.
"로봇 아님" 인증이 터미널 명령을 요구하면
이건 명확한 레드 플래그예요. 어떤 정상적인 웹사이트도 봇 인증을 위해 로컬 터미널에서 명령을 실행하도록 요구하지 않아요. Cloudflare Turnstile, reCAPTCHA, 어떤 정상 인증 서비스도 마찬가지예요.
참고: "사람임을 증명하려면 터미널에서 이 명령을 실행하세요"라는 지시를 보면, 사이트 자체를 즉시 닫아야 해요. 이건 기술적 배경과 무관하게 100% 사기예요.
더 넓게 보면, AI가 추천한 사이트라고 해서 안전하다고 가정하면 안 돼요. AI는 사이트의 안전성을 실시간으로 검증하지 않아요. 학습 데이터 기준의 판단이나 링크 패턴 인식에 기반한 추천이에요.
프롬프트 인젝션 가이드에서도 다뤘지만, AI를 통해 외부 콘텐츠가 들어오는 경로는 항상 신중하게 봐야 해요. 이번 사례는 그 원칙이 AI 추천 링크에도 적용된다는 걸 보여줘요.
관련 글
Gemini 3.1 Flash TTS: AI 음성 생성의 감독석에 앉다
Google이 텍스트-음성 변환 모델 Gemini 3.1 Flash TTS를 공개했어요. 오디오 태그로 음색, 속도, 감정까지 세밀하게 조절할 수 있고, 70개 이상 언어를 지원해요.
Gemini in Sheets, SOTA 달성: 스프레드시트의 AI 시대
Google이 Gemini in Sheets의 SpreadsheetBench 벤치마크에서 70.48%로 SOTA를 달성했습니다. 인간 전문가 수준에 근접한 스프레드시트 AI의 현재.
Gemini 3.1 Flash-Lite: 가장 빠르고 저렴한 Gemini 3 모델
입력 $0.25/1M 토큰, 출력 $1.50/1M 토큰. 2.5 Flash보다 2.5배 빠른 TTFT, 45% 빠른 출력 속도. 대규모 워크로드를 위한 Google의 새 AI 모델.