정보보안/정보보안 기사

[정보보안] 정보보안기사 필기 Part1. 시스템 보안

Developer D 2020. 10. 24. 22:08

정보보안기사 요약 Part1 시스템보안.pdf
0.32MB

 

정보보안기사 필기 요약

Part1. 시스템 보안

CPU : 입력장치로부터 자료를 받아 연산 후 결과를 출력 장치로 전송하는 과정을 제어하는 핵심 장치 (연산, 레지스터, 제어, 버스)

기억장치 (레지스터, 캐시, 주기억장치, 보조기억장치)

 

CPU구성요소

1.      ALU (연산장치) : 산술연산, 논리연산

2.      레지스터 : 소규모 데이터, 중간 결과를 기억해두는 고속 영역

3.      Control Unit(제어장치) : 명렁어 해석, 제어신호 발생

4.      내부 CPU 버스 :  ALU 레지스터간의 데이터 이동

 

레지스터 종류

PC(Program Counter) : 다음에 수행할 주기억장치 주소 기억

MAR(Memory Address Register) : 주기억장치에 접근하기 위한 주기억장치 주소 기억

MBR(Memory Buffer Register) : 주기억 장치 입/출력 자료 기억

IR(Instruction Register) : 주기억 장치 -> 인출한 명령코드 기억

 

버스 종류 (입출력 영향을 끼침)

데이터 버스 : 데이터 전송 용도

주소 버스 : 기억장소 위치, 식별

제어 버스: CPU, 기억장치, I/O 장치사이의 제어신호 전송

 

CPU 명령 실행 주기

1.      인츨 (Instruction Fetch) : 메모리 데이터를 로드하여 레지스터에 적재

2.      간접 (Indrection) : 간접주소 방식 채택 경우 – CPU가 메모리 참조시 메모리 주소를 참조

3.      실행 (Execution) : 명령, 데이터 > 산술 , 논리연산 수행

4.      인터럽트 (Interrupt): 예기치않은 문제 발생시에도 업무처리가능 하게 하는 기능

 

기억장치 계층구조

레지스터          기억장치용량  장치비용   속도

캐시                  작음               빠름

주기억장치

보조기억장치.                  작음     느림

 

캐시메모리 : CPU와 주기억장치 속도차이 극복을 위한 버퍼 메모리(기억장치)

 

캐시메모리 사상방식

1.      직접사상(Direct Mapping): Main Memory를 여러구역으로 분할하여 캐시슬롯과 직접 매핑

2.      집합 연관사상(Set Associate Mapping): 직접 + 연관 방법 메모리를 세트(블록)으로 분할하여 매핑

3.      연관 사상(Associate Mapping): Main Memory 블록들이 캐시 슬롯에 어느곳이든 적재 가능

 

캐시메모리 관리 방식 (CPU 원하는 데이터가 캐시메모리에 적재하도록 관리)

(호출기법)

1.      Demand Fetch : 필요시 캐시 인출

2.      Pre-Fetch : 예상되는 데이터를 미리 패치

 

(교체기법)

캐시 메모리 교체 알고리즘

1.      FIFO(First In First Out): 가장 오래 있었던 Page 교체 / 자주 사용되는 페이지가 교체될 수 있음

2.      LFU(Least Frequently Used): 가장 사용횟수가 적은 Page 교체 / 가장 새로 들어온 페이지 교체될 수 있음

3.      LRU(Least Recently Used):가장 오랫동안 사용되지 않은 Page 교체 / 오버헤드 우려

4.      NUR(Not Used Recently): 미사용 Page 교체 (참조/수정비트 사용)

5.      SCR(Second chance Replacement): 최초 참조 비트 1, 1-> 0 두번기회

 

 

페이지교체시 문제점

Page Fault(페이지부재), DemadPaging, Thrashing(부재가 너무빈번하여 프로세스 수행보다 페이지 교체 시간소요가 더 소모됨)

 

가상메모리(Virtual Memory) : Virtual Address Space 사용, 물리적 메모리보다 더 큰용량 제공

 

가상메모리 관리 단위 (페이지 Vs 세그먼트) : 비연속 할당

