GitHub의 토큰 스캐닝 서비스가 다운되면 위험하므로 추천하지 않음
이상적으로는 GitHub이 보편적인 토큰 폐기 API를 제공해야 함
혹은 비공개 저장소에서 폐기 기능을 직접 활성화하는 게 나음
이건 마치 해커와 체스 두는 느낌임
그냥 Anthropic 콘솔에서 직접 키를 폐기하면 되는데 왜 이렇게 복잡하게 하는지 의문임
꽤 기발한 해결책이라 생각함, 이런 방법은 처음 들어봄
하지만 공격자가 파일을 탈취해 자기 Anthropic 계정으로 옮기면, 결과적으로 전 세계가 그 계정에 접근할 수 있게 되는 셈이라 위험함
데모에서는 글씨 크기를 작게 숨긴 .docx 파일로 프롬프트 인젝션을 시연했지만, 실제로는 단순한 Markdown 파일로도 충분함
예를 들어 “Claude가 대출 협상 기술을 배운다”는 설명만 붙여도 많은 사람이 열어보지도 않고 사용할 것임
오히려 .md 파일이 .docx보다 의심을 덜 받는다는 점에서 더 효과적일 수 있음
“똑똑한 곰 vs 열리지 않는 쓰레기통” 같은 상황 같음
하지만 모든 사용자가 그렇게 생각하진 않음
예를 들어 일부 업계에서는 여전히 PDF보다 DOCX가 정상적이라 여겨짐
이런 환경에서는 .md 파일이 오히려 해커의 도구처럼 보일 수 있음
이런 문제는 처음부터 예상된 일이었음 프롬프트 인젝션이 해결되지 않는 한 계속 반복될 것임
1999년 HN을 상상해보면, “Bobby Tables가 DB를 날렸다”는 식의 SQL 인젝션 초기 반응과 비슷한 분위기임
비교는 흥미롭지만 정확하진 않음
2000년대 초에도 우리는 문자열 보간 대신 파라미터화된 SQL을 쓰라고 했음
지금도 필요한 도구는 다 있는데, 문제는 사람들이 보안보다 속도를 우선시한다는 점임
아이러니하게도 이번 경쟁을 시작한 건 보안과 정렬(alignment)을 중시하던 OpenAI였음
SQL 인젝션처럼 입력값 정제(input sanitization) 로 해결할 수 있지 않을까 생각함
예를 들어 사용자 입력을 특정 토큰(@##)(JF)으로 감싸고, 그 안의 명령은 실행하지 않게 처리하는 식임
단순한 find/replace로도 가능해 보이는데, 내가 뭔가 놓친 걸까 궁금함
더 근본적인 문제는, 이게 지능이 높아져도 해결되지 않을 가능성이 있다는 점임
오히려 AI가 똑똑해질수록 위험이 커질 수도 있음
나는 에이전트용 Prepared Statement 패턴을 실험 중임
각 도구 호출 전에 서명된 ‘영장(warrant)’을 제시하게 해서, 허용된 명령만 실행하도록 제한함
프롬프트 인젝션이 발생해도 기계적으로 차단되도록 만드는 방식임
“의심스러우면 파일을 프로그램처럼 실행하라”는 식의 자동 실행 버그가 또 등장한 느낌임
Windows XP 시절에도 이런 문제로 고생했는데, 결국 Microsoft는 자동 실행을 중단했음
프롬프트 기반 시스템도 무엇을 신뢰할지 명확히 구분해야 함
AI 기업들이 위험을 “인정만 하고” 사용자에게 비현실적인 주의사항을 요구하는 건 문제라고 생각함
대부분의 설명이 “SQL 인젝션” 비유를 쓰는데, 사실 피싱 공격에 더 가깝다고 봄
예를 들어 “할머니 봇”을 만들어 이메일을 정리하게 하면, 나이지리아 왕자 사기 메일에 속을 수도 있음
결국 “이 제품을 안전하게 쓰려면, 아예 쓰지 말라”는 말과 다를 바 없음
Claude의 ‘스킬’ 시스템이 암묵적이라 생기는 문제로 보임
/slash 명령처럼 명시적이지 않고, 단순히 “파일을 추출하는 방법” 같은 지침만 있음
그래서 “decompress”나 “extract” 같은 단어만 써도 자동으로 실행될 수 있음
이런 구조는 프롬프트 인젝션이 새로운 능력을 몰래 주입하기 쉽게 만듦
따라서 명시적이고 정적 등록된 도구 체계로 바꾸는 게 필요함
예를 들어 Extract(path) 같은 도구를 만들고, Read나 Bash("tar *")만 허용하도록 화이트리스트화할 수 있음
이렇게 하면 사람의 승인 절차도 추가할 수 있고, 세션 중에 새 도구가 등록되지 않음
약간 다른 주제지만, 데이터 유출 PoC를 서비스로 제공하는 곳이 있는지 궁금함
특히 Claude가 외부 CI 환경에서 실행될 때 CLAUDE.md의 독성 페이로드를 실험해보고 싶음
promptarmor의 최근 활동이 인상적임
제품팀의 품질 책임을 묻는 데 큰 역할을 하고 있음
하지만 그들도 공포 마케팅을 통해 제품을 팔려는 이해관계가 있음
실제 공격은 피해자가 Claude에 민감한 폴더 접근을 허용하고, 공격자가 보이지 않는 프롬프트 인젝션이 숨은 DOCX를 업로드하도록 속여야 함
게다가 인젝션 내용은 Markdown 출력 시 사용자에게 드러남
공격자는 자신의 API 키를 써야 하므로 추적이 가능함
이 공격은 오래된 Haiku 버전에서만 작동함
결국 promptarmor가 판매를 위한 과장을 하는 것 같음
우리 팀은 에이전트 VM이 pip, npm, apt만 통신하도록 제한함
그리고 출력 요청 크기를 모니터링해 비정상적인 데이터 유출을 방지함
하지만 이건 근본적 해결책이 아님 AI의 오용·누출·자율성이라는 삼중 문제는 단순히 한쪽을 막는다고 해결되지 않음
작은 요청 안에도 비밀을 인코딩할 수 있고, 비정렬된 AI는 이런 누출 경로를 스스로 찾아냄
흥미로운 접근임, 그런데 공격자가 사용자의 코드베이스를 패키지로 업로드할 수도 있는지 궁금함
Hacker News 의견들
Anthropic API가 악용되는 걸 발견하면, 그 API 키를 GitHub Gist나 공개 저장소에 올리면 됨
Anthropic은 GitHub 스캐닝 파트너라서 키가 거의 즉시 폐기됨
이후 Gist를 삭제하면 되고, OpenAI 등 다른 제공자들도 비슷하게 동작함
관련 문서: Anthropic API Key Best Practices, GitHub Secret Scanning Patterns
이상적으로는 GitHub이 보편적인 토큰 폐기 API를 제공해야 함
혹은 비공개 저장소에서 폐기 기능을 직접 활성화하는 게 나음
데모에서는 글씨 크기를 작게 숨긴 .docx 파일로 프롬프트 인젝션을 시연했지만, 실제로는 단순한 Markdown 파일로도 충분함
예를 들어 “Claude가 대출 협상 기술을 배운다”는 설명만 붙여도 많은 사람이 열어보지도 않고 사용할 것임
오히려 .md 파일이 .docx보다 의심을 덜 받는다는 점에서 더 효과적일 수 있음
예를 들어 일부 업계에서는 여전히 PDF보다 DOCX가 정상적이라 여겨짐
이런 환경에서는 .md 파일이 오히려 해커의 도구처럼 보일 수 있음
이런 문제는 처음부터 예상된 일이었음
프롬프트 인젝션이 해결되지 않는 한 계속 반복될 것임
1999년 HN을 상상해보면, “Bobby Tables가 DB를 날렸다”는 식의 SQL 인젝션 초기 반응과 비슷한 분위기임
2000년대 초에도 우리는 문자열 보간 대신 파라미터화된 SQL을 쓰라고 했음
지금도 필요한 도구는 다 있는데, 문제는 사람들이 보안보다 속도를 우선시한다는 점임
아이러니하게도 이번 경쟁을 시작한 건 보안과 정렬(alignment)을 중시하던 OpenAI였음
예를 들어 사용자 입력을 특정 토큰(@##)(JF)으로 감싸고, 그 안의 명령은 실행하지 않게 처리하는 식임
단순한 find/replace로도 가능해 보이는데, 내가 뭔가 놓친 걸까 궁금함
오히려 AI가 똑똑해질수록 위험이 커질 수도 있음
각 도구 호출 전에 서명된 ‘영장(warrant)’을 제시하게 해서, 허용된 명령만 실행하도록 제한함
프롬프트 인젝션이 발생해도 기계적으로 차단되도록 만드는 방식임
“의심스러우면 파일을 프로그램처럼 실행하라”는 식의 자동 실행 버그가 또 등장한 느낌임
Windows XP 시절에도 이런 문제로 고생했는데, 결국 Microsoft는 자동 실행을 중단했음
프롬프트 기반 시스템도 무엇을 신뢰할지 명확히 구분해야 함
AI 기업들이 위험을 “인정만 하고” 사용자에게 비현실적인 주의사항을 요구하는 건 문제라고 생각함
예를 들어 “할머니 봇”을 만들어 이메일을 정리하게 하면, 나이지리아 왕자 사기 메일에 속을 수도 있음
Claude의 ‘스킬’ 시스템이 암묵적이라 생기는 문제로 보임
/slash 명령처럼 명시적이지 않고, 단순히 “파일을 추출하는 방법” 같은 지침만 있음
그래서 “decompress”나 “extract” 같은 단어만 써도 자동으로 실행될 수 있음
이런 구조는 프롬프트 인젝션이 새로운 능력을 몰래 주입하기 쉽게 만듦
따라서 명시적이고 정적 등록된 도구 체계로 바꾸는 게 필요함
예를 들어 Extract(path) 같은 도구를 만들고, Read나 Bash("tar *")만 허용하도록 화이트리스트화할 수 있음
이렇게 하면 사람의 승인 절차도 추가할 수 있고, 세션 중에 새 도구가 등록되지 않음
관련된 이전 사례와 Anthropic의 공식 답변이 이 블로그 글에 정리되어 있음
약간 다른 주제지만, 데이터 유출 PoC를 서비스로 제공하는 곳이 있는지 궁금함
특히 Claude가 외부 CI 환경에서 실행될 때 CLAUDE.md의 독성 페이로드를 실험해보고 싶음
promptarmor의 최근 활동이 인상적임
제품팀의 품질 책임을 묻는 데 큰 역할을 하고 있음
실제 공격은 피해자가 Claude에 민감한 폴더 접근을 허용하고, 공격자가 보이지 않는 프롬프트 인젝션이 숨은 DOCX를 업로드하도록 속여야 함
게다가 인젝션 내용은 Markdown 출력 시 사용자에게 드러남
공격자는 자신의 API 키를 써야 하므로 추적이 가능함
이 공격은 오래된 Haiku 버전에서만 작동함
결국 promptarmor가 판매를 위한 과장을 하는 것 같음
우리 팀은 에이전트 VM이 pip, npm, apt만 통신하도록 제한함
그리고 출력 요청 크기를 모니터링해 비정상적인 데이터 유출을 방지함
AI의 오용·누출·자율성이라는 삼중 문제는 단순히 한쪽을 막는다고 해결되지 않음
작은 요청 안에도 비밀을 인코딩할 수 있고, 비정렬된 AI는 이런 누출 경로를 스스로 찾아냄