Files
2nd/10_Wiki/Topics_Dev/Secure Code Review (보안 중심 코드 리뷰).md
T

51 lines
6.2 KiB
Markdown

# [[Secure Code Review (보안 중심 코드 리뷰)|Secure Code Review (보안 중심 코드 리뷰]]
## 📌 Brief Summary
Secure Code Review(보안 코드 리뷰)는 소프트웨어가 배포되기 전에 소스 코드의 보안 취약점, 논리적 오류, 약점을 체계적으로 감사하여 애플리케이션의 안전성을 보장하는 프로세스입니다 [1]. 기능과 유지보수성에 초점을 맞추는 일반적인 코드 리뷰와 달리, 공격자의 관점(Adversarial mindset)에서 입력값 조작 가능성이나 민감 데이터 노출 여부를 중점적으로 파악합니다 [3, 4]. 자동화된 스캐닝 도구와 인간의 수동 분석을 결합하는 '시프트 레프트(Shift-Left)' 보안 전략의 핵심 단계로서 결함 수정 비용을 절감하고 규제 준수를 증명하는 필수적인 역할을 합니다 [5, 6].
## 📖 Core Content
* **보안적 관점의 유지:** "이 코드가 어떻게 악용될 수 있는가?"라는 관점에서 접근합니다 [3]. 기능 테스트를 통과했더라도 논리적 결정 내에 숨어 있는 보안 허점을 찾아내는 것이 목표입니다 [8].
* **주요 점검 영역 (Security Checklist):**
* **입력값 검증 및 살균 (Input Validation):** XSS 방지를 위한 출력 인코딩, SQL 인젝션 방지를 위한 파라미터화된 쿼리 사용 여부 확인 [4, 9].
* **인증 및 인가 (AuthN & AuthZ):** 강력한 해싱 알고리즘(Argon2, bcrypt) 사용, MFA 적용, 최소 권한 원칙(Least Privilege) 준수 및 IDOR 방어 검토 [4, 10].
* **암호화 및 비밀 정보 관리:** 시크릿(API 키, 토큰) 하드코딩 여부 전수 조사 및 안전한 전송(TLS)/저장 암호화 적용 확인 [4, 11].
* **에러 처리 및 로깅:** 로그에 스택 트레이스나 개인식별정보(PII)가 유출되지 않도록 처리 [4, 11].
* **하이브리드 검토 접근법:** 효율성을 위해 자동화와 수동 분석을 결합합니다.
* **자동화 (SAST/SCA):** 알려진 패턴, 라이브러리 취약점, 시크릿 탐지 등 기계적 검토 수행 [12, 14].
* **수동 분석 (Manual Review):** 복잡한 접근 제어, 비즈니스 로직 결함 등 도구가 놓치기 쉬운 문맥적 위협 검증 [13, 15].
* **표준 가이드라인 준수:** OWASP Top 10을 기반으로 체크리스트를 구성하고, 데이터 흐름을 파악하는 위협 모델링(Threat Modeling) 결과를 리뷰에 반영합니다 [13, 26].
## ⚖️ Trade-offs & Caveats
* **위험 기반(Risk-based) 리뷰:** 모든 변경 사항에 깊은 보안 리뷰를 강제하면 배포 병목이 발생합니다 [16]. 인증/암호화 등 고위험 모듈에는 엄격한 검토를, 단순 UI 변경 등 저위험 사항은 빠르게 통과시키는 유연한 접근이 필요합니다 [8, 16].
* **자동화 도구의 한계:** SAST나 AI 비서는 빠른 커버리지를 제공하지만 비즈니스 맥락을 오해하여 오탐을 내거나 환각된 API를 제안할 수 있습니다 [18, 19]. 최종 승인은 항상 인간 리뷰어가 수행해야 합니다.
* **시크릿 탐지의 신뢰성:** 무작위 문자열인 시크릿은 인간의 눈으로 식별하기 매우 어렵습니다. 하드코딩된 비밀 정보 탐지는 수동 리뷰보다 자동화된 전용 스캐닝 시스템에 의존하는 것이 훨씬 안전합니다 [20].
## 🔗 Knowledge Connections
### Related Concepts
* **Shift-Left Security**: 보안 검토를 SDLC 가장 초기 단계로 앞당겨 지속적으로 수행하는 전략입니다.
* **[[SAST (Static Application Security Testing)|SAST (Static Application Security Testing]]**: 코드를 실행하지 않고 소스 수준에서 보안 결함을 찾아내는 1차 방어선입니다.
* **SCA (Software Composition Analysis**: 외부 의존성 라이브러리의 취약점(CVE) 및 공급망 보안 위험을 관리합니다.
* **[[OWASP Top 10|OWASP Top 10]]**: 보안 코드 리뷰 시 최우선으로 검증해야 할 치명적인 웹 위협 목록입니다.
### Deeper Research Questions
* 일반 품질 리뷰와 보안 리뷰를 단일 워크플로우 내에서 통합할 때, 역할 분리와 최종 승인 권한(Approval Authority)을 어떻게 설계하는 것이 최적인가?
* AI 코딩 어시스턴트가 생성한 코드 특유의 보안 허점(예: 취약한 패턴 복제)을 식별하기 위해 리뷰 체크리스트를 어떻게 보강해야 하는가?
* 코드 변경의 보안 노출도를 자동으로 평가하여 리뷰 수준(Depth)을 결정하는 '보안 스코어링 시스템'은 어떻게 구축하는가?
* 대규모 레거시 시스템 도입 시 발생하는 대량의 보안 경고(Alert Fatigue)를 단계적으로 해소하고 '클린 베이스라인'을 확보하는 전략은 무엇인가?
* 보안 챔피언(Security Champions) 제도를 통해 팀 전체의 보안 상향 평준화를 도모할 때, 코드 리뷰 피드백 루프를 교육 수단으로 어떻게 최적화하는가?
### Practical Application Contexts
* **Implementation:** PR 제출 전 OWASP 체크리스트를 활용한 자체 보안 검토(Self-review)를 수행합니다.
* **System Design:** 설계 단계의 위협 모델링 결과를 PR 설명에 포함하여 리뷰어가 데이터 흐름과 신뢰 경계를 명확히 인지하게 합니다 [60].
* **Operation / Maintenance:** CI/CD 파이프라인에 시크릿 탐지 및 SAST 도구를 필수 게이트로 설정하여 취약 코드의 병합을 원천 차단합니다.
* **Learning Path:** 리뷰 과정에서 발견된 보안 결함을 사례화(Case Study)하여 팀 기술 공유 세션에서 논의함으로써 시큐어 코딩 문화를 내재화합니다.
* **My Project Relevance:** 기능 중심 리뷰에서 탈피하여 보안 전용 체크리스트를 도입하고, 기계적 검토는 자동화에 위임하여 리뷰 품질을 고도화합니다.
### Adjacent Topics
* **Threat Modeling**: 코드 작성 전 설계 단계에서 잠재적 위험을 미리 식별하는 선제적 보안 기법입니다.
* **ASPM (Application Security Posture Management**: SDLC 전반의 보안 위협을 가시화하고 우선순위를 정하는 통합 관리 플랫폼으로 확장됩니다.
---
*Last updated: 2026-05-02*