MINES: Explainable Anomaly Detection through Web API Invariant Inference
본 논문은 LLM을 사용하여 데이터베이스 스키마로부터 API 불변량을 추론하고 런타임 검증 코드를 생성함으로써, 노이즈가 많은 로그 기반 방식의 한계를 극복하여 높은 재현율과 제로에 가까운 오탐률로 최첨단 성능을 달성하는 설명 가능한 이상 탐지 시스템인 MINES를 제안한다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
당신이 거대하고 분주한 오피스 빌딩(웹 애플리케션)의 보안 요원이라고 상상해 보십시오. 당신의 임무는 침입자나 부적절한 행동을 하는 사람을 찾아내는 것입니다.
대부분의 현대적인 보안 요원(기존 소프트웨어)은 그저 **로그북(기록부)**만을 감시합니다. 누군가 문을 통과하거나 엘리베이터를 이용할 때마다 기록부에 한 줄의 기록이 남습니다. 만약 보안 요원이 과거와 비교하여 이상한 패턴을 발견하면 경보를 울립니다.
문제점:
이 논문은 이러한 "로그북 전용" 접근 방식에 치명적인 결함이 있다고 설명합니다.
- "닮은꼴" 속임수: 범죄자는 문을 통해 들어온 뒤, 마치 정상적인 직원인 것처럼 로그북에 기록을 남길 수 있습니다. 로그에는 "오전 9:00에 존이 로비에 입장함"이라고 적힙니다. 하지만 실제로는 존이 훔친 키카드를 들고 있거나, 문이 강제로 열렸을 수도 있습니다. 로그북은 그 '강제성'을 보여주지 못하며, 단지 '결과'만을 보여줄 뿐입니다.
- 노이즈: 때때로 로그북은 지저분할 수 있습니다. 예를 들어, "존이 입장함"이라고 적혀 있지만, 존이 실제로 그 특정 방에 들어갈 권한(티켓)이 있었는지는 알려주지 않습니다. 보안 요원은 이 유사해 보이는 기록들 때문에 혼란을 겪으며 실제 위험을 놓치게 됩니다.
해결책: MINES
저자들은 MINES라는 새로운 시스템을 제안합니다. MINES는 단순히 로그북을 읽는 대신, 건물의 **설계도(Blueprints)**와 건물이 작동해야 하는 규칙을 살펴봅니다.
다음과 같이 생각해보십시오:
- 기존 방식 (로그 학습): 보안 요원은 "존은 보통 로비에 들어와서 3층으로 간다"라는 것을 배웁니다. 존이 로비에 들어와 3층으로 가면, 보안 요원은 "정상"이라고 판단합니다.
- MINES 방식 (설계도 추론): MINES는 설계도를 보고 이렇게 말합니다. "잠깐만, 건물 설계에 따르면, 당신이 '유료 티켓'을 주머니에 소지하고 있어야만 3층으로 갈 수 있으며, 그 티켓은 반드시 데이터베이스의 특정 좌석과 연결되어 있어야 한다."
MINES는 단순히 로그를 읽는 것이 아니라, 로그를 데이터베이스(누가 무엇을 소유하고 있는지에 대한 마스터 기록) 및 환경(실제로 로그인된 상태인지)과 대조하여 확인합니다.
MINES의 작동 방식 (3단계 프로세스):
- 설계도 번역: MINES는 기술적인 "설계도"(API 시그니처 및 데이터베이스 테이블)를 가져와 이를 거대하고 연결된 지도로 변환합니다. 모든 API 호출(예: "주문 취소")을 이야기 속의 등장인물로 취급하고, 모든 데이터베이스 테이블(예: "주문")을 하나의 장소로 취급합니다.
- AI 탐정에게 질문하기: 이는 스마트한 AI(대규모 언어 모델, LLM)를 사용하여 이 지도를 살펴보고 다음과 같이 질문합니다: "이 이야기가 성립하려면 무엇이 반드시 참이어야 하는가?"
- 예시: AI는 다음과 같이 추론할 수 있습니다: "'주문 취소' 이벤트가 실제가 되려면, 데이터베이스에 일치하는 '주문'이 반드시 존재해야 하며, 그 주문의 상태는 반드시 '결제 완료'여야 한다."
- 이것은 보안 요원이 과거의 로그를 바탕으로 추측하는 대신, 설계도를 확인하여 규칙이 타당한지 검증하는 것과 같습니다.
- 현실 검증: AI가 잘못된 추측(환각 현상)을 할 수도 있습니다. 따라서 MINES는 이 새로운 규칙들을 알려진 "정상" 로그 뭉치에 실행해 봅니다. 만약 어떤 규칙이 "존은 로비에 들어올 수 없다"라고 하는데 존이 정상적으로 로비에 들어왔다면, MINES는 그 규칙을 폐기합니다. 오직 100% 정확한 규칙만을 남깁니다.
결과:
공격(예: 누군가 티켓 환불을 두 번 시도하는 경우)이 발생했을 때, 기존의 보안 요원들(LogRobust, LogFormer)은 로그가 정상처럼 보이기 때문에 이를 놓칩니다. 하지만 MINES는 데이터베이스를 확인하고 이렇게 말합니다. "잠깐, 이 주문은 이미 환불되었습니다! 데이터베이스는 '취소됨' 상태인데, 로그는 '환불됨'이라고 되어 있습니다. 이는 설계도를 위반합니다!"
이것이 왜 중요한가:
- 더 똑똑합니다: 서류상으로는 완벽해 보이지만 실제로는 가짜인 공격을 잡아냅니다.
- 깔끔합니다: 지저분한 로그에 혼란을 느끼지 않습니다. 시스템의 규칙에 집중합니다.
- 빠릅s: 초당 수백만 개의 로그를 확인할 수 있습니다.
- 설명 가능합니다: 범죄자를 잡았을 때, 단순히 "이상함"이라고 말하는 대신 정확히 어떤 규칙이 깨졌는지(예: "데이터베이스 상태가 요청과 일치하지 않음") 지목할 수 있습니다.
요약하자면, MINES는 지저한 일기를 읽으며 무엇이 정상인지 추측하려 하지 않습니다. 대신, 애플리케이션의 물리 법칙을 학습하여, 설령 로그 속에 숨기려 하더라도 규칙을 어기는 자를 잡아냅니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.