
비즈니스 로직을 탐색하는 공격자를 탐지하기 위해 현실적인 미끼 경로와 허니 필드를 API에 포함시켜 정찰을 실행 가능한 보안 텔레메트리로 변환하는 오픈소스 프레임워크.
trappsec은 개발자가 API 비즈니스 로직을 탐지하는 공격자를 식별할 수 있도록 도와주는 오픈소스 프레임워크입니다. 실제 API 구조와 구분하기 어려운 현실적인 유인 경로와 허니 필드를 내장함으로써, 공격자가 인증을 거치도록 유도하여 정찰 행위를 실행 가능한 보안 원격 분석 데이터로 전환합니다.
실제로 보안 알림을 확인하는 1%의 사람들을 위해 만들어졌으며, 그리고 단지 알림이 있다는 사실 자체를 좋아하는 99%의 사람들을 위해서도 만들어졌습니다.

유인 경로 (Decoy Routes): 실제 로직 외부에 존재하지만 정식 엔드포인트처럼 보이는 "유령" 엔드포인트입니다. 클라이언트 측 코드에 가짜 참조를 심어 공격자가 이 함정에 걸리도록 유도할 수 있으며, 인증 상태에 따라 적응하는 사용자 정의 정적 또는 동적 응답을 통해 공격자의 행동을 모니터링할 수 있습니다.
허니 필드 (Honey Fields): 실제 API 엔드포인트 내에 포함된 비기능적 매개변수로, 보이지 않는 연결 지뢰 역할을 합니다. 정적 값을 가진 숨겨진 양식 필드로 포함하거나, GET 응답에 나타나는 기존 "읽기 전용" 속성을 활용하여 공격자가 POST 또는 PUT 요청을 통해 이를 수정하려고 할 때 경고를 트리거하는 허니 필드로 사용할 수 있습니다.
신원 속성 연결 (Identity Attribution): 프레임워크 훅을 통해 요청을 인증된 사용자 신원에 연결할 수 있습니다. 또한 함정을 특정 의도 (권한 상승, 정찰 등)에 매핑할 수 있습니다. 이를 통해 보안 팀이 신속하고 효과적으로 대응할 수 있는 높은 정확도의 알림을 얻을 수 있습니다.
인증 요구: 대부분 무해하지만 점점 더 많은 사람과 스캐너(주로 스캐너)가 건드려서는 안 될 것을 건드리는 인터넷에서 노이즈에 묻히지 않도록 하려면, 인증되지 않은 템플릿 응답(예: 401, Unauthorized)을 사용하여 인증을 통해 탐색하도록 유도하십시오.
주변에 녹아들기: 함정은 API의 정상적인 부분처럼 보여야 합니다. 좋은 함정은 평범하고, 표준적이며, 아마도 지루한 API의 일부처럼 보여야 합니다. "너무 좋아서 믿기 어렵다"고 느껴지면 공격자는 무시할 것입니다. 비즈니스 로직을 이해하거나 조작하려는 사람들을 잡기 위해 함정을 설계하십시오.
trappsec은 기존 워크플로우에 직접 통합될 수 있습니다. 이벤트는 기본적으로 표준 로깅 핸들러에 기록되지만, 관찰 가능성을 위해 OpenTelemetry에 통합하거나 자동화된 대응을 트리거하거나 보안 팀에 알리기 위해 Webhooks에 통합하도록 구성할 수도 있습니다.
원하는 프레임워크가 없나요? 여기에서 요청해주세요.
커뮤니티 지원은 GitHub 이슈 및 토론을 통해 제공됩니다. 상업적 지원이나 서비스가 필요하시면 [email protected]로 이메일을 보내주십시오.
| 언어 | 프레임워크 |
|---|
| Python | Flask |
| FastAPI | |
| Starlette | |
| Litestar | |
| Django | |
| Sanic | |
| Tornado | |
| Node.js | Express |
| NestJS | |
| Fastify | |
| Hapi | |
| Koa | |
| Go | net/http |
| Gin | |
| Echo |