4학년 1학기 Information Security 수업을 듣고, 정리한 내용이다.
Access Control principles
- NIST IR 7298
- “the process of granting or denying specific requests to 1) obtain and use information and related information processing services and 2) enter specific physical facilities”
- RFC 4949
- “a process by which use of system resources is regulated according to a security policy that is permitted only by authorized entities (users, programs, or other systems) according to that policy”
Access Control Security Requirements
- Limit system access to authorized users, processes acting on behalf of authorized users, and devices (including other systems)
- Limit system access to the type of transactions and functions that authorized users are permitted to execute
- Control the flow of CUI in accordance with approved authorizations
- Separate the duties of individuals to reduce the risk of malevolent(악의있는) activity without collusion
- Employ the principle of least privilege, including for specific security functions and privileged accounts
- Use non-privileged accounts or roles when accessing nonsecurity functions
- Prevent non-privileged users from executing privileged functions and capture the execution of such functions in audit logs
- Limit unsuccessful logon attempts 로그인 실패 시도를 제한해라
- Provide privacy and security notices consistent with applicable CUI rules
- 적용가능한 CUI 규칙에 일관된 개인정보 보호 및 보안 고지를 제공
- Use session lock with pattern-hiding displays to prevent access and viewing of data after period of inactivity.
- Terminate (automatically) a user session after a defined condition.
- Monitor and control remote access sessions.
- Employ cryptographic mechanisms to protect the confidentiality of remote access sessions.
- Route remote access via managed access control points.
- 원격 접근은 특정 관리되는 접근 제어 지점을 통해서만 이루어져야 함
- Authorize remote execution of privileged commands and remote access to security-relevant information.
- 특권 명령의 원격 실행과 보안 관련 정보에 대한 원격 접근을 승인
- Authorize wireless access prior to allowing such connections.
- Protect wireless access using authentication and encryption.
- Control connection of mobile devices.
- Encrypt CUI on mobile devices and mobile computing platforms.
- Verify and control/limit connections to and use of external systems.
- Limit use of portable storage devices on external systems.
- Control CUI posted or processed on publicly accessible systems.
Access Control Context
- Access control involves authentication/authorization/audit
- User try to access computer system
- Authentication
- process of identifying user who wants to access the computer system
- Authentication function을 통해 Authentication 수행
- Access Control
- process of identifying what kind of resources can be accessed, by the user
- Access control function을 통해 Access control이 끝나면, user can access the resources
해당 전체 과정에서 Auditing이 되어야 함

Access Control Polices
- Discretionary access control(DAC)
- Controls access based on the identify of the requestor and on access rules(authorizations) stating what requestor are allowed to do
- An entity might have access rights that permit the entity to enable another entity to access some resources
- Mandatory access control(MAC)
- Controls access based on comparing sercurity labels with security clearances
- An entity that has clearance to access a resource may not enable another entity to access that resource
- Role-based access control(RBAC)
- Controls access based on the role that users have within the system and on rules stating what accesses are allowed to users in given roles
- Attribute-based access control(ABAC)
- Controls access based on attributes of the user, the resource to be accessed, and current environmental conditions
Subjects, objects, and access rights
- The basic elements of access control
Subject
- An entity capable of accessing objects
- Three classes ex) owner, group, world
Object
- A resource to which access is controlled
- Entity used to contain and/or receive information
Access right
- Describes the way in which a subject may access an object
- Could include: Read, Write, Execute, Delete, Create, Search
Discretionary access control
- Scheme in which an entity may enable another entity to access some resources 자원의 소유자나 그에게 권한을 부여받은 사용자가 다른 사용자에게 자원에 대한 접근 권한을 부여하거나 취소할 수 있음
- Often provided using an access matrix
Access Matrix
- One dimension consists of identified subjects that may attempt data access to the resources
- The other dimension lists the objects that may be accessed
- Each entity in the matrix indicates the access rights of a particular subject for a particular object

