1. Protection
- 프로세스/사용자의 자원 접근 제어 메커니즘
- 분리 및 격리 : 프로세스와 사용자가 서로 간섭하지 못하게 자원/작업 공간 분리
- 메모리 보호 : 사용자와 프로세스로부터 메모리 보호. 커널 공간을 사용자 프로세스로부터 보호
- 파일 보호 : 권한 모드 (permission modes), 시스템 자원을 보호
2. 보호(Protection)와 보안(Security)
- 공통 목표 : 시스템과 자원을 손상, 오용, 악의적 공격으로부터 지키는 것
- 보호 : 우연한 실수나 협력 사용자로 인한 문제로부터 자원 보호 (OS 내부에서 발생하는 문제 막음)
- 가상 주소 공간 (Virtual address space) : 사용자 영역(코드,데이터,힙,스택) + 커널 영역
- 파일 권한 (file permission modes)
- 보안 : 고의적 공격 (내부 또는 외부)으로부터 시스템 보호
- 권한 없는 접근, 시스템 메모리에 대한 악의적 접근, 악성 코드 등
- 보안의 첫 번째 공리 : 보안은 기술적 문제만큼이나 사회적 문제이기도 하다. (피싱, 트로이 목마 등)
- 기술적 보호만으로는 충분하지 않으며, 사람의 실수나 부주의도 보안 위협이 될 수 있다.
3. OS의 기능 (보호 & 보안)
1) 프로세스 관리 (Process management)
- 루트 권한 프로세스 관리 (set-UID 프로그램)
2) 주기억장치 관리 (Main Memory Management)
3) 보조 기억 장치 관리 (secondary Storage Management)
4) 파일 관리 (file Management)
- 루트 사용자 권한 관리
- 파일 접근 권한 (ACL)
5) 입출력 시스템 관리
6) 네트워킹
- 보안 프로토콜
- 통신망 설계시 라우팅, 연결전략, 보안 문제 고려
7) 보호 및 보안 시스템
- ASLR (Address Space Layout Randomization)
- SELinux
- IDS (intrusion Detection System)
8) Command Interpreter System
4. 보안 위협 예시
- 침입자 : 허가되지 않은 권한 상승을 시도
- 비밀번호 획득 방법
- default 비밀번호 사용 시도
- 짧은 비밀번호 무차별 대입
- 사전 단어 또는 일반적인 비밀번호 목록 사용
- 트로이 목마 사용 => 정상적인 파일로 위장하여 사용자가 실행하도록 만든 악성 소프트웨어
- 통신선을 도청
5. Security Threats


