문서 읽는 데 51분 · 50강 · 5과목 · 정보시스템 구축관리

당신의 클릭을 노린다: 웹 공격과 악성코드

목차 23
전체 59강 중 50강 · 5과목 · 정보시스템 구축관리

5과목(정보시스템 구축 관리) 정보보호 영역의 네 번째 강. 49강이 네트워크 인프라 자체를 때리는 공격(DDoS·스니핑·스푸핑)을 다뤘다면, 50강은 한 계층 위 — 웹 애플리케이션과 사용자 브라우저를 노리는 공격, 그리고 악성코드를 연다. 모든 공격은 한 문장으로 정렬된다 — "신뢰할 수 없는 입력을 신뢰해서 생기는 사고". 다섯 묶음으로 정리한다. ① 데이터·명령 경계가 무너지는 인젝션(★인=데명경계★·★에유블시★·★준검권W★), ② 브라우저를 노리는 XSS·CSRF·클릭재킹(★저반돔★·★XSS=실행, CSRF=위조★·★웹3=인XC★), ③ 서버를 장악하는 기타 웹 취약점(★업디세★), ④ 자기복제로 갈리는 악성코드(★바웜트★ 회수)와 가용성을 인질로 잡는 랜섬웨어(★랜=암잠신★), ⑤ 공격↔CIA 매트릭스. SQL 인젝션·XSS·CSRF·랜섬웨어가 매 회차 1~3문제로 고정 출제되는 5과목 최대 빈출 단원이다.


대단원 1 — 인젝션 공격

인젝션의 본질 + 4대장 ★인=데명경계★ ·인젝션·시험 1순위·

[정의] 인젝션(Injection) = 사용자 입력값이 검증 없이 명령어의 일부로 실행되면서, 데이터가 와야 할 곳에 명령이 끼어드는 공격. 본질을 ★인=데명경계★으로 잡는다 — 이터와 령의 경계 파괴.

[표] 인젝션 4대장

유형 공격 대상 끼어드는 명령
SQL Injection 데이터베이스 SQL 쿼리
OS Command Injection 운영체제 쉘 시스템 명령어
XML/XPath Injection XML 파서 XPath 쿼리
LDAP Injection 디렉터리 서비스 LDAP 필터

🔑 암기 ★인=데명경계★ — 입력값이 명령으로 해석되는 순간 인젝션 성공. 4대장 공통 방어 = 입력값을 명령어에 직접 결합하지 말 것(파라미터화 API). ⚠️ 함정 빈도는 SQL Injection이 압도적 1위, OS Command가 2위, XML/LDAP은 소거형 보기용. "인젝션에 속하지 않는 것?" 보기에 DDoS·Buffer Overflow가 끼면 그게 정답. 🎯 빈출 "모든 인젝션의 공통 원리?" → 데이터·명령 경계 파괴. "인젝션 4대장?" → SQL·OS Command·XML/XPath·LDAP. 💡 은행 창구에 "100만원 이체하고, 그 다음 전 계좌 잔액 다 빼줘"라고 했는데 직원이 그대로 실행하면 — 데이터에 명령이 끼어든 것. 이게 인젝션이다.

SQL Injection — 작동 원리 + ★에유블시★ 4유형 ·SQLi·시험 1순위·

[정의] SQL Injection = 입력값에 SQL 구문을 끼워넣어 인증 우회·DB 조회·변경·삭제를 일으키는 공격. 인젝션 4대장 중 시험 1순위.

[흐름] 로그인 폼 우회 — ' OR '1'='1의 원리

  • 정상: 비밀번호 1234... WHERE id='admin' AND pw='1234'
  • 주입: 비밀번호 칸에 ' OR '1'='1 입력 → ... WHERE id='admin' AND pw='' OR '1'='1'
  • '1'='1'항상 참 → 비밀번호를 몰라도 로그인 성립

[표] ★에유블시★ — SQLi 4유형(공격자가 결과를 어떻게 보느냐)

두음 유형 핵심
Error-based DB 에러 메시지로 정보 추출
Union-based UNION SELECT로 추가 쿼리 결합·화면 출력
Blind 참/거짓 반응 차이로 한 글자씩 추론
Time-based SLEEP·WAITFOR 함수로 응답 시간 차이 추론

🔑 암기 ★에유블시★ — 에러·유니온·블라인드·시간. 에러 메시지를 숨기는 요즘 서비스에선 블라인드·시간 기반이 실무 주력. ⚠️ 함정 침해 CIA는 주로 기밀성·무결성(조회·변경). DROP TABLE 같은 특수 경우만 가용성. "SQLi 주 침해 = 가용성" ❌. 🎯 빈출 지문에 ' OR '1'='1 또는 '데이터베이스 질의문'이 보이면 즉답 SQL Injection. 'SLEEP'→Time-based, 'UNION'→Union-based, '참/거짓 반응'→Blind, '에러 메시지'→Error-based. 📝 기출 기출 1 (SQLi 정의) 💡 출입문 비밀번호를 몰라도 '아무 숫자나 눌러도 열리는 마스터키 코드'를 끼워넣는 것. ★인=데명경계★가 적용되는 첫 실전이다.