Access Control Lists
- Yielded by decomposition of access matrix by columns
- Convenient when it is desired to determine which subjects have which access rights for a particular resource
- 특정 사용자에 대한 파일 접근 권한이 알고싶으면 inconvenient

Capability Tickets
-
Yielded by decomposition of access matrix by rows
-
Good for determining the set of access rights that a given user has for all resources 주어진 사용자가 모든 자원에 대해 가지고 있는 접근 권한의 집합을 결정하는 데 유용
-
The integrity of the tickets must be protected
- OS holds all tickets in a certain are in memory which is inaccessbile to users
- 사용자가 접근 불가능한 메모리 영역에 모든 티켓을 보관함
- Represents tickets as unforgeable(위조할 수 없는) tokens such as random passwords or MACs
- Good in distributed environment

Authorization Table
- Contains one row for one access right of one subject to one resource
- Can act as either ACL or Capability tickets after sorting using either by subject or object

An Access Control Model
- A general model of DAC developed by Lampson, Graham, and Denning
- Assumes a set of objects, subjects, and rules that govern the access of subjects to objects
- Protection State
- Set of information, at a given point in time, that specifies the access rights for each subject with respect to each object
- 특정 시점에서 시스템 내의 모든 객체에 대한 모든 주체의 접근 권한을 지정하는 정보의 집합
- Three requirements to run the model
- Representing the protection state → Extended Access control matrix에 의해 표현됨
- Extended Access control matrix is defined based on Subjects, Objects, Set of Rules
- copy flag set: 해당 권한이 다른 주체에게 복사될 수 있는지 여부를 나타냄
- 주체 간의 권한 및 제어 관계도 설명할 수 있음

- Enforcing access rights
- Access is mediated by controller
- Whenever request is delivered by subjects, system check the validity of the request using access matrix

-
Allowing subjects to alter the protection state in certain ways
주체가 특정 방식으로 protections state를 바꿀 수 있게 함
Protection Domains
- Set of objects together with access rights to those objects 리소스 집합과 그 리소스들에 대한 접근 권한을 함께 묶어 관리하는 방식
- More flexibility when associating capabilities with protection domains
- ex1. User can spawn processes with a subset of the access rights of the user 사용자는 자신이 가진 권한의 부분 집합을 가지고 새로운 프로세스를 생성할 수 있음
- Association between a process and a domain can be static or dynamic
- ex 2. Distinction between user mode and kernel mode in UNIX variant OS
- In user mode, certain areas of memory are protected from use and certain instructions may not be executed 사용자모드에서는 시스템의 중요한 영역에 대한 접근이 제한되며, 특정 시스템 명령어의 사용이 금지됨
UNIX file access control
UNIX file system
- Based on inode (index node)
- Contains the key info needed by the OS for a particular file
- An inode is associated with a file
- inode lists are maintained by OS system
- A directory: a file of list of filenames + pointers to associated inodes
- Directories are structured in a hierarchical tree

Traditional UNIX FIle Access Control
- Unique user identification number (UserID) → 각 사용자는 고유한 사용자 식별 번호를 가지며, 이 번호를 통해 시스템은 사용자를 식별
- A user is a member of a primary group identified by a group ID → 사용자는 하나의 기본 그룹에 속하며, 이 그룹은 그룹 ID로 식별됨
- A set of 12 protection bits is associated with each file → 각 파일에는 12개의 보호 비트가 연결되어 있음
- First 9 bits → 파일 소유자, 그룹 구성원, 다른 모든 사용자에 대한 읽기, 쓰기, 실행 권한을 지정
- specify read, write and execute permission for the owner of the file, members of the group and all other users
- remaining 3 bits
- Special additional behavior for files → 파일에 대한 특별한 추가 행동을 지정하며, 특정 상황에서 특별한 접근 권한을 부여할 수 있도록 함
- “Set user ID” (SetUID) and “Set group ID”(SetGID) bits
- System temporarily uses rights of the file owner/group in addition to the real user’s rights when making access control decisions
- Enables privileged programs to access files/resources not generally accessible
- “Sticky bit”
-
When applied to a directory it specifies that only the owner of any file in the directory can rename, move, or delete that file
→ 해당 디렉토리 내의 모든 파일에 대해 파일의 소유자만이 파일의 이름을 변경, 이동 또는, 삭제할 수 있도록 지정

💡 the owner ID, group ID, and protection bits are part of the file’s inode
- Superuser
- Is exempt(면제하다) from usual access control restrictions
- Has system-wide access
Access Control Lists in UNIX
- Modern UNIX systems support ACLs → FreeBSD, OpenBSD, Linux, Solaris…
- FreeBSD
Setfacl
command assigns a list of UNIX user IDs and groups to specific file
- Any number of users and groups can be associated with a file → 파일과 연결될 수 있는 사용자의 그룹 수에 제한이 없음
- Read, write, execute protection bits
- A file does not need to have an ACL → 파일이 꼭 ACL을 가질 필요는 없음
- Includes an additional protection bit that indicates whether the file has an extended ACL → 파일이 확장 ACL이 있는지를 나타내는 추가 보호 비트를 포
- When a process requests access to a file system objects two steps are performed (파일 시스템 객체에 대한 접근 요청 처리 과정)
- Step 1. selects the most appropriate ACL → 가장 적합한 ACL 선택
- Step 2. checks if the matching entry contains sufficient permissions → 일치하는 항목이 충분한 권한을 포함하고 있는지 확인
Mandatory Access Control
- A concept that evolved out of requirements for military infomation security
- Controls access based on comparing security labels with security clearnaces → 보안 레이블과 보안 인가를 비교하여 접근을 제어하는 방식
Bell-LaPadula(BLP) model
- Developed as a formal model for access control that aims to prove that a design satisfies security requirements → 보안 요구사항을 만족하는 설계를 증명하기 위해 개발된 정형적 접근 제어 모델
- Each subject and each object is assigned a security class that forms a strict hierachy → 각 subject와 object에게 엄격한 계층 구조를 형성하는 보안 등급이 할당됨
- Applicable in other areas, where information is organized into gross(대규모) levels and compartments(구획), and users can access certain compartments
- Security classes(보안등급) control the manner by which a subject may access an object
- Four access modes:
- read
- append
- write
- execute
Multilevel security(MLS) 다중레벨보안:
- Used when multiple categories or levels of data are defined
- Properties:
- No read up(읽기금지): simple security property
- 자신의 보안등급보다 높은 보안 등급을 가진 객체(문서, 파일 등)를 읽을 수 없도록 함
- No write down: *-property
- 자신의 보안등급보다 낮은 보안등급을 가진 객체에 정보를 쓰는 것을 금지
- Discretionary access control (DAC)
- MAC + the ds-property
- An individual may grant another individual access to a document based on the owner’s discretion, constrained by the MAC rules → 개인이 보안 규칙에 의해 제약을 받는 범위 내에서 다른 개인에게 문서에 대한 접근을 허용할 수 있음
Limitations of the Bell-LaPadula(BLP) model
- Cannot manage the ”downgrade” of objects
- 정보의 보안등급을 낮추는 다운그레이드 과정을 효과적으로 관리하는 메커니즘이 없음
- Classification creep 분류의 애매모호함
- Object should be in one level
- A document may contain the information of various levels 객체가 단일 보안 등급에 속해야 한다고 가정하지만, 실제로 하나의 문서나 데이터는 여러 보안 등급에 걸친 정보를 포함할 수 있음
MLS(Multi-level Security)/MAC implementations
- Multics operating system
- 보안기능이 우수하고 사용자 인터페이스 및 기타 영역에서 더 정교한 초기 MLS 구현
- SELinux
- NSA’s powerful implementation of MAC for Linus that can be time-consuming to configure troubleshoot
- AppArmor
- SELinux와 유사하게 리눅스 기반 시스템에서 사용할 수 있는 또 다른 MAC구현체
- 특정 프로세스를 제한하지만, 나머지는 그대로 두는 부분적 MAC 구현
- Fedora 및 Red Hat Enterprise Linux
Mandatory Integrity Control(MIC)
MIC의 핵심 개념은 프로세스와 파일에 무결성 레벨을 할당하고, 이 무결성 레벨을 기반으로 접근 제어 결정을 내리는 것
- A variant of the MAC, but based on a different model to BLP → MAC의 변형으로 BLP모델과는 다른 모델을 기반으로 함
- Adds Integrity Levels to processes running in a login session → 로그인 세션의 프로세스에 무결성 레벨 추가
- Restricts the access permissions of applications running under the same user account → 동일 사용자 계정 하의 무결성 레벨에 따라 애플리케이션 접근 권한 제한
- 높은 무결성 레벨을 가진 애플리케이션은 낮은 무결성 레벨의 데이터나 프로세스에 접근할 수 있지만, 낮은 무결성 레벨의 애플리케이션이 높은 무결성 레벨의 데이터에 접근하는 것은 제한
Role-based access control(RBAC)
- Assign different roles to users dynamically
- Rights are given based on the roles
- To realize role based access control, two different types of matrix is maintained
- User matrix
- Role objects access matrix

