수 시간에 걸친 에이전트 세션이 공격 네트워크 작전 추적이라는 목표에서 벗어나지 않도록 Outtake가 관리하는 방법
스타트업의 Claude 활용법 시리즈, 스타트업은 어떻게 Claude로 만드는가에서는 AI로 업계의 판도를 바꾸는 스타트업들을 소개합니다. 이번 아티클에서는 Outtake가 어떻게 클론 로그인 페이지부터 적대적 네트워크 전체까지, 디지털 위협을 탐지하고 수사하여 무력화하는 자율 사이버 수사관을 만들었는지 살펴봅니다.
강력한 안전장치와 통제 수단이 갖춰져 있더라도, 악의적인 공격자들은 AI를 겉으로는 무해해 보이는 용도에 활용함으로써 실제 의도를 감출 수 있다. 코드 생성 플랫폼은 그럴듯한 로그인 포털을 만들어내고, 에이전틱 고투마켓 도구는 피싱 공격 유포에 활용되며, 이미지 생성 기능은 신원을 도용하는 데 쓰인다. 기존 사이버보안 방어 체계로는 이 속도를 따라잡기가 점점 어려워지고 있다.
AI 사이버보안 플랫폼 Outtake의 창업자 겸 CEO인 Alex Dhillon은 이렇게 말한다. "공격자 입장에서 보면 지금은 공격을 감행하기에 정말 좋은 시대입니다. AI 덕분에 평균적인 공격은 더 빠르게 실행될 뿐 아니라, 더 깊은 곳까지 침투할 수 있게 됐거든요."
Outtake는 디지털 신뢰 공격 체인(digital trust attack chain) 전반을 단일 방어 체계로 통합한다. AI 에이전트 군단을 활용해 고객사를 겨냥한 위협을 자율적으로 탐지, 수사, 무력화하는 방식으로, 고객사에는 주요 AI 연구소, 대형 헤지펀드, 미국 연방기관 등이 포함된다.
이 글에서는 Outtake 팀이 Claude Code와 Agent SDK를 활용해 Claude 기반의 장시간 자율 사이버 수사관, Recon Agent를 구축한 과정을 소개한다.
공격자들이 기업을 타깃으로 삼을 때는 대개 동일한 순서를 따른다. 공개 정보 무기화 → 사칭 미끼 제작 → 내부 시스템 침투. AI는 이 과정을 한층 빠르게 만들었다.
침투를 시작하기 전, 공격자들은 조직과 그 임직원에 관한 공개 정보를 먼저 수집한다.
그렇게 확보한 정보를 미끼로 가공하는데, 대표적인 예가 가짜 로그인 페이지가 포함된 위조 웹사이트다. 피해자가 자격증명을 입력하도록 유도하고, 그렇게 얻은 접근 권한을 발판 삼아 조직 내부로 침투해 가장 민감하고 중요한 자산에 접근한다.
이 세 단계는 예측 가능한 패턴이지만, 기존 보안 도구들은 각 단계를 따로따로만 방어한다.
Outtake의 Recon Agent는 사칭 사건 배후의 전체 네트워크를 추적한다. 예를 들어 클론 로그인 페이지 하나를 단순히 차단하는 데 그치지 않고, 해당 사칭 이벤트에서 증거를 수집하고 분류한다.
그런 다음 '고객 지원'을 자처하는 가짜 텔레그램 계정처럼 연결된 인프라로 단서를 추적하며, 이 적대적 네트워크 전체를 그래프로 매핑한다. 에이전트는 수사 과정, 위협 행위자 프로파일, 공격자 행적을 재구성한 타임라인이 담긴 보고서를 최종 결과물로 제출한다.
이처럼 정교한 워크플로를 수행하기 위해 Recon Agent는 코드를 읽고, 쓰고, 실행할 수 있다. 악성 로그인 페이지에 직접 접근해 탈취된 자격증명이 실제로 어디로 흘러가는지 추적하는 것도 가능하다.
이러한 수사는 에이전트가 장시간 자율 실행되어야 하는 경우가 많다. 에이전트 세션의 중간값 실행 시간은 16분이지만, 1시간을 훌쩍 넘기는 일도 빈번하다. 지금까지 가장 길었던 세션은 결과를 반환하기까지 무려 두 시간 동안 에이전틱 작업을 이어갔다.
Outtake는 Recon Agent를 크게 네 단계에 걸쳐 구축했다. 각 단계의 핵심은 좋은 수사란 어떤 모습인지를 먼저 정의하고, 그 판단을 점진적으로 에이전트에 위임하는 것이었다.