페이지 : 동일한크기의 최소 논리 분할 단위 / 내부단편화

세그먼트 : 용도별로 논리적 단위로 나눔 / 외부단편화

 

연속할당 : 고정분할, 가변 분할

 

I/O 인터페이스 ( 주기억장치 - 보조기억장치 입출력 )

1.      CPU 경유 : 프로그램에 의한 I/O, 인터럽트에 의한 I/O

-       프로그램에 의한 I/O : CPU 가 주변장치를 연속 감시하는 Polling 방식

-       인터럽트에 의한 I/O : 인터럽트 요청 감지시 수행작업을 중지

2.      CPU 비경유 : DMA(Direct Memory Access Controller) , Channel I/O

-       DMA : 메모리와 주변장치를 직접 관리, 속도 빠름 ( Cycle Stealing: CPU사용하지않는 버스 점유, Brust Mode: 점유 )

-       채널 I/O( I/O Processor): I/O장치의 복잡함으로 DMA 한계를 보완하여 별도 전용 처리기능 프로세서 탑재

1.      Multiplexer Channel : 저속장치, 시분할 방식

2.      Selector : 고속장치, 단일 입출력

 

운영체제

: 컴퓨터 시스템의 자원들을 효율적으로 관리, 사용자의 컴퓨터 사용 편의성 환경 제공

 

운영체제의 목적

1.      처리능력 향상

2.      신뢰성 향상

3.      응답시간의 단축

4.      자원 활용률 향상

5.      가용성 향상

 

운용체제 주요 자원 관리 기능

1.      프로세스 관리

2.      기억장치 관리

3.      주변장치 관리

4.      파일 관리

 

프로세스 관리 (Process Management)

 

프로세스 : - 레지스터, 스택, 포인터, 실행중인 프로그램, 데이터 등의 집합체

- 실행중인 프로그램 , PCB 보유 , Library Call, 자원할당의 기본 단위

 

스레드 : - 제어의 흐름, 프러세스에서 실행의 개념 , CPU 작업의 기본 단위, System Call

 

CPU 스케줄링 기법 ( :프로세스 상태 전이)

: 컴퓨터의 자원을 효율적으로 사용하기 위한 정책, 자원을 요청하는 프로세스 순서를 정함

점유방식

1.      선점(Preemptive): 프로세스 CPU 점유 시 다른프로세스 점유 가능 (Round-robin, SRT)

2.      비선점(Non-preemtive): 프로세스 CPU 점유시 독점 (FCFS, SJF, HRN)

 

(비선점 방식)

1.      FCFS(First Come First Service): 대기큐에 도차간 순서에 따라 CPU 할당

2.      SJF(Short Job First): 수행시간이 짧은 작업부터 CPU 할당

3.      HRN(Highest Ratio Next): SJF 개선하여 프로세스 우선순위로 할당

(선점)

1.      Round-robin : 각 프로세스는 같은 시간을 CPU에서 할당 받음

2.      SRT(Shortest Remaining Time) : 수행시간이 짧은 작업부터 CPU할당하지만 수행중 다른 프로세스가 더 짧은시간 일때 점유 가능

 

Multi Level Queue : 여러종류의 그룹()로 나누어 각자 독자적인 스케줄링 기법을 사용

Multi Level Feedback Queue: 그룹()들을 라운드로빈 + 비선점방식 (Hybrid 스케줄링)

병행성제어

상호 배제(Mutual Exclusion Techniques) : 다수의 프로세스 동일 자원 접근 시 무결성 보장, 임계영역 사용

1.      임계영역(Critical Section): 공유자원의 독점을 보장하는 코드 영역, 병렬컴퓨팅 일부로도 쓰임, 세마포어 개념이용

세마포어: 공유자원의 개수를 나타내는 변수

2.      모니터 상호배제 기법 : 하나의 프로세스만이 모니터내부의 존재, 모니터 내부의 지역변수로 정의

 

교착상태(Dead Lock): 하나이상의 프러세스가 더 이상 계속할 수 없는 특정 사건을 기다리고 있는 상태

교착상태 발생조건

1.      상호배제 : 하나이상의 프로세스가 자원을 배타 점유

