시큐어 코딩이란?
시큐어 코딩의 목적
소프트웨어 구현 단계에서 발생 가능한 보안 약점에 대한 제거 기준을 정리하여 안전한 개발을 도움.
코드 분석 도구
- 정적 분석 도구(Static Analysis Tools)
코드를 실행하지 않고 소스 코드를 분석하여 보안 취약점을 찾는다.
- SonarQube:
Java와 Spring 프로젝트에서 자주 사용되며, 코드 품질과 보안 문제를 분석
- FindBugs/SpotBugs:
Java 코드를 분석하여 잠재적인 버그와 보안 취약점을 분석
- PMD: 코드 스타일, 버그, 보안 문제를 감지하는 정적 분석 도구
- Checkmarx: 보안 중심의 코드 분석 도구로, 다양한 보안 취약점을 탐색
- IDE 플러그인
여러 통합 개발 환경(IDE)에서 코드 보안을 검사할 수 있는 플러그인을 제공
- Eclipse:
FindBugs, PMD, Checkmarx 등의 플러그인을 설치하여 사용할 수 있다.
- IntelliJ IDEA:
SonarLint, FindBugs, PMD 등의 플러그인을 사용할 수 있다.
- CI/CD 파이프라인 통합
지속적 통합 및 지속적 배포(CI/CD) 파이프라인에 정적 분석 도구를 통합하여,
코드가 커밋될 때마다 자동으로 보안 검사를 수행
- OWASP Dependency-Check
프로젝트의 의존성 라이브러리에 알려진 보안 취약점이 있는지 검사
- Manual Code Review (동료 검토)
- Penetration Testing
전문가가 실제 공격 시나리오를 시뮬레이션하여 애플리케이션의 보안 취약점을 발견
- Security Audits (전문가 검토)
시큐어 코딩 가이드
JAVA
JAVA 기반 시큐어 코딩 기법
Spring