에이전트 개발에 앞서, Outtake의 엔지니어들은 직접 실제 사이버 수사를 수행하며 고객사와 디자인 파트너로부터 도메인 전문 지식을 흡수했다.
목표는 '좋은 수사'의 기준을 정립하는 것이었다. 이런 유형의 수사에서 그 기준은 어떤 증거가 중요한지, 어떻게 구조화할지, 실행 가능한 결론과 단순한 추측을 가르는 기준이 무엇인지를 명확히 하는 것을 의미했다. 이렇게 세운 기준은 이후 모든 단계에서 변하지 않는 참조점이 되었다.
Outtake 에이전트 플랫폼 엔지니어링 리드 Jack Hayford는 이렇게 말했다. "'좋은 결과'가 어떤 모습인지, 에이전트가 무엇을 해야 하는지를 정확히 이해하는 것이 장시간 에이전트를 구축할 때 가장 중요한 핵심입니다. 결국 그 기준을 에이전트가 매번 달성할 수 있도록 만드는 것이 전부니까요."
처음에 Outtake 팀은 기존 에이전트 프레임워크를 활용해 표준화하던 수사 과정을 단계적으로 자동화해나갔다.
하지만 곧 Recon Agent가 단순한 수사 도구에 그쳐서는 안 된다는 사실을 깨달았다. 코드를 직접 작성하고 실행하며, 즉석에서 도구를 만들고, 악성 도메인과 실제로 상호작용할 수 있어야 했다.
"수사마다 상황이 다르고 기술적 깊이도 제각각입니다," Hayford가 말했다. "에이전트에게는 코딩 역량과 실행력이 필요했는데, Claude Code는 이런 가정을 검증하고 본격적으로 실험을 확장해나가기에 최적의 출발점이었습니다."
Claude Code로 프로토타이핑하는 과정에서 팀의 핵심 설계 원칙이 자리를 잡았다. 오케스트레이션 수준에서는 에이전트를 단단히 제약하되('도메인 수사 시 X, Y, Z는 반드시 수행할 것'), 판단이 필요한 영역에서는 에이전트가 자유롭게 임기응변할 수 있도록 열어두는 것이다.
"Claude Code가 제시한 패턴들이 마음에 들었지만, 더 낮은 수준의 기본 요소들에 직접 접근할 수 있어야 했습니다. 그걸 직접 구현할 생각은 없었고요," Hayford가 말했다.
Claude Agent SDK는 Recon Agent를 프로덕션으로 전환하는 자연스러운 다음 단계였다. Claude Code에서 쌓은 기술과 패턴을 그대로 가져올 수 있었기 때문에, 팀은 개발 속도를 잃지 않으면서도 Recon Agent의 메모리, 컨텍스트, 파일 시스템에 대한 세밀한 제어권을 확보했다. 에이전트 루프와 세션 처리를 처음부터 다시 만들 필요도 없었다.
사이버보안 분야에서는 방어 도구의 존재가 알려지는 순간 공격자들이 즉각 전략을 바꾸기 때문에, 빠르고 저렴하게 반복할 수 있는 역량이 특히 중요하다. 팀은 처음부터 에이전트 평가를 개발 과정에 통합했고, 여러 시나리오를 동시에 실행할 수 있는 탄탄한 평가 체계를 구축했다. 덕분에 모델 업그레이드나 메모리 시스템 전면 리팩터링 같은 대규모 변경도 안전하고 확신 있게 진행할 수 있었다.
이 체계는 팀이 에이전틱 루프에서 스스로를 분리하는 것도 가능하게 했다. 예를 들어 Recon Agent가 수사를 마치고 "특정 도구가 있었다면 더 잘할 수 있었을 것"이라는 피드백을 보고하면, 별도의 코딩 에이전트가 그 제안을 읽고 새 도구를 작성한 뒤 테스트 시나리오를 만들어 검증한다.
사람이 개입하는 것은 맨 마지막 단계뿐이다. 그 도구를 사용했을 때 에이전트가 수사를 더 잘 수행했는지 결과를 확인하는 것이다. "우리 자신이 병목이 됩니다. 길고 복잡한 에이전트를 구축할 때 피드백 루프를 자동화하는 것이 매우 중요한 이유입니다. 개발 속도가 훨씬 빨라질 뿐 아니라, 개발자로서 훨씬 보람을 느낄 수 있습니다," Hayford가 말했다.
에이전트 개발 초창기에는 이탈을 막기 위해 하드코딩된 결정론적 단계별 경로로 에이전트 행동을 미리 스크립팅했다. 이제는 그런 정교한 워크플로 대신 하네스(harness)가 그 자리를 대신한다. 메모리, 도구, 기술, 가드레일로 이루어진 지원 환경이다.
Recon Agent 구축 경험에서 Outtake 팀이 정리한 주요 교훈을 소개한다.
파일 시스템은 컨텍스트 압축(compaction) 이후에도 유지되는 메모리를 가능하게 한다. 에이전트에게는 보통 특정하고 세분화된 도구를 제공하지만, 파일 시스템과 함께 코드를 읽고, 쓰고, 실행할 수 있는 능력을 함께 부여하면 에이전트가 장애물에 훨씬 유연하게 대응할 수 있다.
"이처럼 강력하고 개방형인 도구와 역량을 에이전트에게 쥐여주는 것은 엄청난 도약입니다. 네트워크 오류 같은 이유로 도구가 실패했을 때 에이전트가 알아서 적절한 우회 방법을 찾아 계속 진행하는 경우를 수도 없이 목격했습니다," Hayford가 말했다. "우리가 구축한 하네스가 충분히 탄탄했고, 에이전트가 이 강력하고 개방형인 도구들로 임기응변할 여지를 남겨두었기 때문에, 결국 성공적인 결과에 도달할 수 있었습니다."
프롬프트는 필요할 때 유연성을 제공하지만, 가능한 한 하드코딩하는 것이 안정성을 보장한다. "장시간 실행되면서 점점 복잡해지는 에이전트를 만들다 보면, 프롬프트는 어디까지나 제안에 불과하다는 사실을 깨닫게 됩니다," Hayford가 말했다. "에이전트가 원하는 대로 동작하지 않을 때 자연스러운 반응은 에이전트에서 가장 유연한 부분, 즉 프롬프트에 무언가를 추가하는 것입니다. '상황 X가 발생하면 반드시 Y를 수행할 것'이라고 시스템 프롬프트에 슬쩍 넣으면 처음에는 효과가 있을 수 있지만, 에이전트가 더 오래 실행될수록 그 프롬프트의 모든 단어는 결국 무시됩니다."
올바른 접근법은 이런 특성을 전제로 설계하는 것이다. 에이전트가 매번 반드시 수행해야 하는 동작을 파악하고, 그것을 에이전트 가드레일의 일부로 만들어야 한다. "그런 것들을 프롬프트에서 꺼내 하네스에 넣으세요," 그가 덧붙였다. "그러면 에이전트는 그것을 더 이상 신경 쓸 필요가 없고, 정말 잘할 수 있는 영역에 더 많은 컨텍스트와 주의를 집중할 수 있습니다."
Claude를 제어하는 모범 사례와 각 방법의 컨텍스트 비용 및 권한에 대해 더 자세히 알아보세요.
수동 '리플렉션(reflection)'을 로드맵 삼아 개발 주기를 단축하는 자동화된 평가로 발전시켜라. 평가는 신뢰성을 위한 품질 게이트라는 것이 통념이다. 하지만 장시간 에이전트에서 평가의 더 큰 가치는 바로 속도에 있다.
초기에는 Recon Agent가 실행될 때마다 팀이 수동으로 성능을 검토했다. 하지만 에이전트가 30분간 수행한 모든 작업 기록을 일일이 읽는 것은 너무 힘들고 확장하기도 어렵다.
"현대 에이전트 개발에서 결과물 평가는 루프에서 가장 비용이 많이 드는 단계입니다," Jack이 말했다.
평가란 결국 그 리플렉션을 구조화하고, 점수를 매기고, 자동화할 수 있도록 만든 것이다. 좋은 결과의 기준을 반복 가능한 점검 항목으로 정의해두면, 에이전트를 심판 자리에 앉혀 30분짜리 실행 기록을 읽고 점수를 매기도록 할 수 있다.
"평가 구축을 부담스럽게 느끼는 엔지니어들이 있는데, 완벽한 케이스를 만들어야 한다는 강박 때문인 것 같습니다," Jack이 말했다. "얼마나 공식적이거나 '완벽한'지와 무관하게, 처음부터 어떤 형태로든 평가를 만들어두면 에이전트를 더 빠르게 개발할 수 있습니다."
프롬프트 인젝션(Prompt injection)은 실질적인 위협이므로, 에이전트를 샌드박스에 배치하거나 방어 장치를 마련하는 것이 필수다. Outtake 팀이 Claude를 선택한 이유 중 하나도 프롬프트 인젝션에 대한 강인한 내성 때문이었다.
"Recon Agent를 구축할 때 보안은 핵심 과제였습니다," Hayford가 말했다. "에이전트에게 파일 시스템과 bash를 주고 적대적인 환경으로 보내는 만큼, 내부 민감 정보로의 접근을 차단하면서도 에이전트의 능력을 저해하지 않는 일종의 폭발 차단 환경(blastbox)을 만드는 것이 가장 중요한 문제였습니다."
Outtake의 접근 방식은 에이전트가 탈취될 수 있다는 가정을 전제로, 그 피해를 봉쇄하도록 주변 시스템을 설계하는 것이다. 다만 보안의 형태는 에이전트의 목적에 따라 달라지며, 모든 에이전트가 폭발 차단 환경이 필요한 것은 아니다.
Outtake는 현재 에이전트가 인터넷에 접근하는 바로 그 시점에 신뢰 수준을 점수화하는 방식을 도입하고 있다. 에이전트가 접촉하려는 대상을 평가하는 체크포인트를 구현하는 것이다. '이 페이지가 사칭인가? 악성코드인가? 지금 에이전트에게 프롬프트 인젝션을 시도하고 있는가?' 점점 더 적대적인 환경이 되어가는 인터넷을 에이전트들이 탐색하는 데 필요한 방어 수단이 바로 이것일지도 모른다.
Recon Agent는 현재 실제 수사를 진행 중이다. Outtake가 어떻게 Claude를 활용해 대규모로 적대적 인프라를 매핑하는지 더 깊이 알고 싶다면: