본문 바로가기
정보보안기사/시스템보안

[정보보안기사] 시스템 보안 : 운영제체

by IT퉁퉁이 2023. 5. 2.
반응형

1. 운영체제 개요

(1) 운영체제의 주요 기능

시스템 자원을 효율적으로 사용하게 하는 사용자와 컴퓨터 간의 인터페이스 역할

 

(2) 운영체제의 구조

1단계(프로세서 관리) : 동기화 및 프로세스 스케줄링

2단계(메모리 관리) : 메모리 할당, 회수 기능

3단계(프로세스 관리) : 프로세스 생성, 제거, 메시지 전달, 시작과 정지

4단계(파일 관리) : 파일 생성, 소멸, 파일의 열기 닫기, 파일의 유지 및 관리

 

(3) 운영체제의 기술발전 흐름

1세대 : 일괄처리시스템(Batch Processing System)

- 초기의 컴퓨터 시스템에 사용한 형태로 일정량 또는 일정기간 데이터를 모아 한꺼번에 처리하는 방식

2세대 :

- 다중프로그램 시스템(Multi-Programming System)

 - I/O 장치와 CPU 사이의 속도 차를 이용하여, 하나의 CPU와 주기억장치로 여러 프로그램을 동시에 처리하는 방식

 - I/O 장치의 조작으로 CPU 유휴시간이 발생하면, 운영체제가 다른 작업을 처리함(CPU의 사용률과 처리량 증가)

- 시분할 시스템 : 일정시간 동안만 CPU를 사용하고 다음 사용자에게 사용 권한 전환(라운드 로빈 방식)

- 다중처리시스템 : 여러 개의 CPU와 하나의 주기억 장치를 이용해 여러 프로그램을 동시에 처리하는 방식

3세대 : 다중모드처리(Multi-Mode Processing)

- 일괄처리 시스템, 시분할 시스템, 다중처리 시스템, 실시간 처리 시스템을 모두 제공하는 시스템

4세대: 분산처리 시스템(Distribute Processing System)

- 여러 개의 프로세서를 통신회선으로 연결해서 하나의 작업을 처리하는 방식

- 각 단말장치나 컴퓨터들은 고유의 운영체제와 CPU, 메모리를 가지고 있음

 

2. 운영체제의 주요 구성 기술

(1) 프로세스 관리

프로세스와 스레드의 개념

  • 프로세스 : 자원을 할당 받는 작업 단위, 실행 중인 프로그램
  • 스레드 : 프로세스 내에서 실행되는 흐름의 단위

프로세스 제어 블록(PCB : Process Control Block)

  • 운영체제가 프로세스에 대한 정보를 저장해 놓는 저장소(운영체제 커널의 자료 구조)
  • 다른 프로세스로 제어를 넘겨줄 때, 현재 실행 중인 프로세스의 정보를 PCB에 저장하고 제어를 넘김
  • 각 프로세스가 생성될 때마다 PCB가 생성되고, 종료되면 제거됨
  • 부모 프로세스와 자식 프로세스는 PCB를 공유하지 않음
  • Process ID, Process State, Porgram Counter 등

프로세스 구성 요소

  • Code 영역 : 프로그램 코드
  • Data 영역 : 전역변수 저장
  • Stack 영역 : 지역변수 및 함수의 매개변수 저장
  • Heap 영역 : 동적 메모리 할당 영역

프로세스 상태와 전이

  • 준비 Ready : 프로세스가 프로세서를 할당으려고 기다리고 있는 상태
  • 실행 Run : 
    • 준비 상태 큐에 있는 프로세스가 프로세서를 할당 받아 실행되는 상태(프로세스가 프로세서를 점유)
    • 프로세스 수행이 완료되기 전에 프로세스에게 주어진 프로세서 할당 시간이 종료되면 준비상태로 전이
    • 실행 중인 프로세스에 입출력 처리가 필요하면 실행 중인 프로세스는 대기 상태로 전이
  • 대기(Wait), 보류, 블록(Block) : 입출력 요구가 발생되어 현재 실행 중인 프로세스가 중단되고, 입출력 처리가 완료될 때까지 대기하고 있는 상태