SQLi 방어 4축 ★준검권W★ — Prepared Statement가 왕 ·SQLi 방어·시험 1순위·

[정의] SQL Injection 방어를 4축으로 잡되, 우선순위가 핵심 — Prepared Statement(준비된 문·파라미터 바인딩)가 1순위 최고 방어, 나머지는 보조.

[표] ★준검권W★ — SQLi 방어 4축

두음 방어축 설명 위상
준비된 문(Prepared Statement) 쿼리 구조 먼저 고정, 값만 바인딩 최고 방어
입력 검증 화이트리스트 기반 허용 문자만 통과 보조
최소 권한 DB 계정에 필요 최소 권한만 부여 피해 축소
W WAF 웹 방화벽으로 악성 패턴 탐지·차단 외곽 방어

🔑 암기 ★준검권W★ — 준비된 문·입력검증·최소권한·WAF. 'SQLi 방어 1순위?'의 답은 항상 Prepared Statement. 값과 명령을 물리적으로 분리해 쿼리 구조 자체를 고정한다. ⚠️ 함정 "Prepared Statement는 보조 방어" ❌ → 최고 방어. "문자열 연결(concatenation)로 SQL 생성"은 방어가 아니라 취약점의 원인 — 'SQLi 방어로 옳지 않은 것?'의 정답. 🎯 빈출 매 회차 1순위로 떨어지는 결정적 단골. "SQLi 근본 해결책?" → Prepared Statement. 입력 검증·WAF만으로는 모든 우회를 막지 못한다. 📝 기출 기출 8 (SQLi 방어 옳지 않은 것) 💡 창구 직원이 "양식 빈칸만 채워주세요, 문장은 이미 인쇄돼 있어요"라고 하면 고객이 무엇을 적어도 양식 밖으로 못 나간다. 이게 Prepared Statement.

나머지 인젝션 3인방 — OS Command·XML·LDAP ·인젝션·간헐·

[정의] SQL 외 인젝션 3종. 빈도는 SQLi보다 낮지만 '인젝션 범주에 속하지 않는 것?' 소거형으로 간헐 출제.

[표] 인젝션 3인방

유형 대상 공격 예시 방어
OS Command 운영체제 쉘 ; rm -rf / 끼워넣기 시스템 함수 호출 최소화 + 화이트리스트
XML/XPath XML 파서 XPath 쿼리 변조 파라미터화 XPath + 입력 검증
LDAP 디렉터리 서비스 )(uid=*) 필터 변조 LDAP 이스케이프 + 입력 검증

🔑 암기 셋 다 본질은 ★인=데명경계★. 방어도 동일 — 입력값을 명령어에 직접 결합하지 말고 파라미터화 API. ⚠️ 함정 OS Command는 ; | 같은 구분자로 뒤에 추가 명령을 붙인다 — 파일명 입력칸에 report.pdf; rm -rf /를 넣으면 조회 뒤 서버 삭제가 실행될 수 있다. 🎯 빈출 보기 4개 중 SQL·OS Command·XML·LDAP은 전부 인젝션. DDoS·Buffer Overflow가 끼면 그게 '인젝션 아닌 것'.


대단원 2 — XSS · CSRF · 클릭재킹

XSS 3종 ★저반돔★ — 남의 브라우저에서 스크립트 실행 ·XSS·시험 1순위·

[정의] 크로스 사이트 스크립팅(XSS) = 공격자가 웹 페이지에 악성 스크립트를 심어, 그 페이지를 방문하는 사용자 브라우저에서 스크립트가 실행되게 하는 공격. 스크립트가 어디 저장되고 어떻게 전달되느냐로 3종.

[표] ★저반돔★ — XSS 3종

두음 유형 저장 위치 지속성 탐지
저장형(Stored) DB에 저장 지속적(모든 방문자) 중간
반사형(Reflected) URL 파라미터 일회성(링크 클릭 시) 쉬움
DOM 기반(DOM-based) 클라이언트 JS 서버 미경유 매우 어려움

🔑 암기 ★저반돔★ — 저장형(DB·지속)·반사형(URL·일회)·DOM 기반(서버 미경유). 'DB 저장·지속'은 Stored, 'URL·일회'는 Reflected, '서버 미경유'는 DOM. ⚠️ 함정 Stored와 Reflected 설명 바꿔치기가 단골. 'URL 파라미터·일회성'인데 이름이 Stored면 함정. DOM 기반은 서버를 안 거쳐 서버 로그로 탐지가 어렵다. 🎯 빈출 XSS 3종 짝짓기·바꿔치기 함정. ★저반돔★ 세 글자면 즉시 판별. 📝 기출 기출 2 (XSS 3종) 💡 게시판에 붙인 악성 메모(Stored·지나가는 사람마다 피해) vs 특정인에게 보낸 악성 링크(Reflected·그 사람만) vs 브라우저 안에서 몰래 바뀌는 마술(DOM·서버는 모름).

XSS 방어 4단계 — 필터링·인코딩·CSP·쿠키 보안 ·XSS 방어·단골·

