R's Hacking Daily Log

Access Control (1) 본문

Port Swigger/Access Control

Access Control (1)

hanhxx 2023. 6. 10. 15:58

What is Access Control

Access control(or authorization)이란 

실행하고자 하는 기능을 실행할 수 있는지, 요청한 데이터에 접근 가능한 지 등등

사용자 권한에 제약 조건을 적용하는 걸 얘기한다. 

 

어떤 application에 로그인을 하는 과정은 사용자가 스스로 주장하는 신원이 일치하는 지를 확인하기 위한 것으로

이를 authentication이라 정의했다. 

다른 말로 하자면 접근 권한이 아예 없는 자인지, 있는 자인지를 확인하는 절차인 셈이다.

 

 

어떤 건물은 특정 절차를 통해 정보가 등록된 사람만 출입이 가능하다고 한다. 

신원을 확인한 후에야 건물에 출입할 수 있는 권한이 생긴다. 

 

하지만 건물에 출입할 수 있다고 해서 모든 층에 있는 모든 공간에 들어갈 수 있는 건 아니다.

예를 들어 중요 문서를 관리하는 방에는 담당 관리자만 접근이 가능하다고 한다. 

 

 

여기서 말하는 특정 절차는 로그인이고, 사전 등록된 정보는 계정 정보라고 상상해 보자.

자신의 계정으로 로그인하여 특정 사용자 계정으로 application을 사용한다고 해도

모든 계정이 application과 관련된 모든 기능을 수행할 수는 없다. 

 

 

만약 일반 사용자가 application을 이용하는 다른 사용자의 계정 정보를 볼 수 있거나

임의로 삭제할 수 있다고 한다면 큰 문제가 될 것이다. 

 

이렇듯 권한이 있다고 하더라고 실행하고자 하는 기능에 따라, 

접근하고자 하는 데이터에 따라 행동 범위가 제한되도록 권한 수준을 다르게 통제하는 것을 

access control이라고 한다. 

 

** 권한의 유무를 authentication으로 판단한다면

access control은 authentication이 만족된 후, 그 권한 수준이 어느 정도인지를 제한하는 것이다. 

 

 

 

Type of Access control

Access control은 크게 3가지 유형으로 분류할 수 있다. 

1) Vertical access control 

vertical이라는 단어에서 유추할 수 있듯이 사용자에게 주어진 수준보다 높은 권한을 갖지 못하도록

제한하는 것을 말한다. 

 

일반 사용자가 관리자와 동일한 권한으로 다른 계정에 대한 삭제, 수정 등의 기능을 수정하지 못하게 

관리하는 것이 vertical access control에 해당하는 예시라 할 수 있다.

 

 

2) Horizontal access control 

horizontal access control은 권한 수준이 같은 다른 사용자의 계정으로 접근할 수 있는 데이터에 

접근하지 못하게 통제하는 것이다,

 

동일하게 일반 사용자 권한을 갖는 A & B가 있다고 할 때,

A의 계정을 B가 마음대로 사용하거나 관련 정보에 함부로 접근할 수는 없다. 

 

A의 관점에서 B의 카드 정보, 계좌 비밀번호 바꾸기는 

권한은 같지만 다른 사용자이기에 접근할 수 없는 데이터, 기능인 셈이다. 

 

이처럼 horizontal 하게 동등한 권한 수준을 갖고 있는 사용자끼리의 데이터 접근이

불가능하게 제한하는 것을 의미한다. 

 

 

3) Context-dependent access control 

application 상태 or 사용자와의 상호작용을 기반으로 데이터나 기능에 대한 접근을 제한하는 것을 말한다.

 

사용자가 web site에서 물건을 구매하고 나서 자신의 구매 목록을 바꿀 수 있어서는 안 되는 것처럼 

어떤 상황, 맥락에서 적용되야 하는 접근 제한을 의미한다. 

'Port Swigger > Access Control' 카테고리의 다른 글

Access Control - Lab (6)  (0) 2023.06.20
Access Control - Lab (5)  (0) 2023.06.19
Access Control - Lab (4)  (0) 2023.06.19
Access Control (2) & Lab (3)  (0) 2023.06.18
Access Control - Lab (1)  (0) 2023.06.12
Comments