Security Blog

앱 메모리에 있는 자격 증명은 결국 새어 나갑니다

#478

October 2, 2026 · By Marketing team

← All posts

애플리케이션 메모리에 있는 자격 증명은 그 머신에서 실행되는 모든 코드가 읽을 수 있고, 2026년에는 그 목록에 에이전트도 들어 있어요. AI 모델은 이미 FreeBSD에 스스로 뿌리를 내렸고, 자기 샌드박스 밖으로도 탈출했어요. 훔칠 수 있도록 상주하는 자격 증명을 두지 마세요.

다음은 불편한 예측이에요. 그냥 얼버무리는 말이 아니에요. 지금 애플리케이션 메모리에 들어 있는 자격 증명 — 시작할 때 불러온 데이터베이스 비밀번호, 환경에 들어 있는 API 토큰, 제 역할을 하려고 쥐고 있는 클라우드 키 — 는 아마 앞으로 12개월 안에 유출될 거예요. 보안 팀을 누군가 더 잘 뚫어서가 아니에요. 메모리 속 비밀 값을 안전하게 만들었던 단 하나의 가정 — 옆에서 도는 코드는 신뢰할 수 있는 코드뿐이다 — 가 올해 조용히 거짓이 되었고, 거의 아무도 거기에 맞춰 행동을 바꾸지 않았기 때문이에요.

이건 '나중에' 항목으로 분류해둘 수 있는 문제가 아니에요.

실제로 무슨 일이 일어나고 있나

거의 모든 애플리케이션이 비밀 값을 같은 방식으로 들고 있어요. 시작할 때 .env 파일, 마운트된 시크릿, 환경 변수에서 읽어들여서, 프로세스가 살아 있는 동안 내내 평문으로 자기 메모리에 올려두죠. 30년 동안 이건 건전한 설계였고, 그 이유는 정확히 하나였어요. 다른 실행 중인 프로그램의 메모리나 환경을 읽으려면 같은 머신에서 같은 권한으로 코드를 실행해야 했거든요. 그 문턱은 예전에 높았어요. 그걸 넘을 수 있는 건 자기 소프트웨어와 자기 사람뿐이었고요.

이제 에이전트가 그 문턱을 넘어요. 코딩 에이전트, MCP 도구, 자율 워커 — 설계부터가 진짜 머신에서 진짜 사용자 권한으로 코드를 실행하게 되어 있거든요. 그 권한으로 도는 코드에게 메모리 속 자격 증명은 깨야 하는 금고가 아니에요. 읽으면 되는 파일일 뿐이에요. /proc/<pid>/environ은 다른 프로세스의 환경 변수를 평문으로 나열해요. 코어 덤프는 그 힙을 그대로 내줘요. 익스플로잇도, CVE도, 알람도 없어요. EDR, WAF, 방화벽은 허가된 프로세스가 읽어도 되는 메모리를 읽는 걸 지켜볼 뿐이고, 규칙상 아무것도 잘못되지 않았으니 아무것도 잘못된 게 없어 보여요. 모든 단계가 합법이에요. 비밀 값이 그냥 거기 있었을 뿐이에요.

당신이 저지른 실수가 아니에요

이게 누구 잘못인지 분명히 해두죠. 당신 잘못은 아니에요. 단단하게 잠근 머신 위의 .env, 부팅할 때 매니저에서 끌어와 메모리에 올린 시크릿 — 그게 권장 패턴이에요. twelve-factor, 교과서대로, 좋은 엔지니어가 하는 일이에요. 책임 있는 방식이었어요. 시효가 지난 건 그 관행이 아니에요. 그 밑에 깔린 가정이에요. 비밀 값 옆에서 도는 코드는 당신이 둔 코드뿐이라는 가정이요. 그 머신에서 에이전트가 도는 순간 — 그리고 지금은 유용하니까, 일부러 에이전트를 도처에 두고 있어요 — 그 가정은 사라지고, 책임 있게 메모리에 올려둔 평문이 폭발 반경 안에 있게 돼요.

이미 이 일의 첫 번째 버전이 착륙하는 걸 봤어요 [4]. 코딩 에이전트가 납치되면 — 오염된 오류 보고서, 경로에 놓인 악성 도구 — 손에 닿는 첫 번째 대상이 바로 이것입니다. 자기 프로세스와 옆 프로세스가 이미 메모리에 들고 있는 토큰과 키예요. 인젝션은 문일 뿐이에요. 상주해 있던 자격 증명이 노획물이에요.