RBAC Reference Models
- Relationship between various RBAC models

- RBAC1 → RBAC0 with Role hierarchy
- 기본 RBAC0모델에 역할 계층 개념을 추가한 것
- 계층 구조는 조직 내에서 역할 간의 상하 관계를 반영

- RBAC2 → RBAC0 with Constraints
- Provide means of adapting RBAC to the specifics of administrative and security policies of an organizaiton RBAC0 에 제약 조건을 추가하여, 조직의 특정 관리 및 보안 정책을 반영할 수 있도록 함
- A defined relationship among roles or a condition related to roles → 제약 조건은 역할 간의 관계나 역할에 관련된 조건을 정의함
- Types
- Mutually exclusive roles 상호배타적 역할 → 한 사용자가 동시에 여러 역할을 가질 수 없음
- A user can only be assigned to one role in the set (either during a session or statically)
- Any permission(access right) can be granted to only one role in the set
- Cardinality
- Setting a maximum number with respect to roles 특정역할에 할당 할 수 있는 사용자 수에 상한을 설정
- Prerequisite roles 전제조건 역할
- Dictates that a user can only be assigned to a particular role if it is already assigned to some other specified role 특정 역할을 부여받기 위해 먼저 다른역할을 부여받아야 하는 경우를 정의하는 제약 조건
Attribute-based accesss control
Subject와 Object의 속성을 기반으로 접근 권한을 결정하는 접근 제어 모델
- Can define authorizations that express conditions on properties of both the resource and the subject 주체와 객체의 속성에 기반한 조건을 정의할 수 있음 ex. 특정 문서에 대한 접근을 ‘금융부서 소속의 직원’이면서 ‘해당 문서의 생성일로부터 1년 이내’인 경우만 허용하는 것과 같이 매우 세밀한 접근 제어 정책 설정 가능
- Strength is its flexibility and expressive power 유연성과 표현력 다양한 속성, 조건을 조합해 접근 제어 정책을 표현할 수 있어, 다른 접근 제어 모델에 비해 높은 유연성과 표현력을 자랑함
- Main obstacle to its adoption in real systems has been concern about the performance impact of evaluating predicates on both resource and user properties for each access 도입의 장애물 각 접근에서 주체와 자원의 속성을 평가하는 과정이 복잡해질 수 있어 실시간 시스템에서 성능 저하가 우려됨
- Web services have been pioneering technologies through the introduction of the eXtensible Access Control Markup language(XACML) 웹서비스에서 XACML의 도입하여, ABAC 모델을 쉽게 구현하고 확장할 수 있음
- There is considerable interst in applying the model to cloud services 클라우드 환경에서 다양하고 동적인 자원에 대한 접근 제어를 관리하기 위해 ABAC 모델에 대한 관심이 증가하고 있음
Attributes
- Characteristics that define specific aspects of the subjects, objects, environment conditions, and/or requested operations 시스템의 다양한 구성 요소들을 더 잘 정의하고 구별하기 위해 사용되는 특성들
- Subject attributes
- A subject is an active entity that causes information to flow among objects or changes the system state 주체란 시스템 상에서 정보의 흐름을 유발하거나 시스템의 상태를 변경하는 활동적인 엔티티
- Attributes define the identity and characteristics of the subjects
- Object attributes
- An object(or resource) is a passive information system related entity containing or receiving information 객체는 정보를 포함하거나 수신하는 수동적인 정보시스템 관련 엔티티
- Objects have attributes that can be leveraged to make access control decisions 접근제어 결정을 내리는데 활용할 수 있는 속성을 가짐. 예) 파일의 유형, 보안 등급, 소유자 등
- Environment attributes
- Describe the operational, technical, and even situational environment or context in which the information access occurs 정보 접근이 발생하는 운영적, 기술적, 상황적 환경 또는 맥락을 설명. 예) 시간, 위치, 네트워크 연결 상태 등
- These attributes have so far been largely ignored in most access control policies 접근제어 정책에서 상대적으로 덜 주목받아온 속성
ABAC Logical Architecture