프로세스 스케줄링 : CPU를 사용하려고 하는 프로세스 사이의 우선 순위를 정하는 방식

  • 장기 스케줄링 : 어떤 프로세스를 커널에 등록할 것인가
  • 중기 스케줄링 : 어떤 프로세스에게 메모리를 할당할 것인가
  • 단기 스케줄링 : 어떤 프로세스에게 CPU를 할당할 것인가

선점형 / 비선점형 스케줄링

선점형 스케줄링 정책 비선점형 스케줄링 정책
SJF(Shortest Job First) FCFS(First Com First Served)
SRT(Shortest Remaining Time First) SJF(Shortest Job First)
RR(Round Robin) FIFO(First In First Out)
MLQ(Multi Level Queue) HRN(Highest Response Ratio Next)
MFQ(Multi level Feedback Queue)  

프로세스 교착 상태(DeadLock)

  • 발생 조건 
    • 상호배제(Mutual Exclusion) : 한 프로세스가 자원을 다른 프로세스가 사용 못하게 배제할 때
    • 점유대기(Wait) : 프로세스가 자신에게 할당된 자원을 해제 안하고, 다른 자원을 기다릴 때
    • 비선점(비선점조건) : 프로세스에 할당된 자원을 끝날 때까지 해제 할 수 없는 경우
    • 순환대기(Circular Wait) : 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있음
  • 해결 방안
    • 예방 : 교착 상태의 필요조건을 부정함으로써 교착 상태가 발생하지 않도록 하는 방법
    • 회비 : 교착 상태 가능성을 인정하고 적절하게 피하는 방법
    • 탐지 : 교착 상태가 발생하면 교착 상태의 프로세스와 자원을 발견하는 방법
    • 복구 : 교착 상태를 일으킨 프로세스를 종료하고 할당된 자원을 회수하는 방법

 

(2) 기억장치 관리

주기억 장치 

  • 반입전략(Fetch) 
    • 요구 반입 정책(Demand Fetch Strategic) : 자료가 요구되는 시점에 주기억장치로 반입
    • 예상 반입 정책(Anticipatory Fetch Strategic) : 프로그램 수행 중 요구될 가능성이 큰 자료를 예상하여 주기억 장치로 반입
  • 배치전략(Placement)
    • 최초 적합 : 주기억장치 빈 공간 중 순서대로 첫 번째 주소에 배치하는 전략
    • 최적 적합 : 빈 공간 중 입력 데이터의 크기와 가장 비슷한 위치에 배치하는 전략
    • 최악 적합 : 빈 공간 중 입력 데이터의 크기와 가장 다른 위치에 배치하는 전략
  • 교체전략(Replacement)
    • FIFO(First In First Out) : 주기억장치에 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체
    • LRU(Least Recently Used) : 최근에 가장 오랫동안 사용하지 않은 페이지를 교체
    • LFU(Least Frequently Used) : 사용 빈도가 가장 낮은 페이지를 교체
    • NUR(Not Used Recently) : 최근에 사용되지 않은 페이지를 교체

가상기억 장치

  • 페이징(Paging) 기법 : 프로그램이나 데이터를 서로 다른 크기로 분할하여 주기억 장치에 적재하도록 하는 기법
    • 내부 단편화의 원인(내부 단편화란 주기억장치 내 사용자 영역이 실행 프로그램보다 커서 프로그램의 사용 공간을 할당 후 사용되지 않고 잔여 메모리가 발생하는 현상)
    • 스레싱(Thrashing) : 페이지 교체가 자주 일어나는 현상(프로세서의 사용 시간이 페이지 교체에 많은 시간 사용)
    • 워킹 셋(Working Set) : 자주 사용되는 페이지들을 묶어서 주기억장치에 계속 상주시키는 방법
    • 페이지 교체 알고리즘
      • FIFO(First In First Out)
      • LRU(Least Recently Used)
      • OPT(Optimal)
      • SCR(Second Chance Replacement)
  • 세그멘테이션(Segmentation) 기법 : 프로그램을 가변적 크기의 Segment로 나누어 구현
    • 외부 단편화의 원인(외부 단편화란 남아있는 총 메모리 공간이 요청한 메모리 공간보다 크지만, 남아있는 공간이 연속적이지 않아 발생하는 현상)

