본문 바로가기

SIS

04. [정보보안기사/산업기사] 시스템 보안

컴퓨터 시스템 구성 요소


하드웨어 -> OS(Operating System) -> 시스템 프로그램(System Software) -> 응용 프로그램(Application Software) -> 최종 사용자


운영체제의 목적


처리량(Throughput)의 향상 : 어떤 일정한 단위시간 내에 처리할 수 있는 일의 양, 수치가 높을수록 좋음

반환시간(Turn - around time)의 최소화 : 하나의 작업을 컴퓨터 시스템을 이용하여 시작한 시간에서부터 결과를 얻을 때까지 걸리는 시간을 의미, 수치가 낮을수록 좋음

응답 시간(Response time)의 최소화 : 데이터 통신시스템에서 주어진 입력에 대해서 반응을 나타내기까지의 시간, 수치가 낮을수록 좋음

사용가능도(Availability) 향상 : 시스템을 이용하려할 때 얼마나 빨리 사용할 수 있는가

신뢰도(reliability) 향상 : 시스템이 주어진 문제를 얼마나 정확하게 해결할 수 있는가


계층구조 관점의 운영체제


계층 1(프로세서 관리) : 동기화와 프로세서의 스케줄링을 위한 프로세서 관리를 담당

계층 2(기억장치 관리) : 기억공간의 할당과 회수기능을 실행하는 기억장치 관리를 담당

계층 3(프로세스 관리) : 프로세스의 생성, 제거, 프로세스 간의 메시지 전달, 프로세스의 시작과 정지 등의 일을 담당

계층 4(주변장치 관리) : 주변장치의 상태를 파악하여 관리하는 일, 입출력 장치의 스케줄링을 하고 입출력의 전반적인 사항을 지시

계층 5(파일과 데이터 관리) : 파일의 생성과 소멸, 파일의 오픈과 클로즈, 파일의 유지와 관리 등을 담당


버퍼링과 스풀링의 차이점 비교


버퍼링 

스풀링

하드웨어적 구현 

소프트웨어적 구현 

한 작업에 입출력과 계산 중복 가능 

여러 작업에 입출력과 계산 중복 가능 

스택 또는 큐 방식 입출력 수행 

큐 방식 입출력 수행 

단일 사용자 

다중 사용자 

버퍼의 위치는 주기억장치 

스풀의 위치는 디스크 


인터럽트 처리과정


프로그램 시작 -> 인터럽트 발생 -> 인터럽트 처리 시작 -> 인터럽트 처리 종료 -> 프로그램 종료


프로세스 상태


보류 상태(pending) : 작업이 일시중지(suspend)되거나 디스크에 수록된 상태

준비 상태(ready) : CPU가 사용할 수 있는 상태, CPU를 할당받을 수 있는 상태

실행 상태(running) : 프로세스가 CPU를 차지하는 상태

대기 상태(blocked) : 프로세스가 CPU를 차지하고 실행되다가 입출력처리와 같은 사건이 발생하게 되면, CPU를 양도하고 입출력 처리가 완료될 때까지 대기 큐에서 대기하는 상태

완료 상태(terminated) : 프로세스가 CPU를 할당받아 주어진 시간 내에 완전히 수행을 종료한 상태


PCB 정보


프로세스 이름 : 프로세스의 내부적 이름

상태 : 기본 스레드의 현재 상태

소유자 : 프로세스 소유자

실시간 통계 : 누적시간, 시작시간 등 정보

스레드 : 프로세스와 연관된 스레드의 리스트

관련 프로세스 리스트 : 프로세스의 부모/자식/형제 프로세스 리스트

자식 프로세스 리스트 : 프로세스의 자식 프로세스 리스트

주소 공간 : 주소 공간과 바인딩의 디스크립터

자원 : 프로세스가 보유한 자원의 리스트

스택 : 주기억장치 내의 기본 스레드 스택 위치


프로세스 스케줄링 비교


비선점


종류

방식 

특징 

FIFO 

작업이 시스템에 들어온 순서대로 수행하는 방법 

대화형에 부적합

간단하고 공평

반응속도 예측가능 

SJF 

수행시간이 짧은 작업을 우선적으로 처리하는 방법 

작은 작업에 유리하고 큰 작업은 상당히 시간이 많이 걸림 

HRN 

SJF에서 큰 작업에 시간이 많이 걸리는 점을 보완한 방법 

에이징 기법으로 기아상태 해결 


선점


종류 

방식 

특징

Round Robin 

FIFO 방식의 변형으로 일정한 시간을 부여하는 방법 

시분할 방식에 효과적

할당시간이 크면 FIFO와 같다

할당시간이 작으면 문맥교환이 자주 발생 

SRT 

수행도중 나머지 수행시간이 짧은 작업을 우선적으로 처리 

작업 처리는 SJF와 같으나 이론적으로 가장 작은 대기시간 걸림 

MLQ 

서로 다른 작업을 각각의 큐에서 timeslice로 처리 

각각의 큐는 독자적인 스케줄링 알고리즘 사용 

MFQ 

하나의 준비상태 큐를 통해서 여러개의 피드백 큐를 거쳐 일을 처리 

CPU와 I/O장치의 효율을 높일 수 있음 


교착상태의 4가지 필요조건


상호배제(Mutual Exclusion) : 프로세스들이 자원을 배타적으로 점유하고 있어, 다른 프로세스들이 자원을 사용할 수 없도록 만든다.(자원의 배타적인 제어권)

점유와 대기(Hold & Wait) : 부분 할당, 프로세스들은 동일한 자원이나 다른 종류의 자원을 부가적으로 요구하면서 이미 어떤 자원을 점유하고 있는 것

비선점(Non - preemption) : 비선점 자원들은 그들을 점유하는 프로세스로부터 벗어나지 못한다.(도중에 해제될 수 없다)

환형 대기(Circular Wait) : 프로세스와 자원들이 원형을 이루며, 각 프로세스는 자신에게 할당된 자원을 가지면서 상대방 프로세스의 자원을 상호 요청하는 경우


주기억 장치와 가상기억장치 관리 기법


주기억 장치


단일 사용자 : 상주 모니터, 오버레이(중첩), 스와핑(교체)

다중 사용자 : 고정 분할(절대 번역, 재배치 번역), 가변 분할


가상기억장치


다중 사용자 : 페이징, 세그멘테이션, 페이징/세그멘테이션 혼용


기억장치 관리 정책


반입(Fetch) 정책

1. CPU로 실행되거나 참조되려고 주기억장치로 적재할 다음 프로그램이나 자료를 언제(When) 가져 올 것인가를 결정하는 문제

2. 요구 반입 정책(demand fetch strategic)

3. 예상 반입 정책(anticipatory fetch strategic)


배치(Placement) 정책

1. 새로 반입된 자료나 프로그램을 주기억장치의 어디(Where)에 위치시킬 것인가를 결정하는 정책

2. 최초 적합(First fit), 최적 적합(best fit), 최악 적합(worst fit) 등


교체(Replacement) 정책

1. 새로 들어온 프로그램이 들어갈 장소를 마련하고 어떤(Who) 프로그램이나 자료를 주기억장치로부터 제거할 것인가를 결정하는 정책

2. 페이지 부재가 발생하면 운영체제가 들어올 페이지의 공간을 만들어 주려고 주기억장치로부터 제거할 페이지를 선택하는 정책


페이지 교체 기법


최적 교체(Optimal Replacement) : 현재 주기억장치에 적재되어 있는 페이지들 중 현재 시점이후로가장 오랫동안 참조되지 않을 페이지를 교체

무작위 페이지 교체(Random Page Replacement) : 특별한 사용자들에게 차이를 두지 않고 페이지를 교체하는 기법으로 교체할 페이지를 무작위로 선택하는 방법

선입 선출(First In First Out) : 가장 먼저 주기억장치에 들어 있는 페이지와 교체시키는 방법

