본문으로 건너뛰기
페이지 목차
이 페이지에서 검색

EIS

이 페이지에 묻기

EIS · 현재 차시와 목차 본문에서만 찾아 답합니다. 답을 지어내지 않고 해당하는 대목을 그대로 보여 주며, 여기에 없으면 없다고 알려 드립니다.

생성형 AI가 아니라 이 페이지 본문을 찾아 그대로 보여 주는 방식입니다. 외부로 나가는 요청이 없습니다.

EIS · SECURITY

EIS

생성 수정

정보보안기사의 시스템·네트워크·애플리케이션 보안과 암호·관리·실기 내용을 개념의 경계와 실습으로 연결합니다.

29개 문서 · 6 · 실기 · 27 / 29

26 · 실기 ② 보안관제 · 대응과 위험분석

지도 위치 : 실기 '정보보안 실무' · README 4장의 ④ 운영 층(관제 · 대응)과 ① 목표와 체계 층(위험관리) | 출제기준: 3. 보안관제 및 대응 > 1 정보수집 및 모니터링 · 2 로그분석 및 대응 / 4. 위험분석 및 정보보호대책 수립 > 1 IT 자산 위협 분석하기 · 2 조직의 정보자산 위협 및 취약점 분석 정리하기 · 3 위험평가하기 · 4 정보보호대책 선정 및 이행계획 수립하기 | 이전: 25 실기 ① 보안특성 파악과 취약점 점검 | 다음: README 필기 연결 노트 : 02, 03, 05, 08, 09, 11, 12, 13, 14, 16, 21, 22, 23, 24 세세항목(요약) : 3.1 운영체제 · 버전별, 서비스별(FTP · 메일 · WWW · DNS · DB) 로그 정보 파악 · 모니터링 · 통제 / 보안장비(Firewall · IDS · IPS) · 네트워크 장비(Switch · Router · 무선 AP) 로그 관리 도구로 생성 수준 · 구성요소 설정 / 3.2 시스템 · 서비스 · 유무선 장비 · 보안장비 · 시간대별 보안 로그 통합 분석 · 통합 로그 정렬로 내외부 공격 시도 · 침투 여부 분석 · 비정상 접근과 변경 여부 확인 · 업무 연속성을 위한 정보와 보안 설정의 백업 · 복구 / 4.1 정보자산 현황 파악 · 서버 · 어플리케이션 · DBMS · WEB/WAS · PC 위협 식별 · 네트워크 · 보안 장비 위협 식별 · 정보보호 및 개인정보보호 법적 준거성 위험 식별 / 4.2 H/W · S/W · 정보자산(기업정보 · 고객정보)의 중요도 · 내외부 위협 · 취약점 정리 / 4.3 위험도 산정 · 목표 위험수준 결정과 초과 위험 식별 / 4.4 위험 처리 전략(감소 · 회피 · 전가 · 수용)과 대책 파악 · 우선순위 · 일정 · 예산을 포함한 이행계획

이 노트를 다 읽으면

  1. 리눅스 · 웹 · 방화벽 로그의 필드를 읽고 공격 시도인지, 성공했는지 근거를 들어 판정할 수 있다.
  2. tcpdump 출력에서 TCP 플래그를 읽어 SYN Flooding · 포트 스캔 · Land 공격 을 구별할 수 있다.
  3. 요구 조건을 받아 Snort 룰을 직접 쓰고 , 주어진 룰의 옵션(content · offset · depth · threshold)을 해석할 수 있다.
  4. 침해사고 대응 절차와 백업 방식(전체 · 차등 · 증분)을 순서와 차이로 설명할 수 있다.
  5. 자산 가치 · 위협 · 취약성으로 위험도를 계산 하고, 목표 위험수준(DoA)과 비교해 처리 대상을 고를 수 있다.
  6. SLE · ARO · ALE로 대책의 비용 대비 효과 를 계산하고, 위험 처리 전략과 이행계획을 쓸 수 있다.

0. 이 노트의 판별 축

#축왼쪽 (0)오른쪽 (1)이 축으로 갈리는 것큰 축 (README 5장)
1시도 ↔ 성공공격 요청이 남음응답 · 후속 행위가 성공을 보여 줌4xx/차단 로그 ↔ 200 응답 · Accepted · 셸 실행이 노트의 축
2알려진 패턴 ↔ 평소와 다름시그니처(content) 일치임계값 · 빈도 초과Snort content 룰 ↔ threshold 룰⑦ 오용 ↔ 이상 탐지
3놓침 ↔ 잘못 울림미탐(False Negative)오탐(False Positive)룰이 너무 좁음 ↔ 너무 넓음오탐 ↔ 미탐 (파생 축)
4등급 ↔ 금액정성적 위험분석정량적 위험분석(ALE)위험도 행렬 ↔ SLE × ARO정성적 ↔ 정량적 (파생 축)
5줄인다 ↔ 넘긴다 ↔ 없앤다 ↔ 받아들인다감소 · 전가회피 · 수용대책 도입 · 보험 ↔ 업무 중단 · 잔여 위험 승인위험 처리 네 가지 (파생 축)

이 노트의 질문은 두 개입니다. "무슨 일이 일어났는가" (관제 · 로그 · 대응)와 "무엇부터 막을 것인가" (위험분석 · 대책). 앞의 25번 노트가 설정을 점검했다면, 여기서는 그 설정 아래에서 실제로 일어난 일 을 읽고, 한정된 예산으로 무엇을 먼저 고칠지 정합니다. README 6장 탑다운 7단계의 마지막 노트입니다.


