보안 · 중급
애플리케이션에서 사용자별 권한을 효과적으로 관리하고 'Broken Access Control' 취약점을 방지하기 위한 접근 제어 모델 및 구현 시 고려사항을 설명해주세요.
힌트 · 역할 기반 접근 제어(RBAC) 또는 속성 기반 접근 제어(ABAC) 모델을 적용하고, 모든 서버 측 요청에 대해 인가 검증을 수행하며, 최소 권한 원칙을 준수해야 합니다.
RBACABACACL최소 권한 원칙인가 정책
모범답안
접근 제어 모델을 설계할 때 가장 중요한 것은 'Broken Access Control' 취약점을 예방하는 것입니다. 저는 주로 RBAC(역할 기반 접근 제어) 모델을 사용합니다. 사용자에게 직접 권한을 부여하는 대신, 역할에 권한을 부여하고 사용자에게 역할을 할당하는 방식이죠.
구현 시에는 모든 서버 측 요청에 대해 인가 검증을 수행합니다. 예를 들어, 사용자가 특정 리소스에 접근하려고 할 때, 사용자의 역할과 해당 리소스에 접근할 수 있는 역할을 비교하여 접근을 허용할지 결정합니다.
또한, '최소 권한 원칙'을 준수하여 사용자에게 필요한 최소한의 권한만 부여합니다. 이렇게 하면 권한 오용으로 인한 피해를 최소화할 수 있습니다. ABAC(속성 기반 접근 제어) 모델도 고려할 수 있지만, RBAC에 비해 복잡도가 높기 때문에 상황에 따라 선택합니다. 중요한 것은 일관성 있는 인가 정책을 적용하고, 주기적으로 권한 설정을 검토하는 것입니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 OWASP / 취약점 면접 질문
- Stored XSS와 Reflected XSS 공격의 차이점을 설명하고, 각각의 공격 유형을 효과적으로 방어하기 위한 개발자의 구체적인 구현 방안을 제시해주세요.
- 애플리케이션 개발 초기 단계에서부터 'Insecure Design' 취약점을 예방하기 위해 설계 과정에 어떤 보안 원칙들을 적용해야 할까요? 구체적인 예를 들어 설명해주세요.
- 사용자 개인 정보와 같은 민감 데이터를 안전하게 처리하기 위한 개발자의 역할은 무엇이며, 데이터 저장 및 전송 시 발생할 수 있는 'Sensitive Data Exposure' 취약점을 어떻게 방어할 수 있을까요?
- 보안 사고 발생 시 효과적인 대응을 위해 애플리케이션에서 어떤 종류의 이벤트를 로깅해야 하며, 로깅 시스템 설계 시 'Security Logging and Monitoring' 관점에서 주의할 점은 무엇인가요?
- 대규모 마이크로서비스 아키텍처 환경에서 OWASP Top 10 취약점을 효과적으로 방어하기 위한 아키텍처 설계 원칙과 DevSecOps 파이프라인 통합 전략에 대해 설명하고, 특히 A01:2021-Broken Access Control과 A05:2021-Security Misconfiguration을 예시로 들어 구체적인 방안을 제시해 주십시오.
- OWASP API Security Top 10에서 가장 빈번하게 발생하는 A01:2023-Broken Object Level Authorization (BOLA)과 A02:2023-Broken Function Level Authorization (BFLA) 취약점을 방지하기 위한 설계 및 구현 시 고려해야 할 심층적인 방안들을 설명하고, 특히 다중 테넌트(Multi-tenant) 환경에서의 적용 방안을 제시해 주십시오.