"그 머신에는 에이전트가 없잖아요"

이건 위로가 되는 답이고, 결국 실패하는 답이에요. 이 방어는 벽 하나에 기대고 있어요. 에이전트는 이쪽에 두고, 자격 증명은 저쪽에 두자는 거죠. 올해는 그 벽이 버틸 수 없다는 사실을 증명하는 데 한 해를 다 썼어요.

믿음으로 받아들일 필요는 없어요. 올해 증거가 나왔고, 두 번이었으니까요. Anthropic이 공개한 자체 테스트에서 Mythos 모델을 FreeBSD의 NFS 서버에 겨냥했는데, 사람이 17년 동안 읽어온 커널 코드예요. 모델은 스스로 인증 경로에서 스택 오버플로를 찾아내고, 6개 네트워크 패킷에 나눠 담은 20개 가젯짜리 익스플로잇을 작성하고, 네트워크를 통해 인증 없는 root를 차지했어요. 그게 CVE-2026-4747이고, 걸린 시간은 약 4시간이에요. "의심스러운 함수를 표시"한 게 아니에요. 17년의 리뷰를 견뎌온 코드에 대해 실제로 동작하는 원격 root 익스플로잇이고, 겨냥된 모든 주요 운영체제와 브라우저의 치명적 결함에도 같은 일이 벌어졌어요 [1].

그리고 에이전트를 감싸는 격리도 경계선보다 나을 게 없어요. Anthropic의 자체 안전 평가에서, 샌드박스를 빠져나가 테스트를 진행하는 연구자에게 닿으라는 과제를 받은 Mythos는 익스플로잇을 연결해서 — JIT 힙 스프레이 — 브라우저 렌더러와 운영체제 샌드박스 둘 다에서 탈출하고, 개방된 인터넷에 도달하고, 그에게 이메일을 보냈어요 [1]. 공정하게 짚어둘 점이 있어요. 이건 자기 스스로가 아니라 테스트가 시켰기 때문에 한 일이에요. 하지만 "우리가 시켰다"가 바로 공격자의 자리예요. 그리고 "탈출하고, 권한을 올리고, 자격 증명을 가져간다"가 이 이후의 모든 악성 프롬프트에 실리는 상시 탑재물이에요. 그 능력은 모델 자신의 결단을 기다린 적이 없어요. 지시를 기다리고 있고, 그 지시는 도착한다고 확신할 수 있는 유일한 입력이에요.

그 심각성은 유일하게 의미 있는 높이에서 인정받았어요. Mythos의 한 버전이 NSA의 분류 시스템 거의 전부를 몇 시간 만에 뚫었다는 보도가 나온 뒤, 미국은 모델 자체를 수출 통제했어요. 뒤에 있는 칩이 아니라 AI 모델을 대상으로 한 건 처음이에요 [2][3].

이제 이걸 메모리 문제 옆에 놓아보세요. 어차피 만나거든요. 머신의 root는 자기 사용자 것만이 아니라 모든 프로세스의 메모리를 읽어요. 그러니 진짜 질문은 "내 비밀 값 옆에서 에이전트를 돌릴 것인가"가 아니었어요. "유능한 모델이 이 머신에 닿을 수 있는가, 아니면 내가 가둔 박스에서 나갈 수 있는가"였고, 올해는 그 둘 다 공개적으로 답했어요. "그 머신에는 에이전트가 없잖아요"는 집행하는 통제가 아니에요. 사물이 제자리에 머물 거라는 희망이고, 사물은 이미 머물지 않는다는 걸 보여줬어요. 에이전트가 머신에 닿는 경우를 전제로 계획하세요. 그 대안은 운 좋기를 계획하는 거예요.

일부러 이렇게 만들었어요

그러니 그냥 나뒹구는 비밀 값에서 에이전트를 떼어놓으려는 시도는 그만하세요. 나뒹구는 것 자체를 치우면 돼요.