1. 보안관제의 큰 그림

1.1 수집 → 정규화 → 상관분석 → 대응

[서버 로그] [웹 로그] [방화벽] [IDS/IPS] [라우터 · AP]
      └────── 수집 (syslog · 에이전트) ──────┘
                    ▼
            정규화 (시간 · 필드 통일, NTP 시각 동기화)
                    ▼
            상관분석 (ESM · SIEM: 여러 장비 이벤트를 시간축으로 엮기)
                    ▼
            경보 → 분석가 판정 (오탐/정탐) → 대응 · 보고

SIEM — [통합 보안관제 솔루션]인데, [ 다양한 로그를 수집해 상관분석으로 위협을 찾는다 ]는 점에서 단말 안의 프로세스 · 파일 행위를 감시하는 EDR, 보안장비 이벤트 통합 관리에 머물던 ESM과 구별된다(앞에서 배운 ESM · SIEM (11번 노트)).

⚠️ 시각 동기화(NTP)가 없으면 상관분석이 무너집니다. 장비마다 시계가 몇 분씩 다르면 "방화벽 허용 → 웹 공격 → 계정 생성"의 순서를 재구성할 수 없습니다. 25번 노트의 NTP · Timestamp 점검 항목이 여기서 쓰입니다.

1.2 필기 노트와의 연결 지도

실기 주제다시 쓰는 필기 노트
리눅스 · 윈도우 로그 종류와 명령앞에서 배운 로그 파일 (02번 노트)
웹 로그 공격 흔적 (SQLi · XSS · 경로 조작 · 웹셸)웹 공격 (13번 노트), 개발보안 (16번 노트)
FTP · 메일 · DNS 로그12, 14번 노트
방화벽 · IDS 로그, Snort, ESM · SIEM네트워크 보안 솔루션 (11번 노트)
tcpdump · 스캔 응답 · DoS 패킷스캐닝 · 스니핑 (09번 노트), DoS · DDoS (08번 노트), 분석 도구 (05번 노트)
악성코드 · 루트킷 흔적시스템 공격기법 (03번 노트)
침해사고 대응 · 포렌식 · 백업 · BCP/DRP대책 구현 · 사고대응 (22번 노트)
위험분석 · 위험 처리정보보호 관리와 위험평가 (21번 노트)
법적 준거성 위험, 접속기록 보관정보통신망법 · 기반보호법 (23번 노트), 개인정보보호법 (24번 노트)

1.3 자주 나오는 실기 유형

공개된 회차별 실기 정리(IT위키 「정보보안기사 12회」 · 「13회」 · 「14회」 · 「15회」)에서 이 노트 범위의 주제만 묶었습니다(문제 원문 아님, 복원본이라 일부 문항 누락).

유형반복된 주제 (회차)이 노트
Snort 룰 해석 · 작성 (실무 · 서술)룰 문법 분석, depth · distance · within (13회), 임계값(threshold) 기반 DDoS 탐지 (12회)3절
로그 파일 · 명령 이름 (단답)utmp · wtmp · btmp (14회), last · chattr (12회), logrotate (12회)2.1
공격 이름 맞히기 (단답)ARP 스푸핑, Memcached 증폭 (13회), SSDP 증폭 (15회), Land · Smurf · SYN Flooding (15회 언급)2.5
탐지 방식 · 오탐 (단답)지식기반 · 행위기반 탐지와 오탐 (13회)0절, 3.3
위험분석 용어 · 기법 (단답)위험 구성요소 (12회), 위험 전가 · 시나리오법 · 델파이법 · 베이스라인 (13회), 자산 식별 · 위험평가 절차 (14회)5절
연속성 · 복구 (단답)BCP (13회), 재해복구시스템 분류 (12회)4.2

💡 경향: 위험분석은 용어 · 기법 이름 단답 이 많고, 관제는 룰 · 로그를 주고 해석시키는 실무형 이 많습니다. 실무형 16점은 두 문항 중 하나를 고르므로, 로그 해석과 Snort 룰 중 하나는 확실히 준비하세요.


2. 로그 읽기 (세부항목 3.1 · 3.2)

2.1 리눅스 로그 — 어디에 무엇이 남나

로그기록 내용형식 · 확인 명령
/var/log/secure (RHEL) · /var/log/auth.log (Debian)인증 성공 · 실패, sudo, sshd텍스트 · grep, tail -f
/var/log/messages (RHEL) · /var/log/syslog (Debian)시스템 전반텍스트
utmp (/var/run/utmp)현재 로그인 사용자바이너리 · who, w
wtmp (/var/log/wtmp)로그인 · 로그아웃 · 재부팅 누적 이력바이너리 · last
btmp (/var/log/btmp)로그인 실패 이력바이너리 · lastb
lastlog사용자별 마지막 로그인바이너리 · lastlog
xferlogFTP 업로드 · 다운로드텍스트
pacct사용자가 실행한 명령바이너리 · lastcomm (accton으로 활성화)
/var/log/croncron 작업 실행텍스트

📝 기출 포인트 — 필기에서 wtmp · btmp · utmp와 확인 명령(who · last · lastb)이 매우 자주 반복되었고(출제분석.md S1.3: wtmp 7회, btmp 7회), 실기 14회에도 단답으로 나왔습니다(IT위키). "현재(utmp) · 누적(wtmp) · 실패(btmp)" 세 단어로 기억하세요(앞에서 배운 로그 파일 (02번 노트)). 로그 변조 방지로 chattr +a(추가만 허용), 원격 로그 서버 전송을 덧붙이면 대응 답이 됩니다.