LRU(Least Recently Used) : 가장 널리 사용되는 방법으로써 한 프로세스에서 사용되는 각 페이지마다 카운터를 두어 현시점에서 가장 오랫동안 사용되지 않은 페이지를 제거하는 방법

LFU(Least Frequently Used) : 사용빈도가 가장 낮은 페이지, 즉 호출된 횟수가 가장 적은 페이지를 교체하는 방법

NUR(Not Used Recently) : NUR은 최근에 사용되지 않은 페이지를 교체하는 것으로써 2개의 비트를 둔다. 2개의 비트는 참조비트(reference bit)와 변형비트(modified bit)


가상기억장치의 구현


가상기억장치의 구현방법에 따라

페이징(고정 블록), 세그먼테이션(가변 블록), 페이징/세그멘테이션 혼용


사상표 색인을 찾는 방법에 따라

직접 사상 방법, 연관 사상 방법, 직접/연관 사상 혼용 방법


디스크 스케줄링 기법 비교


종류 

정의 

특성 

FCFS 

작업의 요청 순서대로 서비스 받음 

구현 쉬움, 공평

트랙탐색 패넡의 최적화 시도 없음

응답시간이 길어지는 경향 

SSTF 

현재 위치에서 탐색거리가 가장 짧은 요청이 먼저 서비스 받음 

FCFS보다 처리량 많고 평균 응답시간이 짧다

응답시간 편차 심함(기아상태 발생 가능)

처리량 중심인 일괄시스템에 유용 

SCAN 

진행방향상의 가장 가까운 곳에 있는 요청을 서비스

부하 적을 때(SCAN 기법 우수) 

가장 바깥쪽 실린더에 도달할 때까지 진행방향 바꾸지 않음

SSTF의 차별대우를 많이 없애고 낮은 편차를 갖는다

SSTF처럼 처리량과 응답시간을 많이 개선

바깥쪽 트랙이 가운데 트랙보다는 차별대우 

C-SCAN 

한쪽 방향으로 헤드를 이동하며 서비스 함. 끝에 도착하면 처음부터 진행 

안쪽, 바깥쪽 트랙의 차별대우 완전 제거

응답시간의 편차 작음

부하가 많은 상황을 효과적으로 취급

부하 많을 때(C-SCAN 기법 우수) 

N-step SCAN 

SCAN 알고리즘에서 방향 전환 시 먼저 요구한 N개의 요청만 서비스 

헤더가 있는 실린더에 요청이 집중될 때 발생하는 무한대기를 제거 

SLTF 

회전시간의 최적화는 SLTF(Shortest Latency Time First) 스케줄링으로 구현 

회전시간 최적화는 때때로 섹터 큐잉(sector queuing)이라고 불림 

섹터 큐잉은 주로 드럼과 같은 고정 헤드장치를 스케줄링할 때 사용


보안 운영체제 보호방법


구분 

설명 

물리적 분리(Physical separation) 

사용자별로 별도의 장비만 사용하도록 제한하는 방법 

시간적 분리(Temporal separation) 

프로세스가 동일 시간에 하나씩만 실행되도록 하는 방법 

논리적 분리(Logical separation) 

각 프로세스가 논리적인 구역을 갖도록 하는 방법 

암호적 분리(Cryptographic separation) 

내부에서 사용되는 정보를 외부에서는 알 수 없도록 암호화하는 방법 



파일 보호기법


파일의 이름 명명(naming) : 다른 사용자 파일의 이름을 알 수 있는 기법이없고 그 이름을 추측하기도 힘들다는 가정에 근거

패스워드(password) :  각 사용자마다 서로 다른 패스워드(password)를 제공하여 그 패스워드를 알아야만 파일을 이용할 수 있게 하는 방법

암호화(cryptography) : 파일 내용 자체를 암호화(encryption)하여 누구나 공유할 수 있지만 인가된 사용자만 그 내용을 파악 가능토록 함


참조모니터 및 보안커널의 3가지 특징


