인가와 접근통제

Ray·2023년 10월 25일
0
post-thumbnail

👌 인가 (Authorization)

  • 인가 : 주체의 인증을 완료한 후, 그 주체에게 어떤 작업을 허용할 것인지 결정하는 것

    식별 ➡ 인증 ➡ 인가

  • 접근통제(접근통제 리스트, 능력)을 이용해서 실행한다.
  • 오늘날 대부분의 운영체제에서 완벽하게 구현되어 있지는 않다.

최소 권한의 원칙

  • 최소 권한의 법칙 : 접근이 허용된 주체에게, 목적을 수행하기 위해 필요한 거의 최소한의 접근만을 허용해야 한다는 것
    예) 판매 부서 직원이 인사 시스템 데이터에 접근할 필요는 없다

  • 최소 권한의 원칙을 위반하는 행위가 보안 문제의 근본적인 원인이 되는 경우가 많다.
    예) 운영체제의 사용자 계정에 권한을 부여할 때, 일반 사용자가 관리자 권한을 가지도록 설정되는 경우 - 악성코드 감염 시 공격자가 관리자 권한을 갖게 됨

  • 시스템 구성, 계정 권한 할당, 보안에 대한 계획을 할 때 최소 권한의 원칙을 준수하자. 간단한 보안 조치이지만 효과는 크다.


🚫 접근통제 (Access Control)

접근통제의 네 가지 임무

  • 접근 허용 : 특정 주체에게 특정 자원에 대한 접근 권한을 허용하는 것
    예) 특정 사람에게 파일 하나에 대한 접근 권한을 부여하는 것
    예) 특정 그룹 전체 사용자들에게 특정 디렉토리 모든 파일에 대한 접근 권한 부여하는 것
    예) 열쇠나 신분증 사용을 통해 시설물에 접근할 수 있게 하는 것(물리적 관점)
    예)

  • 접근 거부 : 특정 주체가 특정 자원에 접근하는 것을 막는 것. 대부분 승인된 사용자들을 제외한 나머지에게는 접근을 거부하도록 설정되어 있다.
    예) 특정 사용자가 오전 8시부터 오후 10시까지 특정 장치에 로그인을 시도할 떄 접근을 거부하는 것
    예) 업무시간 이후에 승인되지 않은 사람이 건물 로비에 들어오는 것을 막는 것

  • 접근 제한 : 자원에 대한 접근을 어느 정도까지만 허용하는 것. 웹 브라우저 같이 외부 환경에 노출되는 공격을 당하기 쉬운 응용 프로그램 사용 시에는 접근 제한이 중요하다.
    예) 응용 프로그램 실행 영역(context) 밖에서 실행되는 것을 제한하기 위해 응용 프로그램을 샌드박스 안에서 실행
    예) 건물의 자물쇠를 열 수 있는 각기 다른 수준의 열쇠(물리적 관점) - 만능 열쇠, 중간 수준의 열쇠, 낮은 수준의 열쇠

  • 접근 철회 : 특정 주체에게 특정 자원에 대한 접근 권한을 부여한 이후, 해당 접근 권한을 다시 회수할 수 있어야 한다.
    예) 직원을 해고한다면 그 직원이 가지고있던 모든 접근 권한을 신속히 회수해야 한다. 메일 계정 접근, 가상사설망 연결, 신분증 건물 출입 등