[정의] XSS 방어선을 4단계로 — 입력에서 막고, 출력에서 바꾸고, 정책으로 제한하고, 쿠키를 숨긴다.

[표] XSS 방어 4단계

단계 방어책 역할
입력 필터링 <script> 등 위험 문자 차단
출력 인코딩 <&lt; 변환 — 브라우저가 코드로 해석 못하게
CSP(Content Security Policy) 허용된 출처의 스크립트만 실행
쿠키 보안 3종 HttpOnly + Secure + SameSite

🔑 암기 쿠키 보안 3종이 핵심 — HttpOnly(JS로 쿠키 읽기 차단 → 스크립트가 실행돼도 세션 쿠키 탈취 불가)·Secure(HTTPS에서만 전송)·SameSite(타 사이트 요청엔 쿠키 미전송). ⚠️ 함정 출력 인코딩만으로 끝이 아니다 — 4겹이 겹겹이 쌓인다. HttpOnly가 걸리면 XSS로도 세션 쿠키를 못 읽는다(세션 하이재킹 차단의 핵심). 🎯 빈출 "XSS로 인한 세션 쿠키 탈취를 막는 쿠키 속성?" → HttpOnly. "허용 출처 스크립트만 실행하는 정책?" → CSP. 💡 입력 필터링=보안 검색대, 출력 인코딩=내용물이 새지 않는 코팅, CSP=출입 허가증, 쿠키 보안=금고 잠금.

CSRF — 훔치지 않고 '이용'하는 공격 ·CSRF·시험 1순위·

[정의] CSRF(Cross-Site Request Forgery) = 피해자가 로그인된 상태를 악용해, 공격자가 의도한 요청을 피해자 브라우저가 대신 전송하게 만드는 공격. 핵심 한 줄 — 쿠키를 훔치지(steal) 않는다, 이용(use)한다.

[흐름] CSRF 작동 5단계

  1. 피해자가 은행 사이트에 로그인(세션 쿠키 보유)
  2. 공격자가 만든 악성 페이지 방문
  3. 그 페이지가 은행에 '100만원 이체' 요청을 자동 전송
  4. 브라우저가 은행 쿠키를 자동으로 함께 전송
  5. 은행은 정상 요청으로 판단 → 이체 실행

🔑 암기 브라우저는 같은 도메인 요청 시 그 도메인 쿠키를 자동 전송 — CSRF는 이 편의 기능을 악용한다. 방어 = CSRF 토큰(일회용 난수를 폼에 삽입) + SameSite 쿠키 + Referer/Origin 검증. ⚠️ 함정 "CSRF가 피해자 쿠키를 탈취한다" ❌ → 탈취는 XSS의 동작. CSRF는 탈취하지 않고 이용만 한다. 🎯 빈출 방어책을 물으면 대부분 정답 CSRF 토큰. '악성 페이지 방문만으로 실행'·'인증 상태 이용'은 옳은 설명. 📝 기출 기출 3 (CSRF 옳지 않은 것) 💡 내 도장(쿠키)을 훔친 게 아니라, 내가 도장을 품고 있는 상태에서 나도 모르게 찍히게 만드는 것.

XSS vs CSRF ★XSS=실행, CSRF=위조★ ·비교·매회 출제·

[정의] 매 회차 비교 문제가 나오는 단골. 결정적 차이를 ★XSS=실행, CSRF=위조★ 여섯 글자로 — XSS는 스크립트 실행(execute), CSRF는 요청 위조(forge).

[표] XSS vs CSRF

비교축 XSS CSRF
핵심 동작 악성 스크립트 실행 위조 요청 전송
쿠키 탈취 O(스크립트로 읽기) X(탈취 않고 이용만)
공격 위치 피해자 브라우저 안 피해자 → 서버로 요청
방어 핵심 입력 필터링·CSP·HttpOnly CSRF 토큰·SameSite
CIA 침해 기밀성·무결성 무결성(위조된 행위)

🔑 암기 ★XSS=실행, CSRF=위조★ — 쿠키 탈취 여부가 핵심. XSS=엿보기(도청기 설치), CSRF=사칭(이름으로 편지 대필). ⚠️ 함정 CSRF의 CIA 침해는 무결성(기밀성 아님 — 쿠키를 탈취하지 않으므로). XSS는 기밀성·무결성 둘 다. 🎯 빈출 한 문제에 둘을 같이 넣고 차이를 고르게 한다. 뒤의 세션 고정·하이재킹까지 합친 4종 비교도 대비. 📝 기출 기출 3·기출 7 (CSRF·CIA 매칭)

클릭재킹 — 보이지 않는 버튼을 누르게 ·클릭재킹·간헐·

[정의] 클릭재킹(Clickjacking) = 투명한 iframe 위에 가짜 UI를 겹쳐, 사용자가 '좋아요'를 누른 줄 알지만 실제로는 '결제 승인'을 누르게 만드는 공격. '클릭을 납치'한다.

[표] 클릭재킹 한눈에

