속성 기반 액세스 제어

Attribute-based access control

IAM에 대한 정책 기반 액세스 제어라고도 하는 속성 기반 액세스 제어(ABAC)는 속성을 함께 결합하는 정책의 사용을 통해 사용자에게 액세스 권한을 부여하는 액세스 제어 패러다임을 정의한다.[1] 정책은 모든 유형의 속성(사용자 속성, 리소스 속성, 개체, 환경 속성 등)을 사용할 수 있다. 이 모델은 규칙에서 누가 요청을 하고 있는지, 리소스 및 작업을 수행하는지에 대한 "IF, DEN" 문구를 포함하는 부울 논리를 지원한다. 예를 들어, 요청자가 관리자일 경우 중요한 데이터에 대한 읽기/쓰기 액세스 권한을 허용하십시오. NIST 프레임워크는 ABAC의 주요 개념, 즉 PAP(정책 관리 포인트), PEP(정책 시행 포인트), PDP(정책 결정 포인트), PIP(정책 정보 포인트)를 그 실체로 도입한다.[2][3]

이와 관련된 특정 특권 세트를 가지고 있고 주체가 할당되는 사전 정의된 역할을 채용하는 역할 기반 액세스 제어(RBAC)와 달리, ABAC와의 주요 차이점은 다양한 속성을 평가할 수 있는 복잡한 부울 규칙 집합을 표현하는 정책의 개념이다. 속성 값은 설정 값 또는 원자 값을 지정할 수 있다. 세트 값 속성에는 둘 이상의 원자 값이 포함되어 있다. 로는 역할과 프로젝트가 있다. 원자 값 속성에는 원자 값이 하나만 포함되어 있다. 그 예로는 간극과 민감성이 있다. 속성은 정적 값 또는 서로 비교할 수 있으므로 관계 기반 액세스 제어가 가능하다.

개념 자체가 수년 동안 존재했지만, ABAC는 많은 다른 정보 시스템의 특정 속성을 포함하는 접근 제어 정책을 정의하여 승인을 해결할 수 있도록 리소스에 동적, 상황 인식 및 위험 인텔리전트한 접근 제어를 제공하기 때문에 "차세대" 인가 모델로 간주된다. 효율적인 규제 컴플라이언스를 달성하여 기업이 기존 인프라를 기반으로 유연하게 구현할 수 있도록 지원

속성 기반 액세스 제어를 Microsoft 특정 용어인 정책 기반 액세스 제어(PBAC) 또는 클레임 기반 액세스 제어(CBAC)라고 부르기도 한다. ABAC를 구현하는 핵심 표준은 XACMLALFA(XACML)이다.[4]

속성 기반 액세스 제어의 치수

ABAC는 다음과 같이 볼 수 있다.

  • 외부화된 권한 관리[5]
  • 동적 인증 관리[6]
  • 정책 기반 액세스 제어
  • 미세한 권한 부여

구성 요소들

건축

ABAC는 다음과 같은 권장 아키텍처를 제공한다.

  1. PEP 또는 정책 시행 지점: ABAC를 적용하려는 애플리케이션과 데이터를 보호하는 역할을 담당한다. PEP는 요청을 검사하고 PDP로 보내는 승인 요청을 생성한다.
  2. PDP 또는 Policy Decision Point는 아키텍처의 두뇌다. 이것은 그것이 구성된 정책과 비교하여 들어오는 요청을 평가하는 부분이다. PDP는 허가/거부 결정을 반환한다. PDP는 PIP를 사용하여 누락된 메타데이터를 검색할 수도 있음
  3. PIP 또는 Policy Information Point는 LDAP 또는 데이터베이스와 같은 속성의 외부 출처에 PDP를 연결한다.

특성

