보안

[정보보안기사] 시스템보안 | 보안 운영체제

inthyes 2024. 6. 21. 01:11

1. 보안 운영체제

보안 운영체제란?

  1. 컴퓨터 운영체제상에서 내재된 보안상의 결함으로 인해 발생 가능한 각종 해킹으로부터 시스템을 보호하기 위해 기존의 운영체제 내에 보안기능을 통합시킨 보안커널을 추가로 이식한 운영체제
  2. 운영체제 내부에 보안기능을 구현한 것으로 기존의 응용 프로그램 실행환경을 그대로 유지하면서 시스템 차원의 강력한 보안기능을 제공
  3. 기술적 핵심: 정보영역의 분리, 역할기반 영역분리, 최소권한 유지, 커널 레벨의 강제적 접근통제(MAC)

2. 보안 운영체제의 주요 제공 기능

보호 대상

  1. 메모리
  2. 보조기억장치 상의 파일 또는 데이터의 집합
  3. 메모리상에서 실행 중인 프로그램
  4. 파일들의 디렉터리
  5. 하드웨어 장치

보호방법

  1. 물리적 분리 : 사용자별로 별도의 장비만 사용하도록 제한하는 방법, 강한 형태의 분리이지만 실용적이지 못함
  2. 시간적 분리(Temporal separation) : 프로세스가 동일 시간에 하나씩만 실행되도록 하는 방법, 동시 실행으로 발생되는 문제를 제거해 운영체제의 일을 단순화시킴
  3. 논리적 분리 : 각 프로세스에 논리적인 구역을 지정하는 방법, 프로세스는 자신의 구역 안에서는 어떤 일을 하든지 자유지만 할당된 구역 밖에서 할 수 있는 일은 엄격하게 제한됨
  4. 암호적 분리(Cryptographic separation) : 내부에서 사용되는 정보를 외부에서는 알 수 없도록 암호화하는 방법
  5. 위 분리방법들은 구현 복잡도가 증가하는 순서로 기술됨, 다양한 조합으로 운영 가능

파일 보호기법

: 무자격 사용자의 프로그램 무단 접근을 막기 위해 그 파일 소유자가 보호장치를 만들어 놓은 것

: 파일의 보호는 파일의 공용문제와 병행하여 고려되어야 함 → 파일 보호만 우선시할 경우 자원의 낭비를 야기함

  1. 파일의 이름 명명(naming)
    1. 다른 사용자 파일의 이름을 알 수 있는 기법이 없고 그 이름ㅇ르 추측하기도 힘들다는 가정에 근거
    2. 파일 이름은 보통 기억하기 쉬운 글자를 많이 쓰고 파일의 내용을 암시하고 있으므로 추측을 통해 발각 가능
  2. 패스워드
    1. 각 사용자마자 서로 다른 패스워드를 제공하여 그 패스워드를 알아야만 파일을 이용할 수 있도록 하는 방법
    2. 패스워드가 임의로 채택되고 자주 바뀐다면 그 패스워드를 아는 사용자에게만 파일 접근을 허용하는 접근제어에 아주 효과적임
  3. 암호화
    1. 파일 내용 자체를 암호화하여 누구나 공유할 수 있지만 인가된 사용자만 그 내용을 파악할 수 있게 함

           장점 : 파일 내용의 암호화와 해독에 사용되는 암호를 파일시스템 자체 내에 기록하여 관리할 필요 없음    

           단점 : 파일 암호화, 복호화에는 시간과 노력이 필요함

3. 보안 운영체제와 보안커널

