(1) 보호의 개요
OS
- 컴퓨터 시스테 보안의 기본적인 제공자 역할을 한다.
- 메모리 보호, 파일 보호, 접근 제어, 사용자 인증 등을 포함하고 있다.
Protection 대상 객체
- Memory
- 공유 및 재사용이 가능한 I/O 장치
- 공유 가능한 프로그램 및 서브 프로그램
- 공유 데이터
Protection
- 컴퓨터시스템에 정의된 자원에 대하여 프로그램, 프로세스 또는 사용자의 접근을 제어하는 기법이다.
Security
- 시스템과 그 시스템의 자료들이 결함 없이 보전된다는 것을 의미하는 일종의 신뢰도이다.
- 보호의 개념보다 광범위한 주제로 생각될 수 있다.
(2) 보호의 영역
컴퓨터 시스템은 하드웨어 객체와 소프트웨어 객체들의 집합으로 OS가 보호해야 할 자원들이다.
- 하드웨어 객체(자원) : CPU, MEMORY, PRINTER, DISK, CD-ROM etc.
- 소프트웨어 객체(자원) : 파일, 프로그램 etc.
- 프로세스(주체) 및 사용자들은 접근 권한이 부여된 자원(객체)들에 대해서만 접근이 가능하다.
- 프로세스가 자신의 일을 완료하기 위해 현재 필요로 하는 자원에만 접근할 수 있다.
➤ 접근 권한(Access Right)
- 어떤 주체(프로세스)가 어떤 객체(자원)를 이미 정해진 방법에 따라 접근할 수 있는 능력이다.
- 즉, 어떤 프로세스가 자원에 대해 조작(Read, Write, Execute)을 수행할 수 있는 능력을 말한다.
- 표현 방법 : <객체 이름, 권한 집합>의 순서쌍으로 구성 (예시 : 파일 F, {read,write} )
- 보호 영역(protection domain)
- 예시 : Unix에서 Domain(영역)은 사용자를 의미하고, 영역 내에 있는 프로세스들은 동일한 접근 권한을 가진다. ( Domain별 동일한 접근 권한 )
(3) 접근 제어 정책 및 기법
접근제어
각 자원에 대한 비밀성, 무결성, 가용성을 보장하고 합법적인 이용과 같은 보호 서비스를 가능하게 한다.
접근 제어 목적
컴퓨터 시스템을 이루고 있는 컴퓨팅 자원, 통신 자원 및 정보 자원 등에 대하여 *허가되지 않은 접근을 방어하기 위함이다.
*허가되지 않은 접근 : 불법적인 자원의 사용, 노출, 수정, 파괴와 불법적인 명령어의 수행을 말한다.
➤ 접근 행렬(Access Matrix)
- 접근 제어 정책을 접근 행렬의 형태로 모델링(표현)한 방법이다.
- 각 행렬의 엔트리는 어떤 주체(영역)가 대응하는 객체(자원)에 대하여 실행할 수 있는 접근 허가(권한)를 나타낸다
- 그러나 그대로 이용하게 되면 행렬의 공간 활용 면에서 비효율적이게 된다.
접근 행렬의 구현 방법
- 전역 테이블(Global Table) 기법을 이용한다.
- ACL(Access Control List) : 접근 행렬의 열(객체)을 중심으로 관리하는 기법이다.
- CL(Capability List) : 접근 행렬의 행(주체)을 중심으로 관리하는 기법이다.
- Lock-Key 방식 : 제어 대상에 레이블을 붙이는 기법이다.
✔ 구현 방법
1. Global Table
접근 행렬의 가장 단순한 구현 방법으로, 3개의 순서쌍[영역, 객체, 권한 집합]들의 집합으로 구성되는 전역 테이블로 관리한다.
단점
- 테이블이 매우 커지기 때문에 시간이 오래 걸리고 기억 공간을 낭비할 위험이 있다.
- 보조기억장치에 저장하여 유지하는 경우에는 추가적인 입출력이 필요하다.
- 객체 또는 영역 기준으로 분류하기가 어렵다.
2. ACL(Access Control List)
- 자원(객체)보호를 위해 시스템의 각 자원마다 해당 자원을 사용할 수 있는 주체(영역)의 리스트를 유지하여 접근을 제한하는 방법이다.
- 각 객체에 대한 리스트는 [주체, 권한 집합]의 순서쌍으로 구성된다.
- 각 주체(영역)는 [사용자명, 사용자 그룹명]의 쌍으로 구성되기도 한다.
파일 0에서 lee는 사용자명, 교수는 사용자 그룹명을 뜻하고, '*'는 All을 뜻한다.
구현
3. CL(Capability List)
임의 영역에 대한 권한 리스트는 [객체, 객체에 허용된 권한]의 순서쌍으로 구성된다. (=사용자 권한 리스트)
구현
ACL vs CL
ACL
자원(객체) 중심의 보호를 한다.
자원에 대한 접근 권한을 변경하기가 쉽다.
파일(자원)들에 대한 접근 권한을 관리하기에 좋다.
CL
사용자(주체) 중심의 보호를 한다.
사용자를 쉽게 추가/삭제할 수 있다. ( 권한 리스트 한 개를 생성/삭제하기만 하면 된다. )
임의 사용자 접근 권한의 타 사용자로부터 위임(Delegation)이 쉽다.
4. Lock-Key
- 각 객체(자원)는 Lock이라는 비트 패턴 리스트를 가진다. (Read, Write, Print Lock)
- 각 주체(영역)는 Key라는 비트 패턴 리스를 가진다.
- 수행 중인 주체는 객체의 Lock과 일치하는 Key가 있을 때에만 그 객체에 접근할 수 있다.
- Key리스트와 Lock리스트는 OS에 의해 관리된다.
(4) 보안의 개요
- 보안이란 적절한 보호 시스템뿐만 아니라, 시스템이 동작하는 외부환경에 대해서도 고려해야 한다. (보호는 컴퓨터 내부적인 주제)
- 컴퓨터 시스템이 가지고 있는 각종 자원들의 보호와 해커를 막기 위한 도구의 집합을 총칭하여 Computer Security라고 한다.
- 네트워크와 통신시설을 이용하여 전송중인 자료를 보호하기 위한 조치들을 Network Security라고 한다. (인터넷 보안)
✓ 외부 보안 - 외부의 침입자나 천재지변으로부터 컴퓨터 시스템을 보호하는 것으로 시설보안과 운용보안 2가지가 있다.
✓ 내부 보안 - 불법 침입자가 시스템에 들어왔을 때, HW나 OS가 침입자로부터 프로그램이나 자료 및 데이터를 보호한다.
✓ 인터페이스 보안 - 사용자의 신원을 OS가 먼저 확인하고 나서 시스템의 프로그램, 데이터, 자료들을 접근할 수 있도록 한다.
(5) 보안 위협
보안 위협의 유형
➤ Interruption(흐름 차단) -> Availability(가용성) 위협
시스템의 일부가 파괴되거나 사용할 수 없게 된 상태를 말한다.
Ex) 하드디스크 파괴, 통신 회선 절단, 파일관리 시스템 무력화 등
➤ Interception(가로채기) -> Secrecy(비밀성) 위협
인가 받지 않은 제3자(사람, 프로그램 컴퓨터)가 컴퓨터 자원을 접근하는 경우를 말한다.
➤ Modification(변조) -> Secrecy, Integrity(무결성) 위협
인가 받지 않은 제3자가 자원에 접근할 뿐만 아니라 내용을 고치기까지 하는 경우를 말한다.
➤ Fabrication(위조) -> Integrity 위협
인가받지 않은 제3자가 시스템에 위조물(counterfeit object)을 삽입하는 경우를 의미한다.
Ex) 위조 지폐
기타 보안 위협 요소
보안 위협들을 분류하는 방법으로 적극적인 공격(active attack)과 소극적인 공격(passive attack)으로 구분한다.
• Active Attack
외부로부터 시스템의 자원들을 의도적으로 변화시키거나 시스템 운영에 영향을 주려는 시도를 말한다.
Ex) 메시지 흐름 차단(Interruption), 신분위장(masquerade), 변조(modification), 재전송(Replay), 서비스 거부(Denial of service), 서비스 부인(Repudiation) etc.
• Passive Attack
시스템의 정보를 알아내거나 악용하려고 시도는 하지만 시스템 자원에 직접적인 영향을 주지 않는 것을 말한다.
Ex) 도청과 같은 정보의 가로채기(Interruption), 트래픽 분석(Traffic Analysis) etc.
➤ Malicious Software(악성 소프트웨어)
- Trap Doors(트랩 도어) : 소프트웨어 개발 시 효율적인 코딩과 디버깅을 위해 개발자만이 쉽게 접근할 수 있도록 한 것으로, 접근 제어를 무시하거나 소스 코드의 민감한 부분까지 다룰 수 있도록 한 비밀 통로를 말한다. (ex : back door)
- Trojan Horses(트로이 목마) : 프로그램에 악의적인 루틴을 첨가하여 그 프로그램이 사용될 때 본래의 기능 이외의 악의적인 기능까지 수행하도록 하여 공격하는 것을 말한다. (자기복사 능력 없음)
- Logic Bomb(논리 폭탄) : 일정한 조건이 맞으면 폭발하도록 맞춰져 있는 합법적인 프로그램에 추가된 코드를 말한다.
- Zombie(좀비) : 인터넷에 연결되어 있는 다른 컴퓨터에 몰래 침입해 점령하는 프로그램으로, 수 백 대의 신뢰하는 제3자 컴퓨터에 좀비를 주입한 후 이들을 이용해 인터넷 트래픽에 대해 맹렬한 공격을 실시한다. (DDos 공격)
- Virus(바이러스) : 다른 프로그램을 수정(기생)해서 감염시키는 프로그램으로, 수정하고 복사하여 또 다른 프로그램을 계속 감염시킨다. 호스트 컴퓨터가 감염되면 컴퓨터의 디스크 OS의 제어를 임시적으로 장악한다.
- Worms(웜) : 시스템에서 시스템으로 자신을 복제하여 스스로 전파하며, 독자적으로 실행되는 것을 말한다. 주로 네트워크 손상 및 대역폭 잠식, 스팸 메일을 생성한다. 이에 비해 바이러스는 다른 실행 프로그램에 기생하며 스스로 전달이 불가하다.
(6) Security Serviece
컴퓨터 시스템 및 정보 전송에 대한 보안성을 강화하기 위해 지원되는 제반 서비스를 말한다.
컴퓨터와 네트워크 환경에서 보안 서비스를 위해 제공해야 할 5가지 기능
- 실체의 신원 정당성을 보증하는 인증
- 제반 정보처리의 행위사실을 부인하지 못하도록 보증하는 부인봉쇄
- 자원의 합법적인 접근만을 보증하는 접근제어
- 정당한 실체에게만 정보를 제공하는 비밀성
- 자료가 불법적으로 변조되지 않았음을 보증하는 무결성
✔ Authentification(인증)
- 기본적이고 중요한 보안 서비스로 일반적으로 사용자 식별자와 패스워드의 입력을 통해 증명한다.
- 사용자 지식(식별자, 패스워드), 사용자 소유물(키 혹은 카드), 사용자 속성(지문, 홍채패턴, 서명)등 3가지 사항 중 하나 또는 연합을 통한 인증이 필요하다.
- 통신관련 인증
- 발신처 인증(data origin authentification) : 정당한 송신자로부터 송신되었음을 보증한다.
- 메시지내용 인증(message authentification) : 송수신자 간에 자료의 내용이 변조되지 않았음을 보증한다.
✔ Non-Repudiation(부인봉쇄)
- 송신자나 수신자가 전송된 메시지를 부인하지 못하도록 방어하는 것을 의미한다.
- 메시지가 송신됐을 때 수신자는 그 메시지가 실제로 송신자에 의해서 송신됐음을 의미한다.
- 암호 알고리즘을 기반으로 특별한 전자적 서명 및 상호인증 프로토콜 등의 기법을 이용하여 구현한다.
✔ Access Control(접근 제어)
- 권한이 부여되지 않은 대상으로부터 시스템 자원을 보호하기 위한 것을 의미한다.
- 어떠한 주체가 어떠한 조건(접근시간, 접근위치 등)에서 어떠한 객체에 접근하여 어떠한 동작을 수행하는지 정의하고 이를 통제하는 서비스를 말한다.
- Ex) ACL, CL
(7) 보안 기법
- 보안 위협 요소로부터 위험(공격)을 탐지하고 예방하며 복구하기 위해 설계된 제반 기법들을 말한다.
- 컴퓨터에 저장된 정보 및 유통 정보의 비밀성과 무결성을 보장하면서 정당한 사용자의 가용성을 보장하고, 무단 접근을 제어한다.
- 보편적으로 강구되고 있는 대안은 대표적인 방법인 암호화를 통해 보안성을 제공하는 것이다.
➤ Symmetric Encryption Method(대칭키 암호방식)
- 보호 대상이 되는 자료를 특정한 키로 암호화하여 동일한 키를 소유하지 못한 제3자는 암호화된 자료를 획득한다고 해도 해독이 어렵도록 변환시키는 방식이다.
- 자료를 알 수 없는 형태로 만드는 것을 Encryption(암호화)이라 하고, 이것을 본래의 형태로 환원(해독)하는 것을 Decryption(복호화)라고 한다.
- 정당한 송신자와 수신자는 암호화 및 복호화 하는데 사용되는 공통의 동일한 비밀 키(Secret Key)를 공유한다. 그러나 키의 노출 위험이 커질 수 있다.
- 비밀키 값을 이용하여 데이터를 암호화한다. (상호 비밀키 값 공유)
- DES(Data Encryption System) Method
- 널리 알려진 대칭키 암호방식으로 IBM에서 만들었으며, 64비트의 암호화된 데이터를 생성한다.
- 보안성 강화를 위하여 동일한 알고리즘을 3중으로 반복 실행하는 3중 DES 등도 사용된다.
- AES(Advanced Encryption Standard)
- 보안성 강화를 위한 대안으로 미국 NIST(국립표준기술연구소)에서 1997년 제안됐다.
- BLOWFISH, RC5, IDEA, CAST 등의 다양한 암호 알고리즘이 있다.
➤ Asymmetric Encryption Method(비대칭키 암호방식)
- 서로 다른 두 개의 키를 이용하는 방법으로, 두 개의 키 중에 하나는 공개되어 있는 공개 키(public key)이고, 다른 하나는 개인이 비밀리에 보관하고 있는 개인 키(private key)이다.
- 공개키(암호화 키), 개인키(복호화 키) → 공개키로는 복호화 불가
- 공개키 암호방식(Public-key Encryption Method)이라고도 부른다.
- 공개키와 개인키는 밀접한 수학적인 관계가 있다.
- RSA(Rivest, Shamir, Adleman), ECC(Elliptic curve), 키 교환에 사용되는 Diffie-Hellman, 디지털 서명에 사용되는 DSS(Digital Signature Standard) 등의 방법이 있음
기본적인 사용 방법
- 사용자는 메시지의 암호화와 복호화에 사용하기 위한 키 쌍을 생성한다.
- 사용자는 자신의 개인키를 안전하게 비밀리에 보관하고, 공개키는 다른 사용자가 사용할 수 있도록 공개한다.
- 만약 A가 B에게 비밀 메시지를 보내기 원한다면, A는 공개키를 사용하여 메시지 M을 암호화 한다.
- B가 암호화된 메시지 M을 받았을 때, B는 자신의 개인키를 사용하여 복호화한다. 단지 B만이 B의 개인키를 알기 때문에, 다른 수신자는 메시지를 복호화할 수 없다.
기타 보안 기법
(1) 보안 관리
신뢰성 확보를 위해 우선적으로 필요한 보안정책, 지침 및 절차 수립 필요 (관리적, 물리적, 기술적 보안 지침 통합적으로 마련)
- 관리적 보안 지침
사람과 관련된 조직의 구성, 전담부서의 기능과 형태, 보안 인사규정, 보안수준 점검 등의 사항들이 정의되어야 함 - 물리적 보안지침
물리적인 접근에 대한 모든 것을 의미하며, 출입통제, 환경보안 및 컴퓨터 관련 장비들의 안전성을 다루어야 함 - 기술적 보안지침
보안기술에 대한 모든 것을 포함함
즉, 네트워크 보안, 메인프레임 보안, Unix시스템 보안, 응용시스템 보안, 클라이언트(개별 PC) 보안 등
(2) 방화벽
- 특정한 패킷들을 차단하기 위하여 각 IP 패킷에 규칙을 적용해서 패킷을 받아들이거나 폐기하는 방식의 패킷 필터링 라우터(Packet Filtering Router) 방식
(3) 참조 모니터
- 참조 모니터는 보안 등급을 토대로 하여 컴퓨터 시스템 자원을 보호
- 참조 모니터는 각 주체의 접근 권한(보안 등급)과 각 객체의 보호 속성(허용 등급)을 열거하고 있음
예시 : 군대에서 문서를 1등급, 2등급, 3등급 등으로 분류하고, 사용자들에게 비밀등급을 인가하여 접근 제어를 수행
(4) 안티 바이러스 기법
- 자원의 모든 접근을 에뮬레이터 상에서 이루어지도록 유인하여 통제된 환경에서 접근을 허용하고 바이러스 감염시도를 찾아내는 기법
- 디지털 면역시스템(Digital Immune System) 기법: 인터넷에 근거한 기능을 기반으로 한 위협에 대응하여, 즉시 처방을 마련하여 잔여 시스템에 방역함으로써 디지털 면역 시스템을 갖추도록 조치하는 것임
- 행위 방지 소프트웨어(Behavior-Blocking Software): 호스트 컴퓨터의 운영체제와 통합되어 악의적인 행위들에 대하여 실시간으로 프로그램을 감시하는 기법
(5) 컴퓨터 포렌식 (디지털 포렌식)
- 전자 증거물 등을 사법기관에 제출하기 위해 데이터를 수집, 분석, 보고서를 작성하는 일련의 작업
- 하드디스크 등 컴퓨터 저장매체에 들어있는 데이터를 대상으로 복구, 검색 그리고 수사하는 기법
- 전자적으로 처리되어 보관·전송되는 디지털 데이터를 적법한 절차와 과학적 기법을 사용하여 수집하고 분석하여 증거로 제출하는 제반 행위
'운영체제' 카테고리의 다른 글
[OS] 11. 분산 처리 시스템 (0) | 2023.10.16 |
---|---|
[OS] 10. 다중 처리 시스템 (0) | 2023.10.16 |
[OS] 08. 교착상태 (Deadlock) (0) | 2023.10.16 |
[OS] 07. 프로세스 간 동기화 및 통신 (0) | 2023.10.16 |
[OS] 06. 파일 시스템 (0) | 2023.10.16 |