Security Blog

이 악성코드에는 Red Hat의 서명이 붙어 있었어요

#227

October 2, 2026 · By Marketing team

← All posts

이번 주에는 자격 증명을 훔치는 코드가 Red Hat의 이름을 달고 개발자들에게 도달했어요. 위협은 신뢰의 범위 바깥이 아니라 그 안에서 나왔어요. 검증으로 빠져나갈 수는 없어요. 자격 증명을 손이 닿지 않는 곳에 두는 건 가능해요.

이번 주에 Red Hat이 서명한 코드가 여러분의 자격 증명을 훔치려 했어요.

공격자는 Red Hat 개발자의 계정에 침입해서 공식 Red Hat 패키지의 변조 버전을 배포했어요. 기계가 그중 하나를 설치하는 순간, 숨겨진 코드가 자동으로 실행되어 찾을 수 있는 귀중한 것 전부를 — 클라우드 키, 액세스 토큰, 로그인 정보, 문을 열 수 있는 모든 것 — 뒤졌어요. 그러고는 훔친 것으로 확산에 이용했어요.

이 공격의 모양을 보세요. Red Hat은 표적이 아니었어요 — 여러분이 표적이었어요. 그들의 이름, 신뢰받는 그 계정, 아무 생각 없이 천 번도 넘게 써 온 설치 파이프라인은 피해자가 아니었어요. 그건 무기였어요. 이 공격은 신뢰의 범위를 몰래 통과하지 않았어요. 여러분이 직접 발급한 배지를 달고 정문으로 들어왔어요. 공급망 공격이 다른 모든 것과 다른 점이 바로 이거예요. 위험은 막을 수 있는 낯선 사람이 아니라, 이미 신뢰하기로 결정한 벤더가 페이로드를 대신 전달해 준다는 데 있어요. 게다가 그건 Red Hat이었어요. 실제 검토와 실제 예산을 갖춘, 현존하는 회사 중 보안 성숙도가 가장 높은 회사 중 하나죠. 그래도 나쁜 코드는 그들의 이름으로 출고됐어요.

그러니 피할 수 없는 결론이 하나 있어요. Red Hat도 여러분이 설치하는 것이 깨끗하다는 걸 보장하지 못한다면, 아무도 보장하지 못해요. 여러분의 프레임워크도, CI 벤더도, 한 번도 읽어 본 적 없는 세 단계 아래의 의존성도 마찬가지예요. 결국 여러분은 자기가 쓰지 않았고 완전히 검증할 수도 없었던 코드를 실행하게 돼요. 이건 프로세스의 실패가 아니에요. 다른 사람이 만든 소프트웨어 위에 만드는 일이라는 게 원래 그런 거예요.

계속 스캔하고, 계속 버전을 고정하고, 계속 검증하세요. 전부 할 가치가 있어요. 다만 그걸 기대지는 마세요. 이번 주에는 어느 것도 도움이 되지 않았을 테니까요. 악성코드는 이미 신뢰된 상태로 도착했어요. 진짜 질문은 나쁜 코드를 어떻게 막느냐가 아니에요. 이겁니다. 나쁜 코드가 여러분의 기계에서 실행될 때, 비밀을 지켜 뒀는가?

대부분에게 솔직한 대답은 아니오예요. 이 공격이 가져간 것을 보세요. 환경 변수, 파일에 들어 있던 토큰, 그리고 나서 클라우드 비밀 관리자에게 다가가 내용물을 내놓으라고 요구했어요. 2026년에 자격 증명이 놓여 있는 방식이 이래요. 한곳에 쌓여 있고, 마침 실행 중인 무엇에든 닿기 쉬운 거리에 있어요. 설치가 한 번 잘못되면 비밀 하나가 아니라 전부를 잃어요. 그리고 확산해요.

해결책은 자격 증명을 코드가 낚아채는 자리에 두지 않는 거예요. 팔 길이만큼 거리를 두세요.

Clavitor가 작동하는 방식의 기본 아이디어가 바로 이거예요. 여러분의 비밀은 환경에 살지 않아요. .env 파일 안에서 읽히기를 기다리는 건 아무것도 없어요. 프로그램 — 또는 AI 에이전트 — 는 자격 증명 그 자체를 들고 있지 않아요. 사용할 수 있는 권한만 받아요. 필요한 순간 새로 받아오고, 저장하지 않고 캐시하지 않으며, 6개 대륙에 걸친 21개의 거점 중 한 곳에서 오기 때문에 가장 가까운 사본은 항상 밀리초 거리에 있어요. 부여받은 그 하나의 비밀에만 범위가 한정되고, 모든 접근은 기록돼요. 악성 설치 스크립트가 키를 더듬어 찾아도 빈 방만 발견해요.

그리고 자격 증명은 언젠가 결국 들킨다는 전제를 두기 때문에, 에이전트가 들고 있는 것은 털려도 거의 쓸모가 없어요. 발급된 기계에서만 작동해요. 가져가서 공격자 자신의 서버에서 돌리면 거부돼요. 속도 제한이 걸려 있고 감시도 돼요. 분당 몇 개의 비밀만 가능해서 금고를 쓸어 담을 수 없고, 평소의 몇 개를 넘는 순간 경보가 울리며 잠겨요. 웜의 전략 전부 — 빠르게 전부 가져가서 어디서나 쓴다 — 는 벽에 부딪혀요.

면역을 약속하지는 않아요. 악성코드가 실행되는 그 순간 사용 중이던 자격 증명은 잡힐 수 있어요. 어떤 설계도 물리학을 되돌리지는 못하죠. 하지만 요점은 그거예요. Red Hat 공격이 무서웠던 이유는 설치 한 번으로 비밀 저장소 전체를 비우고 그것을 무기화할 수 있었기 때문이에요. 팔 길이의 거리, 그리고 한 기계에 고정되고 흐름이 가늘게 조절되는 자격 증명은 "전부를 가져가고 확산했다"를 "지나가던 키 하나를 잡았을 수 있고, 그건 어디에서도 작동하지 않았다"로 바꿔요. 재앙과 각주 사이의 거리가 바로 이거예요.

이 악성코드에는 Red Hat의 서명이 붙어 있었어요. 검증으로는 이길 수 없어요. 코드는 들어온다고 전제하세요. 그리고 들어왔을 때 비밀이 거기서 기다리고 있지 않도록 만드세요.

(공개적으로는 "Miasma"로 추적되고 있으며, 스스로 퍼지는 npm 웜 계열인 Shai-Hulud의 변종이에요. 기술 분석글은 읽어볼 만한 가치가 있어요. 이 글은 다음 공격이 올 때도 변하지 않는 부분에 대한 이야기예요.)

출처: