메뉴 건너뛰기

SayClub.org

정보보안(InfoSec)

1. 운영체제 개요

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

 - 운영체제 : 시스템 자원을 효율적으로 사용하게 하는, 사용자와 컴퓨터 간의 인터페이스 역할

 

(2) 운영체제의 구조

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

 - 2단계 : 메모리 관리 ; 메모리 할당, 회수 기능

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

 - 4단계 : 주변장치 관리 ; 주변장치 상태 파악과 입출력 장치의 스케줄링

 - 5단계 : 파일 관리 ; 파일 생성, 소멸, 파일의 열기 닫기, 파일의 유지 및 관리

 

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

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

 

 - 2세대 : 다중프로그램 시스템(Multi-Programming System)

  • I/O 장치와 CPU 사이의 속도 차이를 이용하여, 하나의 CPU와 주기억장치로 여러 프로그램을 동시에 처리하는 방식
  • I/O 장치의 조작으로 CPU 유휴시간이 발생하면, 다른 작업을 처리함
  • 시분할 시스템(Time Sharing System) : 라운드 로빈(Round Robin ; RR) 방식이라고도 함
  • 다중처리 시스템(Multi-Processing System) : 여러개의 CPU와 하나의 주기억 장치를 이용해, 여러 프로그램을 동시에 처리하는 방식  

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

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

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

  • 여러 개의 컴퓨터(프로세서)를 통신회선으로 연결해서 하나의 작업을 처리하는 방식
  • 각 단말장치나 컴퓨터들은 고유의 운영체제와 CPU, 메모리를 가지고 있음

 

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

(1) 프로세스 관리

 

 - 프로세스와 스레드의 개념

  • 프로세스 : 실행 중인 프로그램
  • 스레드 : 프로세스 내에서 실행되는 여러 흐름의 단위

 - 프로세스 제어 블럭(PCB; Process Control Block)

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

 - 프로세스 구성 요소

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

 

 

 

 

 

 - 프로세스 상태와 전이

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

 - 프로세스 상태 전이도

 

 

 

- 프로세스 스케줄링 : CPU를 사용하려고 하는 프로세스 사이의 우선 순위를 관리하는 일

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

 - 선점형 스케줄링 정책(Preemptive Scheduling Policy) : 처리 도중 뺏기 가능

  • SJF(Shortest Job First : 최단작업 우선처리) : 버스트 시간이 짧은 프로세스를 우선 처리
  • SRT(Shortest Remaining Time First : 최단 잔여 시간)
  • RR(Round Robin : 순환할당 스케줄링) : Time slice 기반 스케줄링
  • MLQ(Multi Level Queue : 다단계 큐)
  • MFQ(Multi level Feedback Queue : 다단계 피드백 큐)

 - 비선점형 스케줄링 정책(Non-Preemptive Scheduling Policy) : 처리가 끝날 때까지 기다림

  • FCFS(First Come First Served : 선입선출) : 먼저 CPU를 요청하는 프로세스를 우선 처리
  • SJF(Shortest Job First : 최단작업 우선처리) : 버스트 시간이 짧은 프로세스를 우선 처리
  • FIFO(First In First Out : 선입선출)
  • HRN(Highest Response Ratio Next) : CPU 할당 받을 시간과 기다린 시간으로 계산한 우선 순위로 결정

 - 프로세스 교착 상태(Deadlock)

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

 

(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) 기법 : 프로그램을 동일한 크기의 Page로 나누어 구현
    • 내부 단편화의 원인
    • 스레싱(Thrashing) : 자주 페이지의 교체가 일어나는 현상(프로세스 처리 시간 < 페이지 교체 시간)
    • 워킹 셋(Working Set) : 자주 사용되는 페이지들을 묶어서 주기억장치에 계속 상주시키는 방법
    • 페이지 교체 알고리즘
      • FIFO(First In First Out)
      • LRU(Least Recently Used) : 가장 오랜기간 사용하지 않은 페이지 교체
      • OPT(Optimal; 최적교체) : 가장 사용되지 않을 페이지를 교체, 실현 가능성 희박
      • SCR(Second Chance Replacement) : 참조 비트를 주고, 1이면 0으로, 0이면 교체
  • 세그멘테이션(Segmentation) 기법 : 프로그램을 가변적 크기의 Segment로 나누어 구현
    • 외부 단편화의 원인

  ★ 단편화(Fragmentation)

    - 내부 단편화(Internal Fragmentation) : 할당 받은 페이지를 다 사용 못했을 때 생기는 자투리 공간들

        → 압축(Compaction)으로 해결 : 분산되어있는 단편화된 빈 공간들을 결합

    - 외부 단편화(External Fragmentation) : 할당과 제거를 반복하면서, 적재하기 애매해진 공간들

        → 압축(Coalescing)으로 해결 : 인접해있는 단편화된 공간을 하나의 공간으로 통합

 

 - 보조기억장치

  • 디스크 스케줄링
    • FIFO(=FCFS)
    • SSTF(Short Seek Time First) : 현재 헤드에서 가장 가까운 트랙의 요청을 먼저 처리한다.
    • SCAN : 헤드가 한 방향으로 쭉가면서 처리하는 방법, 실린더 끝까지 가서 방향을 전환한다. (엘리베이터 기법)
    • C-SCAN : 헤드가 실린더 끝에서 안쪽으로 이동하며 처리한다. (항상 한쪽 방향에서 반대 방향으로 진행하며 트랙의 요청 처리)
    • N-Step SCAN : 헤드의 방향이 전환될 때, 이미 대기 중이던 요청만 처리한다. (도중에 생긴 요청은 무시)
    • C-LOOK(Circular-Look) : C-Scan의 보완, 대기시간을 좀 더 균형 있게 함, 진행 방향에 더 이상 요청이 없으면 Head는 진행 방향을 바꾼다.

 

(3) 파일 시스템 관리

 

 - 디렉토리의 구조

  • 1단계 디렉토리 : 모든 파일이 같은 디렉토리에 존재하며, 파일 이름은 유일한 구조
  • 2단계 디렉토리 : 중앙에 마스터 디렉토리(MDF)가 있고, 각 사용자의 디렉토리(UFD)가 하위에 있는 구조
  • 트리 디렉토리 : 하나의 루트 디렉토리와 다수의 하위 디렉토리로 구성되며, 포인터로 탐색(일반적으로 OS에서 사용)
  • 비주기 디렉토리(Acyclic Graph Directory) : 파일과 디렉토리의 공유가 허용될 수 있는 사이클이 없는 구조
  • 일반 그래프 : 사이클이 허용되고, 기본 트리 디렉토리 구조에 링크를 첨가한 구조

 - Windows File System

  • FAT(File Allocation Table)
    • DOS 때 부터 사용되고 있는 대표적인 File System. FAT16과 FAT32 등이 있다.
    • 하드디스크에 FAT라는 영역을 만들어 파일의 실제 위치 등의 정보를 기록하고 이를 이용함
    • 저용량에 적합 / 보안에 취약 / 호환성이 우수
  • NTFS(NT File System)
    • MFT(Master File Table)를 사용하여 관리하며, Mirror와 파일로그가 유지되어 파일 복구가 가능함
    • FAT + 대용량 / 보안성 / 압축기능 / 원격저장소 등의 기능을 추가해서 만든 윈도우 전용 File System
    • 대용량 지원 / 강력한 보안 / 자동 압축 및 안정성 / 호환성이 낮음 / 저용량에선느 FAT보다 느림
  • Unix & Linux File System
    • EXT2 : FSCK(File System Check)으로 시스템 손상 복구 가능
    • EXT3 : 저널링(Journaling) 기술로 더욱 빠르고 안정적인 복구가 가능
    • EXT4 : 빨라진 FSCK, 하위 호환성, 지연된 할당
    • ※ 저널링(Journaling) : 파일 시스템에 대하여 변경을 수행하기 전 원래의 로그를 기록하여 변경을 추적 관리하고 복구할 수 있는 시스템을 의미한다.
  • Partition
    • 주 파티션 : 기본 파티션을 의미 / 주 파티션의 수 + 확장 파티션의 수 <= 4
    • 확장 파티션 : 논리 파티션을 만들게 해주는 그릇의 역할 / 디스크에 하나만 생성 가능
    • 논리 파티션 : 최대 12개 (NTFS에서는 제한이 없음)
  • RAID(Redundant Array of Independent Disks)
    • 디스크 고장 시 그대로 복구할 수 있도록 2개 이상의 디스크에 데이터를 저장하는 기술
    • RAID 0(Stripe, Concatenate) : 데이터를 나누어 저장, 디스크 장애 발생 시 복구 불가능
    • 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 분산 복수 저장) : PAID 5의 안전성 향상을 위해 Prity를 다중화하여 저장

 

(4) 분산 시스템

 

 - 개념 : 분산되어 있는 컴퓨터에서, 작업이 나누어 처리되고 그 결과가 서로 호환되도록 연결되어 있는 시스템

 - 투명성(Transparency)를 보장해야 함

  • 위치 투명성 : 컴퓨터의 실제 위치를 몰라도 접근 가능
  • 이주 투명성 : 자원 이동에 제한이 없어야함
  • 병행 투명성 : 사용자의 위치를 몰라도 다른 사용자와 자원의 공유 가능
  • 복제 투명성 : 사용자에게 통지할 필요없이 자유롭게 복제 가능

 

 

3. 운영체제별 구조와 특징 (Unit, Linux, Windows)

(1) 유닉스/리눅스 구조 및 특징

 

 - 구조

 

 

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

 - 특징

  • 대화식 운영체제
    • 명령어를 입력받기 위해 쉘 프롬프트($)를 화면에 나타낸다. 프롬프트가 나타난 상태에서 사용자가 명령을 입력하면 시스템은 그 명령을 수행하고 다시 새로운 명령을 받기 위해 대기하고 있다는 표시로 쉘 프롬프트($)를 나타낸다.
  • 다중 작업 기능(multi-tasking)
    • 한 번에 하나 이상의 작업을 수행한느 것을 말한다.
  • 다중 사용자 기능
    • 여러 대의 단말기(키보드와 모니터)가 하나의 컴퓨터에 연결되어 각 단말기에서 사용자들이 프로그래밍을 하거나 파일 편집을 동시에 수행할 수 있다.
    • 즉, 여러 사람이 동시에 유닉스 시스템을 사용하여 개개의 작업을 수행할 수 있다.
  • 이식성(하드웨어 종류에 상관없이 운영되는 특성)
    • 유닉스는 90% 이상이 C 언어로 구현되어 있고, 시스템 프로그램이 모듈화 되어 있어 다른 하드웨어 기종으로 이식이 용이하다.
    • 즉, 다른 기종으로 이식할 경우 하드웨어에 의존하는 부분인 어셈블리어로 작성된 부분을 새로운 환경으로 변환시키고, C 언어로 구현된 나머지 부분을 재컴팡리하여 실행하면 된다.
  • 계층적 트리 구조 파일 시스템
    • 유닉스는 계층적 트리 구조를 가짐으로써 파일 관리를 용이하게 한다.
  • 개발 도구
    • 프로그래머가 여러가지 언어(Fortran, C, C++ 등)를 사용하여 프로그래밍할 수 있도록 많은 컴파일러(compiler)를 제공하고 있다.
  • 통신
    • 유닉스 시스템은 서로 다른 컴퓨터와 통신 가능하도록 하기 위해 여러 가지의 통신 유틸리티(mail, ftp, telnet 등)를 제공한다.
  • 가상 메모리
    • 한정된 메모리를 갖는 시스템에서 실제 메모리보다 더 큰 프로그램을 수행하기 위해 가상 메모리(virtual memory) 기법을 사용한다.

- 리눅스 특징

  • 다중처리 다중 사용자 시스템
  • 다양한 유형의 시스템에서 사용
  • 여러 파일을 동시에 지원
  • 안정적인 네트워크 기능 제공
  • 공개 소프트웨어, 오픈소스

 

(3) 윈도우 구조 및 특징

 

 - 구조

 

 

 

 

 - 특징

  • 그래픽 기반(GUI)
  • 멀티 태스킹 기능
  • 메시지 구동 시스템
    • 운영체제가 대신 입력을 받아 전달해주는 방식
  • 독립된 장치
    • 디바이스 드라이버에 의해 다양한 주변 장치들을 제어하고 관리한다.
    • 장치가 바뀌면 디바이스 드라이버를 교체하면 될 뿐 응용 프로그램은 이에 영향을 받지 않음
  • 일관성
    • 사용자가 프로그램에게 명령을 내리는 인터페이스 구성이 표준화 되어 있음
  • 리소스 분리
    • 응용 프로그램은 코드와 리소스가 분리되어 있어 개발자와 디자이너가 분담 작업을 쉽게 할 수 있음

 - 윈도우 인증 처리

 

 

  • 인증 프로세스 구성요소
    • Winlogon : 윈도우 로그인 프로세스
    • GiNA : Winlogon은 msgina.dll을 로딩해 사용자가 입력한 계정, 암호를 LSA로 전달
    • LSA : 게정과 암호 검증을 위해 NTLM 모듈 로딩, 계정 검증
    • SAM : 사용자 계정정보(해시 값)에 저장 (리눅스의 /etc/shadow 파일과 같은 역할)
  • 윈도우 운영체제 관련 프로세스 세부 내역
    • wininit.exe : 윈도우 시작 프로그램
    • services.exe : 윈도우 서비스 관리
    • lsm.exe : Local Session Manager, 호스트 컴퓨터와 서버의 연결 관리
    • lsass.exe : Local Security Authority Subsystem Service, 사용자 로그인 검사, 비밀번호 변경 관리, 액세스 토큰 생성
    • svchost.exe : 서비스를 관리하기 위한 프로세스
    • conhost.exe : 쉘의 기본 기능 수행

 

 

(4) 보안운영체제 특징

 

 - 접근 권한 통제(Authorization) ; Authorization = Authentication + Access Control

  • 사용자 인증(Authentication)
  • 접근 통제(Access Control)

 - 칩임 탐지 및 방어(Intrustion Detection & Prevention)

 

참고 자료 : 

2021 이기적 정보보안기사 필기 이론서

 

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

- 목차 - 1. 운영체제 (1) 운영체제 개요 ① 운영체제의 주요 기능   ② 운영체제의 구조   ③ 운영체제의 기술발전 흐름   (2) 운영체제의 주요 구성 기술   ① 프로세스 관리   

yjshin.tistory.com

 

번호 제목 글쓴이 날짜 조회 수
81 응답 헤더를 통한 서버 정보 노출 방지 (HTTP Response Header Remove) 미르다테 2024.12.30 56
80 [시행일 2022.08.13] 정보보안기사 제20회(2022년 2회) 실기 가답안 미르다테 2024.12.30 52
79 2021 정보보안기사 17회 실기 시험 후기 / 기출문제 + 답 복원 미르다테 2024.12.30 44
78 17회 정보보안기사 실기시험 문제 분석 미르다테 2024.12.30 56
77 18회 정보보안기사 실기시험 문제 분석(모범 답안, 고득점 포인트) 미르다테 2024.12.30 52
76 사이버 보안 전문가의 그래프는 비밀번호가 8자 이상이어야 하는 이유를 보여줍니다. 미르다테 2024.12.30 55
75 개발 단계별 테스트(단위, 시스템, 통합, 인수 테스트) 미르다테 2024.12.30 60
74 합성암호 종류 - Feistel cipher, SPN 구조 미르다테 2024.12.30 54
73 메시지 인증 코드(Message Authentication Code, MAC) 미르다테 2024.12.30 52
72 정보보안기사/산업기사 1회~18회 합격률 미르다테 2024.12.30 44
71 스케줄링 기법(선점 스케줄링, 비선점 스케줄링) 미르다테 2024.12.30 45
» [시스템 보안] 운영체제의 구조 및 이해, 관리 미르다테 2024.12.30 49
69 [시스템 보안] 서버 보안 미르다테 2024.12.30 43
68 [시스템 보안] 클라이언트 보안 미르다테 2024.12.30 48
67 [네트워크 보안] 네트워크 일반 및 활용 미르다테 2024.12.30 52
66 [네트워크 보안] 네트워크 기반 공격 기술 및 대응 기술 미르다테 2024.12.30 43
65 [어플리케이션 보안] 인터넷 응용 & 데이터베이스 보안 미르다테 2024.12.30 38
64 [어플리케이션 보안] 기타 어플리케이션 보안 미르다테 2024.12.30 51
63 Fragment의 취약점을 이용한 공격기술 미르다테 2024.12.30 49
62 정보보안기사 필기 요약 미르다테 2024.12.30 50
위로