항목 내용
원리 투명 iframe + 겹친 가짜 버튼 → 의도하지 않은 클릭 유도
방어 X-Frame-Options: DENY 또는 CSP frame-ancestors 'none'
효과 내 사이트가 타 사이트 iframe 안에 들어가지 못하게 차단

🔑 암기 'iframe' + 'X-Frame-Options' 두 키워드가 함께 보이면 정답 클릭재킹. ⚠️ 함정 CSRF와 헷갈리지 말 것 — CSRF는 '요청 자체를 위조', 클릭재킹은 '정상 버튼을 눈속임으로 누르게'. 공통점은 '의도하지 않은 행위 유발'. 🎯 빈출 단독으로 'iframe + X-Frame-Options' 키워드 매칭.

웹 공격 3대장 ★웹3=인XC★ + OWASP Top 10 ·종합·간헐·

[정의] 웹 공격 3대장을 ★웹3=인XC★로 — 젝션·XSS·CSRF. 매 회차 합산 2~3문제가 이 셋에서 나온다. OWASP Top 10 = 전 세계 웹 보안 취약점을 정리하는 국제 표준 목록.

[표] 웹 공격 3대장

두음 공격 본질
Injection ★인=데명경계★ 데이터·명령 경계 파괴
X XSS ★저반돔★ 남의 브라우저에서 스크립트 실행
C CSRF 인증 세션 이용한 요청 위조

🔑 암기 ★웹3=인XC★ — 인젝션·XSS·CSRF. OWASP Top 10은 '웹 애플리케이션에서 가장 위험한 취약점 목록'이라는 정의·성격을 묻는다(정확한 순위가 아니라). ⚠️ 함정 OWASP 순위는 2~3년 주기로 개정 — 특정 순위를 통째로 외우는 함정에 빠지지 말 것. 접근 통제(Broken Access Control)는 최신 개정에서도 1위, 인젝션은 늘 상위권. 🎯 빈출 "OWASP가 보이면?" → 웹 애플리케이션 보안 표준 목록. 'Injection이 Top 10에 포함된다'는 항상 참. 💡 OWASP Top 10은 2017→2021→2025로 개정돼 왔다. 2021 기준 Injection 3위였으나 2025 개정에서 5위로 내려갔고, Broken Access Control은 계속 1위다. 시험은 순위 암기가 아니라 'OWASP=웹 취약점 국제 표준'이라는 개념을 묻는다.


대단원 3 — 기타 웹 취약점 ★업디세★

파일 업로드(Webshell) — 웹으로 서버 쉘 장악 ·기타 웹·단골·

[정의] 기타 웹 취약점 3종을 ★업디세★로 — 파일로드(Webshell)·렉터리 순회·션 공격. 첫 번째 Webshell = 공격자가 악성 스크립트 파일(.php·.jsp 등)을 업로드한 뒤, 브라우저로 그 파일에 접근해 서버 쉘을 원격 조종하는 공격.

[표] Webshell 공격 단계 vs 방어

단계 방어
① 악성 파일 업로드 확장자 화이트리스트(.jpg·.png만 허용)
② 확장자 우회(.php.jpg) MIME 타입 재검증 + Null Byte 차단
③ 업로드 후 실행 실행 권한 제거 + 파일명 랜덤화
④ 쉘 명령 실행 WAF + 서버 최소 권한

🔑 암기 ★업디세★의 '업'. 방어 1차선 = 서버측 확장자 화이트리스트. ②(업로드)를 막으면 ③④가 자동 차단된다. ⚠️ 함정 "Webshell 방어 = 클라이언트 JS 검증으로 충분" ❌ → 반드시 서버측 화이트리스트 + 실행 권한 제거. 클라이언트 검증은 우회된다. 🎯 빈출 '악성 파일 업로드 + 웹으로 원격 명령 실행' 조합 → Webshell. 📝 기출 기출 5 (Webshell) 💡 가짜 직원증으로 관리사무소에 들어가 중앙 제어실 열쇠를 복사하는 것 — 한 번 성공하면 서버 전체를 브라우저만으로 조종한다.

디렉터리 순회 — ../로 시스템 파일 엿보기 ·기타 웹·단골·

[정의] 디렉터리 순회(Directory Traversal·경로 조작) = URL·파일 경로에 ../를 반복해 웹 서버 허용 폴더 밖으로 빠져나가 /etc/passwd 같은 시스템 파일을 읽는 공격.

[표] 디렉터리 순회 한눈에

항목 내용
정상 http://site/files?name=report.pdf
공격 http://site/files?name=../../../etc/passwd
우회 URL 인코딩 %2e%2e%2f·유니코드 변환
방어 경로 정규화(canonicalize) + 화이트리스트 파일명

🔑 암기 ..//etc/passwd가 함께 보이면 무조건 디렉터리 순회 — 이 공격의 고유 시그니처. ⚠️ 함정 "블랙리스트로 ../만 차단하면 된다" ❌ → %2e%2e%2f 같은 인코딩 우회가 있다. 경로 정규화 후 허용 범위 검사(화이트리스트)가 근본. 🎯 빈출 '상대 경로·루트 디렉터리 외부·시스템 파일 접근' → 디렉터리 순회. 대상은 파일시스템(SQLi는 DB). 📝 기출 기출 4 (디렉터리 순회) 💡 도서관에서 '3층 열람실만 이용 가능'인데 계단으로 지하 서고까지 내려가 비밀 문서를 꺼내오는 것.