6. STRIDE vs AINCAA
| Threat | Property Violated | Definition | Example | 추가 설명/대응 방법 |
|---|
| Spoofing (위조) | Authentication | 타인을 사칭 | Bill Gates, Paypal.com 사칭, ntdll.dll 사칭 | id/password 탈취, 웹사이트 속이기 |
| Tampering (변조) | Integrity | 데이터/코드 수정 | DLL, DVD, 네트워크 패킷 변조 | 암호화 해시, SHA-256, MAC, 무결성 검증 |
| Repudiation (부인) | Non-repudiation | 행위 부인(자신이 안 했다고 주장) | "나는 안 보냈다", "수정 안 했다" | logging, accounting 필요 |
| Information Disclosure (정보노출) | Confidentiality | 권한 없는 사람에게 정보 노출 | Windows 소스코드 보기, 고객리스트 공개 | 암호화, 대칭키 AES, 비대칭키, 난독화 |
| Denial of Service (서비스거부) | Availability | 서비스 거부 또는 저하 | OS나 웹사이트 다운, 블랙홀 라우팅 | backup, 이중화, CDN |
| Elevation of Privilege (권한상승) | Authorization | 무권한 접근 (권한 상승) | 원격 명령 실행, 일반→관리자 권한 승격 | web shell, 악성 스크립트 업로드/실행 |
7. 운영체제에서의 보안 문제
- 운영체제는 다음과 같은 보안 침해로부터 스스로를 보호해야 한다.
- 무단 접근, 수정, 삭제
- 통제 불능 프로세스 -> 서비스 거부 발생 가능
- 메모리 접근 위반
- 스택 오버플로우 위반
- 과도한 권한으로 프로그램 실행
8. 일반 OS의 보안 기능
1) 사용자 인증
2) 메모리 보호 => 1) user mode/ kernal mode 2) segment 별로 분리
3) 파일 및 I/O 장치 접근 제어
4) 일반 객체에 대한 할당 및 접근 제어
5) OS 데이터 보호
6) 강제 공유
7) 공정한 서비스 보장
8) 프로세스 간 통신 및 동기화
9. Ubuntu 보안 기능
1) 설정
- 비밀번호 해시, 열린 포트 없음, SYN 쿠키, 레거시 TLS 비활성화
2) 하위 시스템
3) 강력한 접근 제어 (MAC)
4) 저장소 암호화
5) 사용자 공간 보호 => PIE, 실행 불가 메모리, 힙 보호, 스택 보호, 포인터
난독화
6) 커널 강화
(참고) 리눅스 실행 파일 포맷 : ELF , ms : PE , anroid :apk
10. ccOS - 현대차의 연결차량 운영체제 (Connected Car OS)
- 연결 차량은 다양한 측면에서 보호가 필요하다. (다계층 접근이 요구)
- 차량 내외부 네트워크, S/W, 사용자 데이터 등 여러 영역에서 위협 대응 필요
- ccOS : Connected Car OS
- 스마트폰, 스마트홈 연동, 지능형 원격 지원, 스마트 교통/모빌리티 허브와 연결 가능
- 또한 차량간 상호 호환성을 제공하여 표준화된 소프트웨어 사용이 가능 => 시스템 안전성과 유연성 향상
- ccOS 4대 목표 1) 고성능 컴퓨팅 (NVIDIA 칩 사용) 2)무결점 컴퓨팅 3)지능형 컴퓨팅 4)보안 컴퓨팅
11. Trusted OS
- OS 보안 : 운영체제의 무결성, 기밀성, 가용성을 보장하는 과정이다.
- 보안 커널
- 컴퓨팅 부팅 과정 : 전원 켜기 -> ROM BIOS 실행 -> Bootloader 실행 -> OS 커널 로딩
- 신뢰할 수 있는 컴퓨팅 기반의 하드웨어, 펌웨어, 소프트웨어 요소가 결합되어 구현된 핵심 시스템
- Reference Monitor 1) 시스템 자원에 대한 모든 접근을 중재 2) 권한 없는 접근 차단
- 보안 커널의 요구 사항 1) 모든 접근을 중재 2) 수정으로부터 보호 3) 정확성 검증 가능
- Trusted OS
- 엄격한 분석과 테스트를 통해 보안 원칙과 메커니즘이 올바르게 구현 + 악의적인 공격 상황에서도 의도대로 작동한다는 신뢰 수준이 존재하는 운영체제
- 보안 기능 : 식별 및 인증, 강제 접근 제어, 객체 재사용 보호, 완전한 접근 중재, 신뢰 경로, 책임 추적 및 감사, 감사 로그 축소, 침입 탐지
- 신뢰 조건
1) 정책(Policy)
• 시스템이 무엇을 어떻게 수행해야 하는지를 명확히 정의
2) 모델(Model)
• 설계자가 시스템이 요구사항을 만족하고 적절한 객체와 관계를 보호할 수 있다고 확신
3) 설계(Design)
• 요구사항을 실현하기 위한 구체적인 구현 수단 선택
4) 신뢰(Trust)
• 기능(FEATURES): OS가 기대되는 보안 정책을 시행할 수 있는 모든 기능을 갖춤
• 보증(ASSURANCE): OS가 올바르게 구현되어 정책을 정확하고 효과적으로 시행할 수 있다는 확신
12. Trusted Software
- 코드가 엄격하게 개발되고 분석 => 코드가 기대하는 기능만 수행 , 불필요한 위험한 동작 x
- 기능적 정확성, 무결성 보장, 제한된 권한, 적절한 신뢰 수준