- Comparision with DAC model
- complexity 관점: ABAC is much more complex than DAC
- 왜냐? DAC과 달리 subject attributes와 rules가 involved


ABAC Policies
- Policy
- Set of rules and relationships that govern allowable behavior within an organization 조직 내에서 허용된 행동을 규정하는 규칙과 관계의 집합
- Based on
- the privileges of subjects 주체의 권한
- How resources or objects are to be protected 객체가 보호되어져야 하는 방식
- Under which environmental conditions 특정 환경 조건
- Typically, writen from the perspective of the objects that needs protection and the privileges available to subjects
- Privileges
- Represent authorized behavior of a subject 주체가 행할 수 있는 허가된 행동
- Defined by an authority and embodied in a policy 정책에 의해 정의되며, 권한 부여 권한을 가진 기관에 의해 부여됨
- Similar terms: rights, authorizations, and entitlements
ABAC Policies - Example and Comparision with RBAC

Identity, credential, and access management(ICAM)
- A comprehensive approach to managing and implementing digital identities(and associated attributes), credentials, and access control 디지털 정체성 및 관련 속성, 자격 증명, 접근 제어의 관리 및 실행에 대한 포괄적인 접근 방식
- Designed to
- create trust digital identity representations of individuals and what the ICAM documents refer to as nonperson entities(NPEs) 개인 또는 비인간 엔터티의 디지털 정체성 표현을 생성
- Bind those identities to credentials that may serve as a proxy for the individual of NPE in access transactions 정체성을 자격증명에 연결하여 접근 거래 시 개인 또는 NPE의 대리인으로 작용할 수 있도록 설계
- A credential is an object or data structure that authoritatively binds an identity to a token possed and controlled by a subscriber 자격 증명은 구독자가 소유 및 제어하는 토큰에 정체성을 권위있게 연결하는 객체 또는 데이터 구조
- Use the credentials to provide authorized access to an agency’s resources 해당 자격증명을 이용해 기관의 리소스에 대한 승인된 접근을 제공
An Overview of ICAM Logical Architecture
- four different modules
- Identity Management: how ID is created and managed for system
- Credential Management: how the credentials are managed and created and assigned user specific id
- Access Management: how can you control management based on the access of the resources based on the identify and the credentials
- Identity Federation

