figma

에이전트를 활용해 Figma의 내부 시스템을 보호하는 방법 | Figma 블로그 (새 탭에서 열림)

Figma는 SIEM 경보 대응에 AI 에이전트를 도입해 과거 조사 기록 검색, 포렌식 분석, 보안 데이터 질의, 코드 수정과 PR 생성까지 자동화했다. 그 결과 경보의 해결까지 걸리는 시간을 71% 줄였으며, 온콜 엔지니어의 업무를 단순한 정보 수집에서 판단과 검토 중심으로 바꾸었다. 핵심은 기존 업무 흐름을 유지하면서 경보와 조사 지식을 지속적으로 축적·검색하는 시스템을 구축한 것이다.

보안 경보 대응의 병목

  • Figma의 SIEM인 Panther는 클라우드 인프라, 엔드포인트, SaaS, ID 시스템을 점검한다.
  • 문제가 감지되면 Slack에 경보를 게시하고 Asana 티켓을 생성한다.
  • 기존 온콜 엔지니어는 다음 정보를 수동으로 모아야 했다.
    • 같은 경보가 과거에 발생했는지
    • 이전 조사에서 어떤 결론을 내렸는지
    • 관련된 Slack 대화가 있는지
    • 문제를 해결할 예정인 PR이 존재하는지
  • 클라우드 환경과 개발 도구가 빠르게 변하면서 경보의 유형과 대응 방법도 계속 바뀌었다.
  • 따라서 단순히 경보를 분류하거나 중복 제거하는 것만으로는 업무 부담을 충분히 줄일 수 없었다.

검색 시스템에서 에이전트 시스템으로의 확장

  • 초기 목표는 새 경보가 발생했을 때 과거 온콜 엔지니어의 판단과 대응 기록을 찾아주는 retrieval layer를 만드는 것이었다.
  • 이후 시스템은 다음 기능을 수행하는 에이전트 구조로 확장됐다.
    • 경보 조사
    • 보안 데이터 레이크와 감사 로그 질의
    • 관련 코드 변경 작성
    • PR 생성
    • 과거 조사 결과를 기억하고 다음 대응에 활용
  • Figma는 코드베이스에서도 에이전트를 활용해 Okta와 AWS 같은 민감한 도구의 설정 변경을 점검하고 있었다.
  • 그러나 SIEM이 발견하는 광범위한 운영·인프라 문제까지 다루기 위해서는 코드 분석을 넘어선 별도의 시스템이 필요했다.

RAG 계층: 경보에 기억을 부여하기

  • Figma는 AWS Bedrock Knowledge Bases와 Amazon Kendra를 이용해 검색 증강 생성(RAG) 기반의 경보 분류 시스템을 구축했다.
  • Panther 경보가 발생하면 Lambda 핸들러가 원본 payload를 표준화된 문서로 변환해 Kendra에 색인한다.
  • 다음과 같은 구조화된 정보를 추출해 검색 속성으로 저장한다.
    • p_any_ip_addresses에서 추출한 IP 주소
    • p_any_usernames 및 공급자별 사용자 필드의 행위자 정보
    • ARN에서 추출한 AWS 계정 ID
    • 경보 제목, 심각도, 태그, 생성 시각
    • 경보 유형, 상태, 조사 맥락의 존재 여부
  • 예시 속성에는 alert_id, alert_type, severity, status, created_at, has_investigation_context가 포함된다.

의미 검색과 최신성 반영

  • 새로운 유사 경보가 발생하면 경보 제목을 주요 검색 벡터로 사용해 Bedrock에 의미 검색을 요청한다.
  • 검색 질의에는 조사 맥락이 있는 기록만 우선하도록 다음 조건을 추가한다.
{경보 제목}

has_investigation_context=1
  • 경보 제목은 일반적으로 탐지 규칙 이름과 행위자 사용자 이름으로 구성된다.
  • 단순히 가장 유사한 기록을 찾는 것보다 최근 기록을 우선하도록 검색 결과를 편향시켰다.
  • 대응 절차와 환경이 계속 변하기 때문에, 6개월 전의 정확히 같은 경보보다 이틀 전에 발생한 유사 경보가 실무적으로 더 유용할 수 있다.
  • 이를 통해 검색 결과가 현재의 운영 방식과 최신 조사 관행을 더 잘 반영하게 된다.

Slack 조사 기록의 자동 축적

  • investigation_context는 온콜 엔지니어가 Slack 경보 스레드에 남긴 조사 결과와 판단을 의미한다.
  • 조사 내용이 없는 종료 경보는 단순히 “닫혔다”는 사실만 제공하므로 재사용 가치가 낮다.
  • Figma는 엔지니어가 기존처럼 Slack이나 Asana에 댓글을 남기기만 해도 해당 내용을 자동으로 원래 경보 문서에 추가한다.
  • 기존 문서의 조사 맥락 배열에 새 댓글을 추가하고, has_investigation_context 값을 1로 변경한 뒤 문서를 재색인한다.
  • 결과적으로 유용한 댓글 하나가 이후 발생하는 모든 유사 경보의 조사 비용을 낮춘다.
  • 별도의 annotation 도구나 새로운 수동 입력 절차를 요구하지 않고 기존 업무 흐름에서 지식이 축적된다는 점이 중요하다.

실용적인 적용 방향

  • 처음부터 완전한 자율 에이전트를 만들기보다, 과거 대응 기록을 검색하는 좁은 문제부터 시작하는 것이 현실적이다.
  • 경보 데이터는 검색 가능한 구조화 필드와 사람이 작성한 조사 맥락을 함께 저장해야 한다.
  • 최신 대응 기록과 조사 내용이 있는 기록을 우선하는 검색 전략이 필요하다.
  • 별도의 문서화 작업을 추가하기보다 Slack·티켓 시스템의 기존 댓글을 자동으로 지식화하는 방식이 도입 장벽을 낮춘다.
  • AI가 분석과 코드 변경을 수행하더라도 PR 검토와 최종 판단은 보안 엔지니어가 맡는 구조가 효과적이다.