2.      점유와 대기: 부분할당으로 다른 종류의 자원을 요구하면서 자원 점유

3.      비선점 : 자원이 해제 되지 않음

4.      환형대기 : 프로세스와 자원들이 원형을 이루며 서로 상대방의 자원을 요청

 

교착상태 대응 방법(예방, 회피, 발견, 회복)

1.      예방(Prevention) : 필요 조건을 부정, 교착상태 예방  

-       점유와 대기 부정:  필요한 자원을 일시에 요청

-       비선점 조건의 부정: 자원점유 후 자원 요청시 자원해제 선 요청

-       환형대기 조건 부정: 프로세스들의 자원별로 우선순위 결정

-       상호배제 조건 부정: 자원 비공유 전제

2.      회피(Avoidence) : 가능성을 인정, 회피

-       은행원 알고리즘 (안전상태, 불안전상태): 프로세스가 요구한 최대 요구량 만큼 자원을 할당 안전순서서열 존재, 교착상태는 불안전상태에서만 일어남.

3.      발견(Dectection) : 교착상태 발생 허용, 원인을 규명하고 해결

-       교착상태 발견 알고리즘: 교착상태 발생 검사 알고리즘 , 교착상태 빈도수 파악

-       자원할당 그래프 : 방향그래프를 이용, 그래프 소거법을 이용하여 교착상태 감지

4.      회복(Recovery)

-       프로세스중지

-       선점

 

장치관리기법

디스크

디스크 접근 시간

1.      탐색시간 : 현위치에서 특정실린더로 디스크 헤드가 이동하는 데 소요되는 시간

2.      회전 지연시간 : 섹터가 디스크 헤드까지 도달하는 시간

3.      전송시간 : 데이터 전송 시간

 

디스크 스케줄링 기법

1.      FCFS(First-Come First Served) : 먼저들어온 요청 우선처리

2.      SSTF(Shortest-Seek-Time First) : 탐색거리가 가장 짧은 트랙 요청 우선 처리

3.      SCAN(엘레베이터 알고리즘): Head가 이동하는 모든 요청을 서비스 끝까지 처리후 역방향 처리

4.      C-SCAN: SCAN 에서 바깥쪽에서 안쪽으로 이동

5.      C-LOOK: 진행방향에서 요청없을시 헤드를 처음위치로 이동

 

파일 시스템(File System)

     FAT(File Allocation Table)

1.      FAT16: 대부분 MS 호환가능, 2GB, 암호화 및 압축 불가능, 파일명 최대 영문8, 클러스터 1632KB

2.      FAT32:  2TB, 암호화 및 압축 불가능, 파일명 최대 영문 256, 클러스터 4KB

3.      NTFS(New Technology File System): 암호화 및 압축 지원, 가변클러스터

 

EXT(Extended File System)

1.      EXT: MINIX File System 보완, 최대 2GB, 파일명 255bytes, 단편화문제

2.      EXT2: 2GB, 볼륨32TB, 오류 수정 지원

3.      EXT3: 저널링기능, 온라인 파일 시스템 증대, 디스크조각화 최소화

4.      EXT4: 16GB, 볼륨 16Exabyte, 온라인 조각모음, 저널 체크섬, 하위호환 가능

 

UFS(Unix File Sysyem) : 유닉스 파일 시스템 (부트블록, 슈퍼블록, 실린더그룹, i-node 테이블)

1.      슈퍼블록: 파일 시스템 크기, i-node 테이블의 크기

2.      I-node 테이블: 파일정보파일크기, 위치, 유형 허가권, 날짜

 

 

RAID : 디스크 고장 시 복구를 위해 2개이상에 디스크에 데이터를 저장하는 기술, 저 가용성 디스크를 배열 구조로 중복 구성

 

RAID 0 : 최소 2개 디스크, 데이터를 나누어 저장, 장애발생 시 복구 불가

RAID 1 : 디스크 완전 이중화, 많음 비용 발생, ReadWrite 병렬가능

RAID 2 : Hamming Code를 이용하여 오류 복구

RAID 3 : Parity 정보를 별도 디스크에 저장