Identity Management
- Assigning attributes to a digital entity and connecting the digital identity to an individual or NPE
- Goal is to establish a trustworthy digital identity that is independent of a specific applicaiton or context 신원관리의 핵심 목표는 특정 애플리케이션 또는 맥락에 구속되지 않는 신뢰할 수 있는 디지털 신원을 구축하는 것으로, 이를 통해 사용자는 다양한 서비스에서 일관되고 안전하게 신원을 인증하고, 서비스를 이용할 수 있음
- Life cycle management
- Mechanisms, policies, and procedures for protecting personal identity info
- Controlling access to identity data 신원 데이터에 대한 접근 제어
- Techniques for sharing authoritative identity data with applications that need it 필요한 애플리케이션과의 데이터 공유 방법
- Revocation of an enterprise identity
Credential Management
- Credential is an object or data structure that authoritatively binds on identity to a token 신원을 토큰이나 인증 수단에 공식적으로 연결하는 객체나 데이터 구조
- Examples of credentials
- Smart card, cryptographic keys, passwords, digital certificates
- Encompasses five logical components
- An authorized individual sponsors an individual or entity for a credential to establish the need for the credential 자격 증명이 필요한 이유를 확립하기 위해, 승인된 개인(또는 기관)이 특정 개인 또는 엔티티를 후원
- the sponsored individual enrolls for the credential
- Process typically consists of identity proofing and the capture of biographic and biometric data 신원 증명 및 생체 정보와 인적 사항의 수집을 포함
- This step may also involve incorporating authoritative attribute data, maintained by the identity management component 신원 관리 구성 요소에 의해 유지되는 공인된 속성 데이터를 포함할 수 도 있음
- A credential is produced
- Depending on the credential type, production may involve encryption, the use of a digital signature, the production of a smart card or other functions 자격 증명 유형에 따라, 생성 과정은 암호화, 디지털 서명 사용, 스마트 카드 제작 또는 기타 기능을 포함할 수 있으며, 이 단계에서는 신원을 증명하기 위한 물리적 또는 디지털 형태의 자격 증명이 만들어짐
- The credential is issued to the individual or NPE
- A credential must be maintained over its life cycle
- Might include revocation, reissuance/replacement, reenrollment, expiration, personal identification number (PIN) reset, suspension, or reinstatement 자격증명의 폐지, 재발급/교체, 재등록, 만료, 식별번호 재설정, 중단 또는 복원을 포함
Access Management
- Deals with the management and control of the ways entities are granted access to resources
- Covers both logical and physical access
- May be internal to a system or an external element
- Purpose is to ensure that the proper identity verification is made when an individual attempts to access a security sensitive building, computer systems, or data
- Three support elements are needed for an enterprise-wide access control facility:
- Resource management
- Concerned with defining rules for a resource that requires access control 접근제어가 필요한 자원에 대한 규칙을 정의하는 것과 관련이 있음.
- Rules would include credential requirements and what user attributes, resource attributes, and environmental conditions are required for access of a given resource for a given function 규칙에는 자격 증명 요구사항과 주어진 기능에 대한 자원 접근에 필요한 사용자 속성, 자원 속성, 환경 조건이 포함될 수 있음
- Privilege management
- Concerned with establishing and maintaining the entitlement or privilege attributes that comprise an individual’s access profile 개인의 접근 프로필을 구성하는 특권 또는 권한 속성을 설정하고 유지하는 것과 관련이 있음
- These attributes represent features of an individual that can be used as the basis for determining access decisions to both physical and logical resources 이러한 속성은 개인의 특성으로 사용되어 물리적 및 논리적 자원에 대한 접근 결정의 기준이 됨
- Privileges are considered attributes that can be linked to a digital identity 디지털 신원에 연결될 수 있는 특권으로 간주됨
- Policy management
- Governs what is allowable and unallowable in an access transaction 접근 거래에서 허용되는 것과 허용되지 않는 것을 규율
Identity Federation
- Term used to describe the technology, standards, policies, and processes that allow an organization to trust digital identities, identity attributes, and credentials created and issued by another organizaiton 다른 조직에서 생성 및 발급한 디지털 신원, 신원 속성, 및 자격 증명을 신뢰할 수 있도록 하는 기술, 표준, 정책, 그리고 프로세스를 설명하는 용어
- Address two questions
- How do you trust identities of individuals from external organizations who need access to your systems? 외부조직의 개인의 신원을 어떻게 신뢰할 수 있나요?
- How do you vouch for identities of individuals in your organization when they need to collaborate with external organizations 외부 조직과 협력할 때 귀하의 조직 내 개인의 신원을 어떻게 보증합니까?