문서 읽는 데 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와 에듀윌 온라인강의로 합격까지 이어가세요.