Part 1. 시스템 보안
정보보안기사 필기
Part 1. 시스템 보안
- CPU : 입력장치로부터 자료를 받아 연산 후 , 결과를 출력 장치로 전송하는 과정을 제어하는 핵심 장치
(연산,레지스터,제어,버스 기억장치, 캐시, 주기억장치, 보조기억장치)
- CPU 구성요소 :
- ALU(연산장치) : 산술연산, 논리연산
- 레지스터 : 소규모 데이터, 중간 결과를 기억해두는 고속 영역
- Control Unit(제어장치) : 명령어 해석, 제어신호 발생
- 내부 CPU 버스 : ALU 레지스터간의 데이터 이동
- 레지스터 종류
PC(Program Counter) : 다음에 수행할 주기억장치 주소 기억MBR(Memory Buffer Register) : 주기억 장치 입/출력 자료 기억 - IR(Instruction Register) : 주기억 장치 -> 인출한 명령코드 기억
- MAR(Memory Address Register) : 주기억장치에 접근하기 위한 주기억장치 주소 기억
- 버스 종류 (입출력 영향을 끼침)주소 버스 : 기억장소 위치, 식별
- 제어 버스 : CPU, 기억장치, I/O 장치사이의 제어신호 전송
- 데이터 버스 : 데이터 전송 용도
- CPU 명령 실행 주기
- 인출 (Instruction Fetch) : 메모리 데이터를 로드하여 레지스터에 적재
- 간접 (Indrection) : 간접주소 방식 채택 경우 - CPU가 메모리 참조시 메모리 주소를 참조
- 실행 (Execution) : 명령, 데이터 > 산술, 논리연산 수행
- 인터럽트 (Interrupt) : 예기치 않은 문제 발생시에도 업무처리 가능 하게 하는 기능
- 캐시메모리 : CPU와 주기억장치 속도차이 극복을 위한 버퍼메모리(기억장치)
- 캐시메모리 사상방식
- 직접사상 (Direct Mapping) : Main Memory를 여러구역으로 분할하여 캐시슬롯과 직접 매핑
- 집합 연관사상(Set Associate Mapping) : 직접 + 연관 방법 메모리를 세트(블록)으로 분할하여 매핑
- 연관사상 (Associate Mapping) : Main Memory 블록들이 캐시 슬롯에 어느곳이든 적재 가능
- 캐시 메모리 관리 방식(CPU 원하는 데이터가 캐시 메모리에 적재하도록 관리)
- 호출기법
- Demand Fetch : 필요시 인출
- Pre-Fetch : 예상되는 데이터를 미리 패치
- 호출기법
- 캐시메모리 교체 알고리즘
- FIFO(First in First Out) : 가장 오래 있었던 Page 교체 / 자주 사용되는 페이지가 교체될 수 있음
- LFU(Least Frequently Used) : 가장 사용횟수가 적은 Page 교체 / 가장 세로 들어온 페이지 교체될 수 있음
- LRU(Least Recently Used) : 가장 오랫동안 사용되지 않은 Page 교체 / 오버헤드 우려
- NUR(Not Used Recently) : 미사용 Page 교체 (참조/수정비트 사용)
- SCR(Second Chance Replacement) : 최조 참조 비트1, 1->0 두번 기회
- 페이지 교체시 문제점
- Page Fault(페이지 부재), DemadPaging, Thrashing(부재가 너무번번하여 프로세스 수행보다 페이지 교체 시간소요가 소모됨)
- 캐시메모리 사상방식
- 가상메모리 (Virtual Memory) : Virtual Address Space 사용, 물리적 메모리보다 더 큰용량 제공
- 가상메모리 관리 단위 (페이지 VS 세그먼트) : 비연속 할당
- 페이지 : 동일한 크기의 최소 논리 단위 / 내부 단편화
- 세그먼트 : 용도별로 논리적 단위로 나눔 / 외부 단편화
- 연속 할당 : 고정분할, 가변 분할
- 가상메모리 관리 단위 (페이지 VS 세그먼트) : 비연속 할당
- I/O 인터페이스 (주기억장치 - 보조기억장치 입출력)
- CPU 경유 : 프로그램에 의한 I/O, 인터럽트에 의한 I/O인터럽트에 의한 I/O : 인터럽트 요청 감지시 수행작업을 중지
- 프로그램에 의한 I/O : CPU가 주변 장치를 감시하는 Polling 방식
- CPU 비경우 : DMA(Direct Memory Access Controller), Channel I/O채널 I/O (I/O Processor) : I/O장치의 복잡성으로 DMA 한계를 보완하여 별도 전용 처리기능 프로세서 탑재
- MultiPlexer Channel : 저속장치, 시분할 방식
- Selector : 고속장치, 단일 입출력
- DMA : 메모리와 주변장치를 직접 관리, 속도 빠름 (Cycle Stealing )
- 운영체제 : 컴퓨터 시스템의 자원들을 효율적으로 관리, 사용자의 컴퓨터 사용 편의성 환경 제공
- 운영제체의 목적
- 처리능력 향상
- 신뢰성 향상
- 응답시간의 단축
- 자원 활용률 향상
- 가용성 향상
- 운영제체의 목적
- 운영체제 주요 자원 관리 기능
- 프로세스 관리
- 기억장치 관리
- 주변장치 관리
- 파일 관리
- 프로세스 관리 (Process Management)
- 프로세스 - 레지스터, 스택, 포인터, 실행중인 프로그램, 데이터 등의 집합체
- 실행중인 프로그램, PCB 보유, Library Call, 자원할당의 기본 단위
- 스레드 : 제어의 흐름, 프로세스에서 실행의 개념, CPU 작업의 기본단위, System Call
- CPU 스케줄링 기법 (프로세스 상태 전이)
- 점유방식
- 선점(Premptive) : 프로세스 CPU 점유 시 다른 프로세스 점유 기능(Round-robin,SRT)
- 비선점(Non-Preemtive) : 프로세스 CPU 점유시 독점 (FCFS,SJF,HRN)
- 비선점 방식
- FCFS(First Come first Service) : 대기큐에 도착한 순서에 따라 CPU할당
- SJF(Short Job First) : 수행시간이 짧은 작업부터 CPU 할당
- HRN(HIghest Ratio Next) : SJF 개선하여 프로세스 우선순위로 할당
- 선점 방식
- Round-robin : 각 프로세스는 같은 시간을 CPU에서 할당 받음
- SRT(Shortest Reamainig Time) : 수행시간이 짧은 작업부터 CPU 할당하지만 수행중 다른 프로세스가 더 짧은시간 일때 점유 가능
- 점유방식
- 컴퓨터의 자원을효 효율적으로 사용하기 위한 정책, 자원을 요청하는 프로세스 순서를 정함
- Multi Level Queue : 여러 종류의 그룹(큐)로 나누어 각자 독자적인 스케줄링 기법을 사용
- Multi Level Feedback Queue : 그룹(큐)들을 라운드로빈 + 비선점방식 (Hybrid 스케줄링)
- 병행성 제어
- 임계역역(Critical Section) : 공유자원의 독점을 보장하는 코드 영역, 병렬컴퓨팅 일부로도 쓰임, 세마포어 개념이용
세마포어 : 공유자원의 개수를 나타내는 변수 - 모니터 상호배제 기법 : 하나의 프로세스만이 모니터 배부의 존재, 모니터 내부의 지역변수로 정의
- 임계역역(Critical Section) : 공유자원의 독점을 보장하는 코드 영역, 병렬컴퓨팅 일부로도 쓰임, 세마포어 개념이용
- 상호 배제(Mutual Excluson Techniques) : 다수의 프로세스 동일 자원 접근 시 무결성 보장, 임계영역 사용
- 교착 상태 (Dead Lock) : 하나이상의 프로세스가 더 이상 계속할 수 없는 특정 사건을 기다리고 있는 상태
- 교착상태 발생 조건
- 상호배제 : 하나이상의 프로세스가 자원을 배타 점유
- 점유와 대기 : 부분 할당으로 다른 종류의 자원을 요구하면서 자원 점유
- 비선점 : 자원이 해재 되지 않음
- 환형 대기 : 프로세스와 자원들이 원형을 이루며 서로 상대방의 자원을 요청
- 교착상태 발생 조건
- 교챡상태 대응 방법 (예방, 회피 , 발견, 회복)
- 예방(Prevention) : 필요 조건을 부정, 교착상태 예방
- 점유와 대기 부정 : 필요한 자원을 일시에 요청
- 비선점 조건의 부정 : 자원점유 후 자원 요청시 자원해제 선 요청
- 환형대기 조건 부정 : 프로세스들의 자원별로 우선순위 결정
- 상호배제 조건 부정 : 자원 비공유 전제
- 회피(Avoidence) : 가능성을 인정, 회피
- 은행원 알고리즘 (안전상태, 불안전상태) : 프로세스가 요구한 최대 요구량 만큼 자원을 할당 안전순서서열 존재, 교챡상태는 불안전상태에서만 일어남
- 발견(Detection) : 교착상태 발생 허용, 원인을 규명하고 해결
- 교챡상태 발견 알고리즘 : 교착생태 발생 검사 알고리즘, 고챡상태 빈도수 파악
- 자원할당 그래프 : 방향 그래프 이용, 그래프 소거법을 이용하여 교챡 상태 감지
- 회복 (Recovery)
- 프로세스 중지
- 선점
- 예방(Prevention) : 필요 조건을 부정, 교착상태 예방
- 장치관리기법
- 탐색 시간 : 현위치에서 특정 실린더로 디스크 헤더가 이동하는데 소요되는 시간
- 회전 지연시간 : 섹터가 디스크 헤드까지 도달하는 시간
- 전송시간 : 데이터 전송 시간
- 디스크
디스크 접근 시간
- 디스크 스케줄링 기법
- FCFS(First-Come Frist Served) : 먼저 들어온 요청 우선처리
- SSTF(Shortest-Seek-Time Frist) : 탐색거리가 가장 짧은 트랙 요청 우선 처리
- SCAN : SCAN에서 바깥쪽에서 안쪽으로 이동
- C-LOCK : 진행방향에서 요청 없을시 헤드를 처음위치로 이동
- 파일 시스템(File System)
- FAT(File Alioction Table)
- FAT16 : 대부분 MS 호환가능, 2GB, 암호화 및 압출 불가능, 파일명 최대 영문 8자, 클러스터 1632KB
- FAT32 : 2TB, 암호화 및 압출 불가능, 파일명 최대 영문 256자, 클러스터 4KB
- NTFS(New Technology File System) : 암호화 및 압출 지원, 가변 클러스터[
- EXT(Extended File System)
- EXT : MINIX File System 보완, 최대 2GB, 파일명 255bytes, 단편화 문제
- EXT2 : 2GB. 볼륨 32TB, 오류 수정 지원
- EXT3 : 저널링 기능, 온라인 파일 시스템 증대, 디스크 조작화 최소화
- EXT4 : 16GB, 볼륨 16Exabytes, 온라인 조각모음, 저널 체크섬, 하위 호환 가능
- UFS(Unix File System) : 유닉스 파일 시스템 (부트블록, 슈퍼블록, 실린더 그룹, i-node 테이블
- 슈퍼블록 : 파일 스시템 크기, i-node 테이블의 크기
- i-node 테이블 : 파일 정보 - 파일 크기, 위치, 유형 허가권, 날짜
- FAT(File Alioction Table)
- RAID : 디스크 고장 시 복구를 위해 2개 이상에 디스크에 데이터를 저장하는 기술 저 가용성 디스크를 배열구조로 중복 구성
RAID 0 : 최소 2개 디스크, 데이터를 나누어 저장, 장애발생시 복구 불가
RAID 1 : 디스크 완전 이중화, 많음 비용 발생, ReadWrite 병령 가능
RAID 2 : Hamming Code를 이용하요 오류 복구
RAID 3 : Partiy 정보를 별도 디스크에 저장
RAID 4 : Parity 정보를 별도 디스크에 블록별 저장 Wirte 성능 저하
RAID 5 : 분산 Parity 구현, 안전성 향상
RAID 6 : Parity 다중화, 장애발생 상황에서도 다른 정상 동작
- 리눅스 서버 보안
- 쉘 : 명령어 해석기, 명령의 입출력 수행(Bash,Bourne, C, Korn), 프로그램 실행
- 커널 : 주기억장치에 상주, 사용자 프로그램 관리
- 파일 시스템 : 정보를 저장하는 기본적 구조, 계층(트리) 구조
- 리눅스 핵심 구성요소
- 리눅스 파일종류
- 루트 파일 시스템 : 시스템 프로그램, 디렉터리
- 일반 파일 : 프로그램, 원시 프로그램파일, 텍스트 등
- 디렉터리 파일 : 디렉터리에 관한 정보를 저장하는 논리적인 단위
- 특수 파일 : 주변장치에 연결된 파일
- 리눅스 부팅
- PROM 검사
- 사용자 로그인 불가능한 상태, 암호변경할 떄 사용
- 공유된 자원이 없는 다중 사용자 단계
- 공유자원을 가진 다중 사용자 단계
- 사용 되지 않는 단계
- 3단계 가동후 X-Windows 싱행
- 재부팅 단계 > 3단계로 재부팅
- Run Level
- 리눅스 인증과 권한 /etc/passwd
- passwd 파일 구조
Root : x : 0 : 0 : root : /root : /bin bash
사용자계정 : 패스워드(/etc/shadow) : UserID : GroupID : Home Directory : Shall
- 리눅스 권한 관리
- 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)
- Setuid : 파일을 소유자권한으로 실행 가능 (4000, u+s)
Setgid : 파일을 그룹 권한으로 실행 가능 (2000, g+s)
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)
- Winlogon : 윈도우 로그인 프로세스
- GINA(msgina.dll) : Winlogon Gina로딩하여 계정과 암호를 LSA 전달
- LSA(lsas.exe) : SRM 작성한 감사로그 기록, 계정과 암호 검증을 위해 LTLM 모듈 로딩, 계정검증
- SAM : 사용자 계정정보 해시값 저장
- SRM : 사용자 고유 SID 부여 SID 권한 부여
- 윈도우 실행 프로세스
- WIninit.exe : 윈도우 시작 프로그램
- Services.exe : 윈도우 서비스 관리
- Lsm.exe : 시스템관리 작업, 주요 함수 실행, 호스트 컴퓨터-서버 연결 관리
- Svchost.exe : 서비스를 관리하기위한 프로세스
- Conost:exe : 키보드, 마우스 입력 허용, 문자 출력 셸의 기본 기능 수행
- 공유 폴더 (Net BIOS : 445)
공유폴더 확인 : net share
공유폴더 삭제 : net share /delete
- 레지스트리 : MS 운영체제에서 OS 및 응용 프로그램등에 피료한 정보를 저장하고 관리하기 위한 계층형 데이터 베이스 Key, Value , Data Type, Data로 이루워져 있음.
- 루트키 ( 레지스트리 최상위 키)
- HKEY_CLASSES_ROOT : 확장자, 프로그램간의 연결 정보
- HKEY_LOCAL_MACHINE : HW,SW 설치 정보
- HKEY_USERS : 사용자 정보
- HKEY_CURRENT_CONFIG : 디스플레이, 프린터 정보
- 주요 레지스트리 키컴퓨터 이름 : HKLM\SYSTEM\ControlSet00X\Control\ComputerName\ActiveComputerName최근에 실행한 명령어 : HKU{USER}\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RunMRU
- 시작프로그램 : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Current Version\ Run[]
- 버전 정보 : HKLM\SOFTWARE\Microsoft\Windows NT\Current Version
- 이벤트 로그 및 웹 아키팩트 분석
- 윈도우 이벤트 로그 : 이벤트 뷰어를 통해 확인 가능 , .evt
웹 아키팩트 분석 : 사용자가 웹 사이트를 이용한 흔적을 분석하는 것 (웹 브라우저 캐시, 히스토리 , 쿠키)
- 바이러스 (자가복제 가능) vs 악성코드 (자가복제 불가능)1세대 (원시형 바이러스) : 고정된 크기 주기억장치에 상주하여 감염 (Stone 바이러스, 예루살렘 바이러스)
- 세대 별 바이러스
2세대 (암호화 바이러스) : 프로그램을 암호화 시킴, 암호화 방식이 일정하여 복호화 방식 쉬임 (폭포 바이러스, 느림보 바이러스)
3세대 (은폐형 바이러스) : 다른 실행파일에 기생 감염 시 백신을 속여 감염 여부 확인이 어려움 ( 맥가이버 바이러스, 브레인 바이러스)
4세대 바이러스 (갑옷형 바이러스) : 10만개 이상의 암호화 기법을 사용하여 은폐 (다형성 바이러스, 자체 변형 바이러스)
5세대 바이러스 (매크로 바이러스) : 매크로 명령을 사용하는 프로그램을 감염, 누구나 쉽게 생성/배포 가능 (Melisa 바이러스, Nimda 바이러스)
- 악성코드
- Shellcode : 작은 크기의 코드로 소프트웨어 취약점을 이용하는 기계어 코드
HeapSpray : 셸코드를 힙영역에 뿌리는 것 전역변수를 이용한다.
예방방법 : (ASLR 설정 - 메모리 동적 주소 할당)
Sysctl - w kernel.radomize_va_space=1
버퍼 오버플로우 : 프로세스가 사용가능한 메모리 공간을 초과해 발생되는 공격
스택 오버플로우 : 스택에 저장되어 있는 복귀주소가 지역변수에 의해 침범
비권고 함수 : strcpy, strcat, getwd, gets scanf, sprintf
권고 함수 : strmcat stmcpy, fgets, fscanf, vfscanf, snprintf
힙 버퍼 오버플로우 : 동적으로 할당하는 공간이 힙에 저장되어 경계값을 검사하지 않고, 사용 시 메모리가 경계를 초과
APT(Advanced Persistant Threat) : 특정 공격들을 SNS를 사용하여 지속적으로 수행하는 공격 (침투 - 탐색 - 수집/공격 - 유출)
'IT 보안' 카테고리의 다른 글
부채널 공격 (Side Channel Attack) 정리중... (3) | 2025.09.01 |
---|---|
Base Band Study [1] (0) | 2024.09.26 |
GDPR, General Data Protection Regulation (0) | 2024.06.25 |
정보보안기사 필기 - Part 2. 네트워크 보안 (0) | 2024.06.25 |
보안 단어 📃 w(゚Д゚)w (2) | 2024.06.24 |