코딩 에이전트를 위한 Protestware
요약
코딩 에이전트와 LLM을 대상으로 제어 문자를 사용하여 기계 전용 지시문을 숨기는 새로운 형태의 Protestware 공격 기법을 분석합니다. 오픈소스 관리자의 의도적인 코드 변경이 가져올 수 있는 법적 책임과 보안 위협을 다룹니다.
핵심 포인트
- LLM과 소통하기 위한 제어 문자 기반의 은밀한 지시문 삽입 가능성
- Protestware가 오픈소스 생태계와 사용자 시스템에 미치는 법적 위험성
- LLM을 이용한 공격 및 커뮤니케이션의 특징적 패턴
- 의도적인 코드 변조는 라이선스 면책 조항만으로 보호받기 어려움
이 공격은 뻔해 보이면서도 꽤 영리해서 계속 기억에 남음. 가능한 일이라는 건 놀랍지 않지만, 프로그램이 제어 문자를 써서 LLM과 “기계 전용”으로 소통할 수 있다는 발상은 떠올리지 못했음
단순히 테스트 파일 몇 개를 지우는 것보다 훨씬 더 미묘한 일을 할 수 있겠다는 느낌임
셸 한 줄 명령의 “복사” 버튼을 누를 때, 페이지의 JavaScript가 클립보드에 아무 내용이나 넣을 수 있다는 사실을 깨달았을 때와 비슷하게 다가옴
LLM은 꽤 영리하니, 각 테스트 이름의 첫 글자 같은 식으로 눈앞에 숨긴 지시문도 넣을 수 있을 듯함
아주 오래전에 기존 줄의 200번째 열부터 코드를 시작해서 이스터에그를 숨긴 적이 떠오름. 팀원 중 누구도 자동 줄바꿈이 켜진 편집기를 쓰지 않았음
안타깝게도 매니저 한 명이 실제로는 달라진 게 없는 줄이 diff에 왜 뜨는지 궁금해하다가 오른쪽으로 스크롤했고, 결국 좀 혼났음. 줄 앞부분에도 실제 변경을 넣었어야 했는데, 젊었음
교수들이 과제에 흰 배경 위 흰 글씨로 LLM용 지시문을 숨겨서, 학생들이 ChatGPT에 그대로 붙여넣는지 잡아낸다는 얘기를 들은 적 있음. 이건 그보다 한 단계 올라간 느낌이라 꽤 멋짐
프로젝트 GitHub가 꽤 과열되고 있음(issue #709 참고). 많은 사람이 관리자가 사회적 계약을 깼다고 느끼는 건 이해되지만, 새 이슈를 열어 직접적인 인신공격을 하는 건 놀랄 만큼 특권의식이 강해 보임
링크된 글에서 말한 “꺼져” 댓글로 끝난 원래 대화에서 그런 공격이 이어진 것 같지만, 맥락이 중요함. 관리자가 처음부터 그렇게 나온 게 아니라, 누군가가 특정 관할권에서는 범죄로 기소될 수도 있다는 식의 거의 노골적인 위협을 했고, 이어 다른 사람이 재산을 파괴했다고 비난한 뒤에 나온 반응이었음
위협에 대한 “꺼져”는 가장 침착한 답은 아니어도 이해 가능한 반응임. 그 전까지 관리자는 선의로 대화하려는 것처럼 보였음
어쨌든 무료로 쓰는 프로젝트, 게다가 포크하거나 대안을 쓸 수도 있는 프로젝트의 작업자에게 이렇게 접근할 일은 아님
이 블로그 글로 관심이 커지면서, 실제 사용자가 아닌 사람들까지 비슷한 공격을 더 하게 될 수도 있어 보임
누군가가 특정 관할권에서는 범죄로 기소될 수도 있다고 한 건, 그냥 사실일 가능성이 큼
소프트웨어가 무료로 제공된다는 건 어떤 면에서도 면책 사유가 아님. 내가 집이나 식당에서 독이 든 무료 음식을 일부러 내놓는다고 해서 무료였다는 이유로 빠져나갈 수는 없음. 이런 논리를 어떻게 펼 수 있는지 모르겠음. 잘못된 일이고 법적 문제로 이어질 수 있다는 게 명백하지 않나
변호사는 아니지만, 아무것도 모르는 사용자의 시스템이 그들의 “재산”을 삭제하도록 의도적으로 시도했다면 법적 조치와 실제 불쾌한 결과로 이어질 수 있음. 흔한 오픈소스의 “보증 없음” 문구도 도움이 안 될 가능성이 큼. 라이선스와는 별개의 문제임
적어도 미국법에서는 보통 고의성이 매우 중요함. 의도적으로, 자발적으로, 사전에 계획해서 피해를 일으키려 했다면 책임을 질 수 있음. 그리고 이제는 그랬다는 공개 증거도 충분히 남아 있음
작성자가 한 일은 그냥 어리석었음. 실제 사용자가 아닌 사람도 이 행동을 이용해 작성자에게서 돈을 뜯어내려 할 수 있음. 대체 무엇을 위해서였나
LLM이 싫다면, 이런 일 대신 강한 어조의 블로그 글, 온라인 댓글, README 경고 정도에 머무르는 편이 낫다
GitHub 이슈를 올린 사람은 메시지 작성에 LLM을 쓰는 게 너무 티 남. 글이 길고, 전형적인 강조 표현이 많고, 짧고 눈길 끄는 문장, 온갖 곳의 Markdown, Markdown 표, 세 항목짜리 목록까지 단서가 너무 많아서 더 찾기를 그만둠
jqwik 작성자/관리자가 LLM을 쓰는지 물었을 때는 부인했지만, 계속 쓰고 있었음
jlink가 그 변경을 하지 말았어야 할 수도 있지만, 적어도 신고자와 달리 선의로 논의하고는 있음
게다가 Opus 4.7의 이번 달 단어인 “landed”와 “load-bearing”도 있음. 정말 하루에 20번은 쓰는 것 같음. 4.8의 유행어는 뭘지 궁금함
AI 자동 생성 콘텐츠
본 콘텐츠는 RSS: GeekNews (한국어)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기