Search
🏫

[운영체제] 14. 운영체제 보안

[운영체제] 14. 운영체제 보안
CS
Operation System
2023/06/0712:24
[운영체제] 14. 운영체제 보안
CS
Operation System
2023/06/0712:24

1. 보안의 개요

1.1. 보호와 보안

컴퓨터 시스템에서의 보호
내부 자원 각 영역 보장
각 프로세스가 사용하는 자원이 다른 프로세스에 영향을 받지 않도록 하는 것
컴퓨터 시스템에서의 보안
인증, 암호화를 통해 합법적인 처리만 이루어지도록 보장
보호와 보안의 목적
악의적인 사용자에 대한 자원 접근 제한
잠재적 오류 미리 검출 → 신뢰도 향상
자원에 대한 권한
권한에 대한 사용자 구별
→ 시스템/사용자 프로세스가 권한을 가진 자원만 접근하도록 접근 제어 규정

1.2. 보호영역

한 프로세스가 접근할 수 있는 자원
각 영역은 자원의 집합과 그 자원에 대해 프로세스가 할 수 있는 연산 정의
하나의 영역은 접근 권한의 집합
접근 권한
프로세스가 객체에 대해 연산을 수행할 수 있는 능력
<객체 이름, 권한 집합>
영역 사이에서 공유

1.3. 운영체제 보안

운영체제 관리 자원에 대한 공격 등을 막는 정책과 기법
모든 자원을 안정적으로 이용할 수 있도록 해야함
저장된 정보가 소실, 유출 되지 않아야 함
적절한 접근 제어 방법, 정보의 암호화, 로그 등 활용 필요

1.4. 운영체제 보안의 기본 목표

기밀성
주체가 자원을 합법적으로 사용할 수 없다면 사용되어서는 안됨
가용성
주체가 자원을 사용하는데 문제가 없다면 반드시 사용할 수 있어야 함
무결성
객체에 저장된 정보는 항상 정확함

1.5. 정보 침해

운영체제 보안의 기본 목표가 달성되지 못하고 정보가 불법적으로 읽히거나 다른 값이 덮어 쓰이는 것
정보 침해 형태
가로채기
공격자가 허락받지 않은 컴퓨터 자원 접근 (기밀성 공격)
흐름 차단
시스템의 일부를 파괴하거나 사용할 수 없게 함 (가용성 공격)
변조
공격자가 기존에 있는 데이터의 내용을 바꿈 (무결성 공격)
위조
공격자가 기존에 없던 불법적인 정보 삽입 (무결성 공격)
정보 침해 유형
트로이 목마
트랩 도어(백도어)
정상적인 인증절차, 암호화를 우회하는 비밀통로
비밀 채널
데이터를 주고받을 수없는 프로세스 사이에 정상적이지 않은 방법으로 정보 주고 받음
자기 자신 복사하여 다른 컴퓨터에 전파
바이러스
다른 프로그램을 감염시켜 전파

2. 보안정책 및 보안 메커니즘

2.1. 보안정책

보안을 어떠한 관점에서 무엇을 행할 것인지 결정하는 것
권한부여
어떤 주체가 어떤 객체를 어떻게 액세스할 수 있는지 결정하는 것
모든 주체와 객체는 식별 및 인증 가능해야 함
식별: 신분을 알아내는 것
인증: 그 주체와 객체가 맞는지 확인
주체의 객체에 대한 접근제어 및 보안등급 부여를 가능하게 함
임의적 접근제어 (Discretionary Access Control: DAC)
관리자 또는 자원 소유자가 보안관리자의 개입없이 주체에 자원의 접근권한 부여 가능
자원의 보호보다 자원의 공유가 중요할 때 적합
장점 - 유연하게 자원 공유 가능
단점 - 관리가 쉽지 않음 (누가 권한을 갖고있는지 판단 어려움)
강제적 접근제어 (Mandatory Access Control: MAC)
주체에는 허가등급, 객체에는 비밀등급이 주어짐
접근 요청이 올때마다 허가등급과 비밀등급을 비교하여 허가 여부 결정
보안 관리자가 시스템 전체에 대한 보안정책을 구현하고 강제
장점 - 관리가 확실함
단점 - 자원의 공유가 어려움
역할 기반 접근제어 (Role-Based Access Control: RBAC)
역할 개념을 사용하여 권한 관리
주체는 역할이 주어졌을 때 그리고 그 역할이 권한이 주어졌을 때만 권한 사용 가능
최소 권한
사용자는 임무를 수행하기 위해 필요한 최소한의 권한을 받아야 함
임무가 끝나면 이 권한을 반환해야 함
감사 (auditing)
발생한 이벤트를 기록 & 보존
감사 과정을 통해 로그 파일을 조사하여 감시