RAID 4 : Parity 정보를 별도 디스크에 블록별 저장 Write 성능 저하

RAID 5 : 분산 Parity 구현, 안전성 향상

RAID 6 : Parity 다중화, 장애발생 상황에서도 다른 정상 동작

 

리눅스 서버 보안

라눅스 핵심 구성요소

1.      : 명령어 해석기, 명령의 입출력 수행 ( Bash, Bourne, C, korn), 프로그램 실행

2.      커널 : 주기억장치에 상주, 사용자 프로그램 관리

3.      파일 시스템 : 정보를 저장하는 기본적 구조, 계층(트리)구조

 

리눅스 파일 종류

1.      루트 파일 시스템 : 시스템 프로그램, 디렉터리

2.      일반 파일 : 프로그램, 원시 프로그램파일, 텍스트 등

3.      디렉터리 파일 :  디렉터리에 관한 정보를 저장하는 논리적인 단위

4.      특수 파일 : 주변장치에 연결된 파일

 

리눅스 부팅

Run Level

0.      PROM 감시

1.      사용자 로그인 불가능한 상태, 암호변경할 때 사용

2.      공유된 자원이 없는 다중 사용자 단계

3.      공유 자원을 가진 다중 사용자 단계

4.      사용 되지 않는 단계

5.      3단계 기동후 X-Windows 실행

6.      재부팅 단계 > 3단계로 재부팅

 

리눅스 인증과 권한 /etc/passwd

Passwd 파일 구조

Root : x : 0 : 0 : root : /root : /bin bash

사용자계정 : 패스워드(/etc/shadow) : UserID : GroupID : Home Directory : Shell

 

리눅스 권한 관리

Umask ( r = 4 , w = 2, x= 0 , User : Group : Other ) : Default 권한 , 파일 666 , 디렉토리 777

chmod : 권한 부여 명령 (chmod 777 파일명 , chmod u+g, g-w, o+r 파일명)

chown : 파일에 대한 사용자, 그룹 변경 (chown 소유자 : 그룹)

 

특수권한 관리( setuid , setgid, stickybit)

1.      setuid : 파일을 소유자권한으로 실행가능 (4000 , u+s)

2.      setgid : 파일을 그룹 권한으로 실행가능 (2000, g+s)

