Blog
From the team
We write about what we see in the credential security space — breaches that didn't have to happen, architecture decisions we made and why, and the patterns we think everyone building with AI agents should understand.
#683
현실을 직시해야 해요: 에이전트는 격리할 수 없어요.
OpenAI의 사이버 공격 능력 있는 모델이 벤치마크 도중 Hugging Face 프로덕션에 침입했고, 워커 위에 놓여 있던 자격 증명을 그대로 가져갔어요. 에이전트는 격리할 수 없으니, 해결책은 에이전트를 더 세게 통제하는 게 아니라 자격 증명을 없애는 거예요.
#669
문제는 우리지가 아니었어요. 우리지 안에 있던 열쇠였어요.
7월 8일에 샌드박스는 에이전트가 어디에서 실행되는지를 통제할 뿐, 무엇을 가져갈 수 있는지는 통제하지 못한다고 썼어요. 8일 뒤 자율 에이전트 하나가 Hugging Face 내부 클러스터 전반에서 17,000건이 넘는 액션을 실행했어요. 워커를 빠져나간 것은 없었어요. 그럴 필요도 없었죠.
#655
자격 증명에 붙은 라벨은 그 자격 증명의 범위가 아닙니다.
단일 볼트에 범위가 지정된 1Password 서비스 토큰이 조직 전체를 매핑할 수 있습니다. 모든 사용자, 그룹, 권한을요. 라벨에는 단일 볼트라고 적혀 있었습니다. API는 동의하지 않았습니다. 범위는 라벨이 아니라 강제로 지켜져야 합니다.
#646
자격 증명은 분기마다 교체됩니다. 그 사이 기계는 31초 만에 스스로를 디버깅합니다.
문서상 처음으로 확인된 자율 랜섬웨어가 손에 닿는 모든 비밀을 훑어내고, 실패한 익스플로잇을 31초 만에 스스로 디버깅했습니다. 자격 증명은 정적으로, 디스크에, 그대로 놓여 있었습니다.
#637
Apple은 공증했습니다. 그래도 비밀번호 관리자 열네 개는 비었습니다.
Apple은 위조된 비밀번호 창 하나로 비밀번호 관리자 열네 개를 비운 맥 앱을 공증했어요. 아무도 해킹당하지 않았어요. 금고는 처음부터 그 기계 위에 있었어요.
#625
패스키는 로그인만 지켰어요. 수명주기는 아니에요.
패스키는 피싱이 불가능하니, 공격자는 등록·동기화·복구를 노렸어요. 이제 실시간 음성 복제까지 씁니다. 누구의 목소리로도 들리는 전화에 맞서 복구를 지키는 방법을 정리했어요.
#600
속보: 11건 중 7건에서 에이전트가 비밀을 넘겨줬습니다.
연구진이 텍스트 기반 리뷰어가 읽을 수 없는 PNG 안에 자격증명 탈취 지시를 숨겼습니다. 11개 에이전트 구성 중 7개에서 에이전트가 이미지를 읽고 `.env`의 모든 비밀을 유출했습니다.
#588
누구도 키를 훔치지 않았어요. 금고가 직접 건넨 거예요.
셀프 호스팅 Bitwarden의 CVE 하나로, 권한이 낮은 구성원 한 명이 조직 전체의 금고 키를 통째로 가져갈 수 있었어요. 암호화가 실패한 게 아니에요. 새 사람에게 키를 넘길 수 있는 금고는, 속아서 넘기도록 만들 수 있으니까요.
#576
우리는 에이전트가 어디서 실행되는지 가둘 뿐입니다. 무엇을 가져갈 수 있는지는 가두지 못합니다.
에이전트는 두 분기 만에 Vercel 배포의 3%에서 절반 이상으로 늘었습니다. Vercel은 에이전트가 실행되는 위치를 가두기 위한 샌드박스를 만들었습니다. 하지만 에이전트가 무엇을 가져갈 수 있는지에 대해서는 아무것도 말해주지 않습니다.
#568
볼 수 없었기에 승인해 버린 멜웨어
GlassWorm는 페이로드를 보이지 않는 유니코드에 숨겨서 사람의 코드 리뷰를 통과한 뒤, 작업 공간에 널려 있는 자격 증명을 읽어 갑니다. 보이지 않는 웜이 암호를 깨는 일은 없습니다. 필요한 건 파일 하나뿐이에요.
#563
CitrixBleed이 돌아왔고, 교훈은 그 버그보다 오래됐어요
CitrixBleed이 돌아왔어요. NetScaler에 파싱할 수 없는 로그인을 보내면, 자기 메모리를 읽어서 돌려줘요. 바이트 수는 달라지지만, 인터넷에 노출된 메모리에 자격 증명이 놓여 있다는 구조는 그대로예요.
#550
Huntress에 닿을 수 있다면, 당신에게도 닿아요
유출을 막는다고 믿는 두 기업, Huntress와 LastPass가 모두 오래된 벤더 연결을 통해 유출됐어요. 그들에게 닿았다면, 당신에게도 닿아요. 핵심 자산부터 옮기세요.
#543
볼트는 버텼다. 문제는 애초에 볼트가 아니었다.
LastPass가 다시 뚫렸지만 볼트는 그대로였다. 진입로는 버려진 통합에서 남은 죽은 OAuth 토큰이었고, 이 유형의 비밀은 아무도 비밀로 취급하지 않는다.
#525
1.3TB의 비밀을 잃는 방법, Novo Nordisk 방식
잊힌 하위 도메인의 JavaScript에 있던 접근 토큰 하나가 1.3TB의 유출된 비밀 정보로 이어졌어요. 엔터프라이즈 금고는 사람을 지켜요. 그런데 침해는 아무도 관리하지 않는 기계 자격 증명 쪽으로 걸어 들어왔어요.
#518
자격 증명이 탈취되면 무엇을 복구하나요?
데이터는 백업할 수 있습니다. 신뢰는 백업할 수 없습니다. 자격 증명이 탈취되면 복구할 것이 없으므로, 유일한 방어는 벽 뒤에 훔칠 가치가 있는 것을 남기지 않는 것입니다.
#505
역사상 처음으로 발령된 국가 단위 코드 레드. 우리에게는 해프닝으로 끝났어요 — 준비가 되어 있었으니까요.
네덜란드가 역사상 처음으로 국가 단위 폭염 코드 레드를 발령했어요. 암스테르담 앵커는 뜨겁게 달아올랐지만 해프닝으로 끝났어요. 한 도시, 한 전력망에서 응답하는 금고를 설계한 적이 없었으니까요.
#491
상자에 담아둘 수는 없어요. 지난주가 두 번 증명했죠.
미국은 지금까지 만든 가장 강력한 해킹 AI를 수출하기엔 너무 위험하다고 판정했어요. 며칠 뒤 중국의 한 랩은 동등한 모델을 무료로 공개했죠. 역량은 상자에 가둘 수 없어요. 비밀을 상자에 넣어두는 것도 그만둬야 해요.
#478
앱 메모리에 있는 자격 증명은 결국 새어 나갑니다
애플리케이션 메모리에 있는 자격 증명은 그 머신에서 실행되는 모든 코드가 읽을 수 있고, 2026년에는 그 목록에 에이전트도 들어 있어요. AI 모델은 이미 FreeBSD에 스스로 뿌리를 내렸고, 자기 샌드박스 밖으로도 탈출했어요. 훔칠 수 있도록 상주하는 자격 증명을 두지 마세요.
#448
LastPass조차도 자기 자격 증명을 지키지 못했습니다.
LastPass는 자격 증명을 안전하게 지키기 위해 존재하지만, 이번 달에는 자기 것을 지키지 못했습니다. 레거시 통합 자격 증명과 OAuth 토큰이 서드파티 벤더를 통해 유출됐습니다. 이제 상시 자격 증명을 잘 지키는 방식으로는 충분하지 않습니다. 아예 갖지 않는 것입니다.
#399
에이전트에게 오류를 고치라고 했는데, 그중 하나는 공격자가 쓴 것이었어요
가짜 Sentry 오류 보고서가 AI 코딩 에이전트를 속여 공격자의 코드를 개발자의 전체 권한으로 실행하게 만듭니다. 성공률은 85%예요. 치명적인 것은 주입 자체가 아니라, 탈취된 에이전트가 닿을 수 있는 상시 자격 증명이에요.
#372
아무것도 해킹되지 않았습니다. 모든 것이 탈취됐습니다.
유출된 저권한 AWS 키 하나를 AI 에이전트에게 건네면, 아무도 개입하지 않은 채 약 1분 만에 고객 데이터까지 연결 고리를 따라 이동합니다. 해킹은 하나도 없었고, 모든 자격 증명은 유효했습니다. 유출된 키의 경제성이 뒤집혔습니다.
#340
AI가 Firefox에서 휴면 버그 271개를 찾아냈습니다. 여러분의 자격 증금 금고는 더 쉬운 표적입니다.
Mozilla가 AI 에이전트를 Firefox에 풀어놓았고, 한 번의 실행에서 알려지지 않았던 취약점 271개를 찾아냈습니다. 방어자의 에이전트가 그 일을 해낼 수 있다면, 공격자의 에이전트도 같은 능력을 여러분의 자격 증명 금고, 더 부드럽고 더 중앙화된 표적에 겨눌 수 있습니다.
#328
일은 열세 개의 에이전트로 나눴는데, Paperclip은 키를 나누지 않았어요.
스타 71,000개를 받은 에이전트 프레임워크를 스캔한 결과, 열세 개 에이전트 중 열두 개가 동일한 평문 토큰을 들고 있었어요. 에이전트를 여러 대 운영하기 시작하면 '비밀이 설정 파일에 산다'는 관행은 더 이상 지름길이 아니라 증폭기가 돼요.
#282
업계 전체가 방금 "에이전트가 키를 보면 안 된다"에 합의했습니다. 그런데 엉뚱한 곳에 숨기고 있어요.
일주일 사이에 Claude Code, Hermes, Codex가 모두 에이전트가 원시 자격 증명을 보지 못하게 하는 수정 사항을 내놓았어요. 수렴하는 패치는 아키텍처가 아닙니다. 키는 애초에 하니스 안에 있으면 안 돼요.
#260
이제 AI 에이전트가 피싱 표적이 됩니다
EchoLeak(CVE-2025-32711)은 AI 에이전트를 겨냥한 최초의 제로클릭 익스플로잇이었어요. 이메일에 숨겨진 지시 하나가 클릭 한 번 없이 Microsoft 365 Copilot을 사용자 본인에게 돌렸어요. 중요한 방어는 모든 프롬프트 인젝션을 잡아내는 것이 아니라, 납치된 에이전트가 자격 증명에 도달할 수 없게 만드는 거예요.
#245
자격 증명 관리 열 가지 규칙
어떤 자격 증명 시스템에도 적용할 수 있는 합격·불합격 점검표. 열 가지 기술 규칙과, Clavitor가 각 규칙을 어떻게 지키는지 정확히 함께 적었어요. 대부분의 도구는 여러 개를 어겨요.
#227
이 악성코드에는 Red Hat의 서명이 붙어 있었어요
이번 주에는 자격 증명을 훔치는 코드가 Red Hat의 이름을 달고 개발자들에게 도달했어요. 위협은 신뢰의 범위 바깥이 아니라 그 안에서 나왔어요. 검증으로 빠져나갈 수는 없어요. 자격 증명을 손이 닿지 않는 곳에 두는 건 가능해요.
#212
우리 로고는 검은 상자입니다. 일부러 그렇게 만들었어요.
보안 로고는 하나같이 방패, 자물쇠, 아니면 '신뢰'라는 이름의 늑대예요 — 감정을 아이콘으로 포장해 파는 거죠. 우리 로고는 검은 사각형입니다. 제품 자체가 저희도 들여다볼 수 없는 블랙박스이고, 데이터베이스를 훔쳐간 사람도 들여다볼 수 없으니까요.
#188
DigiCert, 코드 서명 인증서 27개를 화면 보호기 파일 하나에 빼앗겼습니다
세계 최대 규모의 인증 기관 중 하나인 DigiCert는 고객 지원 채팅으로 전송된 화면 보호기 파일에 침해됐어요. 안티바이러스가 네 번 차단했지만, 담당자는 계속 클릭했어요.
#164
방금 막 당신의 지갑을 읽어버린 AI 코딩 어시스턴트
AI 코딩 도구는 아무것도 입력하기 전에 .env 파일을 읽어들입니다. 각각이 지출 한도 없는 신용카드인 API 키가, 첫 프롬프트를 작성하기도 전에 다른 사람의 컨텍스트 윈도에 들어가 있어요. 문제는 AI가 아닙니다. 문제는 시크릿이 파일이라는 사실이에요.
#140
56초 만에 634개의 비밀번호
한 개발자가 가짜 회사와 두 차례 면접을 진행했습니다. 실제 웹사이트, 실제 얼굴, 실제 기술 대화였습니다. 그러다 코딩 과제를 실행했고, 1분도 안 되어 Chrome에 저장된 모든 비밀번호, macOS Keychain, 암호화폐 지갑 데이터가 사라졌습니다.
#126
Vercel가 고객 비밀을 평문으로 저장하고 그걸 기능이라 불렀습니다
공격자는 침해된 AI 도구에서 Google 계정을 거쳐 Vercel 인프라로 넘어간 뒤, '민감함(sensitive)'으로 수동 표시하지 않은 모든 환경 변수를 복호화했습니다. 침해는 아무도 알아채기 전까지 두 달간 이어졌습니다.
#117
수확할 것이 없어야 해요
변조된 Bitwarden CLI가 개발자 머신 334대에서 SSH 키, 클라우드 자격 증명, npm 토큰을 수확해 갔어요. 진짜 문제는 멀웨어가 어떻게 들어왔느냐가 아니에요. 모든 비밀 정보가 평문 파일로 그 자리에 놓여 있었고, 그저 읽히기를 기다리고 있었다는 게 문제예요.
#69
소스 보기, 키 복사, 전부 가져가기
한 보안 연구자가 ClickUp 페이지 소스를 열어 JavaScript에 하드코딩된 API 키를 발견했고, 그 키로 GET 요청 하나만 보내 이메일 주소 959개와 사내 기능 플래그 3,165개를 가져왔습니다. 그 키에는 권한 범위도, 속도 제한도, 만료일도 없었습니다.