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