격리성(Isolation) : 분리되고, 부정조작을 방지

검증가능성(Verifiability) : 크기가 작아야 함

완전성(Completeness) : 우회 불가능


악성 프로그램 특성 비교


구분 

컴퓨터 바이러스 

트로이 목마 

웜 

복사 및 전염능력 

있음 

없음 

매우 강함 

형태

파일이나 부트섹터 등 감염대상 필요 

유틸리티로 위장하거나 유틸리티 안에 코드 형태로 삽입 

독자적으로 존재 

전파 경로 

사용자가 감염된 파일을 옮김 

사용자가 내려 받음 

네트워크를 통해 스스로전파 

주요 증상 

해당 컴퓨터의 시스템 및 파일 손상 

PC 성능 저하, 좀비 PC 

네트워크 성능 저하 


윈도우의 특징


GUI 환경 : 아이콘이라는 그림 명령을 통하여 쉽게 프로그램에 접근할 수 있다.

Plug & Play : 하드웨어를 새롭게 추가하는 경우 자동으로 인식하여 환경을 설정해주는 기능으로 해당 하드웨어가  Plug & Play 기능을 지원하는 장치이어야 한다.

단축 아이콘(Short Cut)/바로가기 : 프로그램이나 데이터를 빠르고 편리하게 실행시키기 위해서 원하는 위치에 원본 파일을 연결한 아이콘을 만들 수 있다.

멀티태스킹 : 한 번에 여러가지 작업을 동시에 수행할 수 있다. 윈도우를 사용하면 몇 개의 강력한 응용 프로그램을 즉시 작동시킬 수 있는 대기상태로 만들 수 있고 또한 그들 사이의 빠른 전환(switching)이 가능해진다.

OLE(Object Linking Embedding) : 개체 연결 포함 기능으로 프로그램 간에 개체(그림, 표 등)를 교환할 수 있다.

네트워크 기능 향상 : 다양한 프로토콜을 제공하기 때문에 네트워크 설치나 인터넷 연결 등을 편리하게 할 수 있으며, 특히 Netbios라는 프로토콜을 사용하여 네트워크 공유가 편리하다

다중 모니터 지원 : 한 대의 컴퓨터에 최대 8대의 모니터를 연결하여 사용할 수 있다.

정보의 전송 통합 : 두 개 또는 그 이상의 응용 프로그램에서 작업하여 상호 간의 정보를 한 응용 프로그램에서 다른 응용 프로그램으로 전송 통합할 수 있다. 이것은 클립보드라고 불리우는 Desktop accessory를 통해 이루어진다.


GUI 환경, Plug & Play, 단축 아이콘(Short Cur)/바로가기, 멀티태스킹, OLE(Object Linking Embedding), 네트워크 기능 향상, 다중 모니터지원, 정보의 전송 통합


윈도우 기본 사용자


Administrator : 관리자 권한의 계정으로 사용자 사용 가능한 계정 중 가장 강력한 권한을 지닌다.

SYSTEM : 시스템에서 최고 권한을 가진 계정으로 로컬에서 관리자보다 상위 권한을 가진다. 원격 접속이 불가능하며, 사용자가 이 계정을 사용하여 시스템에 로그인 할 수 없다.

Guest : 매우 제한적인 권한을 가진 계정으로, 기본 설정은 사용 불능이다.


윈도우 기본 그룹


Administrator : 도메인 자원이나 로컬 컴퓨터에 대한 모든 권한이 있다.

Account Operators : 사용자나 그룹 계정을 관리하는 그룹이다.

Backup Operators : 시스템 백업으르 위해서 모든 시스템의 파일과 디렉터리에 접근할 수 있다.

Guests : 도메인 사용 권한이 제한된 그룹으로 시스템의 설정 변경 권한이 없다.

Print Operators : 도메인 프린터에 접근할 수 있다.

Power Users : 디렉터리나 네트워크 공유, 공용 프로그램 그룹 생성, 컴퓨터의 시계 설정 권한이 있다.