세션 고정 vs 세션 하이재킹 — 순서가 정반대 ·기타 웹·단골·

[정의] ★업디세★의 '세'. 세션 ID를 노리는 공격 2종 — 순서(로그인 전/후)와 방향(심기/훔치기)이 정반대. 49강의 세션 하이재킹(인증된 토큰 탈취)을 웹 레벨로 잇는다.

[표] 세션 고정 vs 하이재킹

구분 세션 고정(Fixation) 세션 하이재킹(Hijacking)
순서 로그인 공격 로그인 공격
방법 공격자가 자기 세션 ID를 피해자에게 심기 피해자의 기존 세션 ID를 훔치기
비유 내 집 열쇠를 남에게 미리 줌 남의 집 열쇠를 몰래 복사
방어 로그인 성공 시 세션 ID 재발급 HttpOnly·Secure + 세션 만료

🔑 암기 '심기 vs 훔치기' — 고정=공격자 세션을 피해자에게, 하이재킹=피해자 세션을 공격자가. 고정 방어는 로그인 성공 시점 세션 ID 재발급 한 방. ⚠️ 함정 "세션 고정과 하이재킹은 같은 공격" ❌ → 순서가 정반대. 세션 하이재킹은 진입 경로가 둘 — 네트워크 레벨 패킷 캡처(49강) vs 웹 레벨 XSS로 쿠키 탈취. 🎯 빈출 '로그인 전에 세션 ID를 심는다' → 고정. '인증된 세션을 가로챈다' → 하이재킹. 💡 49강에서 세션 하이재킹을 '이미 인증된 토큰 탈취'로 봤다면, 웹에선 그 탈취 경로가 XSS다(HttpOnly가 막아야 하는 이유).


대단원 4 — 악성코드와 랜섬웨어

악성코드 분류 — 7종 + 신종 3인방 ★바웜트★ ·악성코드·빈출·

[정의] 악성코드를 자기복제 여부로 분류한다. 49강 ★바웜트★(바이러스·웜·트로이)를 그대로 회수 — 3대장의 자기복제·숙주 차이가 핵심.

[표] 악성코드 7종(자기복제 기준)

유형 핵심 1줄 자기복제
이러스 숙주 파일에 기생, 실행 시 감염 O
네트워크 자체 전파, 숙주 불필요 O
로이 목마 정상 프로그램 위장, 백도어 설치 X
스파이웨어 몰래 정보 수집·전송 X
애드웨어 강제 광고 노출 X
키로거 키보드 입력 기록 X
봇(Bot) 원격 조종(봇넷 → DDoS 동원) X

[표] 신종 악성코드 3인방(2020년 이후·정의 매칭 출제)

유형 핵심 1줄 방어
크립토재킹 피해자 CPU로 몰래 암호화폐 채굴 자원 사용 모니터링
폼재킹 결제 페이지에 스크립트 삽입 → 카드 정보 탈취 무결성 검증·CSP
파일리스 디스크에 파일 없이 메모리에서만 동작 EDR(행위 기반 탐지)

🔑 암기 자기복제 O = 바이러스·웜 / X = 트로이·스파이·애드·키로거·봇. 바이러스=숙주 필요(접촉 전파), 웜=숙주 불필요(공기 전파). 봇 수만 대 = 봇넷 → DDoS(49강 회수). ⚠️ 함정 "트로이 목마는 자기복제한다" ❌ → 위장만, 복제 X. 파일리스는 디스크 흔적이 없어 기존 안티바이러스로 탐지가 어렵다 → EDR이 답. 🎯 빈출 악성코드 분류(자기복제·숙주). '피해자 자원으로 암호화폐 채굴' → 크립토재킹. 💡 파일리스는 PowerShell·WMI 같은 정상 도구를 악용해 메모리에서만 실행되는 '발자국 없는 도둑' — EDR은 발자국 대신 행동 패턴을 추적한다.

랜섬웨어 ★랜=암잠신★ — 파일을 인질로 잡는 공격 ·랜섬웨어·빈출·

[정의] 랜섬웨어 = 파일을 암호화해 접근을 막고 복호화 대가로 몸값을 요구하는 악성코드. 정보보호 3요소(47강 ★기무가★) 중 가용성 침해가 핵심 — 파일 접근 자체를 차단한다. 유형 3종을 ★랜=암잠신★으로.

[표] ★랜=암잠신★ — 랜섬웨어 3종

두음 유형 대표 사례 핵심
암호화형(Crypto) WannaCry·CryptoLocker 파일 암호화 → 복호화 키 요구
화면잠금형(Locker) WinLocker 화면 잠금(파일은 무사)
신종(RaaS) LockBit·REvil·BlackCat 서비스형(구독 모델)

[표] 감염 경로 & 방어