접근통제 구현법(1): 접근통제 리스트

  • 접근통제 리스트(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 주소는 변경이 쉽다. 여러 속성을 결합하여 사용하면 보다 안전한 기술이 될 수 있다.

접근통제 구현법(2): 능력 (Capabilities)

  • 접근통제 리스트 : 특정 자원, 주체, 허락 범위를 기준으로 허락 여부 정의
    능력에 기반한 보안 : 접근을 통제하는 토큰 사용을 기반으로 허락 여부 정의

  • 능력 기반 보안에서의 토큰 : 건물에서 문을 열기 위해 사용하는 신분증과 유사하다. 문이 하나이고 많은 사람들이 그 문을 열 수 있는 토큰을 가지고 있지만, 각 사람들이 가진 접근 권한은 다른 수준이다. 어떤 사람은 평일 업무시간에만 들어갈 수 있고, 어떤 사람은 아무 때나 들어갈 수 있다.

  • 능력 기반 시스템에서 자원 접근 권한은 : 누가 그 토큰을 소유했느냐(X), 토근의 소유 그 자체(O)에 기반한다. 나의 신분증을 다른 사람에게 준다면 그 사람도 건물에 들어갈 수 있다.

  • 능력 기반 시스템에서 응용 프로그램은 : 다른 응용 프로그램과 접근 수준을 정의하는 토큰을 공유할 수 있다.

혼동된 대리인 문제 (Confused deputy problem)

  • 혼동된 대리인 문제 : 자원 접근 권한을 가진 소프트웨어가, 그 소프트웨어를 통제하는 사용자보다 더 높은 자원 접근 권한을 가지는 경우 나타날 수 있다.

  • 능력 기반 시스템이 아닌, 접근통제 리스트를 사용하는 시스템 에서 흔히 나타날 수 있는 공격 유형이다.

  • 클라이언트 측 공격 : 사용자 컴퓨터에서 실행되는 응용 프로그램의 취약점 이용 - 웹 브라우저를 통해 공격 코드가 내장된 pdf, 그림, 영상 파일 등을 전송하고, 사용자 컴퓨터에서 실행하는 형태이다.

  • CSRF(Cross-Site Request Forgery) : 크로스 사이트 요청 위조 - 사용자 컴퓨터 브라우저의 권한을 남용하는 공격 사용자가 이미 인증받은 웹사이트를 알고 있거나 추측할 수 있다면 시도할 수 있다.
    공격자는 웹 페이지나 html 기반 이메일에 사이트 이미지 링크를 끼워넣는다. 링크되어있는 이미지를 불러오려고 시도를 하면 공격 코드가 추가적으로 실행된다.
    예) 사용자의 브라우저가 amazon.com으로부터 이미지를 가져올 때, amazon.com에 대한 인증 쿠키가 종료되지 않았다면 공격자는 사용자가 모르게 책을 구매하도록 할 수 있다.

  • 클릭재킹(Clickjacking) : 웹 브라우저에서 가능한 페이지 렌더링(rendering) 특성 사용 - 사용자를 속여 구매하게 하거나 권한을 변경하거나 기타 범죄 행위를 하는 데 사용될 수 있다.
    공격자는 공격 수단으로 사용할 웹사이트의 일부를 합법적으로 통제하거나 장악한다. 그리고 사용자가 실행될 것이라 생각하고 있는 것과 다른 명령을 실행하게 하기 위해 사이트를 수정한다. 사용자가 보통 클릭하는 개체 위에 보이지 않는 레이어를 배치한다.

  • 흔히 사용되는 운영체제에서는 능력에 기반한 보안을 최소한도로만 구현하고 있다. 응용 프로그램들 사이에서 권한을 공유하는 기능을 포함하고 있지 않다. 응용 프로그램이나 플러그인 형태의 추가적인 보안 레이어가 필요하다.


🙅 접근통제 방법론 (Access Control Model)

  • 접근 통제 : 인증 수행 → 주체가 접근할 수 있는 자원 결정 → 주체의 접근을 허용/거부하는 수단

  • 접근통제는 일상에서 매일 하고 있으며, 다양한 형태로 구현되어 있다.

    • 집 문을 잠그거나 열 때, 열쇠를 이용해서 물리적 접근통제를 수행
    • 차에 시동을 걸 때 자동차 열쇠 이용
    • 회사 건물에 들어가기 위해 신분증(물리적 접근통제, 주체가 가지고 있는 것)
    • 회사 컴퓨터 비밀번호(주체가 아는 것), 자원 접근 시 권한에 따라 논리적 접근통제 시스템 사용

접근통제 모델

임의적 접근통제 (DAC, Discretionary Access Control)

  • 자원의 소유자는 누가 접근해도 되고 안 되는지 결정할 수 있다. 허영되는 접근 권한 수준을 결정할 수 있다.
  • 예) 네트워크 공유를 만들 때, 누구에게 접근을 허용할 것인지 결정해야 한다.

강제적 접근통제 (MAC, Mandatory Access Control)

  • 참고로 Media Access Control과는 다른 MAC이다.
  • 자원의 소유자 대신, 자원 접근 권한을 설정할 수 있는 그룹이나 개인에 의해 접근이 결정된다.
  • 예) 종종 정부 기관에서 강제적 접근통제가 구현된다 - 비밀/최고비밀 등 보안 민감도에 따라 권한 부여

역할기반 접근통제 (RBAC, Role-based Access Control)

  • 자원의 소유자 대신 관리자가 접근 권한을 부여한다. 관리자는 권한을 부여하는 책임이 있는 사람이다.
  • 강제적 접근통제와 유사한 모델이지만 다른 점은 접근이 승인되는 개인이, 수행하는 역할에 따라 접근통제가 이루어진다.
  • 예) 특정 응용 프로그램에 데이터를 입력하는 일만 하는 직원이 있다. 다른 자원들의 민감도와는 상관 없이, 오직 그 응용 프로그램에만 접근하도록 허용할 수 있다.
  • 예) 온라인 소매 응용 프로그램에서 고객 서비스 같이 좀 더 복잡한 일을 하는 직원이 있다. 고객의 지불 상태, 배송 상태, 과거 주문 내역, 반품 등에 대한 정보에 접근을 요구할 수 있다. 이 경우 역할기반 접근통제는 이 직원에게 좀 더 많은 접근 권한을 허락해 줄 것이다.

