제큐리티
접근제어 본문
접근 제어
- 웹 서비스나 클라우드 서비스 등의 사용자들이 서비스의 어느 부분까지 사용할 수 있고, 어느 부분은 사용할 수 없는지 제어(즉, 객체에 접근하고자 하는 주체가 해당 객체에 접근할 수 있는 권한을 가지고 있는지 제어)
- 접근 제어 모델에서 인가를 받으려는 사용자를 주체(subject)
- 객체(object)는 사용자가 접근하고자 하는 서비스나 자원, 정보와 같은 접근 대상
- 권한(permission)은 객체에 허용된 주체가 수행할 수 있는 행위의 목록(읽기, 쓰기, 생성, 삭제, 실행, 검색 등)
인증(Authentication) VS 인가(Authorization)
인증
- 사용자가 누구인지 판별(로그인)
인가
- 어떤 사용자가 어떤 행위 수행할 권한 가지고 있는지 판별(회원 등급에 따른 글 쓰기)
접근제어 매트릭스 사용
해석
role-based access control(RBAC)방법은 역할이 권한을 대표한다.
사용자는 하나 또는 그 이상의 역할을 지정할 수 있다.
RBAC방법은 보통 2개의 영역으로 이루어져 있다(역할 권한 관리, 역할 할당)
손상된 RBAC방법은 할당된 역할이 허용하지 않는 액세스를 수행하거나 권한이 없는 역할로 권한 상승을 허용한다.
General Goal(s)
각각의 사용자는 특정 리소스에 접근이 허용가능한 역할을 가진 멤버들이다.
[Admin] 그룹만이 'Account Manager' 리소스에 접근해야만 한다.
- 무작위 대입법으로 Account Manager 권한을 가진 계정을 검색하는 문제
리스트박스를 클릭하면 여러 사용자와 리소스가 나온다.
사용자 4명, 리소스 6개를 조합하여 총 24가지 무작위 대입법을 통해 Larry계정이 Account Manager 권한을
가짐을 알아낼 수 있다.
접근통제기반 경로 우회
해석
'webgoat' 사용자는 lessonPlans/en 디렉토리의 모든 파일들에 접근할 수 있다.
접근 제어 방식을 깨트리고 나열된 디렉토리에 없는 리소스에 접근을 시도해라.
볼 파일은 선택한 후 WebGoat는 파일이 허가되었는지 보고한다.
WEB_INF/spring-security.xml같은 파일을 얻을 수 있다.
파일 경로는 어떻게 웹고트가 시작되었는지에 따라 다를 것이다.
- 프록시 툴을 사용하여 파라미터 수정 후 권한 없는 객체에 직접 참조하는 문제
버프스위트로 intercept on 후 웹고트 화면에서 파일을 선택하고 View File 버튼을 눌러 request 인터셉트
File 파라미터를 이용해 현재 있는 디렉토리에 있는 파일 불러온다.
따라서 상대경로를 이용하여 다른 디렉토리에 참조할 수 있다.
WebGoat 디렉토리에 접근하기 위해 ../../../../../와 같은 상대경로를 이용한다.(Current Directory 참조)
상대경로를 이용하여 WebGoat 디렉토리의 spring-security.xml파일을 파라미터값으로 설정 후 forward
'모해 > 웹고트' 카테고리의 다른 글
HTML에서 단서 찾기 (0) | 2022.12.13 |
---|---|
버퍼 오버플로우 (0) | 2022.12.11 |
웹고트 설치 (0) | 2022.11.27 |