항목 내용
감염 경로 악성 이메일(피싱·최다)·드라이브 바이 다운로드·공급망 공격
방어(백업 3-2-1) 3개 복사본·2가지 매체·1개 오프라인(물리 분리)
사고 대응 KISA 보호나라(118) 신고 / 몸값 지불 금지

🔑 암기 ★랜=암잠신★ — 암호화·잠금·신종(RaaS). 침해 = 가용성(47강 ★기무가★의 '가'). 오프라인 백업이 마지막 보루(네트워크 연결 드라이브는 함께 암호화된다). ⚠️ 함정 "랜섬웨어 주 침해 = 무결성" ❌ → 가용성. "몸값 지불 = 가장 빠른 복구" ❌ → 지불해도 복호화 보장이 없고 재공격 타깃이 된다(국제 공동 권고 = 지불 금지). 🎯 빈출 "랜섬웨어 침해 CIA?" → 가용성. 대표 사례 WannaCry(2017·EternalBlue 취약점·전 세계 대규모 확산). 📝 기출 기출 6 (랜섬웨어 특징 소거) 💡 RaaS(Ransomware as a Service) = 구독형으로 사서 쓰는 모델 — 제작 실력 없이도 공격이 가능해 피해가 폭증했다. 최근 트렌드는 다중 갈취(암호화 + 데이터 유출 협박 + DDoS 위협 동시).


대단원 5 — 공격 ↔ CIA 매트릭스

공격 vs CIA 매트릭스 — 한 장으로 끝내기 ·종합·매회 출제·

[정의] 50강의 모든 공격이 정보보호 3요소(47강 ★기무가★ — 기밀성·무결성·가용성) 중 무엇을 침해하는지 매핑. CIA가 '지켜야 할 방패'라면 공격은 '그 방패를 뚫는 창'.

[표] 공격 ↔ CIA

공격 기밀성 무결성 가용성
SQL Injection O O
XSS O O -
CSRF - O -
디렉터리 순회 O - -
클릭재킹 - O -
랜섬웨어 - - O
크립토재킹 - - O(성능 저하)

🔑 암기 '서버를 노리면 기밀·무결, 사용자를 속이면 무결, 파일을 잠그면 가용'. CSRF=무결성, 랜섬웨어=가용성 두 줄만 잡으면 매칭 함정 통과. ⚠️ 함정 ① SQLi 주 침해는 기밀·무결(가용성은 DROP 특수) ② CSRF는 기밀성 아님(탈취 X) → 무결성 ③ 랜섬웨어는 무결성 아님 → 가용성. 🎯 빈출 공격 유형 + CIA를 짝지어 묻는 통합형이 최근 트렌드. 매 회차 단골. 📝 기출 기출 7 (공격-CIA 매칭)


기출 다지기

[기출 1 출제] 다음 설명에 해당하는 웹 공격으로 가장 적절한 것은? (해당하는 것 고르기)

사용자로부터 입력받은 값을 검증 없이 데이터베이스 질의문의 일부로 사용할 때 발생하며, 공격자가 입력값에 악의적 질의 구문을 포함시켜 DB 정보를 무단으로 조회·변경·삭제하는 공격이다.

  • ① Cross-Site Request Forgery(CSRF)
  • ② SQL Injection
  • ③ Directory Traversal
  • ④ Clickjacking
정답 및 해설 보기

정답: ② SQL Injection

보기 판정 이유
① CSRF 인증 세션 이용한 요청 위조 — DB 질의문과 무관
SQL Injection DB 질의문에 악성 구문 삽입 — 지문과 정확히 매칭
③ Directory Traversal ../로 파일시스템 접근 — DB 무관
④ Clickjacking iframe 위 투명 버튼 — UI 기반

🔑 암기 '데이터베이스 질의문'·' OR '1'='1이 보이면 즉답 SQL Injection. ★인=데명경계★.

[기출 2 출제] 크로스 사이트 스크립팅(XSS) 유형과 설명이 올바르게 짝지어진 것은? (올바르게 짝지어진 것 고르기)

  • ① Stored XSS — URL 파라미터에 스크립트를 삽입하여 일회성 공격 수행
  • ② Reflected XSS — 악성 스크립트를 DB에 저장하여 지속적 피해 발생
  • ③ DOM-based XSS — 서버를 거치지 않고 클라이언트 측에서 DOM을 조작
  • ④ Stored XSS — 서버를 거치지 않고 브라우저 메모리에서만 동작
정답 및 해설 보기

정답: ③ DOM-based XSS

보기 ★저반돔★ 대입 판정
① Stored + URL·일회성 'URL·일회'는 Reflected 설명
② Reflected + DB·지속 'DB 저장·지속'은 Stored 설명
DOM-based + 서버 미경유·DOM 조작 정확 ✅ 정답
④ Stored + 서버 미경유·메모리 '서버 미경유·메모리'는 DOM 설명

🔑 암기 ★저반돔★ — '저장·지속'=Stored, 'URL·일회'=Reflected, '서버 미경유'=DOM. 짝을 이루는 개념엔 항상 설명 바꿔치기 함정이 숨는다.

