요약
버그를 하나씩 고치는 대신 Claude로 공격자가 닿는 코드 자체를 줄이자는 연구입니다.
앤트로픽 프런티어 레드팀의 크리스 롤프가 쓴 글입니다. AI가 취약점을 찾는 능력이 커진 만큼, 같은 AI로 공격 표면(공격자가 외부에서 건드릴 수 있는 코드 범위)을 줄일 수 있다고 주장했습니다.
왜 중요한가
- 닿는 코드를 줄이면 아직 아무도 모르는 취약점의 피해까지 함께 낮아집니다.
- 분석 결과가 OpenSSH 10.6에 반영돼, 인증 전에 닿던 코드의 약 5분의 1이 사라졌습니다.
- 앤트로픽은 이 기법을 Claude 스킬로 묶고, 각 조직이 의존하는 소프트웨어에도 적용하라고 권했습니다.
핵심 내용
- C·C++·자바·PHP·파이썬으로 된 오픈소스 25개(500만 줄 이상)를 분석해 문제 493건을 찾았습니다.
- OpenSSH 10.4에서는 실험용 양자 내성 서명(양자 컴퓨터로도 풀기 어렵게 만든 전자 서명) 코드 약 4,500줄이 인증 전에 열려 있었습니다.
- 따로 쓰면 무난하지만 함께 켜면 보안 장치가 조용히 꺼지는 설정 조합이 94건 나왔습니다.
- 한 프로젝트는 설정이 충돌하면 필수 클라이언트 인증서 검사가 꺼졌고, 이 코드는 21년 동안 남아 있었습니다.
- 글은 상당수 발견이 그 자체만으로는 바로 악용되지 않는다고 인정했습니다.
HN 반응
- 일부 이용자는 Claude와 GPT가 자기 코드의 보안 점검과 PoC(취약점을 재현하는 코드) 작성을 거부해 GLM 같은 다른 모델로 옮겨 간다고 불만을 나타냈습니다.
- 반면 이런 제한이 공격자를 늦춰 방어하는 쪽에 시간을 벌어 준다는 반론도 나왔습니다.
최근에 한 커널 개발자가 "Mythos가 찾았다는 커널 취약점 79개"에 대해 발표한 영상을 봤습니다: https://youtu.be/NnV_cWeoo5Q?t=257
그는 이 취약점 대부분이 전혀 문제가 되지 않거나 이미 예전에 고쳐진 것이라고 주장합니다. AI 모델이 좋아지고 있는 것은 분명히 보이지만, 이 유튜브 영상을 보면 AI 연구소들이 근본적인 문제를 제대로 이해하지도 못한 채 서둘러 결과부터 발표했을 가능성이 충분해 보입니다. 이 글은 품질이 어떨지 궁금합니다.
LLM의 이상한 점이 바로 그거예요. 어떤 주제에 대해 잘 모르는 사람은 속아 넘어갈 만큼만 알거든요. 최첨단 연구소조차 그런 것 같고요.
사람 중에도 그런 사람이 있는데, 프로젝트에 가장 재앙 같은 부류예요. 저는 일부러 피해요.
LLM은 다르겠죠, 분명히.
처음 접하는 분야에서 LLM한테 하도 속아서 오히려 제가 그 분야를 제대로 알게 됐어요!
제가 환각을 배운 게 아닌지 어떻게 아냐고요?
그렇게 얻은 지식으로 의도한 대로 동작하는 코드를 만들어 냈으니까요.
네, 그리고 그전에도 아마 불완전하고 때로는 부정확한 문서를 보면서, 강력하지만 가끔 버그가 있는 도구와 기술로 코드를 짜는 데 능숙하셨을 겁니다.
아니면 적어도 그 주제들에 관심은 있었지만 배울 시간이나 다른 여건이 없었던 것이겠지요.
네, 배우는 속도가 정말 어마어마합니다! 핵심은 추적해 나갈 수 있는 실용적인 목표가 있는 프로젝트를 고르는 것이라고 생각합니다. 가능하면 데이터 같은 구체적인 근거가 뒷받침되고, 동작하는 코드로 목표에 얼마나 가까워졌는지 진행 상황을 재는 프로젝트가 좋습니다.
그래서 저는 동기가 뚜렷하고 스스로 이끌어 가는 집중적인 탐구를 통해 배우고 있습니다. AI로 질문에 답을 얻고, 실험을 돌리고, 결과를 설명받고, 뜻밖의 결과를 파헤치고, 새로 조사할 방향을 찾는데, 이 모두가 목표와 관련된 구체적인 데이터에 바탕을 둡니다.
데이터와 그 데이터에서 얻은 결과가 우리를 정직하게 붙들어 줍니다. 또 AI가 독립적으로 따져 볼 수 있는 표본 데이터 포인트를 들어 결과를 설명해 주기 때문에, 데이터는 미묘한 차이를 이해하고 직관을 쌓는 데도 도움이 됩니다.
막무가내 바이브 코딩과 엔지니어링의 차이는 이해입니다. 저는 이것이 학습과 역량 쌓기의 미래라고 생각합니다.
연구소들이 "이제 전문성은 필요 없다"는 전제 위에 스스로를 세워 놓은 것도 문제를 키웁니다.
그들은 어떤 인간 전문가든 대체할 만큼 뛰어난 기계라는 거짓 신화를 팔려 하고, 자기들도 그 헛소리를 믿습니다. 그래서 실제로 뭔가를 배우거나 전문가 집단(남아 있는 사람이 얼마나 되는지 모르겠지만)에 결과를 확인받는 대신, 어차피 영문도 모르는 대중과 VC들은 사실 여부를 스스로 따져 볼 만큼 신경 쓰지 않을 것을 알고 홍보 자료부터 서둘러 내놓습니다.
이 모든 것은 그럴듯한 말 기계가 깊은 경험과 전문성을 대신할 수 있다고 세상을 설득할 수 있느냐에 건 도박입니다.
(오해하지 마십시오. 그럴듯한 말 기계는 여전히 아주 쓸모 있는 도구입니다. 다만 아는 사람을 대체할 만큼 충분하지는 않습니다.)
이 글이랑 무슨 상관인지 모르겠네요. 결과를 발표하는 글이 아니잖아요? 새로운 취약점을 막으려고 실제 프로젝트에 쓴 기법을 설명하는 글이고, OpenSSL에 병합된 변경도 들어 있어요. 여기서 "서둘러 결과를 발표했다"는 게 뭔가요? 그들이 뭘 이해하지 못한다는 거죠?
글쎄요, 앤트로픽이 요즘 이제는 코드를 쓰지도, 읽지도, 리뷰하지도 않는다고 "자랑"하고 다니는 것 같던데요.
세상에, 그 사람들이 올리는 버그/이슈를 받는 쪽이 되고 싶지는 않네요.
공격하는 쪽은 AI로 대상을 공격할 수 있는데, 방어하는 쪽은 AI에게 자기 코드베이스를 감사해 달라고 하면 제한을 받는 문제가 해결되지 않고 있습니다.
방어자의 작업 흐름은 대략 이렇습니다. Claude, 이 코드베이스 보안 감사를 해줘. 내가 보안 감사 방법을 정리해 만든 하네스/스킬을 써서, 가장 알맞은 감사 전략과 방법을 고르고, 도구와 보고 체계를 활용해.
Claude는 거부하고, GPT도 거부합니다. Grok은 더 멀리 가지만 동작하는 PoC 만들기는 거부합니다. AI 모델은 지어내는 일이 있어서 PoC가 없으면 증거가 없으니, PoC는 꼭 필요한 요건입니다. 그러면 GLM-5.3이나 Kimi가 구원투수로 나서 "더 똑똑한" 모델들이 거부한 일을 끝내 줍니다.
결국 방어하는 우리는 최고의 모델들에게 우리 자신의 코드베이스에 대해 거절당하고 있는 셈입니다.
공격하는 쪽은 왜 같은 제한을 받지 않죠? 서로 다른 모델을 쓰기 때문이라고 해도, 방어하는 쪽은 왜 똑같이 하지 않는 거예요?
저도 Codex가 캡처 크래시를 gdb로 디버깅하려다가 보안 차단에 걸려서 세션이 먹통이 됐어요. 체크포인트를 복원하고, 그 작업은 포기하고 gdb는 건드리지 말라고 말해야 했습니다.
Claude가 DNS 업데이트를 거부해서 곤란을 겪는 사람들도 있다고 들었어요.
지금 상황은 정말 어이없어요.
앤트로픽과 OpenAI가 원하는 식의 보안 문지기 노릇이 통하지 않고 성립하지도 않는 이유가 바로 그겁니다.
모든 프로젝트에는 보안이 필요하고, 코드를 쓴다는 것은 곧 보안 결정을 내린다는 뜻이라서 둘을 떼어 놓을 수 없습니다.
하필 오늘 아침에 PHP CVE를 막으려고 GLM 5.3으로 갈아타야 했는데 이런 글을 올리다니 참 가소롭네요. (Claude도 Codex도 초기 조사 단계에서 발을 뺐어요.) 작업이 어느 정도 진행된 뒤에야 Claude로 돌아가 수정을 구현할 수 있었는데, 그래도 PoC는 하나도 안 들여다보려 하고 제 개발 서버에 대한 테스트도 거부해서 정말 짜증 났어요.
거의 예고 없이 CVE가 우리 앞에 떨어진 것도 힘든데, Claude가 안전장치에 걸리는 바람에 고객을 실제로 지키는 작업이 더뎌진 게 더 나빴어요.
지난주에는 Claude(와 Codex)가 기존 코드의 단위 테스트 작성을 도와주기를 거부하기도 했어요. 인증과 관련된 코드였다는 이유였죠. 둘을 번갈아 쓰면서 막히는 곳마다 우회해 넘어갈 수 있었지만, 오늘은 안전장치에 걸리자마자 바로 GLM으로 갔습니다.
앤트로픽이 동시에 사이버 보안에는 모델을 쓰지 말라고 다들 훈계하지만 않았어도 Claude가 공격 표면을 줄여 준다는 말을 믿었을 거예요. 그 이유란 게 "뭐, 이런저런 사정"이죠. 그리고 그 접근 권한을 정말 원하면 신원을 인증하고 이것저것 해야 하는데, 이게 다 "공격 표면"을 "줄인다"는 말과 정반대예요. 사이버 보안을 진짜 신경 쓴다면 이런 보안 필터는 애초에 존재하지 않을 겁니다. 절대로요.
황금 총으로는 은탄환을 막지 못합니다.
이 모델들은 의도를 갖고 했다면 범죄가 됐을 행위에 쓰이고 있는 게 분명합니다( https://www.felonybench.com ). 모두에게 기관총의 디지털 버전을 쥐여 주면 모두가 유탄을 맞습니다.
더 나쁜 점은, SOTA 모델이 보여 주는 모든 능력이 3개월 뒤면 오픈 웨이트 모델에서도 가능해진다는 것입니다. 그러니 우리는 이미 다 같이 유탄을 맞고 있고, 핵심 기반 시설이 대비할 시간을 번 것은 당신이 불만인 바로 그 정책 덕분입니다.
또 기억하시겠지만, 능력을 직접 보여 주지 않으면(보여 줘도 그럴 때가 있고요) 많은 사람이 이런 경고를 코웃음으로 넘깁니다. OpenAI가 실제로 HuggingFace를 해킹하기 전에는, AI가 자기 샌드박스에서 새로운 제로데이를 찾아 악용한다는 이야기를 다들 "공상과학"이라고 여겼습니다.
그 논리는 통하지 않습니다. 3개월 뒤처진 에이전트를 써도 Mythos나 Claude Opus가 찾을 취약점은 똑같이 찾아냅니다. 시간이 조금 더 걸릴 뿐입니다. 그러니 이런 보안 필터가 존재할 이유가 거의 없습니다. 필터가 사람들이 취약점을 찾는 것을 실제로 막지는 못하고, 성능이 낮은 모델을 써야 하니 찾는 속도만 늦출 뿐이며, 그러면 결국 보안 태세만 나빠집니다. 방어자와 공격자 사이의 군비 경쟁은 결코 없앨 수 없습니다. 앤트로픽이 보호자인 양 구는 것은 상황에 전혀 도움이 안 되고, 오히려 훨씬 악화시킨다고 봅니다. 특히 필터는 오탐이 상당히 많을 수밖에 없습니다(예를 들어 해킹과 전혀 무관한 로컬 작업에도 반응하는데, 어째서인지 그게 엄청나게 위험하다는 겁니다).
그게 요점입니다. 사람들의 속도를 늦추는 것이죠. 해커라고 해서 "사람이 아닌" 것은 아닙니다.
없앨 수 있고, 당신이 불평하는 바로 그 방식으로 가능합니다.
그것이 방어자에게 우위를 주는 요소입니다. 3개월의 우위요. 미국 정부가 그 기간의 상당 부분을 막아 버리지만 않았다면 가능했을 우위입니다.
신원을 밝히게 하는 것이 대체 어떻게 누군가를 보호하거나 속도를 늦춥니까? 그들의 신원 확인 체계는 제대로 작동하지도 않습니다(흔한 "신분증 인증" 방식일 뿐입니다). 저는 어떻게 해도 신분증 인증이 안 돼서 결국 포기했습니다. 믿을 만하다고 쳐도, 충분한 자원이 있는 대부분의 행위자가 신분증을 위조하는 게 얼마나 쉬운지 다들 아는데 그게 나쁜 행위자를 어떻게 막는다는 건지 모르겠습니다. 게다가 이런 디지털 신분 인증 서비스에는 온갖 취약점이 있어서, 국가가 신분증의 진위를 증명하는 데 쓰는 수단보다 우회하기 쉬울 것 같습니다. CVP 상위 등급에는 요건이 더 있을지 모르지만, 그 등급 인증도 이 회사들이 그냥 AI로 처리하지 않는다고 진지하게 생각하십니까?
그 이면은, 이제 미국 정부 기관은 그 기관총을 제약 없이 쓰는데 소프트웨어 개발자는 그렇지 못하거나, 기껏해야 여전히 심하게 검열된 접근만 얻는다는 겁니다(그들의 "신뢰" 프로그램은 웃기는 소리예요). 보안 문제를 고치는 도구를 만든 게 아니라 사실상 공격용 사이버 무기를 만든 거죠. Mythos 소동 첫날부터 뻔히 보인 일이었어요.
반반입니다.
네, 미국 정부 기관이 최고의 것을 가지게 되리라는 데는 동의합니다. 하지만 앤트로픽에서 받는 것은 아닙니다. 앤트로픽이 자사 모델을 특정 방식으로 쓰는 것을 거부하자 백악관이 불법적으로 앤트로픽을 블랙리스트에 올렸고, 직원 중에 비미국인이 많은데도 앤트로픽에 미국인이 아닌 모든 이에게 공급을 중단하라는 명령이 내려졌다는 것을 떠올려 보세요.
그래서 이 부분은 이렇습니다.
둘 다 만들었습니다. 지나치게 조심스러운 안전장치가 달린 기관총이라는 점은 별로 좋지 않지만, 그래도 도구이기는 하고, 안전장치 없는 기관총이나 아무것도 묻지 않고 미국 정부에만 직접 통제권을 넘기는 것보다는 도구로서 낫습니다.
아무것도 묻지 않는 접근은 다른 AI 업체들이 제공할 겁니다.
중범죄가 11건인데 기소가 하나도 없다고요? 우리 지금 뭘 하는 거죠?
참고로 저도 이게 정말 답답합니다. 하지만 저쪽은 원자폭탄을 갖고 있고, 우리는 그 기술을 원자력 발전에 빌려 쓰려는 처지예요. 저쪽은 우리를 믿지 않고요. 이 익숙한 지정학적 수렁도 세계적 규모에서 해결되지 않았는데, 결함투성이인 이 회사들이 더 잘 풀 거라고는 기대하지 않아요.
이렇게 말할 수도 있어요. 나쁜 행위자들은 이미 핵을 갖고 있고, 평화로운 미국 도시들에 매일 핵을 떨어뜨리고 있는데, 정부와 기업은 시민이 방어 도구를 쓰지 못하게 막으면서 시민을 지키기 위한 일은 아무것도 하지 않는다고요.
결국 가는 길은 하나뿐이고 정점을 향해 올라갑니다. 완전한 형식 검증 프로그래밍 언어, OS 유니커널, 작은 TCB, 그리고 가장 민감한 경우에는 아마 검증된 하드웨어까지요. 나머지는 모두 곧 '무차별 연산'으로 해킹당할 겁니다. 규모의 경제와 오픈 웨이트 모델의 접근성 덕분이죠.
이런 프로그램은 어떤 환경에서 실행되고, 그 환경은 하드웨어 위에서 돌아갑니다. 그중 큰 부분은 눈에 보이지 않는 소프트웨어고요.
그리고 일반적으로 검증된 상자 5개가 있어도, 서로 호출하다 보면 뭐가 튀어나올지 놀라게 됩니다. 상자 수는 늘어나고 가능한 상호작용은 지수적으로 늘어납니다. 형식 검증이 해결해 주는 게 많다고는 생각하지 않습니다.
완벽할 수는 없지만, 완벽을 좋은 것의 적으로 만들지는 맙시다.
https://github.com/digama0/thinking-sand
저는 Vix IDE에 이 공격 표면 전략을 적용하고 있습니다. Vix IDE는 초보자가 vi, emacs, git, jj, sql, 명령어 등에 익숙해지도록 돕는 터미널 텍스트 편집기입니다.
제가 쓴 프롬프트는 "목표: 공격 표면을 줄이도록 재작업. 과정: 기능을 feature flag가 있는 Rust crate로 이동. 결과물: 최소 버전 빌드. 질문: 무엇이든 물어봐."였습니다.
https://github.com/vixide/vix
지난 주말에 Claude Fable/Opus/Sonnet이 함께 Vix IDE 코드베이스 전체를 여러 개의 별도 Rust crate와 Cargo feature로 성공적으로 리팩터링했습니다.
이 리팩터링 덕분에 보안을 중시하는 사용자는 필요한 기능만 골라 쓸 수 있고, 보안 감사자도 한 번에 기능 하나씩 살펴보기 쉬워집니다.
궁금하시면 Claude Sonnet이 쓴 커밋 메시지를 볼 수 있습니다. 제 생각에는 꽤 괜찮습니다.
주말 동안 Fable/Opus/Sonnet을 프로젝트에 투입해 코드베이스 전체를 리팩터링했는데, 그 프로젝트의 목적이 사람들에게 vi, git, sql 같은 것을 가르치는 것이라니 정말 아이러니하지 않나요? 말씀하신 대로 AI가 주말 사이에 거의 알아서 프로젝트를 리팩터링할 수 있는 요즘 같은 시대에, 누가 그걸 배우고 싶어 하겠어요?