나는 litellm 취약점을 처음 발견하고 보고한 개발자임
당시 상황을 그대로 기록한 실시간 분석 대화록을 공유했음
Claude가 누구에게 연락해야 하는지, 어떤 순서로 조치해야 하는지를 단계별로 안내해줘서 비보안 전문가에게도 큰 도움이 되는 경험이었음
이런 식으로 비전문가들이 취약점을 발견하고 보고하는 게 보안 커뮤니티에 도움이 되는 일인지, 아니면 혼란을 주는 일인지 궁금함
보안 업계 종사자로서 Claude의 도움으로 이런 걸 발견한 건 인상적임
다만 “Cursor를 다시 열자마자 악성 패키지가 실행됐다”는 부분은 좀 위험해 보임
의심이 생긴 즉시 기기 격리와 보안팀 연락이 먼저였어야 함
나도 거의 같은 시점, 같은 방식으로 이 문제를 발견했음
.pth 파일이 포크 폭탄처럼 작동하지 않았다면 훨씬 늦게 발견됐을 수도 있음
Claude에게 연락 경로를 물어본 건 좋은 판단이었음
PyPI 관련 연락처를 몰라서 메인테이너에게 메일을 보내고 Hacker News에도 올렸음
보안 커뮤니티 소속이 아니더라도, 이런 심각한 취약점 보고는 누구나 할 수 있어야 함이라고 생각함
나는 여러 기업에서 취약점 공개 프로그램을 관리해온 경험이 있음
대부분의 문제는 돈을 노리고 아무거나 취약점이라 주장하는 사람들 때문임
하지만 네 보고서는 품질이 높았고, 이런 건 바로 패치 우선순위로 올림
비즈니스 중단 없이 해결 가능하면 즉시 조치하고, 심각할 경우 CISO나 CTO에게 바로 보고했음
글 잘 읽었음. Claude가 이런 상황에서 특히 유용하다고 느꼈음
네 보고 덕분에 더 큰 사고를 막은 셈임
우리도 관련 내용을 두 번에 걸쳐 블로그에 정리했음 grith.ai 블로그 글
최근 오픈소스 프로젝트들이 취약점 리포트와 PR 폭주로 힘들다는 얘기를 들었음
하지만 이번 사례는 AI의 도움으로 원인 분석과 보고가 훨씬 빨라진 좋은 예라고 생각함
내 claude-code-transcripts 툴이 블로그 포스트에 데이터로 임베드된 건 처음 봄
평소엔 Gist의 HTML 페이지로 공유했는데, 이런 활용은 흥미로움
우리 회사에서도 적극적으로 쓰고 있음
블로그 스타일에 맞추려다 실패했지만, 기본 경험의 중요성을 새삼 느꼈음
Claude가 내 컴퓨터 전체를 스캔하듯 로그를 긁어가서 자동 로그 편집 시스템이 필요하다고 느낌
Claude Code 세션 간 정보 공유는 여전히 큰 문제임
긴급 디버깅 중 팀과 협업할 때 특히 불편함
“악성 스크립트 내용을 실행하지 않고 출력할 수 있나?” 같은 요청은 위험함
LLM 에이전트는 책임 개념이 없기 때문에, 실수로 실행 명령을 내리면 큰 사고로 이어질 수 있음
PyPI에서 파일을 받을 땐 반드시 샌드박스 환경에서 해야 함
GitHub, npm, PyPI 같은 패키지 레지스트리들은 실시간 보안 분석용 이벤트 스트림(firehose) 을 제공해야 한다고 생각함
이런 공격은 자동 스캐너가 즉시 잡을 수 있었을 것임
PyPI는 이미 그런 기능을 제공 중임
보안 파트너가 패키지를 스캔하고, 초대 기반 API로 보고할 수 있음 PyPI 블로그 글 참고
나도 이번 사건 이후 dependency cooldown을 도입했음 관련 글
자동 스캐너가 .pth 파일 같은 이상 징후를 탐지할 시간을 벌어주는 게 목적임
npm은 패키지 변경 피드를 제공하고, GitHub은 이벤트 firehose와 BigQuery 공개 데이터셋을 운영함
이런 인프라 제공은 법적 의무로 만들어야 한다고 생각함
경제적 피해가 너무 클 수 있고, litellm 감염자만 4만7천 명이 넘음
“블로그 포스트 작성, PR, 머지까지 3분 이내”라는 부분이 가장 충격적이었음
읽는 시간보다 빠른 속도라 불안감이 듦
1만1천 개 프로세스의 포크 폭탄이 없었다면, 이 공격이 훨씬 오래 숨어 있었을지도 모름
나도 패키지를 설치하다가 바로 시스템이 멈춰서 감염은 피했음
만약 폭탄 속도를 늦췄다면 피해가 훨씬 컸을 것임
이번 세대의 인터넷 웜이라고 불러야 할지도 모르겠음
대기업이 신뢰할 수 없는 오픈소스 코드를 실행하는 방법은 두 가지임
Google식으로 모든 걸 소스에서 직접 빌드
회사 내부 미러에서만 가져오고, 모든 패키지를 서명 검증
현실적으로 (1)이 가장 안전함
중소기업이나 개인은 의존성 고정(pinning) 과 충분한 대기 시간이 최선의 방어책임
Bazel을 쓰면 (1)에 가깝게 할 수 있지만, 대부분은 외부 소스에 의존할 수밖에 없음
PyPI가 보고 후 30분 만에 패키지를 격리한 건 정말 빠른 대응이었음
공급망 공격에 취약하다는 우려가 많지만, 이번엔 상당히 잘 처리된 사례라고 생각함
AI/LLM의 가장 좋은 점 중 하나는 리버스 엔지니어링의 민주화임
예전엔 배우기 어렵고 보람도 적은 기술이었는데, 이제는 AI가 방향을 잡아줌
하지만 이번 건은 리버스 엔지니어링이 아니라 기본 시스템 관리 문제임
exec(base64.b64decode(...)) 패턴은 Python 도구들이 코드 전달 시 자주 쓰는 방식이지만,
기본적으로 /tmp나 /var/tmp, /dev/shm에서 실행되는 코드는 매우 의심스럽게 봐야 함
만약 Lulu나 LittleSnitch 같은 네트워크 모니터링 툴이 있었다면 이상 트래픽을 막았을 것임
단, Claude에 바이너리를 업로드해 분석시키는 건 또 다른 위험임
나도 CTF 영상 보며 흥미를 느끼긴 했지만, 현실 업무에서 이런 걸 직접 마주칠 일은 거의 없음
Hacker News 의견들
나는 litellm 취약점을 처음 발견하고 보고한 개발자임
당시 상황을 그대로 기록한 실시간 분석 대화록을 공유했음
Claude가 누구에게 연락해야 하는지, 어떤 순서로 조치해야 하는지를 단계별로 안내해줘서 비보안 전문가에게도 큰 도움이 되는 경험이었음
이런 식으로 비전문가들이 취약점을 발견하고 보고하는 게 보안 커뮤니티에 도움이 되는 일인지, 아니면 혼란을 주는 일인지 궁금함
다만 “Cursor를 다시 열자마자 악성 패키지가 실행됐다”는 부분은 좀 위험해 보임
의심이 생긴 즉시 기기 격리와 보안팀 연락이 먼저였어야 함
.pth 파일이 포크 폭탄처럼 작동하지 않았다면 훨씬 늦게 발견됐을 수도 있음
Claude에게 연락 경로를 물어본 건 좋은 판단이었음
PyPI 관련 연락처를 몰라서 메인테이너에게 메일을 보내고 Hacker News에도 올렸음
보안 커뮤니티 소속이 아니더라도, 이런 심각한 취약점 보고는 누구나 할 수 있어야 함이라고 생각함
대부분의 문제는 돈을 노리고 아무거나 취약점이라 주장하는 사람들 때문임
하지만 네 보고서는 품질이 높았고, 이런 건 바로 패치 우선순위로 올림
비즈니스 중단 없이 해결 가능하면 즉시 조치하고, 심각할 경우 CISO나 CTO에게 바로 보고했음
네 보고 덕분에 더 큰 사고를 막은 셈임
우리도 관련 내용을 두 번에 걸쳐 블로그에 정리했음
grith.ai 블로그 글
하지만 이번 사례는 AI의 도움으로 원인 분석과 보고가 훨씬 빨라진 좋은 예라고 생각함
내 claude-code-transcripts 툴이 블로그 포스트에 데이터로 임베드된 건 처음 봄
평소엔 Gist의 HTML 페이지로 공유했는데, 이런 활용은 흥미로움
블로그 스타일에 맞추려다 실패했지만, 기본 경험의 중요성을 새삼 느꼈음
Claude가 내 컴퓨터 전체를 스캔하듯 로그를 긁어가서 자동 로그 편집 시스템이 필요하다고 느낌
긴급 디버깅 중 팀과 협업할 때 특히 불편함
“악성 스크립트 내용을 실행하지 않고 출력할 수 있나?” 같은 요청은 위험함
LLM 에이전트는 책임 개념이 없기 때문에, 실수로 실행 명령을 내리면 큰 사고로 이어질 수 있음
PyPI에서 파일을 받을 땐 반드시 샌드박스 환경에서 해야 함
“하지 말라”고 하면 오히려 거기에 집착하는 경향이 있음
PyPI가 “디지털 인증(digital attestation)”을 지원한다고 들었는데, 이 패키지는 서명돼 있었는지 궁금함
PyPI Trusted Publishers 문서
GitHub, npm, PyPI 같은 패키지 레지스트리들은 실시간 보안 분석용 이벤트 스트림(firehose) 을 제공해야 한다고 생각함
이런 공격은 자동 스캐너가 즉시 잡을 수 있었을 것임
보안 파트너가 패키지를 스캔하고, 초대 기반 API로 보고할 수 있음
PyPI 블로그 글 참고
관련 글
자동 스캐너가 .pth 파일 같은 이상 징후를 탐지할 시간을 벌어주는 게 목적임
경제적 피해가 너무 클 수 있고, litellm 감염자만 4만7천 명이 넘음
“블로그 포스트 작성, PR, 머지까지 3분 이내”라는 부분이 가장 충격적이었음
읽는 시간보다 빠른 속도라 불안감이 듦
1만1천 개 프로세스의 포크 폭탄이 없었다면, 이 공격이 훨씬 오래 숨어 있었을지도 모름
만약 폭탄 속도를 늦췄다면 피해가 훨씬 컸을 것임
대기업이 신뢰할 수 없는 오픈소스 코드를 실행하는 방법은 두 가지임
현실적으로 (1)이 가장 안전함
중소기업이나 개인은 의존성 고정(pinning) 과 충분한 대기 시간이 최선의 방어책임
Bazel을 쓰면 (1)에 가깝게 할 수 있지만, 대부분은 외부 소스에 의존할 수밖에 없음
PyPI가 보고 후 30분 만에 패키지를 격리한 건 정말 빠른 대응이었음
AI/LLM의 가장 좋은 점 중 하나는 리버스 엔지니어링의 민주화임
예전엔 배우기 어렵고 보람도 적은 기술이었는데, 이제는 AI가 방향을 잡아줌
exec(base64.b64decode(...)) 패턴은 Python 도구들이 코드 전달 시 자주 쓰는 방식이지만,
기본적으로 /tmp나 /var/tmp, /dev/shm에서 실행되는 코드는 매우 의심스럽게 봐야 함
만약 Lulu나 LittleSnitch 같은 네트워크 모니터링 툴이 있었다면 이상 트래픽을 막았을 것임
단, Claude에 바이너리를 업로드해 분석시키는 건 또 다른 위험임