티스토리 뷰
인증 및 권한 부여
• API Gateway를 사용하여 인증 및 권한 관리를 중앙화한다.
• 적절한 인증 방식을 구현한다:
• API 키 기반 인증
• JWT 기반 인증
• OAuth 2.0
• 기본 인증(HTTPS 필수)
• 상호 SSL 인증
• 역할 기반 접근 제어(RBAC)를 적용한다.
• 강력한 비밀번호 정책을 수립하고 다요소 인증을 적용한다.
• 로그인 시도 제한 및 계정 잠금 정책을 도입한다.
• 토큰과 자격 증명을 안전하게 저장하고 전송한다.
입력 검증 및 데이터 유효성 검사
• 모든 입력 데이터를 서버 측에서 검증한다.
• 화이트리스트 기반의 입력 검증을 수행한다.
• 데이터 타입, 길이 제한, 형식 검증을 적용한다.
• 인젝션 공격(SQL, NoSQL, OS 명령어 등)을 방지하기 위한 입력 값 필터링을 한다.
• 구조화된 데이터(JSON, XML 등)는 스키마 검증을 통해 처리한다.
• 파일 업로드 시 파일 타입과 크기를 제한하고 검증한다.
• 입력 데이터를 표준 형식으로 정규화한다.
보안 헤더 설정
• HTTP 응답에 적절한 보안 헤더를 설정한다:
• Content Security Policy(CSP)
• X-Content-Type-Options: nosniff
• Strict-Transport-Security(HSTS)
• X-Frame-Options: DENY 또는 SAMEORIGIN
• Referrer-Policy
• Permissions-Policy(구 Feature-Policy)
• X-XSS-Protection(레거시 브라우저 대응)
• 모든 응답에 보안 헤더를 포함하고 에러 페이지나 리다이렉트에도 적용한다.
OWASP API Top 10 취약점 대응
• Broken Object Level Authorization: 객체 수준의 접근 제어를 철저히 검증한다.
• Broken User Authentication: 강력한 인증 메커니즘과 안전한 세션 관리를 구현한다.
• Excessive Data Exposure: 필요한 데이터만 응답에 포함하고 민감한 정보를 보호한다.
• Lack of Resources & Rate Limiting: 속도 제한과 자원 사용량 제한을 적용한다.
• Broken Function Level Authorization: 기능별로 적절한 권한 검증을 수행한다.
• Mass Assignment: 데이터 바인딩 시 허용된 필드만 처리하고 민감한 필드는 보호한다.
• Security Misconfiguration: 안전한 기본 설정을 적용하고 불필요한 기능을 비활성화한다.
• Injection: 파라미터 바인딩과 입력 검증을 통해 인젝션 공격을 방지한다.
• Improper Assets Management: API 자산을 체계적으로 관리하고 구버전을 적절히 폐기한다.
• Insufficient Logging & Monitoring: 충분한 로그를 기록하고 실시간 모니터링을 수행한다.
데이터 보호 및 암호화
• 모든 통신에 TLS 1.2 이상을 사용한다.
• 민감한 데이터는 안전한 알고리즘으로 암호화하여 저장한다.
• 암호화 키를 안전하게 관리하고 접근을 통제한다.
• 불필요한 민감 데이터는 저장하지 않으며, 데이터 노출을 최소화한다.
• 암호화 키와 자격 증명을 안전하게 저장하고 처리한다.
로그 및 감사
• 보안 관련 이벤트(인증 시도, 접근 권한 오류, 시스템 오류 등)를 로그로 기록한다.
• 로그에 민감한 정보를 포함하지 않는다.
• 로그의 무결성과 기밀성을 보호한다.
• 이상 징후에 대한 실시간 모니터링과 경보 체계를 구축한다.
• 규제 요구사항에 따라 로그를 보관하고 관리한다.
안전한 디자인 원칙 적용
• 최소 권한 원칙: 사용자와 시스템에 최소한의 권한만 부여한다.
• 실패-안전 기본 설정: 기본적으로 접근을 거부하고 명시적으로 허용된 경우에만 접근을 허용한다.
• 심층 방어: 여러 계층의 보안 대책을 적용하여 보안을 강화한다.
• 책임 분리: 중요한 작업이나 데이터에 대한 접근을 분리하여 관리한다.
• 보안을 고려한 설계: 개발 초기부터 보안을 고려하여 시스템을 설계한다.
• 보안에 의한 가용성: 보안성을 이유로 시스템의 가용성을 저해하지 않는다.
취약점 관리 및 유지보수
• 정기적인 보안 점검과 취약점 스캐닝을 수행한다.
• 소프트웨어와 의존성 라이브러리를 최신 상태로 유지한다.
• 취약점 보고 및 대응 프로세스를 구축한다.
• 보안 정책과 절차를 정기적으로 검토하고 업데이트한다.
• 개발자와 운영자에 대한 보안 교육을 실시한다.
기타 보안 고려사항
• 속도 제한과 트래픽 제어를 통해 서비스 남용을 방지한다.
• IP 화이트리스트나 블랙리스트를 적용한다.
• API 버전 관리를 체계적으로 수행하고 구버전을 적절히 폐기한다.
• 보안 모니터링 및 침입 탐지 시스템을 활용한다.
• CDN과 WAF를 사용하여 DDoS 및 기타 공격에 대비한다.
참고문헌
- OWASP API Security Top 10 : https://owasp.org/www-project-api-security/
- OWASP ASVS 4.0.3: Application Security Verification Standard : https://owasp.org/www-project-application-security-verification-standard/
- OWASP Secure Headers Project : https://owasp.org/www-project-secure-headers/
- OWASP Injection Prevention Cheat Sheet : https://cheatsheetseries.owasp.org/cheatsheets/Injection_Prevention_Cheat_Sheet.html
- NIST SP 800-63B: Digital Identity Guidelines – Authentication and Lifecycle Management : https://pages.nist.gov/800-63-3/sp800-63b.html
- NIST SP 800-95: Guide to Secure Web Services : https://csrc.nist.gov/publications/detail/sp/800-95/final
- RFC 7519: JSON Web Token (JWT) : https://datatracker.ietf.org/doc/html/rfc7519
- RFC 6749: The OAuth 2.0 Authorization Framework : https://datatracker.ietf.org/doc/html/rfc6749
- ISO/IEC 27001: Information Security Management Systems – Requirements : https://www.iso.org/isoiec-27001-information-security.html
'Web Analytics > Analytics' 카테고리의 다른 글
OAuth2 Security Checklist (0) | 2024.11.15 |
---|---|
AWS re:Inforce 2023 컨퍼런스를 통한 애플리케이션 보안 트랜드 및 전략 (0) | 2024.03.27 |
AWS re:Invent 2022 컨퍼런스를 통한 보안 트랜드 및 전략 확인 (0) | 2024.03.26 |
패스워드 변경 프로세스 정리 (0) | 2024.02.09 |
패스워드 변경 프로세스 사례 #3 (0) | 2024.02.09 |
- Total
- Today
- Yesterday