보안 운영체제의 보안 기능

  1. 사용자 식별 및 인증
    1. 접근통제가 사용자의 신분 증명에 의해 이루어질 경우 정확한 신분증명을 위해 보안 운영체제는 개별 사용자의 안전한 식별을 요구하며, 각각의 사용자는 고유하게 식별될 수 있어야 한다.
  2. 임의적/강제적 접근 통제
    1. 임의적 접근통제(DAC)는 신분기반 정책이라고도 하며, 주체나 소속 그룹의 신분(identity)에 근거하여 객체에 대한 접근을 제한하는 방법임
    2. 강제적 접근통제(MAC)는 규칙기반정책이라고도 하며, 객체의 비밀등급과 주체가 갖는 권한에 근거하여 객체에 대한 접근을 제한하는 방법임
  3. 객체 재사용(object reuse) 보호
    1. 사용자가 새로운 파일을 작성할 때, 이를 위한 기억장치 공간이 할당됨
    2. 할당되는 기억공간에는 이전의 데이터가 삭제되지 않고 존재하는 경우, 이를 통해 비밀 데이터 노출 가능성 존재
    3. 메모리, 레지스터, 자기매체 및 기타 재사용 가능한 저장매체에서 발생될 수 있음. 보안 운영체제는 재할당되는 모든 기억장치공간을 깨끗하게 지워야 한다.
  4. 완전한 조정
    1. 임의적/강제적 접근통제가 효과적이기 위해서는 모든 접근을 통제해야 함. 따라서 보안 운영체제는 모든 접근을 통제하는 완전한 조정을 수행해야 함.
  5. 신뢰 경로(trusted path)
    1. 패스워드의 설정 및 접근 허용의 변경 등과 같은 보안 관련 작업을 수행할 때 사용자는 안전한 경로라고 불리는 안전한 통신을 원하는데 보안 운영체제는 이러한 안전한 경로를 제공할 수 있어야 함
  6. 감사 및 감사 기록 축소
    1. 모든 보안 관련 사건은 감사 기록부에 반드시 기록되어야 하고 감사 기록부는 명백하게 보호되어야 함

보안 커널

  1. 보안 커널은 TCB 내에 있는 하드웨어, 소프트웨어, 펌웨어로 구성되며, 참조 모니터 개념을 구현하고 집행함. 주체와 객체 사이의 모든 접근과 기능 중재
  2. TCB의 핵심이고 신뢰할 수 있는 컴퓨터 시스템을 구축하기 위해 가장 보편적으로 사용됨
  3. 보안 커널의 요구사항
    1. 참조 모니터 개념을 수행하는 프로세스를 위해 분리가 제공되고, 프로세서는 변조를 방지할 수 있어야 함
    2. 모든 접근 시도에 대하여 실행되어야 하고, 이것을 우회하는 것이 불가능해야 함
    3. 보안 커널은 완전하고 포괄적인 방식으로 충분히 시험되고 확인되어야 함

신뢰 컴퓨터 기반(TCB, Trusted Computing Base)

  1. 하나의 컴퓨터 시스템내의 모든 보호 메커니즘의 총체로서, 시스템과의 조화를 통해 보안 정책을 적용할 책임이 있음
  2. 신뢰된 경로는 사용자, 프로그램 그리고 커널과의 통신채널을 말함. TCB는 이 통신 채널이 어떠한 경우에도 손상되지 않도록 보호 기능을 제공함
  3. 보안경계 : 시스템의 구성요소 중 신뢰/비신뢰 구성요소의 경계로 물리적 실체가 아닌 가상의 경계선임. 신뢰 및 비신뢰 구성요소 사이에 선을 긋기 위해 운영시스템에 의해 사용되는 개념적 부분
  4. TCB의 4가지 모니터 기능 : 프로세스 활성화, 실행 도메인 변경, 메모리 보호, 입출력 연산

보안커널 설계 시 고려사항

