반응형

**Broken Access Control(취약한 접근 제어)**란
사용자가 원래 접근하면 안 되는 리소스나 기능에 접근할 수 있게 되는 보안 취약점을 말해.
OWASP Top 10에서도 가장 위험한 취약점 1위로 다룰 정도로 매우 중요해.


🔐 Broken Access Control이란?

애플리케이션이 사용자의 **권한(Role)**을 제대로 검증하지 않아서
사용자가 다른 사람 데이터에 접근하거나,
관리자 기능을 실행하거나,
자신의 권한을 초과한 행동을 수행할 수 있는 상황을 의미해.


🔥 대표적인 공격 시나리오

1️⃣ IDOR (Insecure Direct Object Reference, 직접 객체 참조 취약점)

URL만 바꿔도 남의 정보가 보이는 경우

 
/user/profile?userId=100 → 내 정보 /user/profile?userId=101 → 다른 사람 정보가 보임 ❌

2️⃣ 권한 상승(Privilege Escalation)

원래 일반 사용자 → 관리자로 권한 상승
예:
요청 수정을 통해 admin용 기능을 실행

 
role=userrole=admin 로 변조

3️⃣ 수평적 접근 통제 우회

사용자 A가 사용자 B의 데이터를 읽거나 삭제
예:
/order/1234/delete 를 호출해 남의 주문 삭제

4️⃣ 수직적 접근 통제 우회

관리자 페이지 접속

 
/admin/users

보안 검증 없이 URL만 들어가도 접근되는 경우

5️⃣ 클라이언트 측 검사만 할 때

자바스크립트로만 권한을 검사하는 경우
유저가 JS 수정해서 우회 가능


🛡 Broken Access Control을 방지하려면

✔ 서버 측에서 **권한 검증(Authorization)**을 반드시 할 것

  • 요청이 들어올 때마다 이 사용자가 해당 리소스에 접근 가능한지 확인
  • 클라이언트 검증만 절대 금지

URL, 파라미터, Body 모두 검증

  • userId, fileId 등 식별자 직접 입력 요소는 특히 주의

✔ 민감한 기능은 서버에서 Role 기반으로 체크

  • RBAC(Role-Based Access Control)
  • ABAC(Attribute-Based Access Control)

✔ 관리자 페이지는 별도 인증 필요

  • MFA, IP 제한 등

✔ 로그 및 모니터링

권한 우회 시도 감지 → 보안관제에서 빠르게 대응

반응형

+ Recent posts