Replicator : 도메인에 있는 파일을 복제할 수 있는 권한을 가지고 있는 그룹이며, 디렉터리 복사 서비스에 이용된다.

Server Operators : 도메인의 서버를 관리할 수 있는 권한을 가진 그룹으로 로컬 로그온과 시스템 재시작 및 종료 권한이 있다.

Users : 도메인과 로컬 컴퓨터를 일반적으로 사용하는 그룹이다. 개개인에 할당된 사용자 환경을 직접 만들 수 있지만, 설정할 수 있는 항목에는 한계가 있다. 시스템 서비스의 시작 및 종료 권한이 없으며, 디렉터리 공유 설정을 할 수 없다.


레지스트리 루트 키


HKEY_CLASS_ROOT(HKCR) : 파일 확장명과 응용프로그램의 연결정보가 들어있고, 윈도우 시스템에 들어있는 개체들 및 응용프로그램과 그 자동화에 대한 정보

HKEY_CURRENT_USER(HKCU) : 현재 로그온 되어 있는 사용자에 따라 달리 적용되는 제어판 설정, 네트워크 연결, 응용 프로그램 등을 저장

HKEY_LOCAL_MACHINE(HKLM) : 개별 사용자 단위가 아닌 시스템 전체에 적용되는 하드웨어와 응용 프로그램의 설정 데이터를 저장

HKEY_USERS : 사용자 프로필을 만들 때 적용한 기본 설정(.DEFAULT 키)과 사용자별로 정의한 그룹 정책 등

HKEY_CURRENT_CONFIG(HKCC) : 현재 하드웨어 프로필 설정 등


UNIX 시스템의 특징


대화식 운영체제 : 사용자와 운영체제(UNIX)간의 상호작용은 명령어 해석기인 셸(Shell)에 의해 이루어짐

멀티태스킹 : 여러 개의 명령어를 동시에 처리하는 방식

멀티유저 : 동시에 여러 사용자가 하나의 컴퓨터를 사용 가능 -> 보안이 중요해졌다.

호환성 및 이식성 : 하드웨어적인 구조에 독립적으로 응용프로그램을 작성할 수 있는 환경 제공

계층적 파일시스템 : 계층적 파일시스템은 정보의 고유구조를 반영하도록 그룹화하는 기능으로 파일관리에 상당한 유연성 제공

뛰어난 통신 기능 : TCP/IP에 기반한 통신기능을 운영체제 자체에 내장하고 있으며, 프로세스 간을 연결하는 파이프 기능이 있어서 명령어 간의 데이터전달이 수월

다양한 기능의 유틸리티와 개발환경 제공 : UNIX 시스템은 수백여 개의 명령어와 유틸리티를 사용자 및 개발자에게 제공하여 도움을 줌


전형적인 UNIX 디렉터리 구조


/ : root 디렉터리나 최상위 디렉터리이다.

/etc : 시스템 설정 파일이 저장되는 디렉터리이다.

/dev : 특수 파일이 저장되는 디렉터리이다.

/usr/bin : 디폴트 사용자 명령어가 저장되는 디렉터리

/usr/include : C 언어 라이브러리 헤더 피일이 저장되는 디렉터리이다.

/usr/lib : C 언어 라이브러리가 저장되는 디렉터리이다.

/usr/sbin : 시스템 관리 명령어가 저장되는 디렉터리이다.

/home : 사용자 홈 디렉터리가 저장되는 디렉터리이다.

/tmp :  임시 파일이 저장되는 디렉터리이다

/var : 시스템 로그가 저장되는 디렉터리이다.


파일 속성


- rw-r--r-- 1 root root 50316 2009-06-14 03:08 install.log


- : 파일 유형

rw-r--r-- : 파일 허가권

1 : 링크 수

root(1) : 파일 소유자 이름

root(2) : 파일 소유 그룹 이름

50316 : 파일 크기(Byte)

2009-06-14 03:08 : 마지막 변경 날짜/시간

install.log : 파일 이름