속성은 어떤 것이든 누구에게나 있을 수 있다. 그들은 4가지 다른 범주로 분류되는 경향이 있다.

  1. 제목 속성: 나이, 허가, 부서, 역할, 직책 등 액세스를 시도하는 사용자를 설명하는 속성...
  2. 작업 속성: 읽기, 삭제, 보기, 승인 등 시도 중인 작업을 설명하는 속성...
  3. 객체 속성: 액세스 중인 객체(또는 자원)를 설명하는 속성(예: 객체 유형(의료 기록, 은행 계좌...), 부서, 분류 또는 민감도, 위치...
  4. 상황별(환경) 속성: 액세스 제어 시나리오의[7] 시간, 위치 또는 동적 측면을 다루는 속성

정책들

정책은 일어날 수 있고 허용되지 않는 것을 표현하기 위해 속성을 결합하는 진술이다. ABAC의 정책은 정책을 허용하거나 거부할 수 있다. 정책은 또한 지역적이거나 글로벌적일 수 있으며 다른 정책보다 우선하는 방식으로 작성될 수 있다. 예를 들면 다음과 같다.

  1. 문서가 사용자와 같은 부서인 경우 사용자는 문서를 볼 수 있음
  2. 사용자가 소유자이거나 문서가 초안 모드인 경우 문서를 편집할 수 있음
  3. 오전 9시 이전에 액세스 거부

ABAC를 사용하면 다양한 시나리오와 기술에 부합하는 정책을 원하는 만큼 가질 수 있다.[7]

기타 모델

역사적으로 접근 제어 모델에는 의무적인 접근 제어(MAC), 임의 접근 제어(Deasury Access Control, DAC) 및 보다 최근에는 역할 기반 접근 제어(RBAC)가 포함되었다. 이러한 접근 제어 모델은 사용자 중심적이며, 자원 정보, 사용자(요청 주체)와 자원 사이의 관계, 동적 정보(예: 하루의 시간 또는 사용자 IP)와 같은 추가 매개변수를 고려하지 않는다. ABAC는 요청된 개체(사용자), 대상 개체 또는 자원, 원하는 작업(보기, 편집, 삭제...), 환경 또는 상황 정보를 설명하는 속성을 기반으로 접근 제어를 정의함으로써 이 문제를 해결하려고 한다. 접속 통제가 속성 기반이라는 말이 나오는 이유다.

구현

속성 및 정책 기반 액세스 제어를 구현하는 표준 중 하나는 eXtensible Access Control Markup Language인 XACML이다. XACML은 아키텍처, 정책 언어 및 요청/응답 체계를 정의한다. 기존의 IAM 툴, 데이터베이스, 디렉토리에 맡겨진 속성 관리(사용자 속성 할당, 객체 속성 할당, 환경 속성 할당)는 취급하지 않는다.

미군의 모든 지사를 포함한 기업들은 ABAC를 사용하기 시작했다. 기본 레벨에서 ABAC는 데이터를 사용자에게 할당하는 대신 'IF/TEN/AND' 규칙으로 데이터를 보호한다. 미국 상무부는 이를 의무적인 관행으로 삼고 있으며 입양은 여러 정부 및 군사 기관으로 확산되고 있다.[1][8]

적용들

ABAC의 개념은 기술 스택의 어떤 수준과 엔터프라이즈 인프라에도 적용될 수 있다. 예를 들어 ABAC는 방화벽, 서버, 애플리케이션, 데이터베이스 및 데이터 계층에서 사용될 수 있다. 속성 사용은 접근 요청의 정당성을 평가하고 접근 허용 또는 거부 결정을 알리기 위한 추가적인 상황을 제공한다.

ABAC 솔루션을 평가할 때 고려해야 할 중요한 사항은 성능에 대한 잠재적 오버헤드와 사용자 경험에 미치는 영향을 이해하는 것이다. 제어장치는 세밀할수록 오버헤드가 클 것으로 예상된다.

API 및 마이크로 서비스 보안

ABAC는 API 방법이나 기능에 속성 기반, 세분화된 권한을 적용하는 데 사용할 수 있다. 예를 들어, 은행 API는 acceptTransaction(transId) 방법을 노출할 수 있다. ABAC는 통화 보안을 위해 사용할 수 있다. 정책 작성자는 ABAC를 사용하여 다음 사항을 작성할 수 있다.

  • 정책: 관리자가 승인 한도 내에서 트랜잭션을 승인할 수 있음
  • 사용된 속성: 역할, 작업 ID, 개체 유형, 양, 승인 제한.

흐름은 다음과 같을 것이다.

  1. 사용자 Alice는 API 메서드를 approvateTransaction(123)이라고 부른다.
  2. API는 호출을 받아 사용자를 인증한다.
  3. API의 인터셉터는 인증 엔진(일반적으로 Policy Decision Point 또는 PDP라고 함)에 전화를 걸어 다음과 같이 묻는다: 앨리스가 123 거래를 승인할 수 있는가?
  4. PDP는 ABAC 정책과 필요한 속성을 검색한다.
  5. PDP는 예를 들어 결정에 도달한다. 허용 또는 거부 후 API 인터셉터로 반환
  6. 결정이 허여인 경우, 기본 API 비즈니스 로직을 호출한다. 그렇지 않으면 API에서 오류 또는 액세스가 거부됨을 반환한다.

애플리케이션 보안

ABAC의 주요 이점 중 하나는 승인 정책과 속성이 기술 중립적인 방식으로 정의될 수 있다는 것이다. 이는 API나 데이터베이스에 대해 정의된 정책이 애플리케이션 공간에서 재사용될 수 있다는 것을 의미한다. ABAC의 이점을 누릴 수 있는 일반적인 애플리케이션은 다음과 같다.

  1. 컨텐츠 관리 시스템
  2. ERPs
  3. 자체 개발한 응용 프로그램
  4. 웹 응용 프로그램

API 절에서 설명한 것과 동일한 프로세스와 흐름을 여기에 적용한다.

데이터베이스 보안

데이터베이스 보안은 오랫동안 데이터베이스 공급업체에 한정되어왔다. Oracle VPD, IBM FGAC 및 Microsoft RLS는 모두 세분화된 ABAC와 같은 보안을 달성하기 위한 수단이다.

예를 들면 다음과 같다.

  • 정책: 관리자가 해당 지역의 트랜잭션을 볼 수 있음
  • 데이터 중심 방식으로 재작업된 정책: 사용자 role == manager 할 수 있다 SELECT 에 관하여 table == TRANSACTIONS 만일 user.region == transaction.region

데이터 보안

데이터 보안은 일반적으로 데이터베이스 보안보다 한 단계 더 나아가 데이터 요소에 직접 제어를 적용한다. 이를 흔히 데이터 중심 보안이라고 한다. 전통적인 관계형 데이터베이스에서 ABAC 정책은 필터링 조건을 가진 논리적 제어와 속성을 기반으로 한 마스킹을 사용하여 테이블, 컬럼, 필드, 셀 및 하위 셀의 데이터에 대한 액세스를 제어할 수 있다. 속성은 특정 데이터 요소에 대한 액세스를 동적으로 허용/거부하는 데 있어 가장 높은 수준의 유연성을 제공하는 데이터, 사용자, 세션 또는 도구가 될 수 있다. 빅데이터 및 Hadoop과 같은 분산 파일 시스템에서 ABAC는 폴더, 하위 폴더, 파일, 하위 파일 및 기타 세분화된 데이터 계층에 대한 액세스를 제어한다.

빅데이터 보안

Hadoop과 같은 빅데이터 시스템에도 속성 기반 액세스 제어를 적용할 수 있다. 데이터 호수에서 데이터를 검색할 때 이전에 사용한 것과 유사한 정책을 적용할 수 있다.[9][10]

파일 서버 보안

윈도우즈 서버 2012를 기준으로 마이크로소프트는 파일과 폴더에 대한 액세스를 제어하는 ABAC 접근 방식을 구현했다. 이는 동적 액세스 제어(DAC)[11]와 SDDL(Security Descriptor Definition Language)을 통해 달성되며 SDDL은 사용자(청구)와 파일/폴더의 메타데이터를 사용하여 액세스를 제어하기 때문에 ABAC 언어로 볼 수 있다.

참고 항목

참조

  1. ^ Computer Security Division, Information Technology Laboratory (2016-05-24). "Attribute Based Access Control CSRC CSRC". CSRC NIST (in American English). Retrieved 2021-11-25.
  2. ^ NIST, ABAC (2014). "Guide to Attribute Based Access Control (ABAC) Definition and Considerations" (PDF).{{cite web}}: CS1 maint : url-status (링크)
  3. ^ NIST (2016). "A Comparison of Attribute Based Access Control (ABAC) Standards for Data ServiceApplications" (PDF).{{cite web}}: CS1 maint : url-status (링크)
  4. ^ Silva, Edelberto Franco; Muchaluat-Saade, Débora Christina; Fernandes, Natalia Castro (2018-01-01). "ACROSS: A generic framework for attribute-based access control with distributed policies for virtual organizations". Future Generation Computer Systems. 78: 1–17. doi:10.1016/j.future.2017.07.049. ISSN 0167-739X.
  5. ^ "Technology Overview for Externalized Authorization Management". www.gartner.com. Retrieved 2017-05-31.
  6. ^ "Leadership Compass: Dynamic Authorization Management - 71144". KuppingerCole. Retrieved 2020-07-14.
  7. ^ a b "Alternatives for Roles/Claims Access Control Systems". stackoverflow.com.
  8. ^ Coffey, Alisa (2019-03-28). "Attribute Based Access Control (ABAC) – Encryption on Steroids". Siemens PLM Community. Retrieved 2019-04-01.
  9. ^ "Dynamic, Fine-Grained Authorization Secures Big Data".
  10. ^ "First Fine-grained Data Access Control On Hadoop".
  11. ^ "Dynamic Access Control Overview (Windows 10) - Windows security".

외부 링크