보조기억장치

  • 디스크 스케줄링
    • FIFO(FCFS) : 먼저들어온 순서대로 요청을 처리
    • SSTF : 현재 헤드 위치에서 제일 가까운 요청을 가장 먼저 처리
    • SCAN : 헤드가 안쪽 위치에서 바깥 위치로 이동하면서 요청에 대해 처리(바같 위치 스캔 후 안쪽으로 스캔)
    • C-SCAN : 헤드가 안쪽 위치에서 바깥 위치로 이동하면서 요청에 대해 처리(바같 위치 스캔 후 안쪽부터 다시 스캔)
    • N-Step SCAN : SCAN의 변형 알고리즘으로 이동하기 시작한 후 도착한 요청은 다음에 처리
    • C-LOOK : SCAN과 C-SCAN의 비효율적인 문제를 개선한 스케줄링으로 요청이 없다면 스캔 방향 전환

 

(3) 파일 시스템 관리

디렉터리 구조

  • 1단계(단일) 디렉터리 : 모든 파일이 같은 디렉토리에 존재하며 파일 이름은 유일한 구조
  • 2단계 디렉터리 : 중앙에 마스터 디렉터리(MDF)가 있고, 각 사용자의 디렉터리(UFD)가 하위에 있는 구조
  • 트리 디렉터리 : 하나의 루트 디렉터리와 다수의 하위 디렉터리로 구성되며, 포인터로 탐색
  • 비순환 그래프 디렉터리 : 파일과 디렉터리를 공동으로 사용할 수 있는 사이클이 허용되지 않는 구조

파일시스템

  • Windows File System
    • FAT(File Allocation Table)
      • DOS때 부터 사용되고 있는 대표적인 File System으로 FAT16과 FAT32 등이 있다.
      • 하드디스크에 FAT라는 영역을 만들어 파일의 실제 위치 등의 정보를 기록하여 이용
      • 저용량에 적합(4GB 이상 미지원) / 안전성 및 보안성 취약
      • 지원하는 드라이브의 최대 크기는 32GB
    • NTFS(NT File System)
      • MFT(Master File Table)를 사용하여 관리하며, Mirror와 파일 로그가 유지되어 파일 복구가 가능함
      • FAT + 대용량 / 보안성 / 압축기능 / 원격저장소 등의 기능을 추가해서 만든 윈도우 전용 File System
  • Unix & Linux File System
    • EXT2 : FSCK(File System Check)으로 시스템 손상 복구 가능
    • EXT3 : 저널링 기술로 더울 빠르고 안정적인 복구가 가능
    • EXT4 : 빨라진 FSCK, 하위 호환성, 지연된 할당
  • Partition
    • 하나의 물리적 디스크를 여러 공간으로 나누어, 분할하여 사용
  • RAID(Redundant Array of Independent Disks)
    • 여러개의 디스크를 이용, 분산 저장하여 성능 및 안전성을 확보하는 기술
    • RAID 0(Stripe) : 데이터를 여러개의 디스크에 나누어 저장, 디스크 장애 발생 시 복구 불가
    • RAID 1(Mirroring) : 여러 디스크에 데이터를 이중화하여 저장, 높은 안전성을 보장하나 많은 비용 발생
    • RAID 2(Hamming Code ECC) : ECC(Error Correction Code) 기능이 없는 디스크의 오류 복구를 위해 Hamming Code 이용
    • RAID 3(Parity ECC) : Parity 정보를 별도 Disk에 저장
    • RAID 4(Parity ECC, Block 단위 I/O) : Parity 정보는 별도의 디스크에, 데이터는 Block 단위로 데이터 디스크에 분산 저장
    • RAID 5(Parity ECC, Parity 분산 저장) : 분산 Parity를 구현하여 안전성 향상
    • RAID 6(Parity ECC, Parity 분산 복수 저장) : RAID 5의 안전성 향상을 위해 Parity를 다중화하여 저장

 

