Certification/정보보안기사
0. 훑어보기
LimSeongHyeon
2025. 8. 1. 09:36
하드웨어
디스크 스케줄링 알고리즘
SCAN (순차 검색) | 한 방향으로 모든 요청을 처리한 다음, 반대 방향의 모든 요청을 처리한다. 엘레베이터 알고리즘으로도 불리며 디스크 암으로부터 가장 멀리 떨어진 요청이 Worst Case가 된다. |
SSTF (최단 탐색 시간 우선) Shortest Seek Time First |
디스크 암이 현재 위치에서 가장 가까운 요청을 처리한다. 평균 탐색 시간을 최소화하지만 디스크 암으로부터 가장 멀리 떨어진 요청이 계속 대기되는 현상이 발생할 수 있다. |
C-SCAN (원형 순차 검색) Circular SCAN |
한 방향으로 모든 요청을 처리하고 반대편으로 이동하여 다시 한방향으로 모든 요청을 처리한다. SCAN과 다르게 단방향으로 처리된다 |
FCFS (선입선출) First-Come, First-Served |
요청이 큐에 도착한 순서대로 처리한다. 요청에 따라 편차가 많으며 오버헤드가 많이 발생할 수 있다. |
네트워크
용어
NAC (Network Access Control) |
네트워크에 접근하는 장치들의 식별 및 보안 정책 준수 여부 평가 등을 통해 네트워크 통제 강화 및 접근 제어 |
SMTP - EHLO (Extended Hello) |
SMTP 세션을 시작할 때 클라이언트가 서버에 자신의 신원을 알리고 서버의 기능을 확인하는데 사용함. |
Enhanced Open Wirless Encryption | 개인용 무선 네트워크에서 사용되며 기존 WPA2/WPA3와 다르게 PSK 혹은 패스프레이즈 없이 개인용 무선 네트워크를 암호화 한다. |
FIDO (Fast IDentity Online) |
모바일 앱에서 생체인증, 보안키, 인증 어플등을 통해 ID/PW를 대신하는 FIDO1.0을 웹으로 확장하기 위해 고안된 무선통신 암호화 기술을 FIDO2라고 부른다. 참고로 FIDO 인증을 사용할 수 있도록 브라우저 및 관련 웹 플랫폼에 내장할 수 있는 표준 웹 API를 WebAuthn이라고 부른다. |
VMPS (VLAN Management Policy Server) |
VMPS는 MAC주소를 확인하고 해당 MAC주소에 해당하는 VLAN을 찾아주는 역할을 하는데 MAC 주소 위조 공격에 매우 취약하다. |
VPN
PPTP (Point-to-Point Tunneling Protocol) |
GRE Tunnel 사용 |
L2TP (L2 Tunneling Protocol) |
L2 VPN (IKE & ESP) 보통 IPSec이랑 같이 씀 |
SSTP (Secure Socket Tunneling Protocol) |
IPSec 사용 안하고 SSL/TLS 기반 암호화 |
무선
WAP (Wireless Application Protocol) |
휴대폰 등 모바일 기기가 무선으로 인터넷에 접속할 수 있도록 만든 통신 규약. 초기 스마트폰 시대에 웹 브라우징을 위해 사용되었다. |
WTP (Wireless Transaction Protocol) |
WAP 내에서 데이터 전송 시 요청과 응답을 안정적으로 처리하는 프로토콜. 무선 환경의 불안정한 연결에서도 데이터가 제대로 전달되도록 보장한다. |
WSP (Wireless Session Protocol) |
클라이언트와 서버 간의 연결 상태를 관리하는 프로토콜. 연결이 일시 중단 되어도 나중에 다시 이어받을 수 있는 기능을 제공하여 배터리와 네트워크 지원을 절약한다. |
WTLS (Wireless Trasport Layer Security) |
무선 통신에서 데이터를 암호화하여 안전하게 전송하는 보안 프로토콜. 도청이나 데이터 변조를 방지한다. |
WPA (WiFi-Protected Access) |
IEEE 802.11i 표준에 정의된 보안 규격으로 WiFi 네트워크의 보안을 강화한 암호화 방식. 기존 WEP보다 안전한 RC4 알고리즘을기반으로 암호화 한다. |
어플리케이션
SMTP
EHLO (Extended Hello) > AUTH > MAIL (FROM) > RCPT (TO) > DATA > QUIT
EHLO | 클라이언트가 서버에 자신을 소개하고 확장 가능을 확인한다. |
AUTH | 사용자 인증 절차를 수행한다. |
MAIL FROM | 발신자 주소를 지정한다. |
RCPT TO | 수신자 주소를 지정한다. |
DATA | 실제 이메일 내용을 전송한다. |
QUIT | 연결을 종료한다. |
전자문서 교환 표준
EDI (Electorinic Data Interchange) | 기업 간의 전자상거래 시 전자문서를 교환하기 위한 문서화 표준 |
XML (Extensible Markup Language) | W3C에서 제안한 웹에서 구조화된 문서를 교환하기 위한 웹 표준 |
XML/EDI | XML 문서를 활용해 전자문서를 교환하는 웹 표준 |
ebXML (Electronic Business XML) | UN/CEFACT와 OASIS에서 표준화한 기업간 전자상거래 프레임워크 |
FTP
ftp (File Transfer Protocol) | 서버와 클라이언트 간 파일을 전송하기 위한 프로토콜 |
tftp (Trivial FTP) | 파일 전송을 위한 간단한 프로토콜로 보안 기능이나 복잡한 기능 없이 UDP 기반으로 동작하며 69번 포트를 사용한다. |
vsftp (Very Secure FTP) | FTP 소프트웨어 중 하나. 가벼우면서도 보안기능이 강화되어 있어 FTP 서버를 운영할때 사용한다. |
proFTP | FTP 서버 소프트웨어 중 하나. 사용자 인증, 디렉토리 제한, 보안 기능과 같은 다양한 기능과 확장성을 제공한다. |
명령어
netstat
-p | 프로토콜 사용 프로세스 ID 출력 |
-r | 라우팅 테이블 확인 및 연결되어 있는 포트번호 확인 |
-n | 현재 다른 PC와 연결 상태인 포트번호 확인 |
-e | 랜카드에서 송수신한 패킷의 용량 및 종류 확인 |
Windows
파일 및 설정 보호
SAM (Security Account Manager) |
- HKEY_LOCAL_MACHNE\SAM에 저장된 키는 Administrator, System 그룹만 모든 권한을 갖는다. - 크래킹을 통해 패스워드를 얻을 수 있다. - 운영체제가 작동하는 한 접근할 수 없도록 잠겨져 있다. - 레지스트리 HKEY_LOCAL_MACHINE\SAM에 구체화된 자료들을 실제로 저장한다. |
BitLocker | Windows에서 제공하는 볼륨 단위 암호화 기능이며, Windows의 시스템 파티션 외의 파티션을 암호화한다. |
EFS (Encrypted File Service) |
파일 및 디렉터리에 대한 추가 수준의 보안을 제공하며, 공개 키 시스템을 사용하여 NTFS 파일 시스템 볼륨에서 개별 파일의 암호화 보호를 제공한다. 일부 EFS 설정은 윈도우 서버 도메인환경의 그룹 정책으로 관리할 수 있다. |
시스템 서비스 포트 및 프로토콜
NetBios 데이터그램 서비스 | UDP 138 |
NetBios 세션 서비스 | TCP 139 |
NetBios POP3 | TCP 110 |
IMAP | TCP 143 |
Android
안드로이드 시스템 권한
ACCESS_CHECKIN_PROPERTIES | 체크인 데이터베이스의 속성테이블 액세스 권한 |
LOADER_USAGE_STATS | 액세스 로그 읽기 권한 |
SET_PROCESS_LIMIT | 제한처리 지정 권한 |
CHANGE_COMPONENT_ENABLED_STATE | 애플리케이션 컴포넌트 활성화/비활성화 여부 |
공격
AI 공격
Membership Inversion Attack | 공격자가 가지고 있는 데이터가 인공지능 모델 학습에 사용된 데이터인지 아닌지 알아내는 공격 |
Adversarial Attack | 입력 이미지를 최소한으로 변조하여 인공지능 모델이 오인식하도록 만드는 공격 |
Poisoning Attack | 공격자가 AI 모델의 학습 과정에 관여하여 AI 시스템 자체를 손상시키는 공격 |
Model Inversion Attak | 인공지능 모델에 반복적으로 질의하여 학습에 사용된 데이터를 추출하는 공격 |
네트워크 공격
Port Mirroring | 실제 데이터가 오고가는 포트의 정보를 그대로 복제하여 쓰지 않은 포트에 복제하여 다른 포트로 전송하는 것을 말한다. 주로 TX, RX 값을 확인하는 것을 말한다. |
Switch Jamming | 스위치를 무력화시켜 더미 허브처럼 작동하게 하여 패킷을 모든 포트에 전달하게 되고 공격자가 이 패킷을 가로채는 공격을 말한다. |
악성코드
Nimda | 2001년 9월에 확산된 컴퓨터 바이러스 |
Mirai | 2016년에 발견된 IP 카메라 혹은 가정용 라우터와 같은 IoT 장치를 공격하는 DDoS 공격용 붓넷. |
Stuxnet | 산업시설을 감시하고 파괴하는 웜 바이러스 |
SQL Slammer | 마이크로소프트 SQL 서버의 버퍼 오버플로 버그를 이용하여 감염시키는 웜 바이러스 |
조치
ModSecurity
SecAuditEngine On | Off | DetectionOnly | DetectionOnly : 보안 정책 효과를 확인하고 테스트 |
SecRuleEngine On | Off | RelevantOnly | RelevantOnly : 로그를 간소화하여 중요 정보에 집중 |
Snort
alert tcp any any -> any 80 | tcp 80으로 들어올 경우 alert 발생 |
msg:"HTTP Get Flooding Detect"; | 해당 메세지 생성 |
content: "GET/HTTP1"; | 패킷의 내용이 GET/HTTP1을 포함하는지 검사 |
depth:13; | 패킷의 처음 13 Bytes 내에서 문자열 검색 (검색 성능 향상) |
nocase; | 대소문자 구분하지 않음 |
threshold; | 중복적으로 발생하는 로그 정리 |
type threshold, track by src, count 10, seconds 1; | 1초안에 10번 카운트시 로그 발생 |
sid:1000001 | sid 1000001 부여 |
공격 방해
DNS 싱크홀 | 악성 IP 주소를 알고 있는 경우 이에 대한 요청이 들어올 때 해당 쿼리를 차단하거나 유효하지 않은 응답을 반환하여 악의적인 접근을 막거나 방해하는 방식을 의미한다. |
접근 통제 구성요소
정책 (Policy) | - 조직의 보안 목표와 규칙을 정의 - 누가, 무엇을, 언제, 어떻게 접근할 수 있는지 명시 - 상위 레벨의 추상적 보안 지침 |
매커니즘 (Mechanism) | - 정책을 실제로 구현하는 기술적 수단 - 인증, 인가, 감사 등의 구체적 방법 - 하드웨어 / 소프트웨어적 보안 도구 |
시큐어 코딩
버퍼 오버플로우 취약 함수
취약한 함수 | 안전한 대체 함수 | 설명 |
strcpy | strncpy | - strcpy: 길이 제한 없이 문자열 복사 - strncpy: 최대 n개 문자까지만 복사 |
strcat | strncat | - strcat: 길이 제한 없이 문자열 뒤에 추가 - strncat: 최대 n개 문자까지만 추가 |
gets | fgets | - gets: 길이 제한 없이 한 줄 읽기 - fgets: 버퍼 크기 지정하여 안전하게 읽기 |
sprintf | snprintf | - sprintf: 길이 제한 없이 문자열 버퍼에 출력 - snprintf: 최대 n개 문자까지만 출력 |
scanf | fgets + sscanf | - scanf: 길이 제한 없이 입력 받기 - fgets + sscanf : fgets로 먼저 받은 후 sscanf로 파싱 |
fscanf | fgets + sscanf | - fscanf: 길이 제한 없이 파일에서 입력 - fgets + sscanf : fgets로 먼저 받은 후 sscanf로 파싱 |
vsprintf | vsnprintf | - vsprintf: 길이 제한 없이 가변 인자로 문자열 출력 - vsnprintf: 최대 n개 문자까지만 출력 |
getwd | getcwd | - getwd: 버퍼 크기 지정 불가 - getcwd: 버퍼와 크기를 명시적으로 지정 |
암호화 및 인증
인증
OTP (One-Time Password) |
해시 및 대칭키 암호화를 사용한다. 실물 OTP 장치로 인증하기 때문에 소유기반 인증 방식이다. |
HSM (Hardware Security Module) |
FIPS 140-2 안정성 인증 적용 표준을 사용하며 공개키를 사용한다. |
I-PIN (Internet Personal Identification Number) |
지식기반 인증 방식으로 ID/PW 및 주민번호를 대체하기 위해 만들어 졌다. |
공인인증서 | 소유기반 인증 방식으로 별도 매체의 고유정보를 제시하도록 함으로 써 인증을 수행한다. |
ID/PW | 지식기반 인증방식으로 구축비용이 적고 사용하기 편리하다. |
메시지 인증 코드 (MAC) | 재전송 공격을 막기 위해선 아래와 같은 방법을 취한다. - 순서 번호 (Sequence Number): 송신 메시지에 1씩 증가하는 번호를 넣는다. - 타임스탬프 (Timestamp): 송신 메시지에 현재 시각을 넣는다. - 비표(nonce): 메시지를 수신하기에 앞서 수신자는 송신자에게 일회용의 랜덤 한 값을 건네준다. |
디지털 서명
PGP (Pretty Good Privacy) |
PGP는 이메일과 파일을 암호화하고 디지털 서명을 제공한다. 공개키로 암호화하고 개인키로 복호화 하는 특징을 지니고 있고 압축 기능을 가지고 있다. 현재는 OpenPGP 표준으로 발전되어 다양한 프로그램에서 구현되고 있다. |
이중 서명 | 메시지를 보낸 사람이 개인키로 첫 번째 서명을 하고, 수신자가 이 서명과 원래 메시지를 받아 자신의 개인키로 두번째 서명을 한다. 메시지에 두개의 서명을 포함시키는것을 이중서명이라 한다. 송수신측에서 모두 서명하기 때문에 트랜잭션의 신뢰성을 높힌다. |
CRL (Cetificate Revocation List) |
인증 기관에서 만들고 디지털 서명한 취소된 공개 키 인증서 목록이다. 여기엔 아래와 같은 목록이 포함된다. - 인증서 폐지 목록의 버전 - 서명 알고리즘 및 발급 기관의 이름 - 인증서 발급일 및 다음 갱신일 - 취소된 인증에 대한 정보 (일련 번호, 폐지 일자, 폐지 사유 등) |
키분배
Blom | 대칭 다항식을 이용한 키 분산 키를 생성한다. 중앙 서버없이 사용자 간 직접 키 계산이 가능하고 λ명 까지 공모 공격 방어가 가능하다. |
커버로스 | 티켓 기반 중앙집중식 인증 시스템이며 AS, TGS, SS 3단계 구조이다. 단일 로그인 (SSO)를 지원한다. |
공개키분배 | 공개키 암호화 기반 키 교환을 의미하며 대표적으로 PKI, Diffie-Hellman, RSA등을 활용한다. CA 중심의 인증서 체계를 사용한다. |
키 로밍 | 다양한 장치 혹은 위치에서 동일 키를 사용할 수 있다. 서버, 클라우드, 스마트 카드와 같이 사용자 이동성을 지원한다. |
프로토콜
Needham-Schroeder Protocol | 신뢰할 수 있는 서버 (KDC, Key Distribution Center)를 통해 두 사용자가 안전한 통신을 설정하게 하는 프로토콜이다. 대칭키 프로토콜, 공개키 프로토콜 두가지가 있다. 공개키 프로토콜에선 MITM 공격이 가능함을 발견했고, 이를 해결하려면 메시지에 송신자 신원을 명시적으로 포함시켜야 한다. (5단계) 대칭키 프로토콜은 재전송 공격에 취약하다. 공격자가 세션키로 오래되고 손상된 값을 사용해도 수신자는 알 수 없다. (3단계) |
OCSP (Online Certificate Status Protocol) |
실시간으로 온라인 인증서가 유효한지 확인할 수 있는 프로토콜 이다. 인증서의 상태로는 good(유효), revoked(폐기 혹은 정지), unknown(정보없음)이 있다. |
도구
대분류
Debugger | 가장 널리 사용되는 리버스 엔지니어링 소프트웨어 도구이다. 프로그램 실행 중에 코드를 단계별로 분석하고 변수 값, 레지스터 상태, 메모리 내용 등을 확인하여 프로그램 동작을 이해하고 수정하는 도구이다. ex) OllyDbg, IDA Pro, x64dbg, WinDbg |
Decompiler | 컴파일된 바이너리 코드를 원래 소스코드로 변환하는 도구. ex) Ghidra, IDA Pro, RetDec, Reflector |
Static Analysis Tools | 프로그램의 바이너리 코드를 분석하여 구조, 제어 흐름, 데이터 흐름을 이해하고 프로그램 동작을 추적하는 도구. ex) IDA Pro, Ghidra, Binary Ninja, Radare2 |
Cryptography Tools | 프로그램 내에서 사용된 암호화 데이터를 해독하고 분석하는 도구. ex) Cryptool, OpenSSL |
Packing and Unpacking Tools | 프로그램의 실행 파일을 압축하거나 암호화하여 분석을 어렵게 만드는 기법을 사용하는 프로그램을 분석하는 도구 ex) UPX, PEiD, Exeinfo PE |
Monitoring Tools | 프로그램 실행 중에 API 호출, 파일 I/O, 네트워크 트래픽 등을 모니터링 하고 분석하는 도구 ex) Process Monitor, Wireshark, Filemonitor, API Monitor, Procexp |
Hex Editor | 파일을 16진수 형태로 열어 바이너리 데이터를 직접 수정하거나 분석하는 도구 ex) HxD, 010 Editor |
그 외 도구
windbg | 마이크로소프트에서 제공하는 윈도우용 디버깅 도구이다. |
ltrace | 어플리케이션의 공유 라이브러리에 대한 호출을 확인하기 위해 사용되는 리눅스 디버깅 도구이다. |