보안 · 심화
OWASP API Security Top 10에서 가장 빈번하게 발생하는 A01:2023-Broken Object Level Authorization (BOLA)과 A02:2023-Broken Function Level Authorization (BFLA) 취약점을 방지하기 위한 설계 및 구현 시 고려해야 할 심층적인 방안들을 설명하고, 특히 다중 테넌트(Multi-tenant) 환경에서의 적용 방안을 제시해 주십시오.
힌트 · API 게이트웨이에서의 중앙화된 인가 검증, 리소스 소유권 검증, 세밀한 권한 모델 설계, 다중 테넌트 ID 격리 방안이 중요합니다.
객체 식별자 검증기능 접근 제어RBAC/ABAC테넌트 격리권한 위임
모범답안
OWASP API Security Top 10에서 BOLA와 BFLA는 API 보안의 핵심 취약점입니다. 이를 방지하기 위해 설계 및 구현 단계에서 객체 수준과 기능 수준의 인가 검증을 철저히 해야 합니다.
BOLA 방지를 위해서는 API 게이트웨이에서 중앙화된 인가 검증을 수행하고, 모든 요청에 대해 리소스 소유권 및 접근 권한을 확인해야 합니다. 객체 식별자를 검증하여 다른 사용자의 데이터에 접근하는 것을 막아야 합니다.
BFLA 방지를 위해서는 RBAC 또는 ABAC와 같은 세밀한 권한 모델을 설계하고, 각 기능에 대한 접근 권한을 명확하게 정의해야 합니다. API 게이트웨이에서 각 사용자의 역할 또는 속성에 따라 기능 접근을 제어해야 합니다.
다중 테넌트 환경에서는 테넌트 ID 격리가 매우 중요합니다. 모든 API 요청에 테넌트 ID를 포함하고, 데이터 접근 시 테넌트 ID를 기준으로 필터링해야 합니다. 권한 위임 시에도 테넌트 ID를 고려하여 다른 테넌트의 데이터에 접근하는 것을 방지해야 합니다. 예를 들어, API 게이트웨이에서 JWT 토큰의 테넌트 ID를 추출하여 데이터베이스 쿼리에 적용할 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 OWASP / 취약점 면접 질문
- 애플리케이션에서 사용자별 권한을 효과적으로 관리하고 'Broken Access Control' 취약점을 방지하기 위한 접근 제어 모델 및 구현 시 고려사항을 설명해주세요.
- 보안 사고 발생 시 효과적인 대응을 위해 애플리케이션에서 어떤 종류의 이벤트를 로깅해야 하며, 로깅 시스템 설계 시 'Security Logging and Monitoring' 관점에서 주의할 점은 무엇인가요?
- 대규모 마이크로서비스 아키텍처 환경에서 OWASP Top 10 취약점을 효과적으로 방어하기 위한 아키텍처 설계 원칙과 DevSecOps 파이프라인 통합 전략에 대해 설명하고, 특히 A01:2021-Broken Access Control과 A05:2021-Security Misconfiguration을 예시로 들어 구체적인 방안을 제시해 주십시오.
- 안전하지 않은 역직렬화(A08:2021-Software and Data Integrity Failures의 일부) 취약점이 애플리케이션에 미치는 심각한 영향에 대해 설명하고, 이를 방지하기 위한 실제 개발 환경에서의 효과적인 코딩 가이드라인 및 아키텍처적 방어 전략을 제시해 주십시오.
- DevSecOps 라이프사이클 전반에 걸쳐 위협 모델링(Threat Modeling)을 효과적으로 통합하는 전략에 대해 설명하고, 특히 설계 단계에서 STRIDE 모델을 활용하여 식별된 위협들을 어떻게 구체적인 보안 요구사항으로 전환하고, 구현 및 테스트 단계에서 해당 요구사항이 충족되었는지 검증할 수 있는지 프로세스를 설명해 주십시오.
- 최신 웹 애플리케이션 환경에서 Reflected, Stored, DOM XSS 및 CSRF 공격을 방어하기 위한 기존의 방어 기법(필터링, 토큰 등) 외에, Content Security Policy (CSP), SameSite 쿠키 속성, Subresource Integrity (SRI)와 같은 고급 보안 메커니즘을 어떻게 통합하여 다층 방어 체계를 구축할 수 있는지 설명해 주십시오.