보안 및 보호

운영체제는 시스템 자원에 대한 무단 접근악의적 행위, 우연한 오류로부터 사용자·데이터·하드웨어를 안전하게 지키기 위해 다양한 방어 메커니즘을 계층적으로 제공한다.

보안(Security)과 보호(Protection)는 밀접하지만 서로 다른 개념으로, 보호는 주로 시스템 내부 권한·접근 통제에, 보안은 외부 위협·공격 대비에 초점을 맞춘다.


프로그램 위협: 코드 실행과 권한 상승 방지

  • 버퍼 오버플로(Buffer Overflow) 방어

    • 함수 호출 시 스택 프레임에 복귀 주소와 지역 변수 저장 구조 분석

    • 스택 가드(stack canary): 스택 오버플로 발생 전후에 무작위 값(카나리)을 두어 훼손 감지

    • 컴파일러 옵션(-fstack-protector)으로 자동 보호

  • 주소 공간 레이아웃 랜덤화(ASLR)

    • 실행 파일, 라이브러리, 스택, 힙 등의 메모리 배치를 프로세스마다 무작위화

    • 재현 가능한 공격 경로 차단, 코드 인젝션 난이도 상승

  • 데이터 실행 방지(DEP / NX Bit)

    • 코드 실행이 허용된 메모리 영역과 데이터 영역 구분

    • 스택·힙 같은 데이터 구역에서의 임의 코드 실행 차단

  • 코드 서명(Code Signing) 검증

    • 실행 파일 및 라이브러리에 디지털 서명 적용

    • 운영체제 로더가 서명 무결성 확인 후에만 로드


시스템·네트워크 위협: 경계 방어 및 침입 처리

  • 방화벽(Firewall) 정책

    • 호스트 기반 방화벽(iptables, Windows Firewall)

    • 패킷 필터링: IP·포트 차단, 상태 추적(Stateful Inspection)

    • 애플리케이션 레벨 필터링: 프로세스별 트래픽 제어

  • 침입 탐지·방지 시스템(IDS/IPS)

    • 서명 기반(Signature-based): 알려진 공격 시그니처 매칭

    • 이상 행위 기반(Anomaly-based): 평소 트래픽·행위 패턴 학습 후 이상 탐지

    • 운영체제는 커널 레벨에서 네트워크 후킹으로 이벤트 전파

  • 가상 사설망(VPN)과 터널링

    • IPsec, OpenVPN으로 네트워크 트래픽 암호화

    • OS의 네트워크 스택에 암호화 모듈 통합

  • 랜섬웨어 대응

    • 파일 시스템 스냅샷(Snapshot)·버전 관리

    • 디스크 암호화 도구(BitLocker, LUKS)로 오프라인 공격 차단


암호화 및 키 관리: 기밀성·무결성 확보

  • 대칭키 암호화

    • AES, ChaCha20 등 고속 연산 블록 암호 알고리즘 채택

    • 운영체제 커널 모듈 또는 하드웨어 가속(AES-NI) 지원

  • 비대칭키 암호화와 인증서

    • RSA, ECC로 공개키 인프라(PKI) 구축

    • TLS 프로토콜에서 운영체제 레벨에서 인증서 검증과 키 교환 수행

  • 해시 함수와 MAC

    • SHA-2, SHA-3으로 데이터 무결성 검사

    • HMAC으로 메시지 인증(메시지 위변조 방지)

  • 키 관리(Key Management)

    • 키 생성: OS 랜덤 엔트로피 풀 활용, /dev/random

    • 키 저장: TPM(Trusted Platform Module), Secure Enclave 같은 하드웨어 보안 모듈(HSM) 연동

    • 키 갱신·폐기 정책: 주기적 교체, 사용 후 폐기


사용자 인증 및 접근 제어: 신원 검증에서 권한 통제까지

  • 인증(Authentication)

    • 지식 기반: 복잡도 높은 비밀번호 정책(길이, 문­자 조합 강화 및 주기적 변경)

    • 소유 기반: 하드웨어 토큰(OTP), 스마트카드, FIDO U2F

    • 생체 인식: OS 내장 생체 인식 프레임워크(Windows Hello, Touch ID, Face ID)

    • 다단계 인증(MFA): 2FA, 3FA 구현으로 보안 레벨 상승

  • 권한 부여(Authorization)

    • ACL(Access Control List): 파일·디렉터리·네트워크 서비스별 접근 제어 목록 정의

    • RBAC(Role-Based Access Control): 역할(Role)에 권한 묶어 할당, 사용자에게 역할 부여

    • MAC(Mandatory Access Control): 보안 등급(Label) 기반 강제 정책(SELinux, AppArmor)

    • Capabilities: 유닉스 커널 내 프로세스 권한(파일소유권·네트워크 권한 등) 세분화

  • 권한 검증 및 로깅(Audit)

    • 커널 오디트 서브시스템 통해 모든 권한 이벤트 기록

    • 감사 로그 보관 정책: 무결성 보장, 중앙 집중식 수집


커널 강화 및 공격 표면 최소화

  • 모듈 서명(Module Signing)

    • 커널 모듈(디바이스 드라이버 등) 로드 전 디지털 서명 검증

  • 최소 권한 원칙(Principle of Least Privilege)

    • 커널 구성 요소·서비스를 가능한 최소 권한으로 실행

  • 서비스 격리(Sandboxing)

    • 커널 지원 네임스페이스(Linux Namespaces), 컨테이너(Cgroups)로 프로세스 격리

  • 안전한 업데이트 메커니즘

    • UEFI Secure Boot 연동, 패키지 매니저 서명 검증, 원자적 업데이트(Atomic Update)

Last updated