AI를 활용한 보안 검토
풀리퀘스트(PR)의 코드 리뷰와는 별도로, 소프트웨어 공급망을 지속적으로 살피는 자동화된 보안 기능이 있습니다.
- Dependabot — 출처 저장소의 npm 매일·GitHub Actions 매주 버전 업데이트 설정 파일을 유지합니다. 원격 보안 알림·보안 업데이트는 출처와 동일하게 비활성화할 계획이며, 추가 버전 업데이트 PR은 실습과 구분합니다. 현재 원격 설정을 적용했다는 뜻은 아닙니다.
- 의존성 검토(Dependency review) — 지원 여부를 확인해 별도로 설정할 수 있지만, demo3의 빌드 워크플로에는 포함되어 있지 않습니다. 복사한 CodeQL Advanced는 별도 워크플로이며 실제 결과는 demo3의 최신 실행에서 확인해야 합니다.
- 푸시 보호를 포함한 시크릿 검사(Secret scanning) — 지원되는 시크릿 패턴을 탐지하고 푸시를 차단할 수 있습니다. 이용 가능 여부와 설정은 별도로 확인하며, 실습에 실제 자격 증명이나 고객 데이터를 사용하지 않습니다.
이번 과제는 취약점 재현이 아니라 작은 새 기능 추가입니다. 기존 입력 검증, DOMPurify, 테스트와 CI 보안 게이트를 유지하고 취약한 의존성이나 시크릿을 다시 넣지 마세요.
Marked 업그레이드는 알려진 의존성 취약점을 해결하지만 모든 XSS를 막지는 않습니다. Marked는 HTML을 정화하지 않습니다. 이 피드백 위젯은 DOMPurify로 렌더링된 Markdown을 정화하고, 사용자 제공 HTML을 삽입하지 않고 이름과 시간을 텍스트로 구성합니다.
GitHub Copilot 코드 리뷰가 변경 사항을 살펴본다면, 이 보안 기능은 전체 의존성 그래프와 커밋 이력을 살펴봅니다. 바로 OWASP A03의 소프트웨어 공급망 실패가 다루는 영역입니다.