정보보안기사 출제 문제 정리
정보보안기사 필기 시험을 앞두고 기출에서 혼동되는 개념들 위주로 정리했습니다.
1과목 - 정보보안 일반
암호학
디피-헬만 (DH)
- 이산대수 기반 키 교환 프로토콜, 공개키 알고리즘
- 암호화 키를 직접 교환하지 않고 공통의 비밀키를 공유할 수 있음
- 원리: 소수 p, 원시근 g 공개 → 각자 비밀값(a, b) 선택 →
A = g^a mod p,B = g^b mod p교환 → 공유 비밀K = B^a mod p = A^b mod p = g^(ab) mod p - 기출 예제:
c = p^e mod n형태로 출제, p 값 구하기 - 취약점: MITM(중간자), Replay Attack에 취약 → "강하다"가 오답 보기
MAC vs 디지털 서명
| 구분 | MAC | 디지털 서명 |
|---|---|---|
| 키 | 대칭키 (공유) | 비대칭키 |
| 부인방지 | ❌ 불가 | ✅ 가능 |
| 속도 | 빠름 | 느림 |
- MAC 옳지 않은 것: "이직이 많은 회사에서 유리하다" (중앙 관리자 의존 → 불리, DAC가 유리)
대칭키 알고리즘 비교
| 알고리즘 | 개발국 | 키 길이 | 블록 크기 |
|---|---|---|---|
| ARIA | 한국 | 128/192/256비트 | 128비트 |
| SEED | 한국 | 128비트 | 128비트 |
| AES | 미국 (NIST) | 128/192/256비트 | 128비트 |
해시 관련
| 개념 | 설명 |
|---|---|
| SHA-256 | SHA-2 계열, 256비트 출력 |
| 해시 충돌 | h(m1) = h(m2), m1 ≠ m2 |
| 레인보우 테이블 | 해시↔평문 사전 계산 테이블, 대응: Salt 추가 |
| 생일 공격 | n비트 해시에서 ~2^(n/2) 시도로 충돌 가능 |
공개키 기반 암호화 (비대칭키 암호화)
| 구분 | 대칭키 | 공개키 (비대칭키) |
|---|---|---|
| 키 구성 | 동일한 키 1개 | 공개키 + 개인키 쌍 |
| 키 배송 문제 | 있음 | 없음 |
| 속도 | 빠름 | 느림 |
| 부인방지 | ❌ | ✅ |
| 주요 용도 | 대용량 데이터 암호화 | 키 교환, 전자서명 |
| 대표 알고리즘 | AES, ARIA, SEED, DES | RSA, DH, ECC, DSA |
| 알고리즘 | 기반 수학 문제 | 용도 |
|---|---|---|
| RSA | 소인수분해 | 암호화 + 전자서명 |
| DH | 이산대수 | 키 교환 (암호화 ❌) |
| DSA | 이산대수 | 전자서명 전용 |
| ECC | 타원곡선 이산대수 | 짧은 키로 높은 보안 |
- 공개키로 암호화 → 수신자 개인키로 복호화 (기밀성)
- 송신자 개인키로 서명 → 공개키로 검증 (무결성 + 부인방지)
- DH는 공개키 알고리즘이지만 암호화/복호화 기능은 없고 키 교환만 수행
전자서명 / 디지털 서명
전통적 서명 vs 디지털 서명
| 구분 | 전통적 서명 | 디지털 서명 |
|---|---|---|
| 매체 | 종이 | 전자 문서 |
| 복사/위조 | 위조 가능 | 문서마다 서명값 다름 |
| 방식 | 자필 | 개인키로 서명 |
| 부인방지 | 어려움 | ✅ 가능 |
PGP
- 이메일 암호화 시스템
- 송신자 부인방지 ✅ (개인키로 서명)
- 수신자 부인방지 ❌ (수신자 공개키로 암호화 → 수신 사실 부인 가능)
- 송신자 개인키로 세션키 암호화 전달 = 전자봉투 방식
접근통제 모델
| 모델 | 분류 | 핵심 규칙 |
|---|---|---|
| DAC | 임의적 | 소유자가 권한 부여, 이직 많은 조직에 유리 |
| MAC | 강제적 | 보안 레이블 기반, 이직 많은 조직에 불리 |
| RBAC | 역할기반 | 역할에 따라 권한 부여 |
| 벨-라파듈라 | 기밀성 모델 | NRU(No Read Up), NWD(No Write Down) |
| 비바(BIBA) | 무결성 모델 | NWU(No Write Up), NRD(No Read Down) |
| 클락-윌슨 | 상업적 모델 | CDI/UDI/TP/IVP — 거래 무결성 보장 |
인증
AAA
| 구성요소 | 영어 | 설명 |
|---|---|---|
| 인증 | Authentication | 신원 확인 |
| 인가 | Authorization | 자원 접근 권한 부여 |
| 계정관리 | Accounting | 사용 기록 추적/감사 |
OTP 방식 비교
| 방식 | 원리 | 단점 |
|---|---|---|
| 시간동기 | 시간 기반 OTP 생성 | 시간 오차 문제 |
| 질의응답 | 서버 질의 → 클라이언트 응답 | 사용자가 직접 계산해야 해 불편 |
커버로스 (Kerberos)
- 대칭키 기반 네트워크 인증, KDC = AS(인증서버) + TGS(티켓발급서버)
- 흐름: 로그인 → TGT 발급 → 서비스 티켓 발급 → 서비스 접근
- 취약점: KDC 단일 장애점, 시간 동기 필요 (5분 오차 허용)
- 기반 알고리즘: 대칭키 암호 (AES, 구버전 DES) — 모든 티켓/세션키는 대칭키로 암호화
- 공개키 인프라(PKI) 불필요, 사전에 KDC와 비밀키 공유
공격 기법
패스워드 크래킹
| 기법 | 설명 |
|---|---|
| 사전 공격 (Dictionary) | 사전 단어로 시도 |
| 무작위 대입 (Brute Force) | 모든 가능한 조합 시도 |
| 레인보우 테이블 | 해시 역산 테이블 사용 |
| 하이브리드 | 사전 + 무작위 조합 |
기타
| 개념 | 설명 |
|---|---|
| 사회공학 | 기술이 아닌 사람을 통한 공격 (피싱, 스피어피싱 등) |
| 역공학 | SW/HW 구조 분석으로 동작 원리 파악 |
| 동적 분석 | 실행 중 분석 (디버거, 샌드박스) |
| 정적 분석 | 실행 없이 분석 (디스어셈블러, IDA) |
| Hoax | 가짜 바이러스 경고 메시지 (실제 악성코드 아님) |
2과목 - 네트워크 보안
DoS / DDoS 공격
| 공격 | 설명 |
|---|---|
| Ping of Death | ICMP 패킷 65536B 초과 전송 |
| Teardrop | IP 단편화 오프셋 조작 → 재조합 오류 |
| Bonk / Boink | TCP SEQ 번호 조작 → 재조합 오류 |
| DNS Query Flooding | DNS 서버에 대량 쿼리 → 서비스 거부 |
네트워크 프로토콜 및 포트
주요 포트
| 서비스 | 포트 |
|---|---|
| FTP 데이터 | 20 |
| FTP 제어 | 21 |
| SSH | 22 |
| SMTP | 25 |
| DNS | 53 |
| HTTP | 80 |
| POP3 | 110 |
| IMAP | 143 |
| HTTPS | 443 |
| SNMP | 161 |
IPv4 AH / ESP
| 프로토콜 | 인증 | 무결성 | 암호화 |
|---|---|---|---|
| AH (Authentication Header) | ✅ | ✅ | ❌ |
| ESP (Encapsulating Security Payload) | ✅ | ✅ | ✅ |
- 전송 모드: 페이로드만 보호 / 터널 모드: 원본 IP 헤더 포함 전체 보호
IP 클래스
| 클래스 | 범위 | 사설 IP |
|---|---|---|
| A | 1.0.0.0 ~ 126.x.x.x | 10.0.0.0/8 |
| B | 128.0.0.0 ~ 191.x.x.x | 172.16.0.0/12 |
| C | 192.0.0.0 ~ 223.x.x.x | 192.168.0.0/16 |
| D | 224.x.x.x | 멀티캐스트 |
→ 192.168.0.1 = C 클래스 NetBIOS 기능 (아닌 것 고르기)
- ✅ 이름 서비스: 이름 → IP 변환
- ✅ 세션 서비스: 연결형 통신
- ✅ 데이터그램 서비스: 비연결형 통신
- ❌ 암호화/인증 기능 없음
DNS
DNS 캐시 포이즈닝
- 위조 DNS 응답 → 캐시 오염 → 사용자를 악성 IP로 유도
- 연관 공격: 파밍(Pharming), 스미싱, 패킹
DNS 유형 비교
| 종류 | 설명 |
|---|---|
| Dynamic DNS | IP 변경 시 DNS 레코드 자동 업데이트 |
| Realtime DNS | 실시간 DNS 쿼리/응답 분석 |
| Active DNS | 능동적 DNS 쿼리로 도메인 정보 수집 |
DNSSEC
- DNS 응답에 전자서명 추가 → 위변조 방지
- 공개키 기반 서명 검증
스니핑 / 스캐닝
스니핑 종류
| 종류 | 설명 | 환경 |
|---|---|---|
| 프로미스큐어스 모드 | NIC를 무차별 모드로 설정, 모든 패킷 수신 | 허브 환경 |
| Switch Jamming | 스위치 MAC 테이블을 가득 채워 허브처럼 동작 | 스위치 환경 |
| SPAN / 포트 미러링 | 스위치 포트 트래픽을 모니터링 포트로 복사 | 스위치 환경 |
| ARP Redirect | 위조 ARP 응답으로 트래픽을 스니퍼로 우회 | 스위치 환경 |
| ICMP Redirect | ICMP Redirect 메시지로 패킷 경로를 스니퍼로 변경 | 라우터 경계 |
| ARP Spoofing | MAC 주소 위조로 트래픽 가로채기 (MITM) | 스위치 환경 |
스푸핑 종류
| 종류 | 대상 | 원리 | 목적 |
|---|---|---|---|
| ARP 스푸핑 | MAC 주소 | 위조 ARP 응답 → ARP 캐시 오염 | MITM, 트래픽 가로채기 |
| IP 스푸핑 | 출발지 IP | 패킷의 Source IP를 위조 | DoS 공격 출처 은폐, 세션 하이재킹 |
| DNS 스푸핑 | 도메인→IP 매핑 | 위조 DNS 응답을 먼저 전달 → DNS 캐시 오염 | 파밍, 피싱 사이트로 유도 |
| URL 스푸핑 | URL 외형 | 정상 URL처럼 보이는 가짜 URL 사용 | 피싱, 크리덴셜 탈취 |
| e-mail 스푸핑 | 발신자 주소 | From 헤더 위조 | 스팸, 피싱 |
스푸핑별 대응 방법
| 스푸핑 | 대응 |
|---|---|
| ARP 스푸핑 | DAI (Dynamic ARP Inspection), 정적 ARP 항목 |
| IP 스푸핑 | Ingress/Egress 필터링, uRPF |
| DNS 스푸핑 | DNSSEC, DNS 캐시 주기적 삭제, 신뢰 DNS 서버 사용 |
| URL 스푸핑 | 인증서 확인, 브라우저 주소창 주의 |
스니핑 탐지 기법 (아닌 것 고르기)
| 기법 | 원리 |
|---|---|
| IP 패킷 필터링 | 프로미스큐어스 모드 탐지 |
| ARP 탐지 | 비정상 ARP 응답 감지 |
| DNS 탐지 | 역방향 DNS 조회로 스니퍼 탐지 |
| Ping 탐지 | 응답 없어야 할 IP가 응답하는지 확인 |
TCP 스캔 방식
| 스캔 | 방법 | 특징 |
|---|---|---|
| TCP Connect | 완전한 3-way handshake | 로그 남음 |
| SYN (Half-open) | SYN → SYN+ACK → RST | 스텔스 |
Xmas (-sX) | FIN+PSH+URG 전송 | 스텔스 |
FIN (-sF) | FIN만 전송 | 스텔스 |
NULL (-sN) | 플래그 없음 | 스텔스 |
UDP (-sU) | UDP 패킷 전송 | ICMP 응답으로 탐지 |
스텔스 스캔 방지
- 방화벽: 비표준 플래그 패킷 차단
- IDS/IPS: 비정상 패킷 탐지 규칙 적용
오용 탐지 vs 이상 탐지
| 구분 | 오용 탐지 (Misuse) | 이상 탐지 (Anomaly) |
|---|---|---|
| 방법 | 알려진 시그니처 비교 | 정상 기준선 이탈 탐지 |
| 오탐 | 낮음 | 높음 |
| 미탐 | 높음 (신규 공격 탐지 불가) | 낮음 |
네트워크 보안 장비
DHCP (DORA 프로세스)
| 단계 | 방향 | 설명 |
|---|---|---|
| Discover | 클라이언트 → 브로드캐스트 | IP 없이 DHCP 서버 탐색 |
| Offer | 서버 → 클라이언트 | 할당 가능한 IP 제안 |
| Request | 클라이언트 → 브로드캐스트 | 제안된 IP 사용 요청 |
| Acknowledge | 서버 → 클라이언트 | IP 할당 확정 (임대 기간 포함) |
- 공격: DHCP Starvation (가짜 Discover 대량 전송 → IP 풀 소진), DHCP Spoofing (가짜 서버가 Offer 응답 → 악성 게이트웨이 배포)
VPN
프로토콜 계층 특징 PPTP 2계층 MS 개발, 취약 L2TP 2계층 IPSec과 함께 사용 IPSec 3계층 표준, 강력 SSL/TLS VPN 7계층 브라우저 기반
IPSec
| 모드 | 보호 범위 | 주요 용도 |
|---|---|---|
| 전송 모드 (Transport) | IP 헤더는 그대로, 페이로드만 보호 | 호스트↔호스트 |
| 터널 모드 (Tunnel) | 원본 패킷 전체를 새 IP 헤더로 캡슐화 | 게이트웨이↔게이트웨이, VPN |
- AH: 인증 + 무결성 (암호화 ❌)
- ESP: 인증 + 무결성 + 암호화 ✅
방화벽 종류
| 종류 | 설명 |
|---|---|
| 패킷 필터링 | IP/포트 기반, 빠름 |
| 상태 검사 (Stateful) | 연결 상태 추적 |
| 애플리케이션 (Proxy) | 7계층 분석, 가장 강력 |
- 한계: 내부자 공격 방어 불가, 암호화 트래픽 내용 분석 어려움
NIDS vs HIDS
| 구분 | NIDS | HIDS |
|---|---|---|
| 위치 | 네트워크 구간 | 개별 호스트 |
| 탐지 대상 | 네트워크 패킷 | 로그, 파일 무결성 |
| 암호화 트래픽 | 탐지 어려움 ❌ | 탐지 가능 ✅ |
| 성능 영향 | 없음 | 있음 |
| 장비 | 설명 | 특징 / 단점 |
|---|---|---|
| UTM (통합 위협 관리) | 방화벽 + IDS/IPS + 안티바이러스 + VPN 통합 단일 장비 | 단점: 단일 장애점, 성능 저하 가능 |
| NAC (네트워크 접근 제어) | 단말 보안 상태(백신·패치·OS 버전) 검사 후 네트워크 접속 허용 | 802.1X 포트 기반 인증 사용 |
| ESM (통합 보안 관리) | 여러 보안 장비의 로그/이벤트 통합 수집·분석 | SIEM과 유사 |
Snort 룰 주요 옵션
| 옵션 | 설명 |
|---|---|
| msg | 경고 메시지 |
| content | 페이로드 패턴 매칭 |
| sid | 룰 고유 ID |
| rev | 룰 버전 |
| flags | TCP 플래그 (S=SYN, A=ACK 등) |
| ttl | TTL 값 조건 |
| priority | 우선순위 |
OSI 계층별 장비
| 계층 | 장비 |
|---|---|
| 1계층 물리 | 허브, 리피터 |
| 2계층 데이터링크 | 스위치, 브리지 |
| 3계층 네트워크 | 라우터 |
| 7계층 응용 | Proxy 방화벽, IDS, WAF |
네트워크 유틸리티
traceroute
- TTL 1씩 증가시키며 패킷 전송 → 각 홉 ICMP 응답으로 경로 추적
- Windows:
tracert/ Linux:traceroute
ARP 캐시 포이즈닝
- 위조 ARP 응답 → ARP 캐시 오염 → MITM 가능
- 대응: DAI (Dynamic ARP Inspection), 정적 ARP 항목 설정
네트워크 패킷 캡처 방법
| 방법 | 설명 |
|---|---|
| 포트 미러링 (SPAN) | 스위치 포트 트래픽을 다른 포트로 복사 |
| 네트워크 탭 (TAP) | 인라인 패킷 수동 복사 |
| 프로미스큐어스 모드 | NIC가 모든 패킷 수신 |
무선 랜 (WLAN) 보안
IEEE 802 표준
| 표준 | 설명 |
|---|---|
| 802.3 | 유선 이더넷 |
| 802.11 | 무선 LAN (Wi-Fi) 기본 표준 |
| 802.11a | 5GHz, 최대 54Mbps |
| 802.11b | 2.4GHz, 최대 11Mbps |
| 802.11g | 2.4GHz, 최대 54Mbps |
| 802.11n | 2.4/5GHz, 최대 600Mbps (MIMO) |
| 802.11ac | 5GHz, 최대 수Gbps (Wi-Fi 5) |
| 802.1X | 포트 기반 네트워크 접근 제어 (NAC, EAP 인증) |
| 802.11i | 무선 LAN 보안 표준 (WPA2의 기반) |
WEP / WPA / WPA2 / WPA3 비교
| 구분 | WEP | WPA | WPA2 | WPA3 |
|---|---|---|---|---|
| 제정 연도 | 1997 | 2003 | 2004 | 2018 |
| 암호화 | RC4 | RC4 + TKIP | AES + CCMP | AES + SAE |
| 키 관리 | 정적 키 (변경 없음) | TKIP (동적 키) | 동적 키 | SAE (개별 세션 키) |
| 인증 | 공유키/개방 | PSK / 802.1X | PSK / 802.1X | SAE / 802.1X |
| 취약점 | 심각 (IV 재사용, RC4 취약) | IV 재사용 일부 개선 | 안전 (KRACK 취약점) | 현재 가장 안전 |
| 사용 여부 | 사용 금지 | 레거시 | 현재 주로 사용 | 권장 |
WEP 취약점
- IV (Initialization Vector) 24비트 → 짧아서 재사용 발생
- RC4 스트림 암호 취약 → IV 재사용 시 키스트림 노출
- CRC-32 무결성 검사 → 변조 탐지 불충분
- 공격 도구: Aircrack-ng, Airsnort
WPA/WPA2 핵심
| 항목 | WPA | WPA2 |
|---|---|---|
| 암호화 프로토콜 | TKIP (RC4 기반) | CCMP (AES 기반) |
| 무결성 | MIC (Michael) | CBC-MAC |
| 키 교환 | 4-Way Handshake | 4-Way Handshake |
| 개인 모드 | PSK (Pre-Shared Key) | PSK |
| 기업 모드 | 802.1X + EAP | 802.1X + EAP |
무선 LAN 공격 기법
| 공격 | 설명 |
|---|---|
| 워 드라이빙 (War Driving) | 차량으로 이동하며 무선 AP 탐색 |
| 이블 트윈 (Evil Twin) | 정상 AP와 동일한 SSID로 가짜 AP 운영 → 트래픽 도청 |
| SSID 숨김 우회 | 프로브 요청/응답으로 숨겨진 SSID 탐지 |
| WEP 크래킹 | IV 패킷 수집 후 키 역산 (Aircrack-ng) |
| KRACK | WPA2 4-Way Handshake 재전송 → 키 재사용 유도 |
| Deauth 공격 | 위조 Deauthentication 프레임 전송 → 강제 연결 해제 |
무선 랜 보안 설정 권장사항
- WPA2/WPA3 사용, WEP/WPA 비활성화
- SSID 브로드캐스트 비활성화 (완전한 보안은 아님)
- MAC 주소 필터링 적용 (우회 가능하지만 기본 방어)
- 802.1X + EAP 기업 인증 사용
- UPnP 비활성화 (자동 포트 포워딩 취약점)
블루투스 보안
| 공격 | 설명 |
|---|---|
| 블루재킹 (Bluejacking) | 무선 스팸 메시지 전송 |
| 블루스나핑 (Bluesnarfing) | 블루투스로 데이터 무단 탈취 |
| 블루버그 (Bluebugging) | 블루투스로 기기 완전 제어 |
| 블루본 (BlueBorne) | 페어링 없이 원격 코드 실행 |
3과목 - 시스템 보안
Windows 보안
레지스트리 주요 키
| 키 (약칭) | 저장 내용 |
|---|---|
| HKLM (LOCAL_MACHINE) | 로컬 컴퓨터 전체 설정 |
| HKCU (CURRENT_USER) | 현재 사용자 설정 |
| HKCC (CURRENT_CONFIG) | 현재 하드웨어 프로필 |
| HKCR (CLASSES_ROOT) | 파일 확장자/COM 연결 |
| HKU (USERS) | 모든 사용자 설정 |
SAM 파일
- 경로:
C:\Windows\System32\config\SAM - 사용자 계정 + 해시 패스워드 저장
- 실행 중 직접 접근 불가 (시스템 잠금) → 유출 시 패스워드 크래킹 가능
NTFS 특징
| 기능 | 설명 |
|---|---|
| ACL | 파일/폴더별 세밀한 접근 권한 설정 |
| EFS | 파일 수준 암호화 (사용자 인증서 기반) |
| 압축 | 파일/폴더 단위 압축 지원 |
| 저널링 | 변경 로그 기록 → 시스템 장애 시 복구 |
| 대용량 지원 | FAT32(4GB 제한) 대비 이론상 무제한 |
| 스파스 파일 | 빈 공간을 실제로 저장하지 않음 |
EFS (Encrypting File System)
| 항목 | 내용 |
|---|---|
| 암호화 단위 | 파일 / 폴더 단위 (볼륨 전체 암호화 ❌ — BitLocker와 구분) |
| 암호화 방식 | 대칭키(FEK)로 파일 암호화 → FEK를 사용자 공개키로 암호화하여 저장 |
| 복호화 | 사용자 **개인키(인증서)**가 있어야만 복호화 가능 |
| 볼륨 내 이동 | 암호화 유지 ✅ |
| 다른 볼륨으로 복사/이동 | 암호화 해제 ❌ (NTFS가 아닌 파티션으로 이동 시) |
| FAT/FAT32로 이동 | 암호화 해제 ❌ (EFS 미지원 파일시스템) |
| 네트워크 공유 | 암호화 해제 ❌ (전송 중에는 EFS 비적용) |
| 압축과 동시 사용 | 불가 ❌ (EFS와 NTFS 압축은 상호 배타적) |
| 관리자 접근 | 기본적으로 관리자도 접근 불가 (개인키 없으면) |
| 복구 에이전트 | DRA(Data Recovery Agent) 지정 시 복구 가능 |
PowerShell 실행 정책
| 정책 | 설명 |
|---|---|
| Restricted | 모든 스크립트 금지 (기본값) |
| AllSigned | 서명된 스크립트만 허용 |
| RemoteSigned | 로컬 OK, 원격은 서명 필요 |
| Unrestricted | 모든 허용 (경고 표시) |
| Bypass | 제한 없음, 경고도 없음 |
PowerShell 주요 실행 인자
| 인자 | 설명 |
|---|---|
| -ExecutionPolicy | 실행 정책 지정 |
| -EncodedCommand | Base64 인코딩 명령 실행 |
| -NoProfile | 프로필 로드 안 함 |
| -WindowStyle Hidden | 숨김 실행 |
Linux / Unix 보안
데비안(Debian) 계열: Ubuntu, Debian, Kali Linux, Linux Mint
- 패키지 관리자:
apt/dpkg
FTP anonymous 차단 (/etc/vsftpd.conf)
anonymous_enable=NO
chmod 권한 계산
- 640 =
rw-r-----(owner:6, group:4, others:0) chmod o-r→ others 읽기 제거 → others 이미 0 → 640 (변화 없음)chmod g-r→ group 읽기 제거 → group: 4→0 → 600
setuid 검색 명령어
find / -perm -4000 -o -perm -2000 # ← 정답: setuid OR setgid 검색
find / -perm 2000 -o -perm -4000 # 오답 (- 없이 exact match)
find / -perm -6000 # setuid AND setgid 동시 보유
find / -perm 6000 # 오답
Setuid / Setgid / Sticky Bit
| 값 | 의미 |
|---|---|
| 4000 | setuid — 실행 시 소유자 권한으로 실행 |
| 2000 | setgid — 실행 시 그룹 권한으로 실행 |
| 1000 | sticky bit — /tmp 등 파일 삭제 보호 |
| 0400 | 소유자 읽기 |
| 0040 | 그룹 읽기 |
| 0004 | 기타 읽기 |
Linux 주요 로그 파일 (아닌 것 찾기)
| 파일 | 내용 |
|---|---|
| /var/log/auth.log | 인증 (SSH, sudo 등) |
| /var/log/syslog | 시스템 메시지 전체 |
| /var/log/messages | 일반 시스템 로그 |
| /var/log/secure | 보안 관련 (RHEL 계열) |
| /var/log/wtmp | 로그인/아웃 기록 |
| /var/log/btmp | 실패한 로그인 |
| /var/log/lastlog | 마지막 로그인 정보 |
주요 명령어
| 명령어 | 설명 |
|---|---|
lsof | 열린 파일/소켓 목록 (List Open Files) |
ls | 디렉터리 내 파일 목록 |
ps | 실행 중인 프로세스 목록 |
/proc 디렉터리
- 리눅스 가상 파일 시스템 (디스크 미기록)
/proc/PID/: 프로세스 정보 //proc/cpuinfo,/proc/meminfo: 시스템 자원
HAL (Hardware Abstraction Layer)
- 하드웨어와 OS 사이 추상화 계층
- 하드웨어 독립적 OS 개발 가능, Windows Vista 이후 역할 축소
버퍼 오버플로우
보호 기법
| 기법 | 설명 |
|---|---|
| ASLR | 스택/힙/라이브러리 주소 난수화 |
| Stack Canary | 리턴 주소 앞 특정값 삽입, 덮어쓰기 탐지 |
| NX/DEP | 스택에서 코드 실행 방지 |
취약 함수 → 안전 함수
| 취약 | 안전 |
|---|---|
| gets() | fgets() |
| strcpy() | strncpy() |
| strcat() | strncat() |
| sprintf() | snprintf() |
4과목 - 애플리케이션 보안
웹 / DB 보안
SQL 인젝션 종류
| 종류 | 설명 |
|---|---|
| Error-based | 오류 메시지로 DB 정보 추출 |
| Union-based | UNION으로 타 테이블 조회 |
| Boolean-based Blind | 참/거짓 응답으로 데이터 추출 |
| Time-based Blind | 응답 시간 차이로 데이터 추출 |
| Stacked Queries | 세미콜론으로 다중 쿼리 실행 |
- 안전한 사용: Prepared Statement (파라미터화 쿼리), 입력값 화이트리스트, 최소 권한 DB 계정
HTTP 상태 코드
| 코드 | 의미 |
|---|---|
| 200 | OK |
| 301 | Moved Permanently |
| 302 | Found (임시 리다이렉트) |
| 400 | Bad Request |
| 401 | Unauthorized (인증 필요) |
| 403 | Forbidden (권한 없음) |
| 404 | Not Found |
| 500 | Internal Server Error |
| 503 | Service Unavailable |
FTP 보안
| 종류 | 설명 | 포트 |
|---|---|---|
| FTPS | FTP + SSL/TLS 암호화 | 990 (제어), 989 (데이터) |
| SFTP | SSH 기반 파일 전송 | 22 |
| TFTP | 단순 파일 전송, 보안 없음 ❌ | 69 |
메일 보안
메일 흐름
발신: MUA → [SMTP:25] → MTA → MTA → MDA
수신: MUA ← [POP3:110 / IMAP:143] ← MDA
로그 분석
ElasticSearch 텍스트 분석 파이프라인
캐릭터 필터 → 토크나이저 → 토큰 필터
| 단계 | 역할 | 예시 |
|---|---|---|
| 캐릭터 필터 | 문자 변환/제거 | HTML 태그 제거 |
| 토크나이저 | 텍스트 → 토큰 분리 | 공백 기준 분리 |
| 토큰 필터 | 토큰 변환 | 소문자화, 불용어 제거 |
Snort 룰 주요 옵션 (2과목 중복 확인용)
msg, content, sid, rev, flags, ttl, priority
디지털 포렌식
5대 원칙
| 원칙 | 설명 |
|---|---|
| 정당성 | 위법 수집 증거 무효 |
| 재현성 | 동일 조건에서 재현 가능 |
| 신속성 | 증거 신속 수집 |
| 연계보관성 | 수집~제출 보관 이력 관리 |
| 무결성 | 증거 변조 없음 증명 |
5과목 - 정보보안 관리 및 법규
위험 관리
위험 대응 전략
| 전략 | 설명 | 예시 |
|---|---|---|
| 회피 (Avoidance) | 위험 유발 활동 중단 | 위험한 서비스 폐지 |
| 전가 (Transfer) | 제3자에게 이전 | 보험 가입, 아웃소싱 |
| 감소 (Reduction) | 대책으로 위험 축소 | 방화벽 설치, 패치 |
| 수용 (Acceptance) | 잔여 위험 허용 | 비용 > 피해액일 때 |
위험 관리 절차
- 위험 관리 계획 수립
- 자산 식별 및 가치 평가
- 위협 및 취약점 분석
- 위험 평가 (위험도 산정)
- 위험 대응 전략 수립
- 잔여 위험 수용
위험 계량 공식
| 용어 | 공식 |
|---|---|
| SLE (단일 예상 손실) | 자산가치(AV) × 노출계수(EF) |
| ALE (연간 예상 손실) | SLE × ARO (연간 발생률) |
보안 인증 / 표준
CC (공통평가기준) EAL 등급
| 등급 | 의미 |
|---|---|
| EAL1 | 기능적으로 시험됨 |
| EAL2 | 구조적으로 시험됨 |
| EAL3 | 방법론적으로 시험됨 |
| EAL4 | 방법론적으로 설계/시험됨 |
| EAL5 | 준정형적 설계/시험됨 |
| EAL6 | 준정형적 설계/검증됨 |
| EAL7 | 정형적으로 설계/검증됨 |
| → 시험 보기: EAL1~5만 출제됨 (EAL6, 7 없음) |
보안 표준 비교
| 표준 | 대상 | 특징 |
|---|---|---|
| ISO 27001 | ISMS 국제 표준 | PDCA 사이클 포함 |
| ISO 27701 | 개인정보 관리 (PIMS) | ISO 27001 확장 |
| ISMS | 국내 정보보호 관리체계 | KISA 인증 |
| ISMS-P | ISMS + 개인정보보호 | KISA 인증 |
정보보호 관리체계
CIA 트라이어드 (지문 보고 가/나/다 대입)
| 요소 | 설명 | 위협 예시 |
|---|---|---|
| 기밀성 (Confidentiality) | 인가된 자만 접근 | 도청, 스니핑 |
| 무결성 (Integrity) | 데이터 변조 없음 | 위변조 공격 |
| 가용성 (Availability) | 서비스 지속 제공 | DoS 공격 |
ISMS vs ISMS-P
| 구분 | ISMS | ISMS-P |
|---|---|---|
| 범위 | 정보보호 | 정보보호 + 개인정보보호 |
| 의무 대상 | 일정 규모 이상 사업자 | 개인정보 대량 처리자 |
법규
개인정보 처리 법적 근거 (해당하지 않는 것 고르기)
| 조건 | 합법 |
|---|---|
| 정보주체 동의 | ✅ |
| 법률상 불가피한 의무 이행 | ✅ |
| 계약 체결/이행 | ✅ |
| 공공기관 법령 업무 수행 | ✅ |
| 생명·신체·재산 이익 보호 | ✅ |
| 공공기관 부서장 지시 | ❌ (법적 근거 없음) |
클라우드컴퓨팅법
- 클라우드컴퓨팅기술: 가상화, 분산처리 기술 등 대통령령으로 정함
- 클라우드컴퓨팅서비스: 상용으로 타인에게 정보통신자원 제공
- 기출 출제: "국무총리령"으로 출제 → 틀린 것
클라우드 보안
클라우드 서비스 모델
| 모델 | 제공 범위 | 보안 책임 |
|---|---|---|
| IaaS | 인프라 (VM, 스토리지) | 사용자 책임 높음 |
| PaaS | 플랫폼 (런타임, DB) | 공동 책임 |
| SaaS | 소프트웨어 | 제공자 책임 높음 |
| DaaS | 데스크톱 환경 | 제공자 책임 높음 |
시스템 가용성
RAID 레벨
| 레벨 | 방식 | 특징 |
|---|---|---|
| RAID 0 | 스트라이핑 | 가장 빠름, 가용성 없음 |
| RAID 1 | 미러링 | 가용성 높음, 용량 50% 손실 |
| RAID 2 | 해밍코드 ECC | 거의 미사용 |
| RAID 3 | 전용 패리티 (바이트 단위) | — |
| RAID 5 | 분산 패리티 | 가장 널리 사용 |
IoT 보안
홈가전 IoT 보안 (옳지 않은 것 찾기)
- ✅ 기본 비밀번호 변경
- ✅ 최신 펌웨어 업데이트
- ✅ 불필요한 포트 차단
- ✅ 게스트 네트워크 분리
- ❌ UPnP 자동 포트 포워딩 활성화 (보안 취약점)
기출 추가 정리
1과목 추가
악성 코드 종류 비교
| 종류 | 설명 | 자기복제 | 숙주 필요 |
|---|---|---|---|
| 바이러스 | 실행 파일에 기생, 타 프로세스 감염 | ✅ | ✅ |
| 웜 (Worm) | 독립 실행, 네트워크로 자기 복제 전파 | ✅ | ❌ |
| 트로이 목마 | 정상 SW로 위장, 백도어 설치 | ❌ | ❌ |
트로이 목마 특징
| 기능 | 설명 |
|---|---|
| 원격 조정 | 감염된 컴퓨터를 원격에서 제어 |
| 패스워드 유출 | 자격 증명, 비밀번호, 로그인 정보 탈취 |
| 키 로깅 | 키보드 입력 기록 → 비밀번호·신용카드 정보 유출 |
| 시스템 파일 파괴 | 파일 삭제·수정 → 시스템 정상 작동 방해 |
바이러스 종류
| 종류 | 설명 |
|---|---|
| 암호화 바이러스 | 바이러스 코드 일부/대부분을 암호화 → 백신 탐지 회피 |
| 은폐형 바이러스 | 자신을 은폐하고 백신에 거짓 정보 제공 |
| 갑옷형 바이러스 | 다단계 암호화로 분석 어렵게 함 → 백신 개발 지연 |
| 매크로 바이러스 | OS 무관, 응용 프로그램 내부에서 동작 (Word, Excel 등) |
| 부트섹터 바이러스 | MBR을 감염, 부팅 과정에 악성코드 삽입 |
악성 프로그램 유형 vs 공격
| 유형 | 주요 공격 |
|---|---|
| 웜 | 네트워크 점유 |
| 백도어 | 개인정보 유출 |
| 트로이 목마 | 원격 조정 |
| 스파이웨어 | 사용자 활동 감시, 개인정보 탈취 (시스템 파일 파괴 ❌) |
Clickjacking 관련 공격
| 공격 | 설명 |
|---|---|
| Likejacking | 소셜 미디어 "좋아요" 버튼을 의도치 않게 클릭하게 유도 |
| Tabjacking | 새 탭을 열게 하여 해당 탭에서 의도치 않은 작업 유도 |
| Clickjacking | 투명 iframe으로 의도하지 않은 클릭 유도 (안드로이드 앱 포함) |
| Cookiejacking | 사용자의 쿠키 정보 탈취 |
John the Ripper 크래킹 모드
| 모드 | 설명 |
|---|---|
| Single | 사용자 이름 기반으로 비밀번호 추정 |
| Wordlist | 사전 파일의 단어로 공격 (사전 공격) |
| Incremental | 가능한 모든 조합 시도 (무작위 대입) |
| Full | 존재하지 않는 모드 ❌ |
패스워드 크래킹 도구
| 도구 | 설명 |
|---|---|
| John the Ripper | Windows/Linux/Mac 지원 |
| L0phtcrack | SAM 파일 이용, 원격 서버/PC 패스워드 취약점 점검 |
| Pwdump | Windows에서 패스워드 덤프 |
| WinNuke | Windows 네트워크 공격, 시스템 마비 (크래킹 도구 ❌) |
해시 함수 특성
| 특성 | 설명 |
|---|---|
| 역상 저항성 (제1역상) | H(X)에서 X를 역산하기 어려움 |
| 약한 충돌 저항성 (제2역상) | X와 H(X)가 주어졌을 때 H(X)=H(X')인 다른 X'를 찾기 어려움 |
| 강한 충돌 저항성 | H(X)=H(X')를 만족하는 임의의 X, X' 쌍을 찾기 어려움 |
MAC 재전송 공격 예방 방법
| 방법 | 설명 |
|---|---|
| 순서 번호 (Sequence Number) | 메시지마다 1씩 증가하는 번호 추가 |
| 타임스탬프 (Timestamp) | 메시지에 현재 시간 추가 |
| 비표 (Nonce) | 수신자가 송신자에게 일회용 랜덤값 전달 |
메시지 출처 인증 암호 기술
| 기술 | 방식 | 설명 |
|---|---|---|
| 전자 서명 | 공개키 | 무결성 + 출처 인증 + 부인방지 |
| 이중 서명 | 공개키 | 분리 서명 방식 |
| 해시 함수 | — | 단방향 암호화, 고정 길이 해시값 |
| MAC | 대칭키 | 메시지 + 비밀키 → 고정 길이 인증코드 |
MAC vs 전자 서명
| 구분 | MAC | 전자 서명 |
|---|---|---|
| 키 방식 | 대칭키 | 비대칭키 |
| 부인방지 | ❌ | ✅ |
| 기밀성 보장 | ❌ | ❌ (둘 다 무결성만) |
| 사용 범위 | 키 공유 당사자 간 | 공개키로 누구나 검증 |
커버로스 V4 vs V5
| 항목 | V4 | V5 |
|---|---|---|
| 암호화 | DES만 | 모든 종류 알고리즘 |
| 네트워크 주소 | 몇 가지 IP만 | 어떤 유형도 가능 |
| 유효기간 | 최대 시간 제한 | 없음 |
- 옳지 않은 것: "커버로스 V4에서는 RSA를 사용한다" → V4는 DES 사용
- 커버로스: 대칭키 이용, SSO 기능 제공
디지털 워터마킹
- 스테가노그래피(Steganography) 기술 기반
- 저작권 정보를 콘텐츠에 비가시적으로 삽입
- 크립토그래피(Cryptography) 기술만으로 실현 ❌
CPU 취약점 공격
| 공격 | 설명 |
|---|---|
| 스펙터 (Spectre) | 비순차 실행·추측 실행 결과로 부채널 공격, 기밀정보 유출 |
| 멜트다운 (Meltdown) | 비순차 명령 실행의 특권명령 검사 우회 → CPU 캐시 메모리 접근, 데이터 유출 |
| 캐시 포이즈닝 | 네트워크/시스템 캐시를 악의적으로 변조 |
| 미라이 (Mirai) | 취약한 IoT 기기 감염 → DDoS 공격 |
2과목 추가
라우팅 프로토콜 알고리즘
| 프로토콜 | 알고리즘 | 방식 |
|---|---|---|
| RIP | Bellman-Ford | 거리 벡터 |
| OSPF | Dijkstra | 링크 상태 |
CIDR 서브넷 마스크
/27→ 이진수 27개를 1로 채움 →11111111.11111111.11111111.11100000→ 255.255.255.224
방화벽 구조 유형
| 유형 | 설명 | 특징 |
|---|---|---|
| 스크리닝 라우터 | 외부↔내부 사이에서 패킷 필터링 | 단순, 저비용 |
| 스크린드 호스트 게이트웨이 | 스크리닝 라우터 + 단일/듀얼 홈 GW 조합 | 중간 수준 |
| 이중 홈 게이트웨이 (Dual-Homed GW) | NIC 2개 이상, 내부·외부망 각각 연결 | 반드시 통과 필요 |
| 스크린드 서브넷 게이트웨이 | 외부↔내부 사이에 DMZ 구성 | 가장 안전, 가장 비쌈 |
NAT 종류
| 종류 | 설명 |
|---|---|
| Static NAT | 사설 IP ↔ 공인 IP 1:1 고정 매핑 |
| Dynamic NAT | 사설 IP를 공인 IP 풀에서 동적 할당, 포트로 구분 |
| Policy NAT | 출발지·목적지 IP 기반 ACL 규칙으로 매핑 |
| Bypass NAT | 특정 IP 대역에 대해 NAT 변환 제외 |
| PAT | 하나의 공인 IP ↔ 여러 사설 IP, 포트 번호로 구분 (= NAPT) |
NGFW (Next Generation Firewall)
- UTM, DLP, SSL Inspection, SSL VPN, Anti APT 등 통합
- Layer 7까지 제어, 암호화 트래픽 제어 가능
스니핑 공격 기법 (SYN Flooding은 DDoS 공격 ❌, 스니핑 아님)
| 기법 | 설명 |
|---|---|
| Switch Jamming | MAC 테이블을 가득 채워 스위치를 허브처럼 동작 |
| ICMP Redirect | ICMP Redirect 메시지로 패킷 경로 변경 |
| ARP Redirect | ARP 응답 위조로 패킷 흐름 변경 |
| ARP Spoofing | MAC 주소 위조로 패킷 가로채기 |
스캔 탐지 도구
| 도구 | 설명 |
|---|---|
| mscan | 도메인 전체 스캔, Wingate/statd/imapd 등 취약점 점검 |
| sscan | mscan을 발전시킨 도구, 유닉스·윈도우 모두 취약점 점검 |
| portsentry | 포트 스캔 탐지 + 공격 호스트 차단, /etc/hosts.deny에 기록 |
취약점 점검 도구
| 도구 | 설명 |
|---|---|
| COPS/COPE | 시스템 내부 취약점 점검 |
| Nessus | 클라이언트-서버 구조, 네트워크 취약점 점검 |
| nmap | 포트 스캐닝, 호스트/네트워크 스캐닝 |
| SAINT | 유닉스 시스템, HTML 보고서, 원격 취약점 점검 |
| SATAN | IP 네트워크 연결 시스템의 취약성을 원격으로 조사 |
IPSec VPN 구성 요소 (CA는 PKI 구성요소, IPSec ❌)
- ESP ✅ / AH ✅ / ISAKMP ✅ / CA ❌
무선 보안 프로토콜
| 프로토콜 | 설명 | 특이사항 |
|---|---|---|
| WSP | HTTP 1.1처럼 세션 유지, 중단/재개 기능 | — |
| WTLS | TLS 기반, 무결성·인증 제공 | 부인방지 기능 없음 |
| WTP | 경량 요청-응답 트랜잭션 프로토콜 | — |
| WAP | 제한된 단말기를 위한 무선 응용 프로토콜 | — |
TLS 핸드셰이크 단계
| 단계 | 방향 | 내용 |
|---|---|---|
| Client Hello | 클→서 | Session ID, Cipher Suite 등 암호화 수준 및 정보 전달 |
| Server Hello | 서→클 | 암호화 방식 선택 응답 |
| Certificate Request | 서→클 | 인증서 요청 |
| Change Cipher Spec | 양방향 | 암호화 전환 알림 |
Tcpdump 패킷 캡처 키워드
동일 Segment 내 패킷을 복제하여 정보를 수집→ 포트 미러링목적지의 MAC 주소가 같지 않아도 패킷을 폐기하지 않고 수신→ 무차별(Promiscuous) 모드
ARP 관련 명령어
| 명령어 | 설명 |
|---|---|
arp -s [IP] [MAC] | ARP 테이블에 정적 항목 추가 (ARP 스푸핑 대응) |
ping [IP] | 시스템 모니터링 |
arp -a | ARP 테이블 확인 |
3과목 추가
리눅스 원격 접근 제어 설정 파일
| 파일 | 역할 |
|---|---|
| /etc/hosts.allow | 허용할 호스트 설정 (TCP Wrappers) |
| /etc/hosts.deny | 특정 서비스(rsh, rexec, rlogin 등) 차단 |
| /etc/securetty | root 사용자의 콘솔 접근 제한 |
| /etc/xinetd.d/ | xinetd 서비스 관리, 특정 서비스 비활성화 |
Windows 기본 공유 폴더 (ROOT$는 기본 공유 ❌)
| 공유명 | 설명 |
|---|---|
| C$ | C 드라이브 관리 공유 |
| ADMIN$ | Windows 설치 디렉터리 |
| IPC$ | 원격 관리용 프로세스 간 통신 |
| ROOT$ | 기본 공유 폴더 아님 |
패스워드 관련 명령어
| 명령어 | 설명 |
|---|---|
passwd -x 60 [user] | 패스워드 최대 사용 기간 60일 설정 |
passwd -e [user] | 즉시 패스워드 만료 → 다음 로그인 시 강제 변경 |
useradd | 새 사용자 계정 추가 |
usermod -e | 계정 만료날짜 설정 |
OS별 패스워드 복잡성 설정 파일
| OS | 파일 경로 |
|---|---|
| SOLARIS | /etc/default/passwd |
| AIX | /etc/security/user |
| LINUX (RHEL5) | /etc/pam.d/system-auth |
| LINUX (RHEL7) | /etc/security/pwquality.conf |
리눅스 로그 파일 명령어
| 파일 | 내용 | 확인 명령 |
|---|---|---|
| /var/run/utmp | 현재 로그인 사용자 | who, w |
| /var/log/wtmp | 로그인/아웃 기록 | last |
| /var/log/btmp | 실패한 로그인 | lastb |
| /var/log/lastlog | 마지막 로그인 | lastlog |
리눅스 배너 파일
| 파일 | 출력 시점 |
|---|---|
/etc/issue | 로그인 전 (telnet 접속 시 출력) |
/etc/motd | 로그인 후 (Message of the Day) |
버퍼 오버플로우 취약/안전 함수 상세
| 취약 함수 | 안전 함수 |
|---|---|
| gets(), scanf(), vscanf() | fgets(), fscanf(), vfscanf() |
| strcpy(), strcat() | strncpy(), strncat() |
| sprintf(), vsprintf(), sscanf() | snprintf(), vsnprintf() |
버퍼 오버플로우 보호 기법 상세
| 기법 | 설명 |
|---|---|
| ASLR | 시스템 메모리 주소를 무작위로 배치 |
| DEP / NX bit | 스택에서 코드 실행 방지 (Non-Executable) |
| Stack Canary / Stack Guard | SFP/Return Address 앞에 특정 값 삽입, 덮어쓰기 탐지 |
| PIE / RELRO | 코드 영역 무작위화, 재배치 보호 |
| Stack Shield | 리턴 주소를 별도 스택에 복사하여 보호 |
4과목 추가
IDOR (Insecure Direct Object Reference)
- 공격자가 개체를 직접 가리키는 매개변수 값을 수정 → 권한 없는 데이터/기능 접근
- SQL Injection·XSS와 달리 파라미터 조작이 핵심
집합성 (Aggregation) - DB 보안 위협
- 낮은 보안 등급의 정보조각을 조합 → 높은 등급의 정보 획득
- 예: 개별 영업실적 조회 → 회사 전체 영업실적 파악
DNS 스푸핑 원리
- DNS Query에 대한 올바른 Response 도착 전에 위조 Response 패킷을 먼저 수신 → Local DNS Cache 오염
- Source IP Validation: 스푸핑 패킷 방지이지만 DNS Cache Poisoning 응답의 무결성 보장에는 불충분
XPath 삽입 공격
- XML 문서 쿼리 코드에서 입력값 검증 미흡 시 발생
- 다른 경로 접근 가능, 인증 우회 가능
- OS 명령어 수행(Command Injection)은 해당 없음
FTP 공격 종류
| 공격 | 설명 |
|---|---|
| Port Scanning | FTP 서버 열린 포트 확인 |
| Brute Force | 로그인 ID/비밀번호 무차별 대입 |
| Bounce Attack | FTP 서버를 중계로 다른 네트워크 공격 |
| SQL Injection | FTP 직접 공격에는 사용 어려움 ❌ |
Elasticsearch 데이터 단위
| 단위 | 설명 |
|---|---|
| Shard | 데이터를 분할하여 저장하는 기본 단위 |
| Node | Elasticsearch가 실행 중인 하나의 프로세스 |
| Replica | 가용성을 위한 Shard 복사본 |
| Document | 가장 작은 독립 데이터 단위, JSON 객체, RDBMS의 Row와 동일 |
블록체인 - 머클 트리 (Merkle Tree)
- 방대한 노드의 정보를 작은 용량의 데이터로 저장
- 이전 노드들의 해시값을 트리 구조로 저장 → 루트 해시값을 블록에 저장
- 대량의 데이터를 효율적이고 안전하게 관리하고 검증하기 위한 해시 기반 트리 구조