보호의 개요
운영체제 내의 다양한 프로세스들은 다른 프로세스의 활동으로부터 보호
- 보호 protection; 컴퓨터 시스템에 정의된 자원에 대하여 프로그램, 프로세스, 또는 사용자 접근을 제어하는 방법
- 가장 중요한 원칙
- 정책과 기법을 분리 devide between policy and mechanism
정책은 무엇을 수행할까를 결정, 기법은 어떻게 수행할 것인가
- need-to-know 원칙
프로세스들은 접근 권한이 부여된 자원들에 대해서만 접근
프로세스가 자신의 일을 완료하기 위하여 현재 필요로 하는 자원만을 접근
- protection domain 보호영역
프로세스가 접근할 수 있는 자원들을 명시하고 있는 하나의 보호 영역 내에서 동작
각 영역은 객체들의 집합과 그 객체에서 취할 수 있는 조작의 형태를 정의
영역은 접근 권한의 집합이고, 각각 <객체이름, 권한집합>의 순서쌍으로 구성
- 접근 권한(access right)
어떤 주체가 어떤 객체를 이미 정해진 방법에 따라 접근할 수 있는 능력
- 보안 security; 시스템과 그 시스템의 자료들이 결함없이 보전된다는 것을 의미하는 일종의 신뢰도, 보안의 보장은 보호의 개념보다 광범위한 주제
접근제어 정책 및 기법
접근제어; 기밀성, 무결성, 가용성 및 합법적인 이용과 같은 보호 서비스에 직접적으로 기여하게 되며 이러한 서비스들의 권한 부여를 위한 수단
접근제어리스트 ACL(Access Control List) - 열
-
사용자명 <사용자명, 사용자 그룹 명>
file0 (lee, 교수, rw-)
file1 (kim, 교수, rwx)
file2 (park, , rw-)(choi, 대학원, r--)(kim, 학생, --x)
file3(, 학부, r-x)
여기서 *는 all을 의미
객체의 소유자는 언제든지 자신의 접근 제어 리스트를 변경가능
단) 접근 제어 리스트의 변경이 현재 객체를 사용하고 있는 사용자에게 영향을 미치지x
권한 리스트 CL(Capability List) - 행
- 각 행을 해당영역과 결합한 것
- 한 영역에 대한 권한 리스트는 그 객체들에 허용된 조작 유형들을 함께 갖고있는 객체들의 list
- 서로 포인터로 연결
- 권한을 소유한다는 것은 접근을 허용받음을 의미
- 권한 리스트는 보호영역과 결합되어 있으나, 해당영역에서 수행 중인 프로세스가 직접 액세스 불가능
- 사용자에 의해서 간접적으로만 접근이 가능한 보호된 객체
- 권한 리스트는 운영체제가 관리
lock-key 기법
- 각 객체는 락이라 불리는 유일하고 독특한 비트패턴의 리스트를 보유
- 각 영역은 키라고 불리는 유일하고 독특한 비트패턴의 리스트를 보유
즉, 객체->lock , 영역->key
ACL과 CL의 절충기법
수행중인 프로세스는 해당영역이 객체의 락키와 일치하는 키가 있을때만 그 객체에 접근 가능
해당 영역에 대한 키 리스트는 운영체제에 의한 관리
SL(Security Lable) 제어대상에 레이블을 붙임
보안의 개요
보호는 엄격히 말하면 컴퓨터 시스템에 저장된 프로그램 및 데이터에 통제된 접근 방법을 제공하기 위한 내부적인 주체
보안이란 적절한 보호 시스템뿐만 아니라, 시스템이 동작하는 외부환경에 대해서도 고려
보안의 분류
- 외부보안; 침입자나 천재지변으로 부터 컴퓨터 시스템을 보호하는 것이며, 시설 보안과 운용보안 두가지로 나눔
- 내부보안; 컴퓨터 하드웨어나 운영체제가 불법 침입자로 부터 프로그램이나 자료 및 데이터를 보호하기 위한 접근 제어 코드를 내장하고 있도록 하는 기능
- 사용자 인터페이스 보안; 사용자의 신원을 운영체제가 먼저 확인하고 나서 시스템의 프로그램이나 데이터, 자료들을 접근
- 네트워크 보안; 네트워크와 통신시설을 이용하여 전송중인 자료를 보호하기 위한 조치
- 인터넷 보안; 인터넷을 통해 권한이 없는 컴퓨터 시스템 접근이나 위험을 막는 것
보안위협
-
흐름 차단(Interruption)
시스템의 일부가 파괴되거나 사용할수 x
"가용성"에 대한 위협
-
가로채기(Interception)
인가 받지 않은 제 3자가 컴퓨터 자원을 접근하는 경우
"비밀성"에 관한 위협
-
변조
인가 받지않은 제 3자가 시스템에 위조, 물(counterfeit object)을 삽입
"무결성"에 대한 위협
-
기타 보안 위협 요소
적극적인 공격; 메시지 흐름차단, 신분위장, 변조, 재전송, 서비스 거부, 서비스 부인 etc...
소극적인 공격; 정보를 알아내거나 악용하려고 시도는 하지만 시스템 자원에 직접적인 영향을 주지는 않음. ex)도청, 가로채기, 트래픽 분석
-
악성 소프트웨어(Malicious Software)
보안 공격의 다른 관점에 의한 구분은 사용자에 의한 침입과 소프트웨어에 의한 위협요소로 구분
- 종류
- Trap doors 트랩도어; 접근제어를 무시하거나 소스코드의 민감한 부분까지 다룰 수 있도록 한 비밀 통로
- Trojan horses 트로이목마; 프로그램에 악의적인 루틴을 첨가하여 본래의 기능 외 악의적인 기능까지 수행하도록 하여 공격
- Logic Bomb 논리폭탄; 논리 폭탄은 일정한 조건이 맞으면 폭발하도록 맞춰져있는 합법적인 프로그램에 추가된 코드
- Zombie 좀비; 인터넷에 연결되어 있는 다른 컴퓨터에 몰래 침입하여 점령하는 프로그램
- Virus; 다른 프로그램을 수정해서 감염시키는 프로그램
- Worms; 자기 자신을 복제하면서 통신망 등을 통해서 전파