- RestAPI 보안성 검토 항목 정리2025년 02월 07일
- Ibiza
- 작성자
- 2025.02.07.:15
1. 인증(Authentication)
- 인증 방식 선택
> OAuth2, JWT(JSON Web Token), API Key 등 적절한 인증 방식을 사용하고 있는지 확인
- 멀티팩터 인증(MFA)
> 필요에 따라 추가 인증 수단을 도입해 보안 수준 향상
2. 인가(Authorization)
- 권한 관리
> 사용자별/역할별로 세분화된 권한(예 RBAC, ABAC)을 적용하여 리소스 접근 제어가 적절하게 이루어지는지 검토
- 정책 기반 접근 제어
> 각 API 엔드포인트에 대해 접근 가능한 사용자나 그룹을 설정
3. 암호화(Encryption)
- 전송 암호화
> API 통신은 반드시 HTTPS/TLS를 사용하여 데이터 전송 시 도청 및 변조를 방지
- 저장 데이터 암호화
> 민감한 정보를 저장할 경우, 데이터베이스 내 암호화 적용 여부 확인
4. 입력값 검증 및 파라미터 처리
- 유효성 검사
> 클라이언트로부터 입력받은 데이터에 대해 서버 측에서 유효성 검증 수행
- 인젝션 공격 예방
> SQL 인젝션, XSS, JSON/XML 인젝션 등 다양한 인젝션 공격에 대비한 필터링 및 이스케이프 처리를 적용
- 화이트리스트/블랙리스트 검토
> 허용된 값만 처리하도록 화이트리스트 방식을 고려하고, 위험도가 높은 입력에 대한 블랙리스트 검토 수행
5. 오류 및 예외 처리
- 정보 노출 최소화
> 내부 시스템 정보나 스택 트레이스 등이 클라이언트에 노출되지 않도록 처리
- 통일된 오류 응답
> 예외 발생 시 표준화된 에러 코드 및 메시지를 반환하여, 불필요한 정보 노출 방지
6. 세션 관리 및 토큰 보안
- 토큰 관리
> JWT 등의 토큰은 유효기간, 재발급 정책, 폐기 정책 등을 명확히 하고, 탈취 시 재사용을 막는 대책 마련
- 세션 탈취 방지
> 토큰 저장 시 보안 스토리지(예 HttpOnly 쿠키) 사용 여부 검토
7. 보안 로깅 및 모니터링
- 접근 로그 기록
> API 호출 내역, 인증 실패, 권한 에러 등의 로그를 남기고, 이상 징후 모니터링
- 실시간 경보
> 비정상적 활동이 감지될 경우 경보를 발동하여 신속하게 대응 수행
8. Rate Limiting / DoS 방어
- 요청 제한
> 클라이언트별 요청 빈도를 제한하여 무차별 공격이나 DoS/DDoS 공격 대응
- 브루트 포스 방지
> 인증 시도 횟수 제한, IP 차단 등 추가적인 보호 조치 적용
9. CORS(Cross-Origin Resource Sharing) 정책
- 허용 도메인 설정
> API에 접근할 수 있는 도메인을 명시적으로 설정하여, 의도하지 않은 외부 접근 차단
- 메소드 제한
> 허용할 HTTP 메소드(GET, POST, PUT, DELETE 등)를 명확히 하여 불필요한 접근 차단
10. API 설계 보안
- RESTful 설계 준수
> HTTP 메소드의 의미에 맞게 리소스를 설계하고, URL 경로가 명확하며, 불필요한 엔드포인트 검토
- 버전 관리
> API 변경 시 버전 관리 체계를 통해 이전 버전과의 호환성 및 보안성 유지
11. 보안 업데이트 및 패치 관리
- 라이브러리 및 프레임워크 관리
> 사용 중인 외부 라이브러리와 프레임워크의 최신 보안 패치 적용 여부를 정기적으로 확인합니다.
- 취약점 대응
> 최신 취약점 정보(CVE 등)를 모니터링하고, 신속하게 대응할 수 있는 체계를 마련합니다.
12. 보안 테스트 및 취약점 스캐닝
- 정기적 펜테스트
> 정기적으로 모의 해킹(Penetration Testing)을 실시하여 보안 취약점을 발견하고 보완
- 자동화 스캔 도구 활용
> OWASP ZAP, Burp Suite 등의 도구를 활용하여 취약점 스캔 수행
13. API Gateway 및 WAF 적용
- API Gateway
> 중앙 집중형으로 인증, 인가, 로깅, 모니터링 등을 관리할 수 있는 API Gateway 도입
- WAF(Web Application Firewall)
> 웹 애플리케이션 방화벽을 통해 알려진 공격 패턴에 대한 보안 강화
14. 기타 고려 사항
- 보안 헤더 설정
> Content-Security-Policy, X-Content-Type-Options, X-Frame-Options 등 보안 헤더 설정
- 불필요한 엔드포인트 제거
> 사용하지 않거나 공개할 필요가 없는 API 엔드포인트는 제거하거나 접근 제한
- 개발 및 운영 보안 프로세스
> 소프트웨어 개발 라이프사이클(SDLC) 단계에서 보안을 고려하고, 운영 단계에서도 정기적인 보안 점검과 업데이트 수행'Security > 정보보안' 카테고리의 다른 글
sonarqube Quality Gate에서 파라미터 검증 커스텀 (0) 2025.02.20 기업 내 SSO 도입 시 보안성 검토 항목 정리 (0) 2025.02.10 기업에서 메신저 도입 시 보안성 검토 항목 정리 (0) 2025.02.05 PuTTY Key Generator를 이용한 PEM → PPK 변환 (0) 2024.12.05 SonarQube, Quality Profiles와 Quality Gates 정리 (1) 2024.12.02 다음글이전글이전 글이 없습니다.댓글