인가
: 주체의 인증을 완료한 후, 그 주체에게 어떤 작업을 허용할 것인지 결정하는 것식별 ➡ 인증 ➡ 인가
최소 권한의 법칙
: 접근이 허용된 주체에게, 목적을 수행하기 위해 필요한 거의 최소한의 접근만을 허용해야 한다는 것
예) 판매 부서 직원이 인사 시스템 데이터에 접근할 필요는 없다
최소 권한의 원칙을 위반하는 행위가 보안 문제의 근본적인 원인이 되는 경우가 많다.
예) 운영체제의 사용자 계정에 권한을 부여할 때, 일반 사용자가 관리자 권한을 가지도록 설정되는 경우 - 악성코드 감염 시 공격자가 관리자 권한을 갖게 됨
시스템 구성, 계정 권한 할당, 보안에 대한 계획을 할 때 최소 권한의 원칙을 준수하자. 간단한 보안 조치이지만 효과는 크다.
접근 허용
: 특정 주체에게 특정 자원에 대한 접근 권한을 허용하는 것
예) 특정 사람에게 파일 하나에 대한 접근 권한을 부여하는 것
예) 특정 그룹 전체 사용자들에게 특정 디렉토리 모든 파일에 대한 접근 권한 부여하는 것
예) 열쇠나 신분증 사용을 통해 시설물에 접근할 수 있게 하는 것(물리적 관점)
예)
접근 거부
: 특정 주체가 특정 자원에 접근하는 것을 막는 것. 대부분 승인된 사용자들을 제외한 나머지에게는 접근을 거부하도록 설정되어 있다.
예) 특정 사용자가 오전 8시부터 오후 10시까지 특정 장치에 로그인을 시도할 떄 접근을 거부하는 것
예) 업무시간 이후에 승인되지 않은 사람이 건물 로비에 들어오는 것을 막는 것
접근 제한
: 자원에 대한 접근을 어느 정도까지만 허용하는 것. 웹 브라우저 같이 외부 환경에 노출되는 공격을 당하기 쉬운 응용 프로그램 사용 시에는 접근 제한이 중요하다.
예) 응용 프로그램 실행 영역(context) 밖에서 실행되는 것을 제한하기 위해 응용 프로그램을 샌드박스 안에서 실행
예) 건물의 자물쇠를 열 수 있는 각기 다른 수준의 열쇠(물리적 관점) - 만능 열쇠, 중간 수준의 열쇠, 낮은 수준의 열쇠
접근 철회
: 특정 주체에게 특정 자원에 대한 접근 권한을 부여한 이후, 해당 접근 권한을 다시 회수할 수 있어야 한다.
예) 직원을 해고한다면 그 직원이 가지고있던 모든 접근 권한을 신속히 회수해야 한다. 메일 계정 접근, 가상사설망 연결, 신분증 건물 출입 등
접근통제 리스트
(ACLs, Access Control Lists) : 보통 실행 중인 파일 시스템의 접근을 운영체제가 통제한다. 시스템이 속한 네트워크에서 트래픽의 흐름을 통제하기 위해 사용한다. 접근통제를 구현하는 매우 보편적인 방법이다.
일반적으로 특정 자원에 특화되어 만들어진다.
간단한 예) 앨리스: 허용, 밥: 거부
읽기(r)
: 파일이나 디렉토리 내용에 접근 허용
쓰기(w)
: 파일이나 디렉토리에 쓰는 것 허용
실행(x)
: 파일이 시스템에서 실행 가능한 프로그램이나 스크립트 포함 시 파일 실행을 허용
특정 파일이나 디렉토리가 접근통제 리스트를 여러 개 가질 수도 있다.
유닉스의 경우, rwx(소유자
) rwx(그룹
) rwx(기타사용자
)
파일 권한을 사용함으로 파일 시스템을 사용하는 운영체제와 응용 프로그램에 대한 접근을 어느정도 통제할 수 있다.
네트워크 접근통제 리스트의 허락
(permission) : 접근통제 리스트를 구성할 때 식별자들에 의해 통제하고자 하는 트래픽 - 허용할 것인지 거부할 것인지 명시한다.
MAC
(Media Access Control) 주소 필터링 : 주어진 시스템 내의 각각의 네트워크 인터페이스에 부착되는 유일한 식별자
대부분의 운영체제에서 소프트웨어적 설정에 의해 덮어씌워질 수 있다. 즉 네트워크에서 특정 장치의 유일한 식별자로 MAC 주소를 사용하는 것은 좋은 선택이 아니다.
IP
(Internet Protocol) 주소 필터링 : 개인의 IP 주소 또는 IP 주소의 일정 범위에 기반하여 필터링
IP 주소는 변조될 수 있고, 특정 네트워크 인터페이스에 유일하지 않다. ISP(Internet Service Provider)로부터 할당되는 IP 주소는 빈번히 바뀌므로 필터링을 위해 IP 주소만을 사용하는 것은 바람직하지 않다.
포트
필터링 : 대부분의 서비스와 응용 프로그램은 네트워크에서 통신하기 위해 특정 포트를 사용한다. 특정 포트로부터 발생하거나 보내지는 트래픽을 허용/거부함으로 네트워크를 통한 응용 프로그램들의 사용을 통제한다.
MAC, IP 주소 같이 절대적인 것은 아니고 관례적이다(바꿀 수 있다).
소켓
: IP 주소와 포트의 결합
IP 주소는 유일함을 보장 못 하고, MAC 주소는 변경이 쉽다. 여러 속성을 결합하여 사용하면 보다 안전한 기술이 될 수 있다.
접근통제 리스트 : 특정 자원, 주체, 허락 범위를 기준으로 허락 여부 정의
능력
에 기반한 보안 : 접근을 통제하는 토큰 사용을 기반으로 허락 여부 정의
능력 기반 보안에서의 토큰
: 건물에서 문을 열기 위해 사용하는 신분증과 유사하다. 문이 하나이고 많은 사람들이 그 문을 열 수 있는 토큰을 가지고 있지만, 각 사람들이 가진 접근 권한은 다른 수준이다. 어떤 사람은 평일 업무시간에만 들어갈 수 있고, 어떤 사람은 아무 때나 들어갈 수 있다.
능력 기반 시스템에서 자원 접근 권한은 : 누가 그 토큰을 소유했느냐(X), 토근의 소유 그 자체(O)에 기반한다. 나의 신분증을 다른 사람에게 준다면 그 사람도 건물에 들어갈 수 있다.
능력 기반 시스템에서 응용 프로그램은 : 다른 응용 프로그램과 접근 수준을 정의하는 토큰을 공유할 수 있다.
혼동된 대리인 문제
: 자원 접근 권한을 가진 소프트웨어가, 그 소프트웨어를 통제하는 사용자보다 더 높은 자원 접근 권한을 가지는 경우 나타날 수 있다.
능력 기반 시스템이 아닌, 접근통제 리스트를 사용하는 시스템 에서 흔히 나타날 수 있는 공격 유형이다.
클라이언트 측 공격
: 사용자 컴퓨터에서 실행되는 응용 프로그램의 취약점 이용 - 웹 브라우저를 통해 공격 코드가 내장된 pdf, 그림, 영상 파일 등을 전송하고, 사용자 컴퓨터에서 실행하는 형태이다.
CSRF
(Cross-Site Request Forgery) : 크로스 사이트 요청 위조 - 사용자 컴퓨터 브라우저의 권한을 남용하는 공격 사용자가 이미 인증받은 웹사이트를 알고 있거나 추측할 수 있다면 시도할 수 있다.
공격자는 웹 페이지나 html 기반 이메일에 사이트 이미지 링크를 끼워넣는다. 링크되어있는 이미지를 불러오려고 시도를 하면 공격 코드가 추가적으로 실행된다.
예) 사용자의 브라우저가 amazon.com으로부터 이미지를 가져올 때, amazon.com에 대한 인증 쿠키가 종료되지 않았다면 공격자는 사용자가 모르게 책을 구매하도록 할 수 있다.
클릭재킹
(Clickjacking) : 웹 브라우저에서 가능한 페이지 렌더링(rendering) 특성 사용 - 사용자를 속여 구매하게 하거나 권한을 변경하거나 기타 범죄 행위를 하는 데 사용될 수 있다.
공격자는 공격 수단으로 사용할 웹사이트의 일부를 합법적으로 통제하거나 장악한다. 그리고 사용자가 실행될 것이라 생각하고 있는 것과 다른 명령을 실행하게 하기 위해 사이트를 수정한다. 사용자가 보통 클릭하는 개체 위에 보이지 않는 레이어를 배치한다.
흔히 사용되는 운영체제에서는 능력에 기반한 보안을 최소한도로만 구현하고 있다. 응용 프로그램들 사이에서 권한을 공유하는 기능을 포함하고 있지 않다. 응용 프로그램이나 플러그인 형태의 추가적인 보안 레이어가 필요하다.
접근 통제
: 인증 수행 → 주체가 접근할 수 있는 자원 결정 → 주체의 접근을 허용/거부하는 수단
접근통제는 일상에서 매일 하고 있으며, 다양한 형태로 구현되어 있다.
논리적 속성에 기반한다. 속성은 특정 사람, 특정 자원, 환경의 속성이 될 수도 있다.
주체의 속성 : 특정 개인이 가지고 있는 속성
자원의 속성 : 운영체제나 응용 프로그램과 같은, 특정 자원과 관계된 속성
환경적 속성 : 환경 조건에 기반하는 속성
앞의 모델들이 정보 보호에 충분하지 않은 경우 사용한다.
군, 정부기관, 민감 데이터를 다루는 기간 등에서 사용한다 - 핵 기밀, 비공개 의료정보(PHI, Protected Health Information) 등
벨-라파둘라(Bell-LaPadula) 모델
비바(Biba) 모델
브류어-내쉬(Brewer and Nash) 모델
접근통제 방법들을 논리적 보안뿐 아니라 물리적 보안에도 적용될 수 있다.
물리적 접근통제는 주로 개인, 차량의 접근통제와 관련이 많다.
개인적 접근통제 : 건물이나 설비에 들어가고 나가는 것 통제 중심
예) 신분증을 이용 - 시설 내부 출입문 개방 통제, 사용 시간 규제
테일게이팅(Tailgating)
: 물리적 접근통제에서 흔한 문제 중 하나. 신분증 같은 물리적 접근통제 수단에 의해 인증할 때, 다른 사람이 인증 없이 뒤를 따라 들어오는 것.
물리적 접근통제의 복잡한 예) 공항 보안 시스템
탐승권과 신분증 제출 → 위험 장치 소지 여부 검사 → 탑승권 한 번 더 제출
차량에 대한 물리적 접근통제 : 원하지 않는 지역에 차량이 진입하거나 지나가는 것 막음.
차량 진입용 말뚝(Jersey Barrier), 스파이크 스트립(Spike Strip), 울타리 등의 간단한 장애물
유인/무인 라이징 배리어(Rising Barrier), 자동 출입문 등 좀 더 복잡한 장치들