2.2 인증 로그 — 무차별 대입과 성공 판정

Oct 19 03:12:01 web01 sshd[2345]: Failed password for root from 203.0.113.7 port 51522 ssh2
Oct 19 03:12:03 web01 sshd[2345]: Failed password for root from 203.0.113.7 port 51522 ssh2
Oct 19 03:12:06 web01 sshd[2351]: Failed password for invalid user admin from 203.0.113.7 port 51530 ssh2
  ... (같은 IP에서 2초 간격 약 400건)
Oct 19 03:27:40 web01 sshd[2990]: Accepted password for test from 203.0.113.7 port 52011 ssh2
Oct 19 03:28:15 web01 sudo: test : TTY=pts/1 ; PWD=/home/test ; USER=root ; COMMAND=/bin/bash
Oct 19 03:29:02 web01 useradd[3011]: new user: name=sysbak, UID=0, GID=0

🔍 읽는 포인트 : ① 같은 출발지에서 짧은 간격의 Failed password 반복, invalid user(없는 계정) 시도 → 무차별 대입 · 사전 대입 . ② Accepted password for test → 시도가 성공으로 바뀐 지점 (0절 축 1). ③ sudo ... COMMAND=/bin/bash 로 권한 상승, ④ UID=0 계정 생성 → 백도어 계정 (25번 노트의 UID 0 점검 항목). 대응: 출발지 IP 차단, test · sysbak 계정 잠금 · 삭제, root 원격 접속 차단 · 계정 잠금 임계값 설정, 키 기반 인증, 침해 범위 조사.

Windows 보안 이벤트 ID — 실기에서 표로 주어지는 경우가 있어 대표만 정리합니다.

이벤트 ID뜻
4624 / 4625로그온 성공 / 실패 (로그온 유형 2=대화형, 3=네트워크, 10=원격 대화형(RDP))
4634로그오프
4672특수 권한(관리자급) 로그온
4720 / 4732사용자 계정 생성 / 보안 그룹에 구성원 추가
4688새 프로세스 생성
1102감사 로그 삭제 — 흔적 지우기 신호

2.3 웹 로그 — Apache Combined 형식

203.0.113.7 - - [19/Oct/2026:03:40:11 +0900] "GET /board/view.php?id=1%27%20OR%20%271%27%3D%271 HTTP/1.1" 200 5123 "-" "sqlmap/1.7.2#stable"
필드값뜻
%h 클라이언트 IP203.0.113.7출발지 (프록시 뒤라면 X-Forwarded-For 확인)
%l %u- -identd · 인증 사용자 (보통 비어 있음)
%t 시각[19/Oct/2026:03:40:11 +0900]시간대 포함
"%r" 요청 줄GET /board/view.php?id=...공격 문자열이 들어 있는 곳
%>s 상태 코드200성공 여부 판단의 첫 근거
%b 응답 크기5123평소보다 크면 데이터 유출 의심
Referer · User-Agent- / sqlmap자동화 도구 흔적

URL 디코딩: %27=', %20=공백, %3D==, %3C=<, %3E=>, %2F=/, %2e=. → 요청은 id=1' OR '1'='1 입니다.

