웹 보안은 공격 원리, 코드 수준 대응, 로그 해석이 한꺼번에 나오는 단골 영역입니다. 같은 공격이라도 어디서 어떻게 막는지까지 말할 수 있어야 만점이 나옵니다. 이번 8문제는 그 관점으로 구성했습니다.
이 문제들은 학습용으로 직접 만든 예상문제이며 실제 시험과 다를 수 있습니다. 최신 출제 범위와 일정은 KISA 등 공식 공지를 확인하세요. 정답과 해설은 접혀 있으니, 먼저 스스로 답을 적어 본 뒤 눌러서 확인하세요.
XSS 공격의 세 가지 유형을 쓰고, 방어 방법 세 가지를 쓰시오.
정답 유형: 저장형(Stored), 반사형(Reflected), DOM 기반. 방어: 출력 시 HTML 인코딩(이스케이프), 콘텐츠 보안 정책(CSP) 적용, 쿠키에 HttpOnly 설정
저장형은 게시글처럼 서버에 저장된 스크립트가 다른 사용자에게 실행되는 유형, 반사형은 URL 파라미터가 응답에 그대로 반영되는 유형입니다. DOM 기반은 서버를 거치지 않고 브라우저의 자바스크립트가 입력을 처리하다가 발생합니다. 입력 검증도 필요하지만 핵심은 출력 인코딩입니다.
CSRF의 공격 원리를 설명하고 XSS와 구별되는 점, 대응 방법 두 가지를 쓰시오.
정답 CSRF는 로그인된 사용자의 브라우저가 공격자가 의도한 요청을 자신의 권한으로 서버에 보내게 만드는 공격이다. 대응: CSRF 토큰(요청마다 예측 불가능한 값 검증), SameSite 쿠키 속성, 중요 작업 재인증
XSS는 사용자 브라우저에서 악성 스크립트를 실행시켜 사이트가 사용자를 신뢰하는 점을 노리고, CSRF는 서버가 브라우저의 요청을 신뢰하는 점을 노립니다. Referer와 Origin 헤더 검증도 보조 수단으로 씁니다.
아래 쿼리에서 id 입력란에 admin’ — (끝에 공백 포함)를 넣으면 어떻게 되는지 쓰고, 근본적인 대응 방법을 쓰시오.
SELECT * FROM users WHERE id='$id' AND pw='$pw'
정답 실제 실행 쿼리가 SELECT * FROM users WHERE id=’admin’ — ‘ AND pw=” 가 되어 — 뒤가 주석 처리되므로 비밀번호 검사 없이 admin으로 로그인된다. 대응: Prepared Statement(바인딩 변수) 사용
MySQL에서 한 줄 주석 –는 뒤에 공백이 있어야 주석으로 동작합니다(# 도 사용 가능). 입력값 검증, 최소 권한 DB 계정, 오류 메시지 숨김은 보조 방어입니다.
응답 화면에 쿼리 결과가 직접 나오지 않을 때 쓰는 블라인드 SQL 인젝션의 두 가지 방식을 쓰고, 예시 구문을 하나씩 쓰시오.
정답 불린 기반: id=1 AND 1=1 과 id=1 AND 1=2 의 응답 차이로 참·거짓 판별. 시간 기반: id=1 AND SLEEP(5) (MySQL)처럼 응답 지연으로 판별
공격자는 이런 참·거짓 질문을 한 글자씩 반복해서 DB 이름이나 데이터를 추출합니다. 같은 요청이 짧은 시간에 수백 번 들어오는 로그가 탐지 단서가 됩니다.
게시판 파일 업로드 기능으로 웹쉘이 올라가는 공격을 막기 위한 대응 방법 네 가지를 쓰시오.
정답 ① 서버 측에서 확장자 화이트리스트 검증 ② 업로드 디렉터리의 스크립트 실행 권한 제거 ③ 저장 파일명을 무작위로 변경 ④ 파일 내용(시그니처)과 크기 검증
클라이언트 쪽 자바스크립트 검증은 우회가 쉬워서 반드시 서버에서 확인해야 합니다. 업로드 파일은 웹 루트 밖에 저장하고 다운로드 스크립트로만 제공하는 방법도 많이 씁니다.
download.php?file=../../../../etc/passwd 와 같은 요청이 들어올 때 공격 유형을 쓰고, 대응 방법 두 가지를 쓰시오. 이 공격은 URL 인코딩으로 어떻게 변형될 수 있는가.
정답 디렉터리 트래버설(경로 조작). 대응: 파일 경로를 정규화한 뒤 허용된 기준 디렉터리 안인지 검사, 파일명을 직접 받지 않고 식별자와 매핑하는 화이트리스트 방식. 변형: ../ 를 %2e%2e%2f 로 인코딩해 필터를 우회한다.
단순히 ../ 문자열을 지우는 필터는 ….// 같은 입력으로 우회되기도 하므로 입력을 치환하는 방식보다 정규화 후 검사를 권장합니다.
서버가 사용자가 입력한 URL의 내용을 대신 가져오는 기능에서 발생하는 SSRF 공격의 위험과 대응 방법을 클라우드 환경을 예로 들어 쓰시오.
정답 공격자가 서버를 이용해 내부망이나 169.254.169.254 같은 클라우드 메타데이터 주소에 요청을 보내 임시 자격 증명 등을 탈취할 수 있다. 대응: 허용 도메인 화이트리스트, 내부·링크로컬 대역 차단, 리다이렉트 제한, 메타데이터 서비스는 토큰 방식(IMDSv2) 사용
방화벽은 외부에서 내부로의 접근은 막지만, SSRF는 신뢰받는 내부 서버가 요청을 대신하므로 방화벽을 우회합니다.
다음 목적에 맞는 HTTP 응답 헤더를 쓰시오. (가) HTTPS 강제 (나) 브라우저의 MIME 타입 추측 방지 (다) 클릭재킹 방지를 위한 프레임 삽입 제한 (라) 스크립트·리소스 출처 제한
정답 (가) Strict-Transport-Security (나) X-Content-Type-Options: nosniff (다) X-Frame-Options (또는 CSP의 frame-ancestors) (라) Content-Security-Policy
HSTS는 한 번 접속한 뒤 정해진 기간 동안 브라우저가 HTTP 접속을 자동으로 HTTPS로 바꾸게 합니다. 보안 헤더는 적용 비용이 낮은 방어이니 설정 위치(웹 서버 설정)까지 함께 알아 두세요.
면책: 이 글의 문제는 학습용으로 직접 만든 예상문제이며 실제 시험과 다를 수 있습니다. 시험 범위, 일정, 합격 기준은 KISA 등 공식 공지를 확인하세요.
미국 정부가 한 해 동안 국채 이자로 낸 돈이 처음으로 1조 달러를 넘었습니다. 2026회계연도(2025년 10월~2026년…
11월에 일정이 있는 정보처리산업기사 시험을 정리했습니다. 접수, 시험, 합격 발표 날짜를 한 번에 볼 수…
11월에 일정이 있는 정보처리기사 시험을 정리했습니다. 접수, 시험, 합격 발표 날짜를 한 번에 볼 수…
디지털 포렌식은 용어와 절차가 정해져 있어서 한 번 정리해 두면 가장 효율이 좋은 영역입니다. 증거를…
침해사고 분석 문제는 로그를 보고 무슨 일이 벌어졌는지 읽어내는 능력을 묻습니다. 정답이 한 줄로 끝나지…
시스템 보안은 리눅스와 윈도를 오가며 파일 위치, 로그, 명령어를 묻는 문제가 많습니다. 외워야 할 게…