속성기반 접근통제 (ABAC, Attribute-based Access Control)

  • 논리적 속성에 기반한다. 속성은 특정 사람, 특정 자원, 환경의 속성이 될 수도 있다.

  • 주체의 속성 : 특정 개인이 가지고 있는 속성

    • 예) 어린아가 위험한 놀이기구를 타는 것을 막기 위해서는 - 키가 1m는 되어야 한다
    • 예) 캡차(Captcha, Completely Automated Public Turing Test to Tell Humans and Computers Apart) : 이론상으로 기계가 수행하기에는 어려워서, 시험을 통과하면 사람이라고 증명할 수 있는 시험 - 통과할 수 있는지 없는지에 기반하여 접근을 통제한다.
  • 자원의 속성 : 운영체제나 응용 프로그램과 같은, 특정 자원과 관계된 속성

    • 예) 특정 운영체제에서만 실행되는 소프트웨어, 특정 브라우저에서만 실행되는 웹사이트
    • 대개 보안상의 이유보다는 기술적인 이유로 발생한다.
    • 특성 소프트웨어가 사용되길 요구하거나 통신을 위해 특정 프로토콜을 요구함으로 보안 수단으로 사용할 수도 있다.
  • 환경적 속성 : 환경 조건에 기반하는 속성

    • 예) 시간 속성(경과 시간, 하루 중 시각 등)
      건물 출입은 근무 시간에만 접근이 허용되도록 구성한다. VPN 연결에서 사용자가 24시간마다 다시 연결하도록 강제한다.
    • 네트워크, 전자통신 환경 같은 기반 시스템에서 흔히 사용된다.

다단계 접근통제

  • 앞의 모델들이 정보 보호에 충분하지 않은 경우 사용한다.

  • 군, 정부기관, 민감 데이터를 다루는 기간 등에서 사용한다 - 핵 기밀, 비공개 의료정보(PHI, Protected Health Information) 등

  • 벨-라파둘라(Bell-LaPadula) 모델

    • 임의적 접근통제 + 강제적 접근통제 결합
    • 자원의 기밀성과 관련
    • 예) 비밀 등급 자원, 비밀 등급 접근 가능 사용자가 있는 경우 - 보통 사용자는 강제적 접근통제에 의해 자원 접근이 허용된다. 하지만 강제적 접근통제 아래에 임의적 접근통제를 추가적으로 가질 수 있다. 그렇게 되면 자원 소유자가 사용자 접근 권한을 주지 않으면 접근할 수 없게 된다.
    • 단순 보안 속성(no read up) : 개인에게 허가되는 접근 등급이 적어도 자원의 등급만큼은 높아야 자원에 접근할 수 있다.
      속성(no write down) : 자원에 접근하는 사용자는, 그 자원과 동일하거나 더 높은 수준의 자원에만 그 자원의 내용을 기록할 수 있다.
  • 비바(Biba) 모델

    • 기밀성의 희생을 감수하더라도 데이터의 무결성 보호와 관련이 있다.
    • 단순 무결성 원칙(no read down) : 개인에게 허가되는 접근 권한의 등급은 자원의 등급보다 낮지 않아야 한다.
      무결성 원칙(no write up) : 자원에 접근하는 사용자는 자원의 내용을 그 자원과 동일하거나 더 낮은 수준의 자원에만 기록할 수 있다.
  • 브류어-내쉬(Brewer and Nash) 모델

    • 이해의 상충을 방지하기 위해 고안되었다.
    • 금융, 의료, 법률 등 민감 데이터를 취급하는 산업에서 흔히 사용된다.
    • 객체 : 단일 조직에 속하는 파일 또는 자원(정보)
      회사그룹 : 특정 조직에 속하는 모든 객체
      상충 클래스 : 경쟁하는 주체와 연관된 모든 객체들의 그룹
    • 예) 법률 사무소의 개인 변호사들은 각각 다른 고객들을 위해 일하고 그들의 데이터에 접근한다. 새로운 사건을 다룰 때 이해가 상충되는 비밀 데이터에 접근할 수도 있다. 변호사가 접근할 수 있는 자료들이 이전에 접근했던 자료에 근거해서 변화한다.

물리적 접근통제

접근통제 방법들을 논리적 보안뿐 아니라 물리적 보안에도 적용될 수 있다.
물리적 접근통제는 주로 개인, 차량의 접근통제와 관련이 많다.

  • 개인적 접근통제 : 건물이나 설비에 들어가고 나가는 것 통제 중심
    예) 신분증을 이용 - 시설 내부 출입문 개방 통제, 사용 시간 규제

  • 테일게이팅(Tailgating) : 물리적 접근통제에서 흔한 문제 중 하나. 신분증 같은 물리적 접근통제 수단에 의해 인증할 때, 다른 사람이 인증 없이 뒤를 따라 들어오는 것.

  • 물리적 접근통제의 복잡한 예) 공항 보안 시스템
    탐승권과 신분증 제출 → 위험 장치 소지 여부 검사 → 탑승권 한 번 더 제출

  • 차량에 대한 물리적 접근통제 : 원하지 않는 지역에 차량이 진입하거나 지나가는 것 막음.
    차량 진입용 말뚝(Jersey Barrier), 스파이크 스트립(Spike Strip), 울타리 등의 간단한 장애물
    유인/무인 라이징 배리어(Rising Barrier), 자동 출입문 등 좀 더 복잡한 장치들


profile
iOS Developer

0개의 댓글