(4) 분산 시스템

  • 분산되어 있는 컴퓨터에서 작업이 나누어 처리되고 그 결과가 서로 호환되도록 연결되어 있는 시스템
  • 투명성 보장 필요
    • 위치 투명성 : 컴퓨터의 실제 위치를 몰라도 접근 가능
    • 이주 투명성 : 자원 이동에 제한이 없어야함
    • 병행 투명성 : 사용자의 위치를 몰라도 다른 사용자와 자원의 공유 가능
    • 복제 투명성 : 사용자에게 통지할 필요없이 자유롭게 복제 가능

 

3. 운영체제별 구조와 특징

(1) Unix / Linux 구조 및 특징

Unix / Linux 구조

  • 커널(Kernel)
    • OS의 핵심으로 주기억장치에 상주하여 자원을 관리함
    • 크게 입출력 / 메모리 / 프로세스 / 파일 관리의 부분으로 구분
    • 쉘에서 지시한 작업을 수행함
  • 쉘(Shell)
    • 사용자와 커널간의 인터페이스 제공
    • 사용자가 입력하는 명령의 입/출력을 수행하여 프로그램을 실행시킴
    • 명령어 해석기 / 번역기
  • 파일시스템(File System)
    • 계층적 트리 구조를 가지고 있음
    • 부트 블럭(Boot Blocks) : 파티션의 첫 부분에 예약되어 있는 블럭, 부팅시 필요한 코드 저장
    • 슈퍼 블럭(Super Block) : 파일 시스템 당 한 개씩 생성, 전체 파일 시스템에 대한 정보 저장
    • 아이노드(I-Nodes) : 리눅스 커널이 현재 사용하는 자료구조(파일 정보)를 유지하는 구조체
      • 파일 이름을 제외한 모든 파일과 디렉터리에 대한 정보를 저장
      • 파일 링크 정보 저장(심볼릭 링크 하드링크 구분)
      • 심볼릭 링크 : 기존 파일의 바로가기 파일 생성(새로운 I-Node 부여)
      • 하드 링크 : 기존 파일과 동일한 I-Node를 갖는 파일 생성
    • 데이터 블럭(Data Blocks) : 실제 데이터가 저장

Unix / Linux 특징

  • 대화식 운영체제
  • 다중 작업 기능(Multi-tasking)
  • 다중 사용자 기능
  • 이식성(하드웨어 종류에 상관없이 운영되는 특성)
  • 계층적 트리 구조 파일 시스템
  • 개발 도구
  • 통신
  • 가상 메모리

 

(2) Windows 구조 및 특징

Windows 구조

  • HAL
  • 마이크로 커널
  • 각종 관리자
  • 응용 프로그램

Windows 특징

  • 그래픽 기반 인터페이스(GUI)
  • 멀티 태스킹 기능
  • 메시지 구동 시스템
  • 독립된 장치

Windows 인증

  • 인증 프로세스 구성요소
    • Winlogon : 윈도우 로그인 프로세스
    • LSA : Winlogon을 통해 전달된 계정과 암호 검증을 위해 NTLM 모듈 로딩, 계정 검증
    • SAM : 사용자 계정정보 저장

(3) 보안운영체제 특징

접근 권한 통제 : 사용자 인증(Authentication), 접근 통제(Access Control)

침임 탕지 및 방어(Instrustion Detection & Prevention)

 

 

 

 

 

반응형

댓글