공격로그에 보이는 흔적성공을 시사하는 근거
SQL Injection' OR '1'='1, UNION SELECT, --, sleep(200 + 응답 크기 급변, Time-based는 응답 지연
XSS<script>, %3Cscript%3E, onerror=, javascript:저장형은 게시글 등록(POST) 후 다른 사용자 조회
경로 조작 (Directory Traversal)../../../../etc/passwd, %2e%2e%2f200 + passwd 크기만큼의 응답
디렉터리 리스팅파일명 없이 /upload/ 요청200 (+ "Index of" 페이지) — 403이면 차단됨
웹셸POST /upload/x.php, 이후 ?cmd=id, cmd=cat%20/etc/passwd업로드 200 → 해당 파일 실행 요청 200
스캐너 · 자동화User-Agent sqlmap · Nikto · Nmap, 짧은 간격 404 다발404 다발은 탐색 단계
198.51.100.9 - - [19/Oct/2026:04:01:02 +0900] "POST /board/upload.php HTTP/1.1" 200 312 "-" "Mozilla/5.0"
198.51.100.9 - - [19/Oct/2026:04:01:09 +0900] "GET /data/files/img_0412.php?cmd=id HTTP/1.1" 200 54 "-" "Mozilla/5.0"
198.51.100.9 - - [19/Oct/2026:04:01:20 +0900] "GET /data/files/img_0412.php?cmd=cat%20/etc/passwd HTTP/1.1" 200 2451 "-" "Mozilla/5.0"

🔍 읽는 포인트 : ① 업로드 직후 업로드 경로의 .php 파일 을 직접 호출, ② cmd= 파라미터로 OS 명령 실행, ③ 응답 크기 2451 = /etc/passwd 크기(25번 노트의 ls 예시)와 같음 → 웹셸 업로드와 명령 실행 성공 . 대응: 해당 파일 격리 · 증거 보존 후 삭제, 업로드 확장자 화이트리스트 · 실행 권한 제거 · 웹 루트 밖 저장(앞에서 배운 파일 업로드 대응 (13 · 16번 노트)), 같은 IP의 다른 요청 전수 조사.

⚠️ GET 파라미터는 로그에 남지만 POST 본문은 기본 Combined 로그에 남지 않습니다. POST 공격은 WAF 로그나 별도 설정(mod_security 감사 로그 등)으로 봐야 합니다.

2.4 방화벽 로그 — 스캔 판별

Oct 19 05:10:01 fw kernel: [FW-DROP] IN=eth0 OUT= SRC=198.51.100.23 DST=10.0.0.10 LEN=44 TTL=46 PROTO=TCP SPT=40123 DPT=21 WINDOW=1024 SYN
Oct 19 05:10:01 fw kernel: [FW-DROP] IN=eth0 OUT= SRC=198.51.100.23 DST=10.0.0.10 LEN=44 TTL=46 PROTO=TCP SPT=40123 DPT=22 WINDOW=1024 SYN
Oct 19 05:10:01 fw kernel: [FW-DROP] IN=eth0 OUT= SRC=198.51.100.23 DST=10.0.0.10 LEN=44 TTL=46 PROTO=TCP SPT=40123 DPT=23 WINDOW=1024 SYN

🔍 읽는 포인트 : 같은 SRC · 같은 SPT에서 DPT만 21, 22, 23… 으로 1초 안에 바뀌고 SYN만 있음 → TCP SYN(하프 오픈) 포트 스캔 . 반대로 DPT는 하나(예: 22)인데 SRC가 수많이 바뀌면 분산 공격 또는 스캔 봇넷입니다. iptables 로그는 -j LOG --log-prefix "[FW-DROP] " 규칙이 있어야 남습니다(앞에서 배운 iptables 점검 (25번 노트)).

2.5 tcpdump · 패킷 해석

05:20:00.100 IP 192.0.2.44.31337 > 10.0.0.10.80: Flags [S], seq 1001, win 512, length 0
05:20:00.100 IP 192.0.2.91.4021 > 10.0.0.10.80: Flags [S], seq 77, win 512, length 0
05:20:00.101 IP 10.0.0.10.80 > 192.0.2.44.31337: Flags [S.], seq 5000, ack 1002, win 64240, length 0
05:20:00.101 IP 192.0.2.17.6612 > 10.0.0.10.80: Flags [S], seq 3, win 512, length 0
  ... (출발지가 계속 바뀌는 [S] 수만 건, 마지막 ACK [.] 없음)
05:30:00.000 IP 10.0.0.10.139 > 10.0.0.10.139: Flags [S], seq 1, win 512, length 0
tcpdump 플래그뜻
[S]SYN
[S.]SYN + ACK
[.]ACK
[P.]PSH + ACK (데이터 전송)
[F.]FIN + ACK
[R] / [R.]RST / RST + ACK

🔍 읽는 포인트 : ① 위조된 듯 계속 바뀌는 출발지에서 [S] 만 쏟아지고 handshake의 마지막 [.] 이 없음 → SYN Flooding (대응: SYN Cookie, 백로그 확대, 임계치 차단). ② 마지막 줄은 출발지 = 목적지(IP · 포트 동일) → Land 공격 (대응: 출발지가 자기 자신인 패킷 차단). Smurf라면 ICMP Echo Reply가 여러 호스트에서 한 피해자로 몰립니다(앞에서 배운 DoS 유형 (08번 노트)).

스캔 유형열린 포트 응답닫힌 포트 응답
TCP Connect / SYN 스캔SYN+ACKRST+ACK
FIN · NULL · Xmas 스캔응답 없음RST
UDP 스캔응답 없음(또는 UDP 응답)ICMP Port Unreachable (Type 3, Code 3)
ACK 스캔 (필터링 확인용)RST → 필터링 안 됨응답 없음 → 필터링됨

⚠️ FIN · NULL · Xmas는 RFC 793대로 구현된 스택에서만 위 표처럼 동작합니다. Windows는 포트 상태와 관계없이 RST를 보내 판별이 안 됩니다(앞에서 배운 스텔스 스캔 (09번 노트)).


3. Snort 룰 — 읽고 쓰기

3.1 구조

alert tcp $EXTERNAL_NET any -> $HOME_NET 80 (msg:"WEB cmd.exe access"; flow:to_server,established; content:"cmd.exe"; nocase; sid:1000001; rev:1;)
└─ 동작  └프로토콜 └출발지 IP · 포트  └방향 └목적지 IP · 포트  └──────────── 옵션 (세미콜론으로 구분) ────────────┘
헤더 요소값
동작alert(경보+기록), log(기록), pass(무시), 인라인 모드에서 drop · reject · sdrop
프로토콜tcp, udp, icmp, ip
방향->(단방향), <>(양방향)
주소 · 포트any, $HOME_NET, ! 부정, 1:1024 범위

3.2 옵션 — 자주 나오는 것만

옵션뜻기억법
msg경보 메시지 (탐지에는 영향 없음)이름표
sid / rev룰 번호 / 개정 번호 (사용자 룰은 1,000,000 이상)주민번호 / 버전
content페이로드에서 찾을 문자열. 16진수는 파이프 기호 사이에 씀(예: 0d 0a)무엇을
nocase대소문자 무시
offset / depth페이로드 처음부터 몇 바이트 건너뛰고 / 몇 바이트 안에서 찾나절대 위치
distance / within앞 content가 끝난 곳부터 몇 바이트 뒤에서 / 몇 바이트 안에서 찾나상대 위치
pcre정규표현식
flowto_server · to_client, established방향 · 세션 상태
flagsTCP 플래그 (S=SYN, F, R, P, A, U, 0=플래그 없음)
dsize페이로드 크기
itype / icodeICMP 타입 / 코드
thresholdtype(limit · threshold · both), track(by_src · by_dst), count N, seconds M몇 초에 몇 번
sameip출발지 IP = 목적지 IPLand 탐지

threshold 세 가지 — limit: M초 동안 처음 N번까지만 경보. threshold: N번마다 경보. both: M초 동안 N번을 넘으면 한 번만 경보.

📝 기출 포인트 — 필기에서 Snort 룰 옵션(content · offset · depth · nocase · msg · threshold · sameip)이 해마다 나왔고(출제분석.md N3.2), 실기 12회에 threshold 해석, 13회에 depth · distance · within 해석이 나왔습니다(IT위키). offset/depth는 절대, distance/within은 상대 — 이 한 줄이 핵심입니다.

3.3 작성 예제

요구 조건룰
외부에서 내부 웹서버로 가는 요청에 /etc/passwd 문자열(대소문자 무시)이 있으면 경보alert tcp any any -> $HOME_NET 80 (msg:"WEB passwd access"; flow:to_server,established; content:"/etc/passwd"; nocase; sid:1000010; rev:1;)
같은 출발지에서 SSH(22)로 60초 동안 SYN이 5번 넘으면 한 번 경보alert tcp any any -> $HOME_NET 22 (msg:"SSH brute force"; flags:S; threshold:type both, track by_src, count 5, seconds 60; sid:1000011; rev:1;)
Land 공격alert tcp any any -> $HOME_NET any (msg:"Land attack"; flags:S; sameip; sid:1000012; rev:1;)
ICMP Echo Request 탐지alert icmp any any -> $HOME_NET any (msg:"ICMP ping"; itype:8; sid:1000013; rev:1;)
페이로드 처음 4바이트 안에 USER, 그 뒤 10바이트 안에 root (FTP)alert tcp any any -> $HOME_NET 21 (msg:"FTP root login"; content:"USER"; depth:4; content:"root"; distance:1; within:10; nocase; sid:1000014; rev:1;)

🔍 읽는 포인트 : 룰을 해석하는 문제는 "누가(출발지) · 어디로(목적지 · 포트) · 무엇을(content) · 몇 번(threshold) · 무슨 이름으로(msg)" 순서로 한 문장으로 풀어 쓰면 됩니다. 룰이 너무 넓으면 오탐, 너무 좁으면 미탐 — 0절 축 3.


4. 침해사고 대응과 백업 · 복구

4.1 침해사고 대응 절차

단계 (KISA 침해사고 분석 절차 안내서의 7단계)하는 일
① 사고 전 준비대응팀(CERT) · 연락망 · 도구 · 절차 마련
② 사고 탐지IDS · 관제 · 사용자 신고로 인지
③ 초기 대응피해 확산 차단(격리), 초기 정보 수집, 관련자 통보
④ 대응 전략 체계화사고 유형 · 영향 판단, 법적 대응 · 수사 의뢰 여부 결정
⑤ 사고 조사증거 수집 · 분석(휘발성 → 비휘발성), 원인 · 범위 파악
⑥ 보고서 작성경과 · 원인 · 피해 · 조치 정리
⑦ 해결재발 방지 대책 적용, 시스템 복구, 교훈 반영

휘발성 순서 (RFC 3227): 레지스터 · 캐시 → 라우팅 테이블 · ARP 캐시 · 프로세스 · 메모리 → 임시 파일 시스템 → 디스크 → 원격 로그 → 물리 구성 · 네트워크 토폴로지 → 백업 매체. 사라지기 쉬운 것부터 수집하고, 전원을 바로 끄지 않습니다(앞에서 배운 포렌식 원칙 (22번 노트)).

⚠️ 신고 기한(시험 전 국가법령정보센터에서 확인): 정보통신망법상 침해사고는 인지 후 24시간 이내 신고, 개인정보 유출은 72시간 이내 신고 · 통지(1천 명 이상 등 요건)로 최근 필기 경향에 정리되어 있습니다(앞에서 배운 23 · 24번 노트).

4.2 백업 · 복구 (세세항목 3.2.4)

방식백업 대상복구에 필요한 것백업 속도 · 용량
전체 (Full)전부전체 1개가장 느림 · 큼
차등 (Differential)마지막 전체 이후 바뀐 것전체 + 마지막 차등 1개날이 갈수록 커짐
증분 (Incremental)마지막 백업(무엇이든) 이후 바뀐 것전체 + 그 뒤 증분 전부를 순서대로가장 빠름 · 작음

예: 일요일 전체, 월~금 매일 백업, 목요일 장애 → 차등이면 일요일 전체 + 수요일 차등 , 증분이면 일요일 전체 + 월 · 화 · 수 증분 .

재해복구 사이트대기 상태복구 시간 (일반적 분류)
미러 사이트주 센터와 동일 · 실시간 동기화즉시
핫 사이트장비 · 데이터 대기, 주기적 동기화수 시간 이내
웜 사이트일부 장비만수일 ~ 수주
콜드 사이트장소 · 전원 · 통신만수주 ~ 수개월

RTO — 복구 목표 시간 (얼마나 빨리 되살리나), RPO — 복구 목표 시점 (얼마만큼의 데이터 손실을 허용하나, 백업 주기와 직결). 앞에서 배운 BCP · DRP · BIA (22번 노트)와 함께 씁니다. 보안 설정 (방화벽 규칙 · 장비 구성 파일)도 백업 대상이라는 점이 세세항목의 포인트입니다.


5. 위험분석과 정보보호대책 (주요항목 4)

위험 — [발생 가능한 손실]인데, [ 자산 · 위협 · 취약성이 함께 있을 때만 생긴다 ]는 점에서 셋 중 하나인 위협(외부 요인)이나 취약성(내부 약점)과 구별된다. 셋 중 하나라도 0이면 위험도 0입니다.

5.1 절차 한눈에

자산 식별 · 가치평가 → 위협 분석 → 취약성 분석 → 위험도 산정 → 목표 위험수준(DoA)과 비교
   → 처리 전략(감소 · 회피 · 전가 · 수용) → 대책 선정 · 우선순위 → 이행계획(일정 · 예산 · 담당) → 잔여 위험 승인
단계산출물세세항목
자산 식별자산 목록(H/W · S/W · 정보 · 서비스), 구성도4.1.1, 4.2
위협 · 취약성자산별 위협 시나리오, 취약점 진단 결과(25번 노트)4.1.2~4, 4.2
위험평가위험도 표, DoA 초과 목록4.3
대책 · 계획위험처리 계획서, 이행계획서4.4

⚠️ 법적 준거성 위험 (세세항목 4.1.4)도 위협입니다. 개인정보 암호화 의무 · 접속기록 보관(개인정보처리시스템 접속기록 1년 이상, 일정 요건이면 2년 이상, 점검 주기는 개정 전 "월 1회 이상", 2026.10.31부터는 내부 관리계획으로 정한 주기 — 24번 노트, 시험 전 확인) 같은 법적 의무 미이행 은 기술적 공격이 없어도 과징금 · 처벌로 이어지는 위험입니다(앞에서 배운 개인정보보호법 (24번 노트)).

5.2 정성적 계산 — 위험도 = 자산 가치 × 위협 × 취약성

자산 가치는 C · I · A 각각을 13으로 평가한 뒤 최댓값 (또는 합)을 쓰는 방식이 흔합니다. 아래 예는 최댓값, 위협 · 취약성도 13, DoA = 12 (12 이상이면 처리 대상)로 가정했습니다.

자산CIA자산 가치위협취약성위험도DoA 12 이상?
고객 DB 서버33233218⭕ 처리
웹 서버23333327⭕ 처리 (1순위)
사내 그룹웨어22222312⭕ 처리
개발 테스트 서버1111236❌ 수용
백업 테이프3213126❌ 수용 (모니터링)

🔍 읽는 포인트 : 위험도 순서(27 → 18 → 12)가 대책의 1차 우선순위 입니다. 조직마다 덧셈식(자산+위협+취약성)이나 다른 등급표를 쓰므로 ⚠️ 문제에 주어진 식과 DoA를 그대로 적용하고 식을 답안에 먼저 쓰세요. 백업 테이프처럼 자산 가치가 높아도 위험도가 낮으면 수용하되, 수용은 "아무것도 안 함"이 아니라 경영진이 잔여 위험을 알고 승인하는 것 입니다.

5.3 정량적 계산 — SLE · ARO · ALE

기호뜻식
AV자산 가치 (금액)
EF노출계수 — 한 번 사고 시 손실 비율0~100%
SLE단일 예상 손실AV × EF
ARO연간 발생률10년에 1번 = 0.1
ALE연간 예상 손실SLE × ARO
대책의 연간 가치대책 도입의 순이익(도입 전 ALE − 도입 후 ALE) − 연간 대책 비용

예: 고객 DB 가치 5억 원, 유출 시 40% 손실 → SLE = 2억 원. 2년에 한 번 꼴(ARO 0.5) → ALE = 1억 원 . DB 암호화 + 접근통제 도입(연 3천만 원) 후 ARO가 0.1로 줄면 ALE = 2천만 원. 대책 가치 = (1억 − 0.2억) − 0.3억 = 5천만 원 > 0 → 도입 타당 .

📝 기출 포인트 — 필기에서 정량적 위험분석 · ALE · SLE(노출계수) 계산, 위험 구성요소, 위험 전가가 반복되었습니다(출제분석.md M1.2: 정량적 위험분석 7회, 위험 전가 7회). 실기에서는 식과 단위까지 쓴 계산 과정 이 부분점수입니다(앞에서 배운 위험평가 (21번 노트)).

5.4 위험 처리 전략

전략뜻예헷갈리는 형제와의 경계
감소 (완화)대책으로 위협 · 취약성을 줄임패치, 암호화, 접근통제가장 일반적
회피위험을 낳는 자산 · 업무 자체를 없앰개인정보 수집 중단, 서비스 종료줄이는 게 아니라 원인 제거
전가 (이전)손실을 제3자에게 넘김사이버 보험, 외주 계약상 책임위험은 남지만 비용을 남이 부담
수용DoA 이하이거나 대책 비용이 더 클 때 알고 받아들임저가치 테스트 서버경영진 승인 · 기록 필요

⚠️ 법적 의무는 수용할 수 없습니다. 개인정보 암호화처럼 법이 요구하는 통제는 비용이 커도 감소 대상입니다.

5.5 위험분석 접근법과 기법

접근법특징장단점
베이스라인표준 체크리스트로 최소 통제 적용빠르고 쌈 / 조직 특성 반영 약함
비정형 (전문가 판단)전문가 경험으로 평가빠름 / 평가자 주관에 좌우
상세 위험분석자산 · 위협 · 취약성을 정밀 분석정확 / 시간 · 비용 큼
복합중요 시스템은 상세, 나머지는 베이스라인효율적 / 경계 설정이 관건
구분기법
정성적델파이법(전문가 집단 합의), 시나리오법(가정된 사건 전개), 순위결정법(비교 우선순위), 퍼지 행렬법
정량적과거자료 분석법, 수학공식 접근법(ALE), 확률분포 추정법, 점수법

5.6 대책 우선순위와 이행계획

우선순위는 위험도(높은 순) → 대책 효과 → 비용 · 난이도 → 법적 의무 여부 → 빠른 적용 가능성(Quick Win) 순으로 따집니다.

위험대책우선순위담당일정예산처리 전략잔여 위험
웹 서버 웹셸 업로드 (27)WAF 차단 모드, 업로드 실행 권한 제거1웹운영팀1개월2천만 원감소낮음
고객 DB 유출 (18)DB 암호화, DB 접근제어2DB팀3개월3천만 원감소 + 보험 전가낮음
그룹웨어 계정 탈취 (12)MFA 도입3인프라팀2개월1천만 원감소중간 → 수용 승인

6. 필답형 답안 쓰는 법

6.1 서술형 답안 구조

로그 분석형 — " 근거 → 판정 → 영향 → 대응 → 재발 방지 "

순서예 (웹셸 로그)
근거04:01:02 upload.php POST 200, 04:01:09 업로드 경로의 .php에 cmd=id 200
판정웹셸 업로드 후 원격 명령 실행 성공
영향서버 장악, /etc/passwd 유출(기밀성), 추가 침투 거점
대응출발지 차단, 웹셸 격리 · 증거 보존, 동일 IP 요청 전수 조사, 계정 · 비밀번호 변경
재발 방지확장자 화이트리스트, 업로드 디렉터리 실행 금지, 웹 루트 밖 저장, WAF 룰

위험분석형 — " 식 → 대입 → 결과 → 판단(DoA · 대책 가치) → 전략 "

6.2 핵심어

주제반드시 들어갈 말
로그출발지 IP, 시각, 반복 · 빈도, 상태 코드 200(성공), 응답 크기, User-Agent, 성공/실패 구분
패킷플래그(SYN · SYN/ACK · RST), handshake 미완료, 출발지 위조, 출발지 = 목적지
Snort동작 · 프로토콜 · 방향, content · nocase, offset/depth(절대) · distance/within(상대), threshold · track · count · seconds, sid
사고대응격리, 증거 보존, 휘발성 우선, 무결성(해시), 보고, 재발 방지
위험분석자산 · 위협 · 취약성, 위험도, DoA, 잔여 위험, 감소 · 회피 · 전가 · 수용, SLE · ARO · ALE

6.3 부분점수 포인트

  • 로그 문제는 줄 번호나 시각을 인용 해 근거를 대세요. "공격 같다"는 점수가 없습니다.
  • 시도와 성공을 구분 해 쓰세요(0절 축 1). 403 · 404면 시도, 200 + 후속 행위면 성공.
  • Snort 룰은 세미콜론 · 괄호 · sid 까지. 빠지면 문법 오류로 감점될 수 있습니다.
  • 계산 문제는 식 → 대입 → 단위 있는 결과 순서로. 결과가 틀려도 식이 맞으면 부분점수 여지가 있습니다.
  • 위험 처리 전략은 예를 하나씩 붙이세요(전가 = 보험).

7. 확인 문제

직접 만든 필답형 문제입니다.

문제 1 (단답) 리눅스에서 ① 현재 로그인 사용자, ② 로그인 · 로그아웃 누적 이력, ③ 로그인 실패 이력을 기록하는 로그 파일 이름과 각각을 보는 명령을 쓰세요.

문제 2 (서술) 다음 로그에서 공격 유형과 성공 여부를 판정하고 근거를 쓰세요.

203.0.113.50 - - [19/Oct/2026:10:00:01 +0900] "GET /download.php?file=..%2f..%2f..%2f..%2fetc%2fpasswd HTTP/1.1" 200 2451 "-" "curl/8.4.0"

문제 3 (단답) tcpdump에서 출발지와 목적지의 IP · 포트가 같은 SYN 패킷이 보입니다. 공격 이름과, 이를 탐지하는 Snort 옵션 이름을 쓰세요.

문제 4 (실무) "외부에서 내부 웹서버(192.168.10.10) 80번 포트로 가는 세션의 요청에 union select 문자열(대소문자 무시)이 있으면 'SQLi attempt'라는 메시지로 경보" 하는 Snort 룰을 쓰세요(sid 1000100).

문제 5 (단답) 다음 룰이 경보를 내는 조건을 한 문장으로 쓰세요. alert tcp any any -> $HOME_NET 22 (msg:"SSH scan"; flags:S; threshold:type limit, track by_src, count 1, seconds 60; sid:1000101;)

문제 6 (서술) 일요일 전체 백업 후 월~토 매일 증분 백업을 합니다. 금요일 오전에 장애가 나면 무엇을 어떤 순서로 복구하나요? 차등 백업이었다면 어떻게 달라지나요?

문제 7 (계산) 자산 가치 10억 원, 노출계수 30%, 발생 빈도 4년에 1회입니다. ① SLE ② ALE를 구하고, ③ 연간 비용 4천만 원의 대책으로 ARO가 0.05가 될 때 대책의 연간 가치와 도입 여부를 쓰세요.

문제 8 (서술) 위험 처리 전략 네 가지를 쓰고, "고객 개인정보를 쓰지 않는 새 업무 방식으로 바꿔 개인정보 수집을 중단"한 것은 어느 전략인지 쓰세요.

문제 9 (단답) 조직이 받아들일 수 있는 위험의 기준선으로, 이보다 위험도가 높은 위험만 처리 대상으로 삼게 하는 값을 무엇이라 하나요?

모범답안

#모범답안채점 핵심어 · 해설
1① utmp — who(또는 w) ② wtmp — last ③ btmp — lastb현재 · 누적 · 실패
2경로 조작(Directory Traversal). %2f=/ 이므로 ../../../../etc/passwd 요청. 상태 코드 200, 응답 크기 2451바이트로 passwd 파일 크기와 비슷 → 성공 가능성 높음 (파일 내용 확인 필요). User-Agent curl은 자동화 도구디코딩 · 200 · 크기 근거. 대응: 파일명 화이트리스트, ../ 필터, 경로 정규화
3Land 공격 / sameip대응: 출발지가 자기 IP인 패킷 차단
4alert tcp any any -> 192.168.10.10 80 (msg:"SQLi attempt"; flow:to_server,established; content:"union select"; nocase; sid:1000100; rev:1;)nocase · 방향 · sid. 공백 변형(union/**/select)은 pcre 로 보완하면 가점
5어떤 출발지에서 내부 22번 포트로 SYN 패킷이 오면, 출발지별로 60초에 한 번만 경보limit = 처음 N번까지만
6증분: 일요일 전체 → 월 · 화 · 수 · 목 증분을 순서대로 전부 . 차등: 일요일 전체 → 목요일 차등 하나만증분은 복구가 길고, 차등은 백업이 커짐
7① SLE = 10억 × 0.3 = 3억 원 ② ARO = 0.25 → ALE = 7,500만 원 ③ 도입 후 ALE = 3억 × 0.05 = 1,500만 원. 대책 가치 = (7,500 − 1,500) − 4,000 = 2,000만 원 > 0 → 도입식 · 대입 · 단위
8감소 · 회피 · 전가 · 수용 / 회피 (위험을 낳는 업무 자체를 없앰)감소와 혼동 주의
9목표 위험수준(DoA, Degree of Assurance)수용 가능 위험 수준이라고도 씀

부록 A. 스스로 확인하기

#질문답이 있는 곳
1SIEM과 EDR은 무엇으로 갈리나? 시각 동기화가 왜 필요한가?1.1
2실기에서 관제 영역은 주로 어떤 유형으로 나오나?1.3
3utmp · wtmp · btmp · lastlog의 차이와 명령은?2.1
4인증 로그에서 무차별 대입이 "성공"으로 바뀐 지점은 어떻게 찾나?2.2
5Combined 로그 형식의 필드 순서는? POST 본문은 남나?2.3
6웹셸 업로드 성공의 근거 세 가지는?2.3
7SYN · FIN · UDP 스캔의 열린/닫힌 포트 응답은?2.5
8offset/depth와 distance/within의 차이는?3.2
9threshold의 limit · threshold · both는?3.2
10침해사고 대응 7단계와 휘발성 순서는?4.1
11증분과 차등 백업의 복구 방법 차이는? RTO와 RPO는?4.2
12위험도 계산과 DoA 비교는 어떻게 하나?5.2
13ALE와 대책의 연간 가치 식은?5.3
14위험 회피와 전가의 차이는?5.4

부록 B. 자주 하는 실수 · 함정

실수바로잡기
❌ "wtmp는 로그인 실패를 기록"⭕ 실패는 btmp (lastb). wtmp는 성공 로그인 · 로그아웃 누적
❌ 공격 문자열이 보이면 "침해 성공"⚠️ 시도와 성공을 구분. 상태 코드 · 응답 크기 · 후속 행위로 판단
❌ "POST로 들어온 SQLi도 access 로그에 다 남는다"⭕ 기본 Combined 로그는 POST 본문을 남기지 않음
❌ "depth는 앞 content 기준"⭕ offset/depth는 페이로드 처음 기준, distance/within이 앞 content 기준
❌ "증분 백업 복구는 전체 + 마지막 증분"⭕ 전체 + 모든 증분을 순서대로. 마지막 하나만 쓰는 것은 차등
❌ "위험 수용 = 방치"⭕ 잔여 위험을 경영진이 알고 승인 하고 기록 · 모니터링
❌ "보험에 들면 위험이 사라진다"⭕ 전가는 손실 비용 을 넘길 뿐 사고 가능성은 그대로
❌ ARO "4년에 1회"를 4로 대입⭕ 0.25
❌ 사고 즉시 서버 전원 차단⚠️ 메모리 등 휘발성 증거가 사라짐. 격리 후 휘발성 정보부터 수집

부록 C. AI · NotebookLM 복습 프롬프트

이 노트만 근거로, Apache Combined 로그 5줄을 새로 만들어 주고 그중 공격 시도와 성공을 내가 구분하게 해 줘. 채점은 2.3의 표 기준으로.
이 노트만 근거로, Snort 룰 작성 문제 3개(요구 조건 → 룰)를 내고, 내가 쓴 룰의 문법 · 옵션 오류를 3.2 표 기준으로 지적해 줘.
이 노트만 근거로, 자산 4개짜리 위험도 계산 문제와 SLE · ALE 계산 문제를 하나씩 내고 풀이 과정을 단계별로 채점해 줘.
노트에 없는 수치(법정 기한 등)는 지어내지 말고 "노트에 없음 — 국가법령정보센터 확인"이라고 답해 줘.