[기출 3 출제] CSRF(Cross-Site Request Forgery) 공격에 대한 설명으로 옳지 않은 것은? (옳지 않은 것 고르기)

  • ① 피해자가 인증된 상태에서 공격자가 의도한 요청을 서버에 전송하게 한다
  • ② 피해자의 세션 쿠키를 직접 탈취하여 공격자 브라우저에서 사용한다
  • ③ 방어책으로 CSRF 토큰(일회용 난수)을 사용할 수 있다
  • ④ 피해자가 악성 페이지를 방문하는 것만으로도 공격이 실행될 수 있다
정답 및 해설 보기

정답: ② 피해자의 세션 쿠키를 직접 탈취하여 사용한다

보기 판정 분석
① 인증 상태 이용 ✅ 옳음 CSRF의 정확한 정의
쿠키 직접 탈취 ❌ 정답 탈취는 XSS의 동작 — CSRF는 탈취 않고 이용만
③ CSRF 토큰 ✅ 옳음 대표 방어책
④ 악성 페이지 방문 ✅ 옳음 img/form 태그로 자동 요청 전송

🔑 암기 '탈취·훔치다·읽다'가 보이면 CSRF가 아니라 XSS. ★XSS=실행, CSRF=위조★ — CSRF는 훔치지 않는다, 이용한다.

[기출 4 출제] 다음 설명에 해당하는 공격 기법은? (해당하는 것 고르기)

파일 이름을 입력받아 처리할 때 입력값에 상대 경로 문자(../)를 삽입하여, 웹 서버 루트 디렉터리 외부의 시스템 파일(/etc/passwd 등)에 접근하는 공격이다.

  • ① SQL Injection
  • ② Brute Force
  • ③ Directory Traversal
  • ④ Session Hijacking
정답 및 해설 보기

정답: ③ Directory Traversal

보기 판정 이유
① SQL Injection DB 질의문 조작 — 파일시스템 접근 아님
② Brute Force 비밀번호 무차별 대입 — 파일 접근 아님
Directory Traversal ✅ 정답 ../로 제한 경로 외부 파일 접근
④ Session Hijacking 세션 탈취 — 파일 접근 아님

🔑 암기 ../·/etc/passwd·'상대 경로'·'루트 외부'는 디렉터리 순회 고유 시그니처. 대상=파일시스템(SQLi는 DB).

[기출 5 출제] 다음 설명에 해당하는 공격으로 옳은 것은? (해당하는 것 고르기)

웹 서버 취약점을 이용해 악성 스크립트 파일을 업로드한 후, 웹 브라우저를 통해 원격으로 서버의 시스템 명령을 실행할 수 있게 하는 공격이다.

  • ① SYN Flooding
  • ② Webshell
  • ③ Keylogger
  • ④ Ransomware
정답 및 해설 보기

정답: ② Webshell

보기 판정 이유
① SYN Flooding TCP 3-way 악용 DoS(45·49강) — 파일 업로드 무관
Webshell ✅ 정답 악성 파일 업로드 → 웹으로 시스템 쉘 원격 실행
③ Keylogger 키보드 입력 기록 — 파일 업로드 무관
④ Ransomware 파일 암호화 후 몸값 요구 — 쉘 실행 무관

🔑 암기 '업로드 + 원격 명령 실행' 조합 = Webshell. 1차 방어 = 서버측 확장자 화이트리스트. 네트워크 계층 공격(SYN Flooding)을 끼워넣는 함정에 주의.

[기출 6 출제] 랜섬웨어(Ransomware)의 특징에 해당하지 않는 것은? (해당하지 않는 것 고르기)

  • ① 사용자의 파일을 암호화하여 접근을 차단한다
  • ② 암호화된 파일의 복호화를 조건으로 금전을 요구한다
  • ③ 이메일 첨부파일이나 악성 웹사이트를 통해 감염될 수 있다
  • ④ TCP 연결 요청을 대량으로 보내 서버 자원을 소진시킨다
정답 및 해설 보기

정답: ④ TCP 연결 요청을 대량으로 보내 서버 자원을 소진시킨다

보기 판정 분석
① 파일 암호화·접근 차단 ✅ 옳음 랜섬웨어 핵심(가용성 침해)
② 복호화 대가 금전 요구 ✅ 옳음 랜섬웨어 정의
③ 이메일·악성 웹사이트 감염 ✅ 옳음 대표 감염 경로
TCP 대량 연결 ❌ 정답 SYN Flooding(네트워크 DoS·49강)

🔑 암기 랜섬웨어·SYN Flooding 둘 다 가용성 침해지만 메커니즘이 정반대 — 파일 잠금 vs 자원 고갈. ★랜=암잠신★.

[기출 7 출제] 웹 공격과 주된 침해 보안 요소(CIA)가 잘못 짝지어진 것은? (잘못 짝지어진 것 고르기)

  • ① SQL Injection — 기밀성
  • ② CSRF — 기밀성
  • ③ 랜섬웨어 — 가용성
  • ④ 디렉터리 순회 — 기밀성
정답 및 해설 보기

정답: ② CSRF — 기밀성

보기 판정 분석
① SQLi → 기밀성 ✅ 옳음 DB 정보 무단 조회(무결성도 해당)
CSRF → 기밀성 ❌ 정답 CSRF는 쿠키 탈취(기밀성)가 아니라 무결성(위조)
③ 랜섬웨어 → 가용성 ✅ 옳음 파일 접근 차단
④ 디렉터리 순회 → 기밀성 ✅ 옳음 시스템 파일 무단 열람

🔑 암기 47강 ★기무가★ + ★XSS=실행, CSRF=위조★. CSRF는 위조이므로 무결성 침해.

[기출 8 출제] SQL Injection 방어 대책으로 옳지 않은 것은? (옳지 않은 것 고르기)

  • ① Prepared Statement(파라미터 바인딩)로 쿼리 구조를 고정한다
  • ② 사용자 입력을 문자열로 연결하여 동적으로 SQL을 생성한다
  • ③ 입력값을 화이트리스트 기반으로 검증한다
  • ④ DB 계정에 필요한 최소 권한만 부여한다
정답 및 해설 보기

정답: ② 사용자 입력을 문자열로 연결하여 동적으로 SQL을 생성한다

보기 ★준검권W★ 대입 판정
① Prepared Statement 준(최고 방어) ✅ 옳음
문자열 연결 동적 SQL 방어가 아니라 SQLi의 원인 ❌ 정답
③ 입력 화이트리스트 검증 검(보조) ✅ 옳음
④ 최소 권한 권(피해 축소) ✅ 옳음

🔑 암기 ★준검권W★ — 문자열 연결 동적 SQL은 Prepared Statement의 정반대. 1순위 방어는 항상 Prepared Statement.


한 장 요약

50강 두음 8총사 — 시험장 30초 즉답 카드

두음 풀이 한 줄
★인=데명경계★ 인젝션 공통 원리 데이터·명령 경계 파괴
★에유블시★ SQLi 4유형 Error·Union·Blind·Time
★준검권W★ SQLi 방어 4축 Prepared(1순위)·검증·권한·WAF
★저반돔★ XSS 3종 Stored·Reflected·DOM
★XSS=실행, CSRF=위조★ 결정적 차이 스크립트 실행 vs 요청 위조
★웹3=인XC★ 웹 공격 3대장 Injection·XSS·CSRF
★업디세★ 기타 웹 3종 Upload·Directory·Session
★랜=암잠신★ 랜섬웨어 3종 암호화·잠금·신종(RaaS)

외우는 순서 — ★웹3=인XC★로 큰 그림을 잡고, 인젝션(★인=데명경계·에유블시·준검권W★) → XSS(★저반돔★) → CSRF(★XSS=실행, CSRF=위조★) → 기타(★업디세·랜=암잠신★) 순으로 채운다.

핵심 매핑 — 즉답

질문 즉답
인젝션 공통 원리 데이터·명령 경계 파괴
SQLi 1순위 방어 Prepared Statement
XSS 세션 쿠키 탈취 차단 HttpOnly
CSRF 대표 방어 CSRF 토큰 + SameSite
클릭재킹 방어 X-Frame-Options
디렉터리 순회 시그니처 ../ + /etc/passwd
Webshell 1차 방어 서버측 확장자 화이트리스트
세션 고정 방어 로그인 성공 시 세션 ID 재발급
트로이 목마 자기복제 X(위장만)
랜섬웨어 침해 CIA 가용성
파일리스 방어 EDR(행위 기반)

핵심 함정 (모두 X — 보기에 나오면 오답)

오답 ❌ 정답 ✅
SQLi 주 침해 = 가용성 기밀성·무결성
Prepared Statement = 보조 방어 최고 방어
Stored XSS = 한 번만 피해 DB 저장 → 지속 감염
CSRF = 쿠키를 탈취 탈취 X, 이용 O
DOM XSS = 서버 로그로 탐지 쉬움 서버 미경유 → 로그 안 남음
Webshell = 클라이언트 JS 검증으로 충분 서버측 화이트리스트 필수
트로이 목마 = 자기복제 복제 X(위장)
랜섬웨어 주 침해 = 무결성 가용성
몸값 지불 = 가장 빠른 복구 지불 금지 권고

연결 지도: 47강 ★기무가★(CIA) → SQLi·XSS=기밀·무결, CSRF=무결성, 랜섬웨어=가용성. 49강 세션 하이재킹(네트워크 레벨) → 웹 레벨 XSS 쿠키 탈취. 49강 ★바웜트★·봇넷 → 50강 악성코드 7종·봇넷 DDoS. 45강 TCP 3-way → 기출의 SYN Flooding 소거. 50강 공격(창) → 51강 보안 솔루션(방패) 방화벽·IDS·IPS·VPN — 오늘 배운 공격 하나하나에 대응하는 방어로 잇는다.

50강 한 문장: "웹 공격은 신뢰할 수 없는 입력을 신뢰해서 생기고, 랜섬웨어는 클릭 한 번으로 가용성을 인질로 잡는다."

전체 목록 필기 이론

합격까지

정처기, 혼자 막막하다면

초개인화 학습앱 Klue와 에듀윌 온라인강의로 합격까지 이어가세요.