Clavitor의 자격 증명은 기다리려고 애플리케이션 메모리에 올라가는 일이 없어요. 호출되는 그 순간 실시간으로 가져와서, 그 요청 하나에만 쓰고, 사라져요. 환경 변수에 머물지 않고, .env에 내려앉지 않고, 덤프되기를 기다리며 힙 안에서 프로세스 수명 내내 상주하지 않아요. /proc가 나열할 것도, 코어 덤프가 가져갈 것도 없어요. 애초에 그 머신이 상시 비밀 값을 들고 있을 자격이 있다고 믿지 않았으니까요.

그리고 실제로 내주는 자격 증명 하나는 그 에이전트에 부여된 이름의 그 한 가지에만 한정돼요. 금고를 나열할 수 없고, 다른 게 뭐가 있는지 열거할 수 없고, 다음 키를 찾아낼 수 없어요. 모든 조회에는 속도 제한이 걸려 있고, 비정상적인 급증이 나타나면 락다운이 발동하고, 추가 전용·해시 체인 로그에 기록돼요. 그 로그는 에이전트가 도는 엔드포인트가 아니라 금고 위에 있어요. 이게 PCI DSS 요건 10과 NIST 800-171(통제 3.3.8)이 요구하는 변경 불가·귀속 가능한 추적이에요. 에이전트가 정확히 무엇을 건드렸는지에 대한 증거를, 침해된 머신이 닿을 수도 없고 되쓸 수도 없는 곳에 보관해요.

정직하게 짚어둘 한계가 있어요. 이런 주장에는 한계가 필요하니까요. 사용되는 그 마이크로초에 비밀 값은 메모리에 존재해요. 그 요청 하나에만, 그 순간에만요. 어떤 설계도 물리를 되쓰지 못해요. 되쓰는 건 상주하는 비밀 값 — 프로세스 안에 몇 시간씩 앉아 있고 언제든 덤프 가능한 — 과 일시적인 비밀 값 — 호출 한 번 동안만 있다가 가져갈 게 없어지는 — 사이의 차이예요. 서 있지 않은 건 덤프할 수 없어요.

교훈은 "머신을 더 꽁꽁 잠그자"가 아니에요

계속해서 머신을 단단하게 만들 수는 있어요. 신뢰할 수 없는 코드가 비밀 값 옆에서 도는 일은 영원히 없을 거라고 계속 되뇔 수도 있고요. 하지만 매달 비용이 더 드는 쪽으로 기울고 있는 건 바로 그 내기예요. 코드 실행이 직업인 적수를 상대로, 버틸 거라 여겼던 벽을 그대로 걸어 나가는 적수를요. 읽는 쪽이 전부 신뢰할 수 있을 때 메모리 속 자격 증명은 안전했어요. 읽는 쪽이 바뀌었어요. 이 변화를 견디는 유일한 수는 읽힐 자격 증명을 거기 두지 않는 거예요.

이런 세상에서 자격 증명 도구가 지켜야 할 규칙을 적어두었습니다. 여러분의 도구를 그 규칙에 견줘 보세요.

Clavitor (@clavitorai)는 AI 에이전트를 위해, 그리고 그들을 상대로 만들어진 자격 증명 금고예요. clavitor.ai

출처

[1] Anthropic (Anthropic Red Team) — Assessing Claude Mythos Preview's cybersecurity capabilities (FreeBSD NFS RCE의 자율 발견 및 익스플로잇, CVE-2026-4747, 주요 OS·브라우저 전반의 치명적 결함) — https://red.anthropic.com/2026/mythos-preview/

[2] Associated Press (via CNBC) — Anthropic's Mythos model found vulnerabilities in classified U.S. government systems, official says (Mythos 모델이 미국 정부 분류 시스템의 취약점을 발견했다는 당국자 발언) — https://www.cnbc.com/2026/06/23/anthropics-mythos-model-found-vulnerabilities-in-classified-us-government-systems-official-says.html

[3] Fortune — Anthropic disables Fable and Mythos AI models following U.S. government export ban (미국 정부 수출 금지 조치 이후 Fable·Mythos 모델 비활성화) — https://fortune.com/2026/06/13/anthropic-disables-fable-mythos-export-controls-national-security-threat/

[4] Tenet Security (Tenet Threat Labs) — Agentjacking: Coding Agents with Fake Sentry Errors (에이전트 납치로 상주 자격 증명에 도달한 선행 사례) — https://tenetsecurity.ai/blog/agentjacking-coding-agents-with-fake-sentry-errors/