피드로 돌아가기
I Built a SAST Scanner From Scratch — Here's Every Design Decision I Made
Dev.toDev.to
Security

Regex 기반 Rule Engine 설계를 통한 12개 언어 지원 SAST 스캐너 구현

I Built a SAST Scanner From Scratch — Here's Every Design Decision I Made

Patience Mpofu2026년 5월 3일9intermediate

Context

언어별 AST(Abstract Syntax Tree) 파서 도입 시 발생하는 높은 유지보수 비용과 복잡도 해결 필요. 다국어 지원과 빠른 도메인 학습을 위해 범용적인 정적 분석 구조 설계 요구.

Technical Solution

  • Language-agnostic 환경 구축을 위해 AST 대신 Regex 기반의 패턴 매칭 방식 채택
  • 탐지 로직과 엔진을 분리한 YAML-Driven Rule 아키텍처 설계를 통한 확장성 확보
  • False Positive 제어를 위한 Rule별 Confidence Scoring 및 인라인 Suppression 어노테이션 도입
  • CWE 및 OWASP Top 10 매핑을 통한 보안 취약점 분류 체계 표준화
  • Terminal, JSON, HTML의 다중 출력 포맷 지원으로 CI/CD 파이프라인 통합 구조 설계

1. 도메인 확장성이 중요한 초기 단계에서는 하드코딩 대신 YAML 등 데이터 기반의 Rule Engine 설계를 검토할 것

2. 정밀도 저하가 예상되는 기술 채택 시, Confidence Score와 사용자 예외 처리(Suppression) 메커니즘을 함께 설계할 것

3. 분석 도구 설계 시 결과물의 활용처(Human vs Machine)에 따른 다각적 출력 포맷을 정의할 것

원문 읽기