2.2. 보안 메커니즘

안전한 인증 메커니즘
패스워드
다요소 인증: 사용자 인증에 둘 이상의 방법 요구
임의적 접근제어를 위한 메커니즘
UNIX - 파일 소유자가 각 파일마다 자신, 자신이 속한 그룹, 나머지에 대해, 읽기,쓰기, 실행 권한을 부여 가능
접근제어 리스트 (ACL) 이용

2.3. 하드웨어 보호 방법

사용자 프로세스가 불법적인 명령을 수행하거나 허락되지 않은 메모리에 접근하는 등 오류 발생
예외 처리를 위해 프로세스를 잠시 중단시키고 해당 오류를 처리하는 운영체제 루틴 호출
트랩 또는 인터럽트 이용
이중 모드 연산
모드 비트를 이용하여 사용자 모드와 커널 모드 구분
사용자 모드: 자신에게 허용된 권한만 행사 가능
대부분의 프로세스가 사용자 모드에서 수행
커널 모드: 특권 명령 수행 가능
특권 명령: 시스템의 상태를 바꾸어 보안에 위험을 줄 수 있는 명령
사용자 모드에서 특권 명령을 호출하면 트랩 발생
메모리 보호
각 프로세스가 가지는 주소 공간은 서로 분리
2개의 레지스터 이용
기준 레지스터: 프로세스가 접근할 수 있는 물리적 주소의 최솟값
한계 레지스터: 프로세스가 접근할 수 있는 주소 범위의 길이
운영체제가 사용하는 메모리 영역을 사용자 프로세스가 접근하려는 경우 트랩 발생
CPU 보호
무한 루프에 빠진 프로세스가 CPU를 독점하는 것을 막음
타이머: 주기적으로 인터럽트를 발생시키는 장치
프로세스가 자신에게 할당된 시간을 다 쓰면 대기하고 있는 다른 프로세스로 제어를 옮김
입출력 보호
한 프로세스의 입출력에 다른 프로세스가 영향을 미치면 안됨
입출력은 커널 모드에서 동작

2.4. 암호화

비밀키 암호 시스템
비밀키를 아는 사람만 암호화와 복호화 가능
공개키 암호 시스템에 비해 속도가 빠름
키 공유 문제
공개키 암호 시스템
암호화 키 (공개키)와 복호화 키(개인키)가 다름
전자 서명에 응용
비밀키 공유에 활용
공개키로 비밀키를 암호화한 후 개인키로 복호화 진행

3. 운영체제 보안 모델

참조 모니터 모델
주체가 객체를 접근하는 과정에 대해 접근제어 수행
단순 접근의 허용 여부만 결정
정보 흐름 모델
정보의 유형에 따라 정보가 흐르는 방향을 제어하는 모델
모든 허가된 정보 흐름은 허용하고, 모든 허가 받지 않은 정보 흐름은 방지
벨-라파듈라(BLP) 모델
상위 → 하위 보안 수준으로 정보가 흐르는 것을 방지
기밀성 유지에 초점
무결성이 깨질 수 있음
비바(Biba) 모델
하위 → 상위 보안 수준으로 정보가 흐르는 것을 방지
무결성 보장하기 위한 모델
권한이 없는 주체가 데이터를 수정하는 것을 막음
권한이 없는 주체가 수정한 데이터를 사용하지 못하게 막음

4. 보안 커널

기존의 운영체제 커널에 보안 기능을 통합 한 것
자주수행되고 중요한 일을 커널에 둠
보안 커널을 사용한 운영체제는 보안 기능 요소를 갖추어야 함
시스템콜을 통해 보안경계 통과
TCB의 하드웨어, 펌웨어, 소프트웨어 요소
TCB (Trusted Computing Base)
컴퓨터 시스템의 보안을 구성하는 핵심 요소들의 집함