[OS]운영체제 보안
📚보안의 개요
과거의 컴퓨터는 소수의 신뢰할 수 이는 사람들이 사용했지만 현대에는 컴퓨터가 광범위하게 보급되면서 하드웨어 및 소프트웨어의 결함을 이용하여 정보를 유출하거나, 컴퓨터를 사용할 수 없게 만들거나, 다른 컴퓨터에 침투하는 등의 악용이 가능해졌다.
📄보호와 보안
보호는 실행되는 각 프로세스에 대해 자신이 사용하는 자원이 다른 프로세스에 영향을 받지 않도록 하는 것을 말한다.
보안은 원격 접속하는 사용자에 대해서도 인증 메커니즘, 암호화 메커니즘 등을 통해 사용자가 누구인지 정확하게 인식하고 권한을 가진 자원만 이용해 시스템이 정상적으로 동작하게 한다.
보호와 보안의 목적
- 악의적인 사용자가 시스템 자원에 대한 접근 제한을 의도적으로 위반하는 것을 방지한다.
- 주변 시스템 간의 인터페이스에서 발견하지 못한 잠재적 오류를 적이 이용하기 전에 미리 검출함으로써 시스템의 신뢰도를 높인다.
- 시스템 자원을 권한이 없는 사용자가 잘못 사용하는 것을 막는다.
- 권한이 있는 사용자와 권한이 없는 사용자를 구별할 수 있도록 한다.
📄보호 영역
각 프로세스는 자신의 보호영역 하나를 가지고 있고, 이 안에 포함된 자원은 해당 프로세스가 쓸 수 있다. 접근권한은 어떤 프로세스가 각 객체에 대해 연산을 수행할 수 있는 능력을 말한다. 하나의 영역은 접근권한의 집합이고 각 객체마다 (객체 이름, 권한 집합)의 순서쌍으로 주어진다. 또한 접근권한은 영역 사이에서 공유될 수 있다.
📄운영체제 보안
운영체제 보안은 운영체제에 포함된 취약점을 이용하여 생길 수 있는 여러 가지 공격으로부터 운영체제가 관리하는 자원을 불법적으로 이용하는 것을 막는 정책과 기법이다.
운영체제 보안 기본 목표
- 기밀성: 운영체제가 관리하는 자원들은 주체가 합법적으로 사용할 수 없다는 사용되어서는 안된다.
- 가용성: 운영체제가 관리하는 자원들은 만약 주체가 사용하는데 문제가 없다면 반드시 수용할 수 있어야 한다.
- 무결성: 객체에 저장되어 있는 정보가 항상 정확하다는 뜻이다.
위 세 가지 목표가 달성되지 못해 정보가 불법적으로 읽히거나 다른 값으로 덮어 쓰이는 것을 정보침해라고 한다.
운영체제를 통한 침해의 네 가지 형태
- 가로채기: 기밀성에 대한 공격, 허락받지 않은 컴퓨터 자원을 접근하는 경우이다.
- 흐름 차단: 가용성에 대한 공격, 시스템의 일부를 파괴하거나 사용할 수 없게 만든다.
- 변조: 무결성에 대한 공격, 공격자가 허락받지 않은 자원에 접근하여 기존에 있던 데이터의 내용을 바꾸는 경우.
- 위조: 무결성에 대한 공격, 공격자는 허락받지 않은 자원에 접근하여 기존에 없던 불법적인 정보를 삽입하는 경우.
운영체제를 통한 침해유형
- 트로이 목마: 숨겨진 기능이 있는 프로그램을 실해하게 만들어 사용자의 권한을 이용하여 시스템에 침투하는 공격이다.
- 트랩도어: 정상적인 인증절차나 암호화를 피해 갈 수 있는 비밀 통로이다.
- 비밀 채널: 데이터를 주고 받을 수 없는 프로세스 사이에서 정상적인 데이터 전송 메커니즘이 아닌 다른 방법을 정보를 알아내는 형태의 공격이다.
- 웜과 바이러스: 원은 자신이 하나의 악성 프로그램으로 자기 자신을 복사하여 다른 컴퓨터에 전파시키는 능력을 가진다. 바이러스는 다른 프로그램을 감염시켜서 자신의 코드를 다른 프로그램에 추가시켜 악성 코드를 다른 프로그램에 전파시키는 능력을 가진다.
📚보안정책 및 보안 메커니즘
📄보안정책
- 권한부여
권한부여는 어떤 주체가 어떤 객체를 어떻게 액세스할 수 있는지를 결정하는 것이다. 운영체제의 모든 주체와 객체는 식별과 인증이 가능해야 한다.
- 식별: 어떤 주체나 객체가 무엇인지 신분을 알아내는 것
- 인증: 주체와 객체가 정말로 자신이 주장하는 주체와 객체가 맞는지 확인하는 것
-
임의적 접근제어
임의적 접근제어는 관리자 또는 자원 소유자가 보안 관리자의 개입 없이 주체에 자원의 접근 권한을 부여할 수 있다. -
강제적 접근제어
강제적 접근제어는 등급에 따라 비밀 정보를 접근할 수 있는 권한을 다르게 부여한 것에 비유할 수 있다. 운영체제가 주체가 객체에 대한 접근이나 연산을 할 수 있는지 여부를 정해진 규칙과 비교하여 이를 허가할지 여부를 결정한다. 쉽게 말해, 보안 정책이 중앙에서 관리되며 각 사용자는 이 정책을 넘어서는 행동을 할 수 없다. -
역할 기반 접근제어
역할 기반 접근제어는 역할 개념을 사용하여 사용자와 그들의 권한을 효과적으로 관리할 수 있다. 주체는 권한을 부여받은 후 역할이 주어지고, 행사하는 역할에 권한이 주어졌을 때만 권한을 사용할 수 있다. -
최소권한
사용자는 임무를 수행하기 위해 필요한 최소한의 권한을 받아야 하고 임무가 끝나면 이 권한을 반환해야 한다. - 감사
컴퓨터 시스템에서 발생한 이벤트는 해당하는 내용에 대한 정보가 기록되어야 하고, 이 정보는 변조되지 않고 보존되어야 한다.
📄보안 메커니즘
- 주체 및 객체의 레이블 부여 메커니즘
- 안전한 암호 메커니즘
- 안전한 인증 메커니즘
- 임의적 접근제어를 위한 메커니즘
- 보안등급 관리 메커니즘
- 기록 파일 관리 메커니즘
- 운영자 권한의 분산 메커니즘
📄하드웨어 보호를 위해 사용되는 방법
- 이중 모드 연산
- 메모리 보호
- CPU 보호
- 입출력 보호
📄암호화
-
비밀키 암호 시스템
비밀키는 암호화와 복호화를 할 수 있는 사람들 사이에서만 공유된다. 암호화 키와 복호화 키가 동일하여 대칭키 암호 알고리즘이라고도 부른다. -
공개키 암호 시스템
암호화 키와 복호화 키가 달라서 비대칭키 암호 시스템이라고도 부른다. 암호화에 사용되는 키는 공개되기 때문에 공개키라고 하고, 복호화에 사용되는 키는 개인만 가지고 있기 때문에 개인키라고 한다. 공개키 암호 시스템에서 암호화는 키가 공개되어 있어서 누구나 할 수 있지만 복호화는 개인키를 가진 사람만 할 수 있다. 이 암호화 시스템은 전자서명에 사용할 수 있다.
📚운영체제 보안 모델
보안 모델은 컴퓨터 시스템과 사용자의 보안을 설명하는 추상적인 모델이다.
📄참조 모니터 모델
참조 모니터 모델은 주체가 객체를 접근하여 연산하는 과정에서 참조 모니터가 접근제어를 수행하는 모델이다. 참조 모니터는 데이터베이스를 참조하여 보안정책을 수행한다. 참조 모니터 모델은 주체와 객체 사이에서 단순접근의 허용 여부만 결정하는 단일 레벨의 보안 모델이다.
📄정보 흐름 모델
-
벨 라파듈라 모델
벨 라파듈라 모델(BLP)은 정보의 기밀성 유지에 초점을 두고, 보안 시스템 내에서 정보의 흐름을 어떻게 허용해야 하는지 설명하는 모델이다. BLP 모델에서 정보를 중요도에 따라 가장 민감한 극비, 비밀, 미분류, 공개 등의 레벨로 나누고 있다. BLP 모델은 시스템 보안을 위한 규칙 준수 규정과 주체의 객체 접근 허용 범위를 아래와 같이 규정하고 있다.- 읽기 접근: 객체의 보안 수준이 주체의 보안허가 수준보다 낮거나 같아야 가능하다
- 쓰기 접근: 객체의 보안 수준이 주체의 보안허가 수준보다 높거나 같아야 가능하다. 신뢰되는 주체는 이 규칙에 제약을 받지 않는다.
write up, read down으로 요약할 수 있다.
- 비바 모델
비바(Biba) 모델은 무결성을 보장하기 위한 모델이다. 이 모델은 주체와 객체를 무결성 등급에 따라 같은 수준끼리 그룹으로 묶는다. 모든 주체는 자신보다 높은 등급 객체에 쓰기 연산을 할 수 없다. 권한이 없는 주체가 데이터를 수정하는 것을 막고 권한이 있는 주체가 권한이 없는 주체가 수정한 데이터를 사용하는 일을 막아 무결성을 보장한다. read up, write down으로 요약할 수 있다.
https://securelyours.com/biba-and-bell-lapadula-cybersecurity-models-630eed6a83f5
📚보안 커널
보안 커널은 여러 가지 의미로 쓰인다. 보안 커널의 의미 중 하나는 기존의 운영체제 커널에 보안 기능을 통합시킨 것이다. 보안 커널을 이용한 운영체제를 안전한 운영체제라고 한다. 하지만 특정 기능을 커널로 옮긴다고 해서 운영체제가 안전해지는 것은 아니기 때문에 결점이 없도록 설계와 구현에 유의해야 한다. 보안 커널을 사용한 운영체제는 컴퓨터 사용자에 대한 식별 및 인증, 임의적 접근제어, 강제적 접근제어, 객체 보호, 침입탐지 등의 보안 기능을 갖추어야 한다.
또 다른 보안 커널의 개념을 이해하기 위해 TCB(Trusted Computing Base)에 대해 알아보자. TCB는 오류나 약점으로 인해 정상적으로 동작하지 않을 경우, 시스템 전체의 보안에 문제가 생길 수 있는 하드웨어, 펌웨어, 소프트웨어 등의 집합이다. 따라서 TCB는 컴퓨터 시스템의 보안을 구성하는 핵심 요소들의 집합이다. 그리고 TCB는 기본적인 보호환경을 제공하고 운영체제의 기본성 및 무결성을 감시하는 기능을 수행한다.
보안 커널에 대한 설명을 요약하면,
- 보안 커널은 시스템 자원에 대한 접근을 통제하기 위한 기본적인 보안 절차를 구현한 컴퓨터 중심부이다.
- 보안 커널은 TCB의 하드웨어, 펌웨어, 소프트웨어 요소이다.
Leave a comment