728x90
14.1 보안의 개요
14.1.1 보호와 보안
보호의 정의
- 실행되는 각 프로세스가 사용하는 자원이 다른 프로세스에 영향을 받지 않도록 하는 것
보안의 정의
- 사용자가 누구인지 정확하게 인식하고, 이 사용자가 권한을 가진 자원만 이용해 허락된 일만 할 수 있게 하여 시스템이 정상적으로 동작함으로써 저장된 자료가 결함이 없게 하며, 시스템을 신뢰할 수 있게 하는 것
보호와 보안의 목적
- 악의적인 사용자가 시스템 자원 접근 제한을 의도적으로 위반하는 것 방지
- 잠재적 오류를 미리 검출하여 시스템의 신뢰도를 높임
- 시스템 자원을 권한이 없는 사용자가 잘못 사용하는 것을 막음
- 권한이 있는 사용자와 권한이 없는 사용자 구별
14.1.2 보호영역
- 보호영역
- 한 프로세스가 접근할 수 있는 자원
- 각 영역은 자원의 집합과 그 자원에 대해 프로세스가 할 수 있는 연산정의
- 하나의 영역은 접근권한의 집합
- 접근권한
- 프로세스가 객체에 대한 연산을 수행할 수 있는 능력
- <객체 이름, 권한 집합>
- 영역 사이에서 공유될 수 있음
14.1.3 운영체제 보안
운영체제 보안의 기본 목표
- 기밀성 : 주체가 자원을 합법적으로 사용할 수 없다면 사용 되어서는 안됨
- 가용성 : 주체가 자원을 사용하는 데 문제가 없다면 반드시 사용할 수 있어야 함
- 무결성 : 객체에 저장되어 있는 정보는 항상 정확함
정보침해
- 운영체제 보안의 기본 목표가 달성되지 못하고, 정보가 불법적으로 읽히거나 다른 값이 덮어 쓰이는 것
- 소프트웨어의 오류나 오작동을 통해 보호영역이 지켜지지 못해 발생할 수 있음
- 공격자가 의도적으로 다른 사용자의 권한을 도용하여 발생하는 경우 가능
- 운영체제를 통한 침해 형태
- 가로채기 : 기밀성 공격. 공격자가 허락받지 않은 컴퓨터 자원 접근
- 흐름 차단 : 가용성 공격. 시스템의 일부를 파괴하거나 사용할 수 없게 함
- 변조 : 무결성 공격. 공격자가 기존에 있던 데이터의 내용을 바꿈
- 위조 : 무결성 공격. 공격자가 기존에 없던 불법적인 정보 삽입
- 대표적인 침해유형
- 트로이 목마 : 숨겨진 기능이 있는 프로그램을 사용자가 실행하게 만들어서 이 사용자의 권한을 이용하여 시스템에 침투하는 것
- 트랩도어 : 정상적인 인증절차나 암호화를 피해 갈 수 있는 비밀 통로
- 비밀 채널 : 데이터를 주고받을 수 없는 프로세스 사이에서 정상적인 데이터 전송 메커니즘이 아닌 다른 방법으로 정보를 알아내는 형태의 공격
- 웜, 바이러스 : 자기 자신을 복사하여 다른 컴퓨터에 전파시키는 능력을 가진 프로그램. 바이러스는 다른 프로그램을 감염시켜서 전파시키는 능력을 가짐
- 트로이 목마 : 숨겨진 기능이 있는 프로그램을 사용자가 실행하게 만들어서 이 사용자의 권한을 이용하여 시스템에 침투하는 것
14.2 보안정책 및 보안 메커니즘
- 보안정책 : 보안을 어떠한 관점에서 무엇을 행할 것인지 결정하는 것
- 보안 메커니즘 : 보안을 어떠한 방법으로 할 것인지 결정하는 것
14.2.1 보안정책
- 권한부여
- 어떤 주체가 어떤 객체를 어떻게 액세스할 수 있는지 결정하는 것
- 모든 주체와 객체는 식별 및 인증이 가능해야 함
- 식별(identification) : 어떤 주체와 객체가 무엇인지 신분을 알아내는 것
- 인증(authentication) : 어떤 주체와 객체가 정말 자신이 주장하는 주체와 객체가 맞는지 확인하는 것
- 접근제어
- 임의적 접근제어
- 관리자 또는 자원 소유자가 주체에 자원의 접근권한을 부여할 수 있음
- 유연하게 자원을 공유할 수 있는 반면, 관리가 쉽지 않음
- 강제적 접근제어
- 보안정책이 중앙에서 관리되며, 각 사용자는 이 정책을 넘어서는 행동을 할 수 없음
- 관리가 확실한 반면, 자원 공유가 어려움
- 역할 기반 접근제어
- 주제는 역할이 주어졌을 때만, 권한을 부여받은 후 현재 행사하고 있는 역할에 권한이 주어졌을 때만 권한 사용 가능
- 임의적 접근제어
- 최소권한
- 사용자는 임무를 수행하기 위해 필요한 최소한의 권한을 받아야 함
- 임무가 끝나면 이 권한을 반환해야 함
- 감사
- 컴퓨터 시스템에서 발생한 이벤트는 해당 내용 정보가 기록되어야 하고, 이 정보는 변조되지 않고 보존되어야 함
- 감사과정을 통해 시스템의 로그(log) 파일을 조사하여 시스템에 발생한 이벤트를 추적하고, 침해 사고 등이 발생했는지 여부를 확인하고 감시 해야 함
14.2.2 보안 메커니즘
- 주체 및 객체의 레이블 부여 메커니즘
- 주체와 객체마다 유일한 식별자를 부여하여 서로 구별이 가능하게 함
- 주체와 객체마다 보안등급을 부여하여 허락되지 않은 접근을 막음
- 안전한 암호 메커니즘
- 비밀키 암호화 알고리즘과 공개키 암호화 알고리즘으로 나뉘며, 서로 다른 특징을 가지고 있어서 사용되는 분야가 다름
- 안전한 인증 메커니즘
- 패스워드 : 가장 간단한 방법
- 다요소 인증 : 사용자 인증에 둘 이상의 방법 요구
- 임의적 접근제어를 위한 메커니즘
- UNIX 예 : 파일의 소유자가 자신, 자신이 속한 그룹, 나머지에 읽기, 쓰기, 실행 권한을 부여 가능
- 보안등급 관리 메커니즘
- 사용자에게 다양한 종류의 보안등급 부여
- 보안등급을 체계적이고 안전한 방법으로 관리되어야 함
- 기록 파일 관리 메커니즘
- 시스템에 발생한 이벤트 기록을 안전한 위치에 보관하고, 이를 수정하지 못하게 함
- 운영자 권한의 분산 메커니즘
- 시스템 관리자의 권한을 세분화하여 목적에 따라 해당 역할을 담당 관리자에게 부여함
- 최소권한 부여 원칙을 구현하는 방법 중 하나
14.2.3 하드웨어 보호를 위해 사용되는 방법
- 이중 모드 연산
- 사용자 모드는 자신에게 허용된 권한만 행사할 수 있으며, 대부분의 경우 프로세스는 사용자 모드에서 수행함
- 반드시 필요한 경우 커널 모드에서 동작함
- 특권명령 : 시스템의 상태를 바꾸어 보안에 위험을 줄 수 있는 명령으로 운영체제와 커널 모드에서만 호출되어야 함
- 메모리 보호
- 각 프로세스가 가지는 주소공간은 서로 분리되어야 함
- 메모리 관리 장치가 물리적 메모리에 주소공간을 대응시키며, 운영체제를 보호함
- 기준 레지스터 : 프로세스가 접근할 수 있는 물리적 주소의 최솟값
- 한계 레지스터 : 프로세스가 접근할 수 있는 주소 범위의 길이
- CPU 보호
- 무한 루프에 빠진 프로세스가 CPU를 독점하는 것을 막아야 함
- 타이머는 주기적으로 인터럽트를 발생시켜, 프로세스가 자신에게 할당 된 시간을 다 쓰면 대기하고 이쓴 다른 프로세스로 제어를 옮김
- 타이머의 동작을 수정하는 명령은 특권명령이어야 함
- 입출력 보호
- 한 프로세스의 입출력에 다른 프로세스가 영향을 미쳐서는 안 됨
- 입출력을 요청한 프로세스는 일단 중단되고, 시스템 콜을 통해 커널 모드 진입
- 주변장치에 접근해 입출력을 수행한 후, 결과를 대기 중인 프로세스에 전달하고 사용자 모드로 돌아옴
14.2.4 암호화
- 암호화 : 원래 정보를 변형하여 특정한 정보를 알지 못하면 변형된 정보에서 원래 정보를 얻어 낼 수 없게 하는 과정
- 복호화 : 암호화의 반대로, 변형된 정보에서 원래 정보를 구하는 과정
- 키 : 암호화와 복호화에 필요한 특정 정보
- 비밀키 암호 시스템 : 암호화 키와 복호화 키가 동일함
- 공개키 암호 시스템 : 암호화 키와 복호화 키가 다름
- 현대 암호 시스템은 키가 없을 경우 복호화에 걸리는 시간을 오래 걸리게 하여, 이 과정이 의미 없게 하는 것이 목표임
- 암호화 방법에 따른 분류
- 코드 시스템 : 코드 테이블에 의해 암호화되는 시스템
- 암호 시스템 : 암호키와 이를 이용하여 암호화하는 암호 알고리즘으로 구성
- 비밀키 암호 시스템
- 암호 시스템의 보안은 비밀키를 아는 사람만 암호화와 복호화가 가능하다는 데 의거함
- 키 공유 문제
- 암호화된 데이터를 교환하려는 사람들끼리 키를 어떻게 공유할 것인가?
- 특정한 형태의 키는 공격에 취약하며, 공격자는 예상 가능한 키를 차례로 대입하는 사전 공격 시도 가능
- 공개키 암호 시스템과 결합하여 난수 생성기로 만든 키를 검사하여 공유함
- 대부분의 연산이 간단하여 공개키 암호 시스템에 비해 암호화 및 복호화 속도가 빠름
- 공개키 암호 시스템
- 암호화는 모두가 할 수 있지만, 복호화는 개인키를 가진 사람만 할 수 있다는 데 기반함
- 암호화 키와 복호화 키가 다름
- 공개키 : 암호화에 사용되는 키로 모두에게 공개됨
- 개인키 : 복호화에 사용되는 키로 각 개인들만 가지고 있음
- 전자서명
- 서명은 한 사람만 할 수 있지만, 서명의 확인은 모두가 가능하다는 데 착안함
- 모두가 알고 있는 데이터에 대해 서명하려는 사람은 자신의 개인키로 복호화함
- 이 결과는 의미가 없지만, 이를 암호화하면 원래 데이터를 얻을 수 있고, 복호화가 가능한 사람은 이 키를 가진 사람밖에 없기 때문에 누가 서명했는지 확인 가능
- A와 B 사이 암호화 통신 과정
- A가 먼저 비밀 정보를 생성한 후 B의 공개키를 이용하여 암호화하고 B에게 전달
- B도 비밀 정보를 생성한 후 A의 공개키를 이용하여 암호화하고 A에게 전달
- A, B는 모두 자신이 수신한 정보와 자신이 알고 있던 정보를 이용하여 사전에 약속한 알고리즘으로 비밀키 생성
- A, B는 생성한 비밀키를 이용하여 비밀키 암호 시스템으로 데이터를 주고받음
14.3 운영체제 보안 모델
14.3.1 참조 모니터 모델
- 주체가 객체를 접근하는 과정에 대해 참조 모니터가 접근제어 수행
- 공격자는 참조 모니터를 우회하여 자신에게 권한이 주어지지 않은 접근을 할 수 없음
- 주체와 객체 사이에서 단순접근의 허용 여부만 결정하기 때문에, 접근한 객체에 포함된 기밀 정보를 유포하는 것은 막을 수 없음
14.3.2 정보 흐름 모델
- 정보가 흐르는 방향을 유한상태기계를 이용하여 모델링하고 제어함
- 허가된 정보 흐름은 허락, 허가받지 않은 정보 흐름은 방지
- 벨-라파듈라(BLP) 모델
- 쓰기 접근은 객체의 보안 수준이 주체의 보안허가 수준보다 높거나 같아야 가능함
- 읽기 접근은 객체의 보안 수준이 주체의 보안허가 수준보다 낮거나 같아야 가능함
- 정보의 기밀성 유지에 초점을 두었지만, 무결성은 쓰기를 제어하는 수준에서만 고려함
- 비바 모델
- 모든 주체는 자신보다 높은 등급 객체에 쓰를 할 수 없음
- 벨-라파듈라 모델과 반대
- 정보의 무결성을 고려하는 모델
14.4 보안 커널
- 보안 커널
- 운영체제에서 기존의 운영체제 커널에 보안기능을 통합시킨 것
- 자주 수행되고 중요한 일을 커널에 둠
- 컴퓨터 시스템은 여러 계층으로 이루어지며, 각 계층은 자신의 바로 아래 계층만 접근 가능
- 운영체제에서 기존의 운영체제 커널에 보안기능을 통합시킨 것
- TCB(Trusted Computing Base)
- 정상적으로 동작하지 않을 경우, 시스템 보안에 문제가 생길 수 있는 하드웨어, 펌웨어, 소프트웨어, 물리적 설치장소, 보안정책 등의 집합
- 참조 모니터를 구현한 형태
참고 문헌 : 김진욱·이인복. 운영체제 워크북. 한국방송통신대학교출판문화원, 2023.
728x90
'전산 > 운영체제' 카테고리의 다른 글
운영체제 - 제 15장 운영체제 사례 (0) | 2024.06.01 |
---|---|
운영체제 - 제 13장 분산 운영체제 (0) | 2024.06.01 |
운영체제 - 제 12장 저장장치 및 파일 관리 (0) | 2024.05.31 |
운영체제 - 제 11장 장치관리 (0) | 2024.05.29 |
운영체제 - 제 10장 페이지 교체 알고리즘 (0) | 2024.05.25 |