Ryzek가 존재하는 이유
누구도 검증 체계를 세우기 전에 에이전트 스킬은 이미 공급망이 되어 있었습니다.
약 1년 만에 스킬과 MCP 서버는 신기한 볼거리에서 사람들이 내용을 읽지 않고 링크로 설치하는 것으로 바뀌었습니다. 이 변화에는 검토 절차가 함께 따라오지 않았습니다.
문제를 있는 그대로 말하면
에이전트 스킬은 AI 에이전트에게 무언가를 하는 방법을 알려주는 파일 모음입니다. MCP 서버는 에이전트에게 새로운 도구를 제공합니다. 둘 다 에이전트가 접근할 수 있는 모든 것 — 파일, 네트워크, 때로는 자격 증명까지 — 을 가지고 실행됩니다.
사람들은 패키지를 추가하듯 이것들을 추가합니다. 누군가 공유한 링크에서, 내용을 읽지 않고 빠르게 말입니다. 패키지가 코드만 실행할 수 있던 시절에는 그래도 괜찮았습니다. 하지만 설치하는 대상이 사람이 보지 못하는 텍스트로 에이전트에게 지시를 내릴 수도 있다면 이야기는 달라집니다.
패키지는 코드를 실행할 수 있습니다. 스킬은 에이전트가 무엇을 요청받았다고 믿는지를 바꿀 수 있습니다.
그 차이가 바로 Ryzek가 존재하는 이유입니다. 기존 보안 스캐닝은 코드가 위험한 행동을 하는지를 묻습니다. 에이전트 스킬에는 두 번째 질문이 필요합니다. 이 안의 무언가가 저에게가 아니라 모델에게 말을 걸고 있지는 않은가?
만드는 사람들
Ryzek는 오직 이 일에만 집중하는 작고 독립적인 팀이 만들고 있습니다. 이는 장점이자 단점이며, 밝혀 둘 가치가 있습니다.
유리한 점: 새로운 기법이 공개된 그 주에 새로운 규칙을 배포할 수 있습니다. 모든 규칙은 비교표를 채우기 위해서가 아니라, 작성할 가치가 있었기 때문에 존재합니다.
약점: 이 뒤에는 대규모 지원 조직이 없고, 표준 요금제에는 공식 SLA도 없습니다. Ryzek를 대규모 투자를 받은 업체와 비교하고 있다면 이 점을 솔직하게 저울질해 보세요.
만들어지는 방식
모든 탐지 결과는 근거를 밝힙니다. 모든 결과에는 신뢰도 점수와 평이한 언어로 된 이유가 함께 제공되어, 약한 신호가 확인된 공격처럼 읽히는 일이 없습니다. 잘못된 경보를 무시하는 법을 배운 사람은 진짜 경보도 무시하게 됩니다.
파일은 보관되지 않습니다. 업로드된 파일은 메모리에서 스캔된 뒤 폐기됩니다. 저장되는 것은 스캔 횟수와 변경 감지를 위한 도구 지문뿐이며, 내용은 결코 저장되지 않습니다.
탐지 기능에는 유료 장벽이 없습니다. 모든 규칙이 무료 요금제에서 실행됩니다. 유료 요금제는 사용량과 자동화에 관한 것입니다.
어디서 멈추는지 밝힙니다. 모든 것을 잡아낸다고 주장하는 스캐너는 기준을 맞춰 판단할 수 없는 스캐너입니다.
가상의 이야기가 아닙니다
아래의 모든 사례는 공개적으로 문서화되어 있습니다. 각 사례에서 정직한 질문은 "Ryzek가 이것을 막았을까"가 아니라 이 중 어느 부분을 Ryzek가 볼 수 있고, 어느 부분을 볼 수 없는가입니다.
MCP 설정 파일 속 시크릿
GitGuardian의 2026년 State of Secrets Sprawl 보고서는 공개 GitHub의 MCP 관련 설정 파일에서 24,008건의 고유한 시크릿을 발견했으며, 그중 2,117건은 여전히 유효했습니다.
Ryzek가 하는 일: 이것이 바로 mcp-credential-in-config가 잡아내는 사례입니다. 설정 값 안의 실제 시크릿을 표시하고 ${VAR} 참조는 무시하므로, 이미 올바르게 처리된 설정은 조용히 통과합니다.
postmark-mcp 백도어
2025년 9월, Koi Security는 postmark-mcp라는 npm 패키지가 — 공식 Postmark 연동처럼 보이도록 만들어졌지만 실제로는 Postmark와 무관한 — 버전 1.0.16에서 모든 발신 이메일을 공격자에게 BCC로 전달하는 한 줄을 추가했다는 사실을 발견했습니다. 제거되기 전까지 1,643회 다운로드되었고, Koi는 하루 3,000건에서 15,000건의 이메일이 복사되고 있었던 것으로 추정했습니다.
Ryzek가 하는 일: 대부분 아무것도 없으며, 이 점을 분명히 말씀드리는 것이 중요합니다. 이 백도어는 패키지 내부의 자바스크립트 한 줄이었고, Ryzek는 에이전트가 불러오는 스킬, 설정, 매니페스트를 읽을 뿐 모든 의존성의 소스 코드를 읽지는 않습니다. 서버의 도구 정의가 바뀌었다면 변경 감지가 이를 표시했겠지만, 이 경우는 그럴 필요가 없었습니다.
STDIO 설정 결함
2026년 4월, OX Security는 Python, TypeScript, Java, Rust용 MCP 공식 SDK가 STDIO 설정을 명령 실행에 그대로 전달한다는 사실을 공개했습니다. 이 연구는 LiteLLM, Agent Zero, DocsGPT, Windsurf를 포함한 여러 프로젝트의 CVE로 이어졌습니다. Anthropic은 이를 의도된 동작이라고 설명하며 프로토콜 변경을 거부했고, 따라서 수정 책임은 각 다운스트림 개발자에게 있습니다.
Ryzek가 하는 일: mcp-stdio-injection-surface는 설정이 이 패턴에 해당하는지 확인하고, 모든 STDIO 서버에 일괄적으로 표시를 붙이는 대신 실제 인젝션 경로가 존재하는지에 따라 등급을 매깁니다. mcp-known-vulnerable-version는 고정 릴리스 이하로 버전이 고정된 LiteLLM을 표시합니다.
오염된 스킬 마켓플레이스
Snyk의 2026년 2월 감사에서는 공개된 에이전트 스킬 3,984개 중 13.4%가 최소 하나의 심각한 문제를 안고 있었고, 악성 페이로드 76건이 확인되었습니다. 같은 달, ClawHavoc 캠페인은 ClawHub에 최소 1,184개의 악성 스킬을 올렸으며, 그중 다수는 사용자에게 사실은 악성코드인 "도우미 도구"를 설치하라고 유도했습니다.
Ryzek가 하는 일: "이것을 다운로드해서 실행하라"는 지시는 untrusted-external-install가 찾아내는 것이고, 문서 안에 숨겨진 명령은 concealed-instruction가 찾아내는 것입니다. 설득력 있는 게시자 프로필은 어떤 스캐너도 평가할 수 없는 영역입니다.
출처: Snyk, 2026년 2월 · Antiy Labs, 2026년 2월
트로이 목마화된 Oura 서버
2026년 2월, 공격자들은 실제 Oura Ring MCP 서버를 복제하고 가짜 GitHub 계정과 포크로 신뢰도가 있어 보이게 만든 뒤, StealC 인포스틸러를 설치하는 트로이 목마 버전을 MCP 레지스트리에 게시했습니다.
Ryzek가 하는 일: 부분적으로 합니다. 스킬의 설정과 번들된 스크립트가 무엇을 하는지는 읽지만, 누가 게시했는지는 읽지 않습니다. 따라서 해당 파일 안의 자격 증명 읽기와 외부 전송은 프로젝트가 아무리 그럴듯해 보여도 관련 규칙에 걸립니다. 다만 유지관리자가 가짜인지는 알려줄 수 없습니다.
Asana의 조직 간 데이터 유출
Asana는 2025년 5월 1일 MCP 서버를 출시했습니다. 6월 4일, 이 기능을 사용하는 다른 조직에 일부 고객 데이터가 노출될 수 있는 버그를 발견했고, 수정을 위해 서버를 오프라인으로 전환했습니다.
Ryzek가 하는 일: 아무것도 없습니다. 이는 다른 회사가 운영하는 호스팅 서비스 내부의 버그였고, 여러분의 파일을 스캔하는 어떤 스캐너도 볼 수 없는 영역입니다. 이런 상황에서 피해를 제한하는 것은 각 연결된 에이전트가 가진 접근 권한의 범위이며, Ryzek는 도구에 필요한 것보다 넓은 권한을 실제로 표시해 줍니다.
Ryzek가 멈추는 지점
도구가 정확히 어디서 멈추는지 아는 것이 나머지를 쓸모 있게 만듭니다. Ryzek는 정적 스캐너입니다. 파일을 읽을 뿐 실행하지 않습니다.
- 실행 시점에만 나타나는 동작. 2026년 8월, Pillar Security는 클라이언트가 도구 호출을 세 번 마칠 때까지는 무해한 도구 메타데이터를 반환하다가 그 이후 전환되는 MCP 서버를 보고했습니다. Ryzek는 파일 안의 내용을 볼 뿐이며, 실행 중에 바뀌는 서버는 런타임 모니터링이 필요합니다.
- 컴파일된 프로그램 내부.
opaque-payload는 스킬에 읽을 수 없는 바이너리가 포함되어 있음을 알려줍니다. 하지만 그 바이너리가 무엇을 하는지는 알 수 없습니다. - 의도적인 회피. 2026년 7월 연구에 따르면 악성 스킬은 대부분의 정적 스킬 스캐너를 통과하도록 다시 작성되거나 패킹될 수 있습니다. Ryzek는 문자열 재조합, 인코딩된 블롭 등 그중 일부 기법은 잡아내지만 전부는 아닙니다.
- 실행 중인 서버와 호스팅 서비스. Ryzek는 설정을 읽을 뿐, 실행 중인 서버가 반환하는 내용이나 연결한 서비스 내부의 버그는 읽지 않습니다.
- 평판. 정적 분석만으로는 게시자가 자신이 주장하는 대로의 존재인지 알 수 없습니다.
앞으로의 방향
지금: 웹 스캐너, 54개의 규칙, 변경 감지, 무료 요금제.
다음: 유료 요금제, 그리고 스킬이나 설정이 바뀔 때 자동으로 스캔이 실행되는 CI 연동.
탐구 중: 실행 중인 서버의 도구가 승인된 내용과 더 이상 일치하지 않을 때 이를 알아차리는 방법 — Deadbugz 캠페인이 악용한 바로 그 빈틈입니다.
지금 에이전트 보안 분야에서 벌어지고 있는 일과 그것이 Ryzek에 어떤 의미인지는 뉴스를 참고하세요.