보안
보안 Security |
운영체제 시스템뿐만 아니라 시스템이 작동하는 외부 환경과 더불어 내부 조직 구성원의 액세스 제한을 위해 인증해야 하는 것 |
정보(Data, 코드)와 컴퓨터 안의 물리적 자원들을 접근할 수 있도록 인증해주는 것 | |
보호 Protection |
컴퓨터 시스템에 저장된 프로그램과 데이터 액세스 제어 등 운영체제가 메모리 프로세서가 다른 자원들을 사용할 수 있도록 적절한 권한을 획득하면 권한을 보호해주는 것 |
접근을 어떻게 제한할 것인가가 초점 |
- 광범위하며, 물리적이고 관리적인 제어뿐만 아니라 자동화된 제어도 포함하므로 운영체제가 아닌 관리 문제로 인식할 수 있음
- 보안의 범위
- 컴퓨터 시스템 안의 파일 보호, 데이터 액세스 제어(보호), 사용자 인증
- 네트워크 보안, 전송 보호
보안의 구분
물리적 보안
- 시설에 허가 받지 않은 접근을 차단하고 모니터링 하는 활동
- 물리적 시설에 출입 제어
- 스마트카드 검사 추적 접근, 이력관리, 침입 탐지 관리를 기술적으로 제어
기술적 보안
- 불법 공격을 막는 각종 하드웨어와 소프트웨어적인 조치
- 정보를 보호하려고 액세스 제어에 사용하는 기술 및 정책, 절차
- 네트워크의 액세스 제어, 암호화, 정보 유출 방지, 시스템 서버, DB, 응용 프로그램의 사용자 인증, 암호환, 액세스 제어, 침입 차단, 탐지 등이 해당
관리적 보안
- 조직 내부의 정보 보호 체계를 정립
- 절차, 감시조직, 사고대책수립 등의 절차적 보안
보안 4레벨
- 물리적 보안: 하드웨어 공격
- 네트워크 보안
- 운영체제 보안: 공격 지점을 줄이고 침입 방지에 중점
- 어플리케이션 보안: 버그 발생 줄이기, 보안 패치 설치
보안의 요구 사항
- 기밀성(confidentiality) 보장
- 인가된 사용자만 정보 자산 접근 가능 (일반적인 보안 의미)
- 대표적인 예: 방화벽, 패스워드 등
- 무결성(integrity) 보장
- 적절한 권한을 가진 사용자가 인가된 방법으로만 정보를 변경할 수 있도록 하는 것
- 오직 인가된 사용자만 컴퓨터 시스템 정보를 수정할 수 있도록 보장하는 것
- 정보의 의도적 또는 비의도적 변조·파괴 방지
- 가용성(availability) 보장
- 정보 자산을 필요한 시간에 접근하여 사용할 수 있는 것
- 인증(authentication)
- 실제로 등록된 사람(사물)인지 판단하는 과정
- 컴퓨터와 처음으로 연결할 때 필요하며, 네트워크에서는 대부분 로그인할 때 암호(비밀번호 또는 비밀키)로 인증
- 액세스 제어
- 사용자가 정보를 사용할 수 있는 권한이 있는지 판단하는 것
- 네트워크 관점에서 액세스 통제
- 보호가 필요한 자원에 사용자별로 사용 권한을 부여하거나 사용자에게 보안 등급과 사용 분야를 부여하여 권한 제어
- 권한 부여
- 각 사용자가 적절한 권한으로 적절한 정보에 액세스할 수 있도록 허용 범위 정의 과정
- 사용자의 시스템 액세스 여부와 파일 디렉터리의 액세스 범위, 액세스 허용 시간, 할당된 저장 공간의 크기 등 권한 정의
- 자격 증명
- 신분증(식별자) 및 신분증 증명이 포함된 정보로 자원에서 액세스를 얻는 과정
- 사용자 이름과 암호, 스마트 카드와 인증서 등을 사용
보안 위배
- 위협(Threat): 보안 위배의 가능성
- 공격(Attack): 보안을 깨는 시도
- 운영체제 입장에서 데이터의 무결성·안정성·유용성·서비스 도둑질·서비스 부정(DoS)
보안 위협의 유형
중단(흐름 차단)
- 시스템의 일부를 파괴하거나 사용할 수 없도록 하는 가용성 공격
- 하드웨어 파괴(디스크 파괴), 통신회선의 절단, 파일 관리 시스템의 무력화 등
도청(가로채기)
- 권한이 없는 사용자가 컴퓨터 자원에 액세스
- 정보의 불법적 획득, 복사 등 비밀성 공격
변조(수정)
- 권한이 없는 사용자가 자원에 접근, 내용을 변경하는 무결성 공격
- 파일의 내용 수정, 프로그램 변경, 전송 중인 메시지 변경 등
위조(조작)
- 권한이 없는 사용자가 정보의 전부나 일부분을 교체·제거하고, 데이터 블록 순서 바꿔 시스템에 위조 객체를 삽입하는 공격
- 정보를 가로채 변조하여 원래 목적지로 전송하는 것으로, 무결성 공격 또는 인증 공격
- 허위 메시지 삽입, 파일에 레코드 추가 등
사칭(가장)
- 비인가된 사용자가 인가된 사용자로 가장 시스템에 부당하게 액세스하는 행위로 인증 공격
- 수동적인 공격
- 사전 계획 없이 발생하는 위협
- 전송 내용을 도청하거나 모니터링 하는 과정으로 데이터를 변경하는 것이 아니라 탐지 곤란
- 능동적인 공격
- 시스템 내부의 정보 변경, 시스템의 상태와 작동을 변경하는 위협
- 사칭(위장), 메시지 변경(수정), 서비스 거부 등이 이에 해당
소프트웨어 위협
컴퓨터 바이러스
- 자기 자신을 스스로 복제할 수 있는 실행 가능한 명령 집합
- 컴퓨터의 프로그램이나 프로세서의 서비스 영역에 자신 또는 자신의 변형 복제하여 시스템에 영향
- 네트워크에서 다운로드 한 프로그램이나 다른 사람의 컴퓨터에서 복사한 파일이 바이러스에 감염되어 있을 때 전염
- 수정해서 다른 프로그램 감염 가능
- 컴퓨터 사용자의 사용 권리 이용하여 다른 컴퓨터 시스템의 컴퓨터 통신망(네트워크)에 퍼뜨릴 수도 있음
- 프로세서의 서비스 받아야만 활동할 수 있는 프로그램
- 하드웨어의 논리적 파괴 가능, 물리적인 파괴 불가능
- 컴퓨터의 하드웨어가 작동하지 않으면 활동 불가능
자기 복제(증식) 기능
- 다수의 시스템 감염시키려고 자기 자신 복제하여 다른 파일·시스템으로 감염
은폐 기능
- 파일 크기나 내용을 감염 전의 상태로 보이게 하여 백신 프로그램 등이 감지하지 못하게 함
파괴 기능
- 미리 작성한 프로그램으로 특정 일·작업을 실행할 때 데이터 파괴
- 시스템 동작 이상 유발
웜(worm)
- 컴퓨터 시스템에 해를 끼칠 수 있는 장소에 위치하는 바이러스나 복제 코드의 일종
- 컴퓨터는 정상적으로 작동하면서 프로그램 자체의 전염성을 과시하는 바이러스
- 시스템 자원을 사용하여 자신의 프로그램 복사본 생성하고 다른 프로세스가 자원을 사용하지 못하게 함
- 네트워크에서 강력하게 시스템 사이에서 스스로 재생하여 전체 네트워크 멈추게도 할 수 있음
- 주로 다른 사람에게 스팸 메일 등 쓰레기 메일을 보내거나 통신에 필요한 파일을 바꿔 통신 불가능하게 함
- 이메일에 첨부하는 형태로 웜 바이러스 파일 삭제하면 치료 가능
트로이 목마
- 유용한 프로그램이나 명령 프로시저로 호출할 때, 해로운 기능 수행하는 은폐된 코드 포함하는 프로그램
- 자기 복제 능력 없고 고의적인 부작용만 있음
트랩 도어
- 서비스 기술자나 유지 보수 프로그래머에게 액세스 편의 제공 위해 시스템 설계자가 만든 통로
- 사용자가 정상적인 보안 예방 조치 통과하지 않고 바로 시스템에 들어갈 수 있도록 만든 비상 명령
- 시스템 개발자는 시스템을 개발하고 검사할 때 시스템에 쉽게 들어가려고 트랩도어를 만듦
- 현장에서 서비스 기술자나 공급사의 유지 보수 프로그래머가 사용할 목적으로 제공
- 시스템을 완성되면 실제 납품하기 전에는 반드시 닫아야 함
사이버 테러
- 이메일 폭탄: 이메일 사용자의 이메일 프로그램을 마비시키거나 다른 정당한 메시지의 수신을 방해할 목적으로 사용자의 이메일 주소로 일시에 다량의 이메일 데이터(메시지 길이가 매우 길고 개수가 많음) 발송
- 논리 폭탄: 특정 데이터의 출현과 소멸에 따라 동작하는 프로그램
- 프로그램에 오류를 발생하는 프로그램 루틴을 무단으로 삽입하여 특정한 조건 발생하거나 특정 데이터를 입력하면 컴퓨터에서 부정행위 실행
- 프로그램에 전혀 예상치 못한 치명적인 오류 발생
- 시한 폭탄: 특정 사건이 발생하거나 컴퓨터 시스템 타이머 시동할 때까지 시스템 내부에 잠복해 있는 프로그램
- 바이러스나 트로이 목마 프로그램으로 운반
시스템 보안
- 권한이 없는 사용자가 파일·폴더·장치 등을 사용하는 것 제한하여 보호하는 시스템 기능
시스템과 관련된 보안 기능
- 계정과 패스워드 관리
- 적절한 권한을 가진 사용자를 식별하는 가장 기본적인 인증 수단
- 시스템에서는 계정과 패스워드 관리부터 시작
- 세션 관리
- 사용자와 시스템 또는 두 시스템 간에 활성화된 접속을 관리하는 것
- 일정한 시간이 지나면 적절히 세션을 종료하고, 비인가자의 세션 가로채기 통제
- 액세스 제어
- 시스템을 다른 시스템에서 적절히 보호할 수 있도록 접근 통제
- 권한 관리
- 시스템의 각 사용자가 적절한 권한으로 적절한 정보 자산에 접근할 수 있도록 통제
- 로그 관리
- 시스템 내부 또는 네트워크 이용한 외부에서 시스템에 어떤 영향을 미쳤을 때 해당사항 기록
- 취약점 관리
- 시스템은 계정과 패스워드 관리·세션 관리·접근 제어·권한 관리 등을 충분히 잘 갖추고도 보안 문제 발생
- 이는 시스템 자체의 결함 때문에 발생하는데, 결함을 체계적으로 관리하는 것이 취약점 관리
액세스 제어
사용자 액세스 제어
- 대부분의 컴퓨터 시스템 사용자는 식별과 인증 과정을 거쳐 시스템 사용 시작
- 식별과 인증은 각 시스템 자원 보호하는 첫 단계
데이터 액세스 제어: 액세스 행렬
- Access Matrix
- 파일이나 DB 관리 시스템의 액세스 제어 보호 모델
- 액세스 행렬의 행은 주체, 열은 객체, 각 항은 액세스 권한의 집합
- 주체는 사용자, 객체는 액세스 제어 대상이 되는 파일·프로그램 ·메모리 세그먼트 등
- 액세스 행렬의 효과적 구현
- 파일과 사용자 수가 많으면 행렬이 커져 대부분의 항목이 공백 되어 저장 공간 낭비 발생
- 항의 대부분이 공백인 희소(parse) 행렬 이용하여 문제 해결
- 가장 단순한 형태인 3개의 순서쌍 <사용자, 객체, 권한> 집합으로 구성하는 전역 테이블(global table)
권한 리스트
- 액세스 리스트는 객체와 액세스 행렬의 열을 결합했지만, 각 행을 해당 사용자와 결합하여 권한 리스트를 만들 수 있음
- 한 사용자의 권한 리스트는 객체와 그 객체에 허용된 동작 리스트
- 권한 리스트는 운영체제가 유지, 사용자는 간접적으로만 액세스
- 사용자 요구와 직접적으로 일치하지 않을 수 있지만, 특정 프로세스 정보를 지역화시키는 데 유용
- 권한이 기반인 보호는 사용자의 프로세스가 권한에 직접 액세스하여 내용 변경 불가
- 권한이 안전하면 보호하는 객체도 액세스에 안전함
- 권한: 보호를 기본으로 제공할 수 있도록 다른 객체와 구분할 수 있어야 함
- 고급 프로그램을 수행하는 추상적 기계로 번역해야 하므로 권한 취소는 비효율적임
권한과 데이터의 차이점
- 각 객체에 권한과 액세스 가능 여부를 나타내는 태그를 부여함
- 태그는 응용 프로그램이 직접 액세스할 수 없는데, 비트를 하나만 사용하거나 더 많이 사용 가능
- 프로그램과 관련된 주소 공간을 두 부분으로 나눔
- 일상적인 데이터와 명령을 포함하여 프로그램이 액세스할 수 있는 부분
- 권한 리스트를 포함하고 있으므로 운영체제만 액세스할 수 있는 부분
락/키 방법
- 액세스 제어 리스트와 권한 리스트의 절충안으로 대부분의 시스템에서 사용
구분 | 특징 |
객체 | 락이 유일함 |
독특한 비트 패턴의 리스트를 가짐 | |
프로세스 | 키라는 유일하고 독특한 비트 패턴의 리스트 가짐 |
- 수행 중인 프로세스가 객체의 락 중 하나와 일치하는 키를 가지고 있을 때만 해당 객체에 액세스할 수 있게 하는 것
- 키의 길이에 따라 융통적이거나 효율적(키들은 사용자 영역 간에 자유롭게 전달)
- 키 리스트를 운영체제가 관리
- 액세스 허용 여부 검사한 후 버퍼 할당
- 이러한 모든 정보는 프로세스와 관련된 파일 테이블에 새로운 항으로 추가한 후 프로세스에 통보
시스템 보안 방법
암호화
- 안전한 보호 방법이 없을 때 컴퓨터 시스템 객체를 보호하려고 이용함
- 신뢰할 수 없는 링크 이용하여 전송하는 정보를 보호하는 방법으로 가장 널리 사용되고 있음
- 정보를 전송하기 전에 암호화하고, 목적지에 도달하여 이미 제공된 비밀키로 데이터 복호화한다면 안정적으로 정보 전송 가능
- 해독하기 어려운 암호화 방법을 개발하는 것이 중요
암호의 기능
- 비밀성: 통신망을 이용한 정보 전송이나 시스템에 저장된 정보 노출 방지
- 인증: 액세스하려는 사용자를 확인하고 시스템 액세스 권한이 있는지 보증
- 무결성 검사: 메시지나 파일을 변조하고 수정하지 않았음을 보장
- 전자 서명: 인증과 무결성 검사 기능으로 신원 확인과 정보가 보호된 상태에서 메시지나 파일을 생성하고 전송했음을 보장
대칭(단일키) 암호화
- 가장 널리 알려진 방법
- 암호화하고 복호화(해독)하는 데 단일키를 비밀키로 사용
- 대표적인 대칭 암호화 방법: DES(Data Encryption Standard)
- DES는 비밀키 교환문제라는 큰 약점이 있음
- 대칭 암호화로 평문을 암호화하면 복호화하는 사람에게도 암호화된 키가 있어야 하므로, 암호문 만든 사람은 복호화 할 사람에게 암호화된 키 전달해야 함
- 암호문을 만들어 보내는 대상 수가 많으면 암호화된 통신을 사용
- 인터넷 뱅킹과 같은 작업 수행 시, 매번 암호화된 키를 디스켓에 담아 직접 전달하는 방법은 비효율적임
- 키 전달의 문제 해결 위해 비대칭 암호화 등장
비대칭(공개키) 암호화
- 1976년, 디피와 헬먼이 처음 발표한 암호화 알고리즘
- 각 사용자는 공개키와 개인(비밀)키 모두 보유
- 공개키: 다른 사용자에게 공개하는 키로 암호화할 때 사용
- 개인키: 소유자만 가져 복호화할 때 사용
- 비대칭 암호화 개념을 바탕으로 한 RSA 암호화 알고리즘이 있음
- 간단하게 코드화할 수 있지만, 암호문 해독 곤란
인증
메시지 인증
- 메시지 인증 코드(MAC, Message Authentication Code)를 사용하여 메시지 전송 중에 수신자의 변경 여부, 메시지 내용과 순서의 변경 여부 확인
- 컴퓨터 데이터는 데이터를 삽입·삭제해도 흔적이 남지 않아 이러한 문제 해결을 위해 원래의 데이터로만 생성할 수 있는 값을 MAC으로 덧붙여서 확인하는 방법
- MAC을 생성할 때는 해시 함수 이용
- HMCA은 해시 함수의 입력에 사용자의 비밀키와 메시지를 동시에 포함하여 해시 코드를 구하는 방법
사용자 인증
- 아이디 및 암호 입력 과정을 거쳐 서버의 특정 디렉터리 사용할 수 있게 하는 사이버 공간에서의 신원 확인
- 메시지 암호화나 메시지 인증 코드 이용하여 사용자 인증이 가능하지만, 보편적인 방법은 사용자의 암호를 이용하는 것
디지털 서명
- 디지털 서명은 메시지를 송수신할 때 해당자가 송수신 행위를 부인하는 부인 봉쇄를 할 수 없게 하거나 인증 등 보안 서비스를 제공하는 데 사용
- 메시지 인증 코드처럼 데이터의 변조를 검증하여 무결성 유지
- 비대칭형 암호화를 사용, 비밀키가 있어야 서명 작성 가능
- 비밀키가 없는 사용자는 서명 작성할 수 없음
- 단, 공개키를 이용하여 비밀키의 소유자인 데이터 서명자는 확인 가능
- 각 데이터마다 서로 다른 서명 작성, 자신 외에는 서명 작성 불가, 자신의 서명을 누구나 검증할 수 있어야 함
- 전통적인 대칭 암호화의 비밀키 방법으로는 서명 생성 불가, 비대칭 암호화 사용해야 함
- 서명 작성: 메시지를 개인키로 암호화하는 것
- 서명 검증: 암호문을 공개키로 복호화하는 것
네트워크 보안
방화벽
- Firewall
- 다른 네트워크의 사용자에게서 네트워크 자원 보호하는 프로그램으로 침입 차단 시스템
- 도메인 확인 및 원격 접속 확인으로 공개하지 않은 자원에 외부 사용자가 액세스하는 것을 막고, 접속해야 할 외부 자원들을 통제하려고 설치
- 라우터와 밀접하게 동작, 네트워크 패킷을 검사하여 허위 패킷을 걸러낸 후 수신처로 전달 여부 결정
- 악의적인 내부 사용자에게서는 보호 불가능, 내부 호스트의 강제 보안 방법으로 제한
내부적 제한
구분 | 특징 |
도메인 확인 | 확인된 도메인 이름이나 IP주소로 접속하는지 점검하여 접속 허용 |
원격 접속 확인 | 보안 접속 절차나 인증 확인 등 이용 네트워크에 원격 접속할 수 있도록 허용 |
침입 탐지 시스템
- IDS, Intrusion Detection System
- 적극적인 방어 방법
- 침입 사실을 빠르게 검출하고 침입자를 봉쇄하여 시스템 손실과 데이터 훼손 최소화
- 정보 시스템의 비밀성·무결성·가용성을 침해하는 모든 행위 탐지
- 컴퓨터 시스템의 비정상적인 사용이나 잘못된 사용 등 기준이나 규정을 벗어나는 행위를 발견하면, 침입 과정을 로그에 기록하고 위험을 알림
- 방화벽 경계선을 통과한 공격이나 내부자 오남용도 탐지
- 방화벽처럼 내부와 외부의 경계선에 있는 것이 아니라 네트워크의 어느 부분에나 설치 가능
설치 위치에 따른 장단점
- 패킷이 라우터에 들어오기 전
- 네트워크에서 실행되는 모든 공격을 탐지할 수 있어 공격을 의도한 패킷을 미연에 파악 가능
- 너무 많은 공격 데이터를 수집하여 내부 네트워크로 침입한 공격과 그렇지 못한 공격을 구분하기 곤란(공격에 효율적 대응 어려움)
- 라우터 뒤
- 라우터의 패킷 필터링 거친 후 패킷 검사
- 패킷이 라우터로 들어오기 전보다는 공격 수가 더 적고, 의지가 더 강력한 공격자 탐지 가능
- 내부 네트워크
- 방화벽은 외부 침입을 일차적으로 차단하지만, 내부에서는 거의 무방비 상태
- 내부의 사용자가 해킹하는 것을 감시하고자 할 때 설치
- 서버 네트워크
- 외부 인터넷에 서비스를 제공하는 서버가 위치하는 네트워크
- 내부와 외부 모두에서 보호해야 하기 때문에 높은 보안 수준 요구
- 매우 능력이 뛰어난 외부 공격자와 내부 공격자가 중요한 데이터 손실이나 서비스 중단을 막기 위해 여기에 침입 탐지 시스템 설치
- 중요 데이터와 자원을 보호하려고 침입 탐지 시스템을 별도로 운영하기도 함
트래픽 패딩
- Traffic Padding
- 트래픽 양 분석 공격을 방어하는 수단
- 정상적인 메시지 흐름 멈췄을 때 가짜 암호 메시지 계속 내보내는 것
- 여분의 데이터를 삽입하여 일정한 길이로 만들어 트래픽 분석의 위험 방어
- 평문이 없을 때는 암호문 생성, 평문이 있으면 평문 암호화
- 여분의 데이터 삽입한 데이터 길이는 실제 트래픽에서 발생하는 데이터의 최장 길이보다 길어야 함
- 프로토콜 데이터의 내용을 암호화하거나 변형하여 삽입된 데이터를 실제 데이터와 구별하지 않아야 함
보안 운영체제
- 운영체제에 내재된 결함으로 발생할 수 있는 각종 해킹에서 보호하기 위해 보안 기능이 통합된 보안 커널을 추가로 이식한 운영체제
- 시스템 사용자 식별·인증, 강제적이고 임의적인 액세스 제어, 침입 탐지 등 강력한 보안 기능 포함
- 보안 운영체제를 탑재한 컴퓨터를 신뢰 시스템(trusted system)이라고 함
- 방화벽이나 침입 탐지 시스템 등 다양한 보안 기술로는 막지 못한 외부 공격을 서버 운영체제에서 효과적 탐지 및 차단 가능
- 내부 사용자 보안을 강력하게 유지 가능
- 침입 탐지 기능인 위협 모니터링(threat monitoring)을 추가하여 끊임없는 보안 위반 탐지, 의심스러운 행동 검사
- TCSEC(Trusted Computer System Evaluation Criteria): 운영체제를 탑재한 컴퓨터 개발 위해 미국이 1983년 오렌지 북이라는 신뢰성 컴퓨터 시스템 평가 기준 초안 제정
- 운영체제 커널 안에 참조 모니터, 액세스 제어, 제어 데이터페이스, 시스템 서비스 인터페이스로 구성됨
보안 운영체제의 기능
영역 분리
- 응용 프로그램이나 사용자 역할에 따라 액세스할 수 있는 정보 영역과 시스템의 제어 권한 제한을 두는 것
- 임의의 응용 프로그램이 자신과 무관한 정보 영역에 액세스하거나 일반 사용자는 물론 루트 사용자라도 보안 운영체제가 정의하지 않은 관리 업무 단독 수행할 수 없도록 통제하는 것
강제적 액세스 제어
- 운영체제에서 자원 사용의 주체가 되는 사용자나 프로세스가 객체에 액세스할 때, 신분이나 규칙으로 해당 객체에 액세스하는 것을 제어하는 방법
- 시스템이나 사용자와 객체 자신의 역할과 대응되는 사용자 등급은 신뢰도로 나타내고, 객체 등급은 정보의 부당한 사용으로 손상도를 고려하여 객체에 포함된 정보의 기밀성 반영
- 사용자와 객체 사이에 검증된 관계를 확인하여 객체에 액세스하려는 사용자 허용
- 액세스 요청이 들어오면 액세스 요청의 할당 여부를 검증함
- 메모리에 가장 근접한 곳에서 액세스 제어하며 시스템 과부하 감소시키는 효과
- 강제적 액세스에 포함된 정책
구분 | 특징 |
액세스 제어 정책 | 운영체제의 제어 하에 주체가 객체에 액세스하는 방법 지정 |
인증 사용 정책 | 사용자 인증에 사용 |
암호 사용 정책 | 저장·전송하는 데이터를 보호하는 데 사용 |
신뢰할 수 있는 경로(보호된 경로)
- 소프트웨어와 함께 상호 동작하는 사용자 허가 기능
- 운영체제의 제어 하에 주체가 객체에 액세스 방법 지정
- 사용자의 신뢰할 수 있는 소프트웨어를 속이는 악의적인 응용 프로그램 방어 가능
- 적용 예시
- 비밀번호 변경, 액세스 권한 변경 등 보안 관리 기능 수행할 때 신뢰할 수 있는 경로를 설정해야 함
- 신뢰할 수 있는 경로가 없다면 악의적인 소프트웨어는 안전한 소프트웨어로 가장하여 중요한 정보를 취득하거나 해당 사용자의 의도와는 상관없이 임의로 함수 수행이 가능하므로 소프트웨어 요소 간에 상호 보증할 수 있고 신뢰할 수 있는 보호된 경로의 채널이 필요함
참조 모니터
- 운영체제에서 파일 시스템 액세스 제어
- 보안 운영체제의 가장 중요한 부분으로 객체의 모든 액세스를 제어하는 추상적인 장치
- 주체와 객체의 보안 매개변수 이용
- 주변기기·파일·메모리·프로세스 간의 통신 등 모든 자원 액세스 제어 기능 수행
- 감사, 식별과 인증, 보안 매개변수 설정(보안 허가 사항, 객체의 보호 속성) 등 다른 보안 방법과 데이터 교환하면서 상호 작용
- 요구사항
- 참조 모니터에서 부정행위를 방지해야 하므로 액세스 제어 방법은 변조가 불가능해야 함
- 변조가 가능하면 침입자가 액세스 권한 검사와 인증을 제대로 시행할 수 없도록 손상
- 액세스 요청은 모든 자원에서 발생해야 하며, 참조 모니터는 항상 수행해야 함
- 그렇지 않으면 참조 모니터의 방법을 우회한 액세스가 가능하여 결과적으로 보안 정책 실패
- 다른 보안 방법과 상호 데이터를 교환하면서 대응 활동하므로 분석과 시험이 쉽도록 작아야 과부하 줄어듦으로 부분적인 하드웨어 구성 필요
- 보안 운영체제와 보안 소프트웨어에 사용하여 그 효과 인증
- 모니터 데이터베이스의 정보 바탕으로 액세스 권한을 확인한 수, 객체의 액세스 허용 여부를 결정하는 주체와 객체의 중계자 역할 (이때는 보안 정책에 합당한 액세스 제어 정책 적용)
감사 로그 추적
- 감사(audit): 사용자가 시스템에 액세스 후 입력한 검색어, 검색 대상의 활동 내역 기록 등을 저장하여 일련의 기록 조사하는 것
- 감사 로그(audit log): 단순히 시간·사용자·객체에서 모든 액세스 형태를 기록한 파일로, 특정 서버의 로그 디렉터리에 위치, 보안 사용자가 있을 때 감사 로그를 이용하여 언제 어떤 문제가 발생했는지 피해 정보 확인 가능
- 침입을 탐지하는 기본 도구는 감사 기록(audit record)으로 진행 중인 행위에서 모든 로그는 침입 탐지 시스템의 입력으로 유지
- 탐지에 적합한 감사 로그에 포함된 필드
- 주체: 행위의 개시자, 즉 터미널 사용자(프로세스)
- 행위: 주체가 수행하는 동작(로그인·읽기·입출력 수행·실행 등)
- 객체: 행위의 수신자(파일·프로그램·메시지·레코드·프린터 등)
- 예외 조건: 반환할 때 발생될 예외 조건
- 자원 사용량: 프린터나 화면에 출력한 행수, 읽고 쓴 레코드 수, 프로세서 시간 등
- 시간 검인(timestamp): 행위가 발생한 시간