3.      stickybit : 공용 디렉토리 (1000

 

 

로그파일 /var/log

현재 사용자 확인 : w, who – 로그인 사용자 ID, 사용 터미널, 로그인 시간

로그인한 사용자 정보 : /var/utmp

로그인, 로그아웃 정보 : /var/wtmp (last 명령어 사용)

로그인 실패 정보 : /var/btmp

 

Syslog( syslogd  /etc/syslogd.conf 로그수준  ) : 로그수준을 읽고, 로그를 기록

유형 emerg > alert > crit > err > warn > notice > info > debug

 

 

 

 

작업스케줄러 관리

Cron : 반복적인 프로세스 작업을 수행할 때 사용하는 batch 프로그램 (/etc/crontab)

30 * * * * root /home/test.txt : 30분 마다 test 실행

분 시 일 월 요일 사용자 실행명령

 

At : 한번만 실행

 

파일 무결성 검사

: 초기 상태 파일 정보에 대해 해시값 저장, 이후 비교

Tripwire ( --init : 초기화 , --check : 무결성 검사)

 

윈도우 클라이언트 및 서버 보안

파일 시스템 (FAT, NTFS)

 

윈도우 인증 시스템 (Winlogon, GINA, LSA, SAM, SRM)

1.      Winlogon : 윈도우 로그인 프로세스

2.      GINA(msgina.dll) : Winlogon Gina로딩하여 계정과 암호를 LSA 전달

3.      LSA (lsas.exe) : SRM 작성한 감사로그 기록, 계정과 암호 검증을 위해 LTLM 모듈 로딩, 계정검증

4.      SAM : 사용자 계정정보 해시값 저장

5.      SRM :  사용자 고유 SID 부여 SID 권한 부여

 

윈도우 실행 프로세스

1.      Wininit.exe : 윈도우 시작 프로그램

2.      Services.exe : 윈도우 서비스 관리

3.      Lsm.exe : 시스템관리작업, 주요 함수 실행, 호스트컴퓨터-서버 연결관리

4.      Svchost.exe : 서비스를 관리하기위한 프로세스

5.      Conost.exe : 키보드, 마우스 입력 허용 , 문자 출력 셸의 기본 기능 수행

 

공유폴더 ( Net BIOS :445  )

공유폴더 확인 : net share

공유폴더 삭제 : net share /delete

 

레지스트리 : MS 운영체제에서 OS및 응용 프로그램등에 필요한 정보를 저장하고 관리하기 위한 계층형 데이터 베이스

               Key, Value, Data Type, Data로 이루워져 있음

루트키 ( 레지스트리 최상위 키 )

1.      HKEY_CLASSES_ROOT : 확장자, 프로그램간의 연결 정보

2.      HKEY_LOCAL_MACHINE : HW, SW 설치 정보

3.      HKEY_USERS : 사용자 정보

4.      HKEY_CURRENT_CONFIG : 디스플레이, 프린터 정보

 

주요 레지스트리 키

버전 정보 : HKLM\SOFTWARE\Microsoft\Windows NT\Current Version

컴퓨터 이름 : HKLM\SYSTEM\ControlSet00X\Control\ComputerName\ActiveComputerName

시작프로그램 : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Current Version\ Run[]

최근에 실행한 명령어 :HKU\{USER}\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RunMRU

 

이벤트 로그 및 웹 아티팩트 분석

윈도우 이벤트 로그 : 이벤트 뷰어를 통해 확인가능 , .evt

웹 아티팩트 분석 : 사용자가 웹 사이트를 이용한 흔적을 분석 하는 것 ( 웹 브라우저 캐시, 히스토리, 쿠키 )

                     Window XP, 7 (index.dat) / Window 10 (WebCacheV01.dat WebCacheV24.dat)

 

바이러스 (자가복제 가능) Vs 악성코드 (자가복제 불가능)

 

세대 별 바이러스

1세대 ( 원시형 바이러스 ): 고정된 크기 주기억장치에 상주하여 감염 ( 돌 바이러스, 예루살렘 바이러스 )

2세대 ( 암호화 바이러스 ): 프로그램을 암호화 시킴, 암호화방식이 일정하여 복호화 방식 쉬움 ( 폭포 바이러스 ,느림보 바이러스 )

3세대 ( 은폐형 바이러스 ): 다른 실행파일에 기생 감염 시 백신을 속여 감염 여부 확인이 어려움 ( 맥가이버 바이러스 , 브레인 바이러스 )

4세대 ( 갑옷형 바이러스 ): 10만개 이상의 암호화기밥을 사용하여 은폐 ( 다형성 바이러스, 자체변형 바이러스 )

5세대 ( 매크로 바이러스 ): 매크로 명령을 사용하는 프로그램을 감염, 누구나 쉽게 생성/배포 가능 (Melisa 바이러스 Nimda 바이러스)

 

악성코드

 

Shellcode : 작은 크기의 코드로 소프트웨어 취약점을 이용하는 기계어 코드

HeapSpray : 셸코드를 힙영역에 뿌리는 것 전역변수를 이용한다.

예방 방법 ( ASLR 설정 - 메모리 동적 주소 할당 )

Sysctl -w kernel.radomize_va_space=1

버퍼 오버플로우 : 프로세스가 사용가능한 메모리 공간을 초과해 발생되는 공격

스택 오버플로우 : 스택에 저장되어있는 복귀주소가 지역변수에 의해 침범

                           비권고 함수 : strcpy, strcat, getwd, gets, scanf, sprint

                           권고 함수 : strncat, strncpy, fgets, fscanf, vfscanf, snprintf

힙 버퍼 오버플로우: 동적으로 할당되는 공간이 힙에 저장되어 경계값을 검사하지 않고 사용 시 메모리가 경계를 초과

 

APT(Advanced Persistant Threat) : 특정 공격들을 SNS를 사용하여 지속적으로 수행하는 공격 (침투 탐색 수집/공격 - 유출)

반응형