Index
Search
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)
◦
컴퓨터 시스템의 보안을 구성하는 핵심 요소들의 집함