참조모니터(Reference Monitor)

  1. 참조모니터 및 보안커널의 특징
    1. 격리성 : 분리되고, 부정조직을 방지
    2. 검증가능성(Verifiability) : 크기가 작아야 함
    3. 완전성(Completeness) : 우회불가능해야 함
  2. 주체의 객체에 대한 모든 접근통제를 담당하는 추상머신으로, 승인되지 않은 접근이나 변경으로부터 객체를 보호하기 위해 객체에 대한 주체의 모든 접근통제를 중재하는 개념
  3. 참조모니터의 규칙
    1. 반드시 부정조작이 없어야함 → 격리성
    2. 항상 무시되지 않고 호출되어야 함 
    3. 모든 동작을 항상 분석과 테스트를 통해 확인할 수 있어야 함 → 검증 가능성
  4. 참조모니터의 개념을 위반하는 경우 : 주체가가 참조모니터를 거치지 않고 객체에 직접 접근하는 경우
  5. 참조모니터는 보안커널 데이터베이스(SKDB, Security Kernel Data Base)를 참조아형 객체에 대한 접근허가 여부를 결정함
  6. 국가 공통 평가 기준(CC, Common Criteria)과 같은 평가기준에 의해 평가됨

4. 신뢰 플랫폼 모듈(TPM)

기본 개념 및 특징

  1. 신뢰 플랫폼 모듈(TPM, Trusted platform module)은 신뢰 컴퓨팅 그룹이라는 산업체 컨소시엄에 의해 표준화된 개념
  2. TPM은 신뢰 컴퓨팅을 위한 하드웨어/소프트웨어 방법에서 핵심이 되는 하드웨어 모듈
  3. 신뢰 컴퓨팅의 가장 하위에 위치하는 TPM은 훼손 방지(tamper protected)가 필수적이기 때문에 하드웨어칩으로 구현되는 것이 일반적이지만, 소프트웨어로 구현도 가능함
  4. TPM의 신뢰 관련 연산은 (a) 암호화키의 생성과 저장, (b) 패스워드의 저장, (c) 무결성의 검증을 위한 측정값의 저장, (d) 디지털 인증서 관련 신뢰 연산의 제공 등을 포함함

기본 서비스

  1. 인증된 부트 서비스 : 인증된 부트 서비스는 전체 운영체제를 단계적으로 부팅하고, 운영체제가 적재될 때 운영체제의 각 부분이 사용을 위해 승인된 버전임을 보장함
  2. 인증 서비스
    1. TPM에 의해 설정이 완성되고 로그인 되면, TPM은 다른 부분의 설정을 인증할 수 있음
    2. TPM은 TPM의 사설키를 사용하여 설정 정보에 서명함으로써 디지털 인증을 만들 수 있음
  3. 암호화 서비스 : 특정 기계가 특정 설정으로 되어 있을 때만 그 기계에서 데이터의 복호화를 수행하는 방식으로 데이터의 암호화를 지원함

TPM 함수

  • I/O : 모든 명령어는 I/O 구성요소를 통해 들어오고 나감. I/O 구성요소는 다른 TPM 구성요소와의 통신을 제공함
  • 암호화 보조 프로세서 : 암호화 및 관련 처리를 위한 특별한 프로세서를 포함함
  • HMAC 엔진 : 이 알고리즘은 다양한 인증 프로토콜에서 사용됨
  • 무작위 숫자 발생기(RNG, random number generator) : 다양한 암호화 알고리즘에서 사용되는 무작위 숫자를 만드는데, 이를 위해 키ㅡ 생성, 전자서명의 무작위값, 임시수(비표, nonces)를 생성함
  • SHA-1 엔진 : 전자서명과 HMAC 알고리즘에서 사용되는 SHA 알고리즘을 구현함
  • 전원 탐지 : TPM 전원 상태와 플랫폼 전원 상태를 관리함
  • Opt-in : 고객 또는 사용자의 의도대로 TPM을 활성화 또는 비활성화할 수 있는 안전한 메커니즘을 제공함
  • 실행 엔진: I/O 포트로부터 받은 TPM 명령어를 수행할 프로그램 코드를 실행함
  • 비휘발성 메모리 : TPM을 위한 신원, 상태 인자를 저장함
  • 휘발성 메모리 : 실행 함수를 위한 임시 저장 장치이며 현재 TPM 상태, 암호화키, 세션 정보와 같은 임시 인자를 저장함