Burp로 구현하는 OAuth 취약점 자동 스캔 전략
Burp를 이용해 OAuth 흐름을 분석하고 자동 스캔으로 흔한 취약점을 찾아내는 절차와 검증 포인트, 자동화 설정 권장값을 정리한 실무 체크리스트
목차
개요
OAuth는 인증과 권한을 분리하는 표준이다. 그러나 설정 실수나 구현 오류로 취약점이 발생한다. 이 글은 Burp를 중심으로 한 자동화 스캔 전략을 제시한다. 초보자도 이해할 수 있도록 흐름을 풀어 쓴다. 핵심은 재현 가능한 절차와 검증 포인트다. 특히 Burp OAuth 자동 스캔과 Burp 인증 자동화 테스트 관점에서 유용하다.
준비 사항
환경과 툴
- Burp Suite Professional 권장(자동 스캔과 Extender 기능 활용).
- Burp Extensions: OAuth2 Scanner, AuthMatrix, ActiveScan++ 등.
- 테스트 계정, 클라이언트 ID/시크릿(테스트 전용), 안전한 프록시 환경.
- 웹 브라우저와 Burp의 Certificate 설정으로 트래픽 가시화.
사전 정보 수집
테스트 대상의 OAuth 흐름을 문서화한다. 사용된 grant 타입(authorization code, implicit, client credentials, password, refresh token)과 리다이렉트 URI, 토큰 포맷(JWT 여부), 스코프 구조를 파악한다. 이 정보는 자동화 스캔의 룰과 페이로드를 결정하는 기준이다.
취약점 분류와 검증 포인트
주요 검증 포인트는 다음과 같다. 각 항목은 Burp 자동 스캔 또는 수동 보강이 필요하다.
- 리다이렉트 URI 검증 누락: 와일드카드 허용, 불완전 매칭 여부.
- state 파라미터 미검증: CSRF 공격 가능성.
- implicit flow 사용 및 토큰 노출: 액세스 토큰이 URL에 노출되는 경우.
- 토큰 재사용 및 만료 정책 부재: 세션 하이재킹 가능성.
- 스코프 과다 부여: 최소 권한 원칙 위반.
- 클라이언트 시크릿 유출 또는 약한 저장 방식.
- refresh token 회전 미적용 또는 취소 불가.
- JWT 서명 검증 실패, alg 변경 취약점.
Burp 기반 자동화 스캔 전략
1. 엔드포인트 식별 자동화
Burp Spider와 Passive Scan으로 인증 관련 엔드포인트를 수집한다. 컬렉션 결과를 기반으로 스캔 범위를 설정한다. OAuth 권한 부여 엔드포인트와 토큰 엔드포인트를 분리해 관리하면 규칙 적용이 깔끔해진다.
2. 자동화된 페이로드와 규칙화
자동 스캐너에 다음 규칙을 추가한다. 리다이렉트 파라미터에 와일드카드 삽입, state 제거 및 재시도, authorization code 재사용 시도, 스코프 변경 시나리오 등이다. Burp의 Intruder나 Scanner 규칙으로 페이로드를 주입하면 반복 검증이 가능하다.
3. 토큰 패턴 및 JWT 검증
응답에서 토큰 패턴을 추출해 자동화 규칙에 연결한다. JWT인 경우 헤더·페이로드·서명 구조를 파싱해 alg 검증, kid 매칭, 서명 검증 실패 여부를 검사한다. Burp Extension으로 JWT 파싱을 자동화하면 유효성 검사 속도가 빨라진다.
4. 세션 핸들링과 자동 재로그인
자동 스캔 중 세션 만료를 처리할 매크로를 설정한다. Burp의 Session Handling Rules로 로그인 흐름을 캡처하고 자동 재인증을 구성하면 장시간 스캔이 안정화된다. Burp 인증 자동화 테스트에서 실패 요인을 줄이는 핵심 설정이다.
5. 콜라보레이터와 Outbound 테스트
리다이렉션 및 서버사이드 요청 위조(SSRF) 가능성을 검사할 때 Burp Collaborator를 사용한다. 자동화 스크립트에서 콜라보레이터 도메인을 주입해 외부 콜백을 확인한다. 이 방법으로 리다이렉트 검증 누락이나 임의 콜백 취약점을 찾을 수 있다.
실전 체크리스트
스캔과 검증의 순서를 정리한 체크리스트이다. Burp OAuth 자동 스캔 과정에 맞춰 단계별로 확인한다.
- 엔드포인트 수집 및 분류
- 로그인/권한 부여 흐름 캡처
- 리다이렉트 URI 패턴 주입 테스트
- state 파라미터 제거/변조 테스트
- authorization code 재사용 및 무효화 확인
- implicit flow로 인한 토큰 노출 확인
- JWT 헤더/alg/선언 파라미터 변조 테스트
- refresh token 회전 및 취소 로직 점검
- 스코프 변조 후 권한 확인
- 세션 재현 및 장기 스캔을 위한 자동 재인증 설정
검증용 HTTP 샘플
토큰 전달 방식을 검사할 때 유용한 HTTP 요청 예시. 자동화 스크립트에서 이 형식을 기준으로 페이로드를 교체한다.
GET /api/userinfo HTTP/1.1
Host: api.example.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Accept: application/json
결과 분석과 리포팅
자동 스캔 결과는 거짓 양성(False Positive) 정리가 필수다. 발견 항목은 재현 단계, 영향도, 권장 조치로 정리한다. Burp의 Scanner 결과와 수동 검증 로그를 함께 첨부하면 전달력이 높아진다. 또한 Burp OAuth 자동 스캔 규칙과 스크립트를 보관해 재사용성을 확보한다.
마무리
Burp 인증 자동화 테스트와 Burp OAuth 자동 스캔을 병행하면 반복 가능한 점검 체계를 구축할 수 있다. 핵심은 엔드포인트의 정확한 분류와 검증 규칙의 세분화다. 이 체크리스트를 바탕으로 우선 순위에 따른 스캔 계획을 세우면 효율이 높아진다.