icon

안동민 개발노트

8장 : 실전 문제풀이와 모의고사

어플리케이션보안·암호·접근통제 혼합

어플리케이션보안, 암호학, 접근통제, 보안모델을 섞어 실전형으로 풉니다.

어플리케이션보안, 암호학, 접근통제, 보안모델을 섞어 실전형으로 풉니다.

이번 절에서는 아래 영역을 섞어서 풉니다.

어플리케이션보안
암호학
접근통제
보안모델

이번 절의 목표는 단순 암기가 아니라, 문제를 보고 어떤 개념을 묻는지 즉시 판별하는 능력을 만드는 것입니다.


진행 방식

진행 순서는 다음과 같습니다.

1. 어플리케이션보안 필기형 문제
2. 어플리케이션보안 실기형 답안 작성
3. 어플리케이션보안 상황형 문제
4. 암호학 필기형 문제
5. 암호학 실기형 답안 작성
6. 접근통제·보안모델 필기형 문제
7. 접근통제·보안모델 실기형 답안 작성
8. 오답 포인트 정리
9. 8장 2절 과제

문제풀이 기준은 다음입니다.

SQL Injection = DB 공격
XSS = 브라우저 공격
CSRF = 요청 위조
파일 업로드 = 서버 악성 파일 실행 위험
IDOR = 객체 ID 조작
JWT = 서명·만료·민감정보 금지
해시 = 일방향, 무결성
전자서명 = 인증·무결성·부인방지
DAC = 소유자
MAC = 보안등급
RBAC = 역할
ABAC = 속성
Bell-LaPadula = 기밀성
Biba = 무결성

어플리케이션보안 필기형 문제

문제 1

HTTP의 특징으로 가장 적절한 것은?

A. 연결 상태를 자동으로 계속 기억하는 상태 기반 프로토콜이다.
B. 웹에서 클라이언트와 서버가 요청과 응답을 주고받는 프로토콜이다.
C. IP 주소를 MAC 주소로 변환한다.
D. 파일을 암호화하고 금전을 요구한다.

정답: B

HTTP는 웹에서 클라이언트와 서버가 요청과 응답을 주고받는 응용 계층 프로토콜입니다.

핵심 키워드
HTTP
요청·응답
무상태
응용 계층

문제 2

HTTP가 무상태 프로토콜이라는 의미로 가장 적절한 것은?

A. 모든 요청이 자동으로 암호화된다.
B. 세션 탈취가 절대 발생하지 않는다.
C. 서버가 이전 요청 상태를 자동으로 기억하지 않는다.
D. 쿠키 없이도 로그인 상태가 자동 유지된다.

정답: C

HTTP는 기본적으로 각 요청을 독립적으로 처리합니다.
그래서 로그인 상태 유지를 위해 쿠키와 세션이 필요합니다.


문제 3

GET 방식의 보안상 주의점으로 적절한 것은?

A. 요청 데이터가 URL에 포함될 수 있어 민감정보 전송에 부적절하다.
B. 모든 데이터가 자동 암호화된다.
C. 서버가 이전 요청을 자동으로 기억한다.
D. DB 권한을 최소화한다.

정답: A

GET 요청의 Query String은 URL, 브라우저 기록, 웹 로그, 프록시 로그 등에 남을 수 있습니다.


문제 4

POST 방식에 대한 설명으로 적절한 것은?

A. URL에만 데이터를 넣을 수 있다.
B. 요청 본문에 데이터를 포함할 수 있지만, HTTPS 없이는 암호화가 보장되지 않는다.
C. 민감정보 전송 시 HTTPS가 필요 없다.
D. IP 주소를 MAC 주소로 변환한다.

정답: B

POST는 Body에 데이터를 담을 수 있지만, HTTP라면 평문 전송될 수 있습니다.
민감정보는 HTTPS로 전송해야 합니다.


문제 5

쿠키와 세션의 차이로 적절한 것은?

A. 쿠키는 클라이언트에 저장되고, 세션은 서버에서 사용자 상태를 관리한다.
B. 쿠키는 서버에만 저장되고, 세션은 항상 브라우저에 저장된다.
C. 쿠키와 세션은 모두 네트워크 장비의 MAC 주소이다.
D. 쿠키는 암호화 알고리즘이고, 세션은 해시 함수이다.

정답: A

쿠키는 브라우저에 저장될 수 있고, 세션은 서버가 사용자 상태를 관리하는 방식입니다.


문제 6

HttpOnly 쿠키 속성의 목적은?

A. 다른 사이트 요청에서 쿠키 전송을 제한한다.
B. HTTPS에서만 쿠키가 전송되도록 한다.
C. 쿠키의 유효기간을 무한대로 만든다.
D. JavaScript에서 쿠키 접근을 제한한다.

정답: D

HttpOnly는 XSS로 인한 세션 쿠키 탈취 위험을 줄이는 데 도움이 됩니다.


문제 7

Secure 쿠키 속성의 목적은?

A. JavaScript에서 쿠키 접근을 제한한다.
B. HTTPS 통신에서만 쿠키가 전송되도록 한다.
C. 모든 도메인에 쿠키를 전송한다.
D. 쿠키의 유효기간을 무한대로 만든다.

정답: B

Secure 속성은 쿠키가 HTTPS 연결에서만 전송되도록 합니다.


문제 8

SameSite 쿠키 속성의 보안 효과로 적절한 것은?

A. 다른 사이트에서 발생한 요청에 쿠키가 자동 전송되는 것을 제한하여 CSRF 위험을 줄인다.
B. SQL Injection을 완전히 제거한다.
C. 파일 확장자를 검증한다.
D. 서버의 운영체제를 패치한다.

정답: A

SameSite는 CSRF 완화에 도움이 되는 쿠키 속성입니다.


문제 9

인증과 인가의 차이로 가장 적절한 것은?

A. 인증은 감사 로그 작성, 인가는 세션 만료 설정이다.
B. 인증은 권한 확인, 인가는 신원 확인이다.
C. 인증은 신원 확인, 인가는 권한 확인이다.
D. 인증은 해시이고, 인가는 암호화이다.

정답: C
인증 = 너 누구야?
인가 = 너 이거 해도 돼?

문제 10

SQL Injection의 주요 발생 원인으로 가장 적절한 것은?

A. Prepared Statement를 사용한다.
B. HTTPS를 사용한다.
C. 쿠키에 HttpOnly를 설정한다.
D. 사용자 입력값을 검증하지 않고 SQL 문자열에 직접 결합한다.

정답: D

SQL Injection의 핵심 원인은 입력값이 SQL 명령어처럼 해석되는 것입니다.

오답 포인트: Prepared Statement는 원인이 아니라 대표적인 대응책입니다. HTTPS는 전송 구간 암호화이고, HttpOnly는 쿠키 탈취 완화에 가까우므로 SQL 구문 조작 자체를 막는 단서가 아닙니다.


문제 11

SQL Injection 대응책으로 가장 핵심적인 것은?

A. 모든 DB 권한 부여
B. Prepared Statement 사용
C. 상세 DB 오류 메시지 노출
D. 입력값을 SQL 문자열에 직접 연결

정답: B

Prepared Statement는 SQL 구조와 사용자 입력값을 분리합니다.

오답 포인트: DB 권한 전체 부여와 상세 오류 노출은 피해 범위와 정보 노출을 키웁니다. 입력값 직접 연결은 SQL Injection의 발생 원인이므로, 문제에서 “구조와 데이터 분리”가 보이면 Prepared Statement를 고릅니다.


문제 12

다음 중 SQL Injection으로 발생할 수 있는 피해가 아닌 것은?

A. 인증 우회
B. 개인정보 유출
C. DB 데이터 변조
D. ICMP 브로드캐스트 증폭

정답: D

ICMP 브로드캐스트 증폭은 Smurf Attack과 관련됩니다.

오답 포인트: 인증 우회, 개인정보 유출, DB 변조는 모두 DB 질의가 공격자 의도대로 실행될 때 발생할 수 있습니다. ICMP 브로드캐스트 증폭은 네트워크 계층의 DDoS 유형이므로 웹 DB 공격과 구분합니다.


문제 13

XSS에 대한 설명으로 가장 적절한 것은?

A. 사용자 인증 상태를 이용해 요청을 위조하는 공격
B. SQL 구문을 DB에 삽입하는 공격
C. 악성 스크립트가 사용자 브라우저에서 실행되는 공격
D. 네트워크 대역폭을 고갈시키는 공격

정답: C

XSS는 브라우저에서 악성 스크립트가 실행되는 공격입니다.

오답 포인트: CSRF는 “로그인 상태를 악용한 요청 위조”, SQL Injection은 “DB 질의 조작”이 핵심입니다. 문제에 브라우저, 스크립트, 쿠키 탈취, 피싱 화면 변조가 보이면 XSS로 판별합니다.


문제 14

Stored XSS의 설명으로 적절한 것은?

A. 요청 파라미터가 응답에 반사되어 즉시 실행된다.
B. 악성 스크립트가 서버에 저장된 후 조회하는 사용자 브라우저에서 실행된다.
C. 브라우저의 DOM 처리 과정에서만 발생한다.
D. TCP 연결 대기 자원을 고갈시킨다.

정답: B

Stored XSS는 게시글, 댓글, 프로필처럼 서버에 저장되는 입력값에서 발생할 수 있습니다.

오답 포인트: Reflected XSS는 요청값이 응답에 바로 반사되는 형태이고, DOM-based XSS는 클라이언트 스크립트의 DOM 조작 과정이 핵심입니다. “저장 후 여러 사용자가 조회”라는 단서가 있으면 Stored XSS입니다.


문제 15

Reflected XSS의 설명으로 가장 적절한 것은?

A. 조작된 요청 파라미터가 서버 응답에 반사되어 브라우저에서 실행된다.
B. 악성 스크립트가 DB에 저장되어 반복 실행된다.
C. 파일 업로드 경로에서 스크립트가 실행된다.
D. DNS 응답이 위조된다.

정답: A

Reflected XSS는 조작된 URL, 피싱 링크와 결합되기 쉽습니다.

오답 포인트: DB나 게시판에 지속 저장되는 경우는 Stored XSS입니다. DNS 응답 위조나 파일 업로드 실행은 공격 지점이 다르므로, “요청 파라미터가 응답에 반사”되는지 확인합니다.


문제 16

XSS 대응에서 가장 핵심적인 조치는?

A. GET 방식으로 비밀번호 전송
B. DB 권한 전체 부여
C. 출력값 인코딩
D. 업로드 파일 실행 허용

정답: C

XSS는 사용자 입력값이 브라우저에서 코드로 실행되지 않도록 출력 문맥에 맞게 인코딩해야 합니다.

오답 포인트: 입력값 검증도 보조 대책이지만 HTML, JavaScript, URL, 속성값 등 출력 위치별 인코딩이 빠지면 핵심 대응이 약합니다. DB 권한 부여나 업로드 실행 허용은 XSS 방어와 무관하거나 위험한 조치입니다.


문제 17

CSRF에 대한 설명으로 가장 적절한 것은?

A. 악성 스크립트를 사용자 브라우저에서 실행하는 공격
B. 입력값에 SQL 구문을 삽입하는 공격
C. 악성 스크립트를 서버에 저장하는 공격
D. 로그인된 사용자의 인증 상태를 악용해 원치 않는 요청을 보내게 하는 공격

정답: D

CSRF는 사용자의 로그인 상태를 악용하는 요청 위조 공격입니다.

오답 포인트: XSS는 공격 스크립트가 브라우저에서 실행되는 것이고, CSRF는 사용자가 의도하지 않은 정상 형식의 요청이 전송되는 것이 핵심입니다. “로그인된 세션 쿠키가 자동 전송”된다는 단서가 나오면 CSRF를 의심합니다.


문제 18

CSRF 대응책으로 가장 적절하지 않은 것은?

A. CSRF Token 검증
B. SameSite 쿠키 설정
C. 중요 기능 재인증
D. GET 요청으로 비밀번호 변경 허용

정답: D

상태 변경 기능은 GET으로 처리하면 안 됩니다.
POST 등 적절한 메서드와 CSRF Token을 사용해야 합니다.

오답 포인트: CSRF Token, SameSite, 중요 기능 재인증은 요청의 출처와 사용자 의도를 확인하기 위한 대책입니다. GET으로 비밀번호 변경을 허용하면 링크 클릭이나 이미지 로딩만으로도 상태 변경이 발생할 수 있어 부적절합니다.


문제 19

파일 업로드 취약점 대응책으로 적절하지 않은 것은?

A. 허용 확장자 방식 적용
B. 파일 시그니처 검증
C. 업로드 디렉터리 실행 권한 제거
D. 업로드 파일을 웹 루트에 저장하고 실행 허용

정답: D

업로드 파일이 웹 서버에서 실행되면 웹셸 공격으로 이어질 수 있습니다.


문제 20

웹셸에 대한 설명으로 적절한 것은?

A. 업로드 파일의 MIME Type을 검증하는 절차
B. 웹 서버에서 실행되어 공격자가 서버 명령 실행이나 파일 조작을 수행할 수 있게 하는 악성 스크립트
C. 해시 함수의 충돌을 방지하는 값
D. 사용자의 생체 인증 오류율

정답: B

웹셸은 파일 업로드 취약점과 자주 연결됩니다.


문제 21

IDOR 취약점의 설명으로 가장 적절한 것은?

A. 정상 요청을 재전송하는 공격
B. 악성 스크립트를 사용자 브라우저에서 실행하는 공격
C. 객체 식별자를 조작하여 권한 없는 타인의 자원에 접근하는 취약점
D. ICMP 요청을 대량 전송하는 공격

정답: C

IDOR는 접근통제 취약점입니다.


문제 22

Mass Assignment 취약점의 설명으로 적절한 것은?

A. 요청한 객체의 소유자를 서버에서 검증하지 않는 취약점
B. 입력값을 SQL 문자열에 직접 결합하는 취약점
C. JWT Payload에 민감정보를 저장하는 취약점
D. 클라이언트가 보낸 필드를 제한 없이 객체에 반영해 권한 등 중요 값이 변경될 수 있는 취약점

정답: D

예를 들어 일반 사용자가 role=admin 필드를 보내고 서버가 그대로 반영하면 위험합니다.

오답 포인트: IDOR는 객체 ID 조작과 소유권 검증 실패가 핵심이고, Mass Assignment는 허용되지 않은 필드까지 자동 바인딩되는 문제가 핵심입니다. role, isAdmin, price처럼 클라이언트가 바꾸면 안 되는 속성이 단서입니다.


문제 23

JWT 사용 시 보안상 주의사항으로 적절하지 않은 것은?

A. 서명 검증을 수행한다.
B. 만료시간을 설정한다.
C. Payload에 비밀번호와 주민등록번호를 저장한다.
D. HTTPS로 전송한다.

정답: C

JWT Payload는 쉽게 디코딩될 수 있습니다.
민감정보를 넣으면 안 됩니다.

오답 포인트: JWT의 서명은 위변조 검증을 위한 것이지 Payload 암호화를 보장하는 기능이 아닙니다. 서명 검증, 만료시간, HTTPS 전송은 필요한 보호조치이므로 “Payload에 민감정보 저장”을 틀린 보기로 고릅니다.


문제 24

API 보안대책으로 가장 적절하지 않은 것은?

A. 매 요청마다 인증과 인가 검증
B. 입력값 검증
C. Rate Limiting 적용
D. 클라이언트에서 버튼을 숨겼으므로 서버 권한 검증 생략

정답: D

클라이언트 제어는 우회 가능합니다.
권한 검증은 반드시 서버에서 해야 합니다.

오답 포인트: 클라이언트 버튼 숨김은 화면 표시만 바꿀 뿐 요청 자체를 막지 못합니다. API 문제에서는 인증, 인가, 입력값 검증, 호출량 제한을 서버에서 검증하는지가 실전 판별 단서입니다.


문제 25

시큐어 코딩 원칙으로 적절하지 않은 것은?

A. 입력값 검증
B. 출력값 인코딩
C. 오류 메시지 상세 노출
D. Prepared Statement 사용

정답: C

상세 오류 메시지는 DB 구조, 서버 경로, 내부 정보를 노출할 수 있습니다.


어플리케이션보안 실기형 답안 작성

실기 문제 1

문제: HTTP의 무상태 특성과 쿠키·세션이 필요한 이유를 설명하시오.

모범 답안

HTTP는 각 요청을 독립적으로 처리하며 이전 요청 상태를 자동으로 기억하지 않는 무상태 프로토콜이다. 따라서 로그인 상태와 사용자 식별 정보를 유지하기 위해 쿠키와 세션을 사용하며, 일반적으로 서버는 세션을 생성하고 클라이언트는 세션 ID를 쿠키로 전송한다.

채점 포인트

HTTP 무상태
이전 요청 상태 기억하지 않음
로그인 상태 유지
쿠키와 세션
세션 ID

실기 문제 2

문제: GET과 POST의 차이와 보안상 주의점을 설명하시오.

모범 답안

GET은 주로 데이터 조회에 사용되며 요청 데이터가 URL에 포함될 수 있어 브라우저 기록이나 로그에 남기 쉽기 때문에 민감정보 전송에 부적절하다. POST는 요청 본문에 데이터를 포함하여 전송이나 등록 처리에 사용되지만, 암호화가 보장되는 것은 아니므로 로그인 정보나 개인정보 전송 시 HTTPS를 적용해야 한다.

실기 문제 3

문제: 쿠키 보안 속성 HttpOnly, Secure, SameSite를 설명하시오.

모범 답안

HttpOnly는 JavaScript에서 쿠키에 접근하지 못하도록 하여 XSS로 인한 쿠키 탈취 위험을 줄인다. Secure는 HTTPS 통신에서만 쿠키가 전송되도록 하며, SameSite는 다른 사이트에서 발생한 요청에 쿠키가 자동 전송되는 것을 제한하여 CSRF 위험을 완화한다.

실기 문제 4

문제: SQL Injection의 개념과 대응 방안을 설명하시오.

모범 답안

SQL Injection은 웹 애플리케이션의 입력값에 악의적인 SQL 구문을 삽입하여 데이터베이스를 비정상적으로 조회, 수정, 삭제하거나 인증을 우회하는 공격이다. 대응 방안으로 SQL 구조와 입력값을 분리하는 Prepared Statement를 사용하고, 입력값 검증, DB 권한 최소화, 오류 메시지 노출 제한, WAF 적용, 로그 모니터링을 수행해야 한다.

실기 문제 5

문제: Prepared Statement가 SQL Injection 방어에 효과적인 이유를 설명하시오.

모범 답안

Prepared Statement는 SQL문의 구조를 미리 정의하고 사용자 입력값을 파라미터로 바인딩하여 SQL 구문과 데이터를 분리한다. 따라서 입력값에 SQL 문법이 포함되더라도 명령어로 실행되지 않고 데이터로 처리되어 SQL Injection을 방지할 수 있다.

실기 문제 6

문제: XSS의 개념과 대응 방안을 설명하시오.

모범 답안

XSS는 웹 애플리케이션이 사용자 입력값을 안전하게 처리하지 않아 악성 스크립트가 다른 사용자의 브라우저에서 실행되는 공격이다. 이를 통해 쿠키 탈취, 세션 하이재킹, 피싱, 화면 변조가 발생할 수 있으며, 대응 방안으로 출력값 인코딩, 입력값 검증, CSP 적용, HttpOnly·Secure 쿠키 설정, WAF 적용 등이 있다.

실기 문제 7

문제: Stored XSS, Reflected XSS, DOM-based XSS의 차이를 설명하시오.

모범 답안

Stored XSS는 악성 스크립트가 게시글이나 댓글처럼 서버에 저장된 뒤 이를 조회하는 사용자 브라우저에서 실행되는 공격이다. Reflected XSS는 요청 파라미터가 서버 응답에 반사되어 실행되는 공격이며, DOM-based XSS는 클라이언트 측 JavaScript가 외부 입력값을 안전하지 않게 DOM에 삽입하여 발생하는 공격이다.

실기 문제 8

문제: CSRF의 개념과 대응 방안을 설명하시오.

모범 답안

CSRF는 사용자가 웹사이트에 로그인된 상태를 악용하여 사용자가 의도하지 않은 요청을 서버에 전송하게 만드는 공격이다. 대응 방안으로 예측 불가능한 CSRF Token을 생성해 서버에서 검증하고, SameSite 쿠키 설정, Origin/Referer 검증, 중요 기능 재인증, GET 방식의 상태 변경 금지를 적용해야 한다.

실기 문제 9

문제: XSS와 CSRF의 차이를 설명하시오.

모범 답안

XSS는 웹페이지에 삽입된 악성 스크립트가 사용자 브라우저에서 실행되어 쿠키 탈취, 피싱, 화면 변조 등을 유발하는 공격이다. CSRF는 사용자가 로그인된 상태를 악용하여 사용자가 의도하지 않은 요청을 서버에 전송하게 만드는 공격으로, 핵심 대응은 CSRF Token과 SameSite 쿠키 설정이다.

실기 문제 10

문제: 파일 업로드 취약점의 위험과 대응 방안을 설명하시오.

모범 답안

파일 업로드 취약점은 업로드 파일의 확장자, 내용, 크기, 저장 위치, 실행 권한 등을 검증하지 않아 웹셸이나 악성 파일이 서버에 업로드·실행될 수 있는 취약점이다. 대응 방안으로 허용 확장자 방식, MIME Type과 파일 시그니처 검증, 파일 크기 제한, 파일명 난수화, 웹 루트 외부 저장, 업로드 디렉터리 실행 권한 제거, 접근통제, 악성코드 검사를 적용해야 한다.

실기 문제 11

문제: IDOR 취약점의 개념과 대응 방안을 설명하시오.

모범 답안

IDOR는 사용자가 요청 파라미터의 객체 식별자를 조작하여 권한 없는 타인의 자원에 접근하는 접근통제 취약점이다. 대응 방안으로 서버 측에서 매 요청마다 사용자 권한과 자원 소유자를 검증하고, 역할 기반 접근통제를 적용하며, 단순 순번 ID 노출을 줄이고 비정상 객체 ID 순차 접근을 로그로 모니터링해야 한다.

실기 문제 12

문제: JWT 사용 시 보안상 주의사항을 설명하시오.

모범 답안

JWT는 JSON 형식의 클레임을 담고 서명을 통해 위변조 여부를 검증할 수 있는 토큰 기반 인증 방식이다. 보안 운영을 위해 서명 검증, 안전한 알고리즘 사용, 짧은 만료시간 설정, Payload에 민감정보 저장 금지, HTTPS 전송, 토큰 탈취 대비 폐기·재발급 정책, 권한 클레임 검증이 필요하다.

실기 문제 13

문제: API 보안 대책을 설명하시오.

모범 답안

API 보안을 위해 모든 요청에 인증을 적용하고, 사용자가 요청한 자원에 접근할 권한이 있는지 서버 측에서 검증해야 한다. 또한 입력값 검증, 응답 데이터 최소화, Rate Limiting, 토큰 만료와 폐기 정책, Mass Assignment 방지, CORS 제한, 오류 메시지 노출 제한, API 호출 로그 기록을 적용해야 한다.

어플리케이션보안 상황형 문제

상황 문제 1

로그인 요청에서 사용자 ID와 비밀번호가 URL Query String에 포함되어 있다.
웹 서버 접근 로그에도 password=1234 형태의 값이 남아 있다.

의심 문제

GET 방식으로 민감정보 전송
민감정보 로그 노출

대응 방안

로그인 요청은 POST 사용
HTTPS 적용
민감정보 URL 포함 금지
로그 마스킹
로그에 비밀번호 기록 금지

모범 답안

비밀번호가 URL Query String과 웹 로그에 남아 있으므로 민감정보 전송과 로그 관리가 부적절한 상황이다. 로그인 정보는 GET이 아니라 POST 요청 본문으로 전송하고 HTTPS를 적용해야 하며, 로그에는 비밀번호나 인증 토큰이 평문으로 기록되지 않도록 마스킹 또는 제외 처리해야 한다.

상황 문제 2

검색 기능의 keyword 파라미터에 SQL 관련 문자열과 특수문자가 반복적으로 포함되어 있고,
동일 URL에서 500 오류가 다수 발생했다.

의심 공격

SQL Injection 시도

대응 방안

Prepared Statement
입력값 검증
오류 메시지 제한
WAF 탐지
웹·DB 로그 분석
DB 권한 최소화

모범 답안

검색 파라미터에 SQL 관련 문자열과 특수문자가 반복되고 500 오류가 발생하므로 SQL Injection 시도로 의심할 수 있다. 해당 요청과 출발지 IP를 분석하고, Prepared Statement 적용 여부, 입력값 검증, 오류 메시지 노출 제한, DB 권한 최소화, WAF 정책과 웹·DB 로그를 점검해야 한다.

상황 문제 3

게시판 댓글에 저장된 악성 스크립트가 게시글을 조회하는 사용자 브라우저에서 반복 실행되었다.

의심 공격

Stored XSS

대응 방안

출력값 인코딩
입력값 검증
위험 HTML 제한
CSP
HttpOnly 쿠키
저장 데이터 정제

모범 답안

악성 스크립트가 게시판 댓글에 저장된 후 다른 사용자 조회 시 실행되므로 Stored XSS로 의심할 수 있다. 댓글 출력 시 문맥에 맞는 출력값 인코딩을 적용하고, 입력값 검증과 위험 HTML 제한, CSP, HttpOnly 쿠키 설정을 적용하며 저장된 악성 데이터를 정제해야 한다.

상황 문제 4

사용자가 은행 사이트에 로그인된 상태에서 외부 사이트를 방문한 후,
본인이 요청하지 않은 계좌 설정 변경 요청이 발생했다.
요청에는 CSRF Token이 없었다.

의심 공격

CSRF

대응 방안

CSRF Token
SameSite
Origin/Referer 검증
중요 기능 재인증
GET 상태 변경 금지

모범 답안

사용자가 로그인된 상태에서 외부 사이트를 통해 의도하지 않은 설정 변경 요청이 발생했고 CSRF Token이 없으므로 CSRF 공격으로 의심할 수 있다. 상태 변경 요청에는 예측 불가능한 CSRF Token을 포함해 서버에서 검증하고, SameSite 쿠키, Origin/Referer 검증, 중요 기능 재인증, GET 방식의 상태 변경 금지를 적용해야 한다.

상황 문제 5

이미지 업로드 기능에서 확장자가 .jpg인 파일이 업로드되었다.
하지만 실제 파일 내용은 이미지가 아니며, 업로드 후 해당 파일 URL로 접근하자 서버 측 코드가 실행되었다.

의심 문제

파일 업로드 취약점
웹셸 업로드 가능성
확장자만 검증
업로드 디렉터리 실행 허용

대응 방안

MIME Type과 파일 시그니처 검증
허용 확장자 방식
웹 루트 외부 저장
실행 권한 제거
파일명 난수화
악성코드 검사

모범 답안

확장자는 이미지처럼 보이지만 실제 내용이 이미지가 아니고 업로드 후 서버 측 코드가 실행되었으므로 파일 업로드 취약점 또는 웹셸 업로드로 의심할 수 있다. 허용 확장자 방식뿐 아니라 MIME Type과 파일 시그니처를 함께 검증하고, 업로드 파일은 웹 루트 외부에 저장하며 업로드 디렉터리의 실행 권한을 제거해야 한다.

상황 문제 6

일반 사용자가 /api/users/100 요청 후,
userId 값을 101로 바꾸자 다른 사용자의 개인정보가 조회되었다.

의심 취약점

IDOR
BOLA
접근통제 취약점

대응 방안

서버 측 권한 검증
객체 소유자 확인
역할 기반 접근통제
순차 ID 접근 탐지
로그 모니터링

모범 답안

사용자가 객체 식별자인 userId 값을 조작하여 타인의 개인정보를 조회할 수 있으므로 IDOR 또는 BOLA 취약점으로 볼 수 있다. 서버는 매 요청마다 인증된 사용자에게 해당 객체 접근 권한과 소유권이 있는지 검증하고, 권한 없는 요청은 403으로 차단하며, 순차 ID 접근 시도를 로그로 모니터링해야 한다.

상황 문제 7

회원정보 수정 API에서 일반 사용자가 요청 Body에 role=admin 값을 추가하자 관리자 권한이 부여되었다.

의심 취약점

Mass Assignment

대응 방안

허용 필드만 명시적 반영
권한·역할 필드 클라이언트 입력 무시
DTO 사용
서버 측 중요 값 결정

모범 답안

클라이언트가 보낸 role 필드가 서버 객체에 그대로 반영되어 관리자 권한이 부여되었으므로 Mass Assignment 취약점으로 볼 수 있다. 서버는 클라이언트가 보낸 모든 필드를 자동 반영하지 말고 허용된 필드만 명시적으로 매핑해야 하며, 권한과 역할 같은 중요 값은 서버 측 정책에 따라 결정해야 한다.

암호학 필기형 문제

문제 1

기밀성과 가장 관련 깊은 기술은?

A. 파일 삭제
B. 해시 충돌 탐지
C. 암호화
D. 화면 밝기 조절

정답: C

암호화는 권한 없는 사용자가 내용을 이해하지 못하도록 하므로 기밀성과 관련됩니다.


문제 2

해시 함수의 특징으로 적절하지 않은 것은?

A. 임의 길이 데이터를 고정 길이 값으로 변환한다.
B. 일방향성을 가진다.
C. 원칙적으로 원문 복원이 어렵다.
D. 올바른 키가 있으면 반드시 복호화된다.

정답: D

해시는 복호화가 아닙니다.
복호화는 암호화와 관련됩니다.


문제 3

대칭키 암호의 특징으로 적절한 것은?

A. 공개키와 개인키를 사용한다.
B. 암호화와 복호화에 같은 키를 사용한다.
C. 원문 복원이 불가능하다.
D. 서명자 인증과 부인방지만 제공한다.

정답: B

대칭키 암호는 같은 비밀키를 사용합니다.


문제 4

공개키 암호의 특징으로 적절한 것은?

A. 암호화와 복호화에 반드시 같은 키를 사용한다.
B. 키 분배 문제가 대칭키보다 항상 더 어렵다.
C. 해시값만 생성한다.
D. 공개키와 개인키 한 쌍을 사용한다.

정답: D

공개키 암호는 공개키와 개인키 한 쌍을 사용합니다.


문제 5

AES에 대한 설명으로 적절한 것은?

A. 충돌 취약성이 있는 해시 함수이다.
B. 대표적인 대칭키 블록암호이다.
C. 전자서명 인증기관이다.
D. 인증서 폐지 목록이다.

정답: B

AES는 대표적인 현대 대칭키 블록암호입니다.


문제 6

DES가 현대 환경에서 안전하지 않은 이유는?

A. 키 교환 프로토콜만 제공하기 때문이다.
B. 공개키를 사용하기 때문이다.
C. 키 길이가 짧아 무차별 대입 공격에 취약하다.
D. 해시 함수이기 때문이다.

정답: C

DES는 실질적으로 56비트 키를 사용합니다.


문제 7

ECB 모드의 보안상 문제점은?

A. nonce 재사용 시에만 안전하다.
B. IV를 사용해서 항상 안전하다.
C. 무결성과 인증을 함께 제공한다.
D. 같은 평문 블록이 같은 암호문 블록으로 나타나 패턴이 노출된다.

정답: D

ECB는 패턴 노출 문제로 일반 데이터 암호화에 부적절합니다.


문제 8

GCM 모드의 특징으로 적절한 것은?

A. 같은 평문 블록이 항상 같은 암호문이 된다.
B. 기밀성뿐 아니라 무결성과 인증을 함께 제공할 수 있다.
C. 비밀번호 저장용 해시 함수이다.
D. 인증서 폐지 상태를 실시간 질의한다.

정답: B

GCM은 인증 암호 모드입니다.


문제 9

MD5와 SHA-1의 보안상 문제는?

A. 공개키 인증서라서 폐지 확인이 어렵다.
B. 대칭키 암호라서 너무 빠르다.
C. 충돌 취약성이 알려져 보안 목적 사용을 지양해야 한다.
D. 무조건 복호화된다.

정답: C

MD5와 SHA-1은 충돌 취약성 때문에 안전한 해시로 보지 않습니다.


문제 10

비밀번호 저장 방식으로 가장 적절한 것은?

A. 평문 저장
B. Base64 인코딩 저장
C. 사용자별 솔트와 느린 해시 방식 적용
D. URL Query String에 저장

정답: C

비밀번호는 솔트와 비밀번호 해시 방식을 사용해야 합니다.


문제 11

솔트의 효과로 적절한 것은?

A. 모든 사용자에게 동일한 해시값을 강제한다.
B. 비밀번호를 복호화 가능하게 만든다.
C. 전자서명을 검증한다.
D. 같은 비밀번호라도 사용자마다 다른 해시값이 생성되도록 한다.

정답: D

솔트는 레인보우 테이블 공격 완화에 도움이 됩니다.


문제 12

HMAC에 대한 설명으로 적절한 것은?

A. 송신자의 개인키로 서명하고 공개키로 검증한다.
B. 해시 함수와 공유 비밀키를 이용해 메시지 무결성과 인증을 제공한다.
C. 공개키와 신원 정보를 CA가 보증한다.
D. 도메인 이름을 IP 주소로 변환한다.

정답: B

HMAC은 비밀키 기반 메시지 인증 코드입니다.


문제 13

전자서명이 제공하는 보안 속성은?

A. 송신 내용을 자동으로 암호화해 기밀성만 제공
B. 기밀성만
C. 가용성만
D. 인증, 무결성, 부인방지

정답: D

전자서명은 개인키로 서명하고 공개키로 검증합니다.


문제 14

전자서명 생성에 사용하는 키는?

A. 송신자의 공개키
B. 수신자의 공개키
C. 송신자의 개인키
D. CA의 공개키만

정답: C

전자서명은 송신자의 개인키로 생성하고 송신자의 공개키로 검증합니다.


문제 15

PKI의 구성요소로 적절하지 않은 것은?

A. CA
B. RA
C. 인증서
D. chmod 777

정답: D

chmod 777은 파일 권한 설정입니다.
PKI 구성요소가 아닙니다.


문제 16

CRL과 OCSP의 차이로 적절한 것은?

A. CRL은 파일 권한, OCSP는 계정 권한이다.
B. CRL은 폐지 목록 다운로드, OCSP는 특정 인증서 상태 실시간 질의이다.
C. 둘 다 대칭키 암호이다.
D. 둘 다 HTTP 메서드이다.

정답: B

CRL과 OCSP는 인증서 폐지 여부 확인 방식입니다.


문제 17

Diffie-Hellman 키 교환의 목적은?

A. 전자서명 값을 장기 보관한다.
B. 파일을 압축한다.
C. 비밀키를 직접 전송하지 않고 공유 비밀값을 합의한다.
D. 사용자 계정을 삭제한다.

정답: C

Diffie-Hellman은 키 교환 방식입니다.


문제 18

Diffie-Hellman을 인증 없이 사용할 때의 위험은?

A. 인증서 폐지 목록을 자동 삭제한다.
B. 해시값이 항상 복호화된다.
C. 파일 권한이 777로 바뀐다.
D. 중간자 공격에 취약할 수 있다.

정답: D

상대방 인증이 없으면 공격자가 중간에서 키 교환을 가로챌 수 있습니다.


암호학 실기형 답안 작성

실기 문제 1

문제: 대칭키 암호와 공개키 암호의 차이를 설명하시오.

모범 답안

대칭키 암호는 암호화와 복호화에 같은 비밀키를 사용하는 방식으로 속도가 빠르고 대량 데이터 암호화에 적합하지만 키 분배가 어렵다. 공개키 암호는 공개키와 개인키 한 쌍을 사용하는 방식으로 키 분배 문제를 완화하고 전자서명과 인증에 활용될 수 있으나 대칭키 방식보다 속도가 느리다.

실기 문제 2

문제: 암호화와 해시의 차이를 설명하시오.

모범 답안

암호화는 기밀성 보호를 위해 평문을 암호문으로 변환하고 올바른 키로 복호화할 수 있는 방식이다. 반면 해시는 임의 길이 데이터를 고정 길이 해시값으로 변환하는 일방향 함수로, 원칙적으로 원문 복원이 불가능하며 무결성 검증과 비밀번호 저장에 활용된다.

실기 문제 3

문제: 비밀번호 저장 시 솔트가 필요한 이유를 설명하시오.

모범 답안

솔트는 비밀번호 해시 계산 시 함께 사용하는 사용자별 임의 값으로, 동일한 비밀번호라도 서로 다른 해시값이 생성되도록 한다. 이를 통해 레인보우 테이블 공격과 동일 비밀번호 사용자 식별을 어렵게 하고, 공격자가 사용자별로 해시를 다시 계산해야 하므로 사전 공격 비용을 증가시킬 수 있다.

실기 문제 4

문제: MAC/HMAC과 전자서명의 차이를 설명하시오.

모범 답안

MAC/HMAC은 송수신자가 공유한 비밀키를 이용해 메시지 인증값을 생성하여 무결성과 메시지 인증을 제공한다. 그러나 같은 비밀키를 양측이 공유하므로 제3자에게 누가 생성했는지 증명하기 어려워 부인방지를 제공하기 어렵고, 전자서명은 송신자의 개인키로 서명하고 공개키로 검증하므로 인증, 무결성, 부인방지를 제공한다.

실기 문제 5

문제: 전자서명의 개념과 제공하는 보안 속성을 설명하시오.

모범 답안

전자서명은 송신자가 자신의 개인키로 메시지 또는 메시지 해시값에 서명하고, 수신자가 송신자의 공개키로 이를 검증하는 기술이다. 이를 통해 서명자 인증, 데이터 무결성, 부인방지를 제공할 수 있다.

실기 문제 6

문제: PKI의 개념과 구성요소를 설명하시오.

모범 답안

PKI는 공개키 암호를 안전하게 사용하기 위해 공개키와 사용자 신원을 인증서로 연결하고 이를 발급·검증·폐지하는 공개키 기반 구조이다. 주요 구성요소로는 인증서를 발급·서명하는 CA, 신청자 신원을 확인하는 RA, 인증서, 인증서 저장소, 폐지 목록인 CRL, 인증서 상태를 실시간 확인하는 OCSP 등이 있다.

실기 문제 7

문제: HTTPS 인증서 검증 절차를 설명하시오.

모범 답안

HTTPS 접속 시 브라우저는 서버 인증서가 신뢰된 루트 CA까지 이어지는 인증서 체인을 갖는지 확인하고, 각 인증서의 전자서명을 검증한다. 또한 인증서 유효기간, 접속 도메인과 인증서 도메인의 일치 여부, CRL 또는 OCSP를 통한 폐지 여부, 인증서 사용 목적과 서명 알고리즘의 안전성을 확인한다.

접근통제·보안모델 필기형 문제

문제 1

식별의 의미로 가장 적절한 것은?

A. 사용자가 사용자 ID 등으로 자신을 제시하는 과정
B. 사용자의 신원이 맞는지 확인하는 과정
C. 권한이 있는지 판단하는 과정
D. 로그를 삭제하는 과정

정답: A

식별은 “나는 user01입니다”라고 주장하는 과정입니다.


문제 2

인증의 의미로 가장 적절한 것은?

A. 사용자가 주장하는 신원이 맞는지 확인하는 절차
B. 사용자에게 어떤 권한이 있는지 판단하는 절차
C. 모든 로그를 삭제하는 절차
D. 파일을 압축하는 절차

정답: A

인증은 신원 확인입니다.


문제 3

인가의 의미로 가장 적절한 것은?

A. 인증된 사용자가 특정 자원에 접근할 권한이 있는지 확인하는 절차
B. 사용자가 누구인지 주장하는 절차
C. 비밀번호를 해시하는 절차
D. 인증서를 폐지하는 절차

정답: A

인가는 권한 확인입니다.


문제 4

DAC의 설명으로 적절한 것은?

A. 객체 소유자가 접근 권한을 설정할 수 있다.
B. 보안등급과 중앙 정책에 따라 강제 통제한다.
C. 역할에 권한을 부여한다.
D. 속성 기반으로 접근을 결정한다.

정답: A

DAC는 임의적 접근통제입니다.

오답 포인트: DAC는 객체 소유자의 재량이 핵심이고, MAC는 중앙 정책과 보안등급이 핵심입니다. 역할은 RBAC, 사용자·자원·행위·환경 속성 조합은 ABAC로 구분합니다.


문제 5

MAC의 설명으로 적절한 것은?

A. 보안등급과 중앙 정책에 따라 접근을 강제로 통제한다.
B. 객체 소유자가 마음대로 권한을 부여한다.
C. 사용자 역할에 권한을 부여한다.
D. HTTP 요청을 분석한다.

정답: A

MAC는 강제적 접근통제입니다.

오답 포인트: MAC에서는 객체 소유자가 마음대로 권한을 바꾸는 것이 아니라 조직의 보안정책과 등급에 따라 강제됩니다. “군사 보안등급, 중앙 정책, 강제”가 보이면 MAC입니다.


문제 6

RBAC의 설명으로 적절한 것은?

A. 역할에 권한을 부여하고 사용자를 역할에 배정한다.
B. 보안등급과 중앙 정책만 사용한다.
C. 객체 소유자가 권한을 임의로 설정한다.
D. 키스트림을 생성한다.

정답: A

RBAC는 역할 기반 접근통제입니다.

오답 포인트: RBAC는 사용자에게 직접 권한을 하나씩 붙이는 방식보다 역할에 권한을 묶고 사용자를 역할에 배정하는 구조입니다. 부서, 직무, 직책 같은 단서가 나오면 RBAC와 연결합니다.


문제 7

ABAC의 설명으로 적절한 것은?

A. 사용자, 자원, 행위, 환경 속성을 조합하여 접근 여부를 결정한다.
B. 객체 소유자만 권한을 설정한다.
C. 항상 군사 보안등급만 사용한다.
D. 해시값을 생성한다.

정답: A

ABAC는 속성 기반 접근통제입니다.

오답 포인트: ABAC는 역할 하나만 보지 않고 시간, 위치, 단말, 행위, 데이터 등 여러 속성을 정책으로 조합합니다. 같은 사용자라도 접속 위치나 업무 시간에 따라 결과가 달라지는 문제가 나오면 ABAC입니다.


문제 8

최소권한 원칙의 설명으로 적절한 것은?

A. 업무 수행에 필요한 최소한의 권한만 부여한다.
B. 모든 사용자에게 관리자 권한을 부여한다.
C. 모든 계정을 공유한다.
D. 로그를 보관하지 않는다.

정답: A

최소권한은 권한 오남용과 피해 범위를 줄입니다.


문제 9

직무분리의 목적은?

A. 승인, 실행, 감사 기능을 분리하여 부정행위와 권한 남용을 방지한다.
B. 한 사람이 모든 권한을 갖도록 한다.
C. 모든 로그를 삭제한다.
D. 개인정보를 영구 보관한다.

정답: A

직무분리는 내부통제의 핵심입니다.


문제 10

MFA의 설명으로 적절한 것은?

A. 서로 다른 인증 요소를 2개 이상 결합한다.
B. 비밀번호만 여러 번 입력한다.
C. 인증을 생략한다.
D. 모든 계정을 공유한다.

정답: A

비밀번호 + OTP, 비밀번호 + 인증서, 비밀번호 + 지문 등이 MFA입니다.


문제 11

FAR의 의미로 적절한 것은?

A. 비인가 사용자를 정상 사용자로 잘못 받아들이는 비율
B. 정상 사용자를 잘못 거부하는 비율
C. 인증서 폐지 목록
D. 연간 손실 예상액

정답: A

FAR은 오인식률입니다.


문제 12

FRR의 의미로 적절한 것은?

A. 정상 사용자를 잘못 거부하는 비율
B. 비인가 사용자를 정상 사용자로 허용하는 비율
C. 방화벽 규칙
D. 전자서명 값

정답: A

FRR은 오거부율입니다.


문제 13

Bell-LaPadula 모델의 주요 목표는?

A. 기밀성
B. 무결성
C. 업무연속성
D. 정보보호 공시

정답: A

Bell-LaPadula는 기밀성 모델입니다.

오답 포인트: Bell-LaPadula는 정보가 낮은 등급으로 흘러가는 것을 막는 기밀성 모델입니다. 무결성 보호가 중심이면 Biba, 상업적 거래 무결성과 직무분리는 Clark-Wilson으로 구분합니다.


문제 14

Bell-LaPadula 모델의 규칙으로 올바른 것은?

A. No Read Up, No Write Down
B. No Read Down, No Write Up
C. 잘 형성된 트랜잭션
D. 과거 접근 이력 기반 통제

정답: A

Bell-LaPadula는 기밀성 유출 방지 모델입니다.

오답 포인트: No Read Up은 낮은 등급 주체가 높은 등급 객체를 읽지 못하게 하고, No Write Down은 높은 등급 정보가 낮은 등급으로 기록되는 것을 막습니다. Biba의 No Read Down, No Write Up과 방향을 반대로 외우면 안 됩니다.


문제 15

Biba 모델의 주요 목표는?

A. 무결성
B. 기밀성
C. 전자서명
D. DDoS 방어

정답: A

Biba는 무결성 모델입니다.

오답 포인트: Biba는 낮은 신뢰도의 정보가 높은 무결성 대상을 오염시키는 것을 막는 모델입니다. Bell-LaPadula가 기밀성, Biba가 무결성이라는 목표 차이를 먼저 잡으면 규칙도 덜 헷갈립니다.


문제 16

Biba 모델의 규칙으로 올바른 것은?

A. No Read Down, No Write Up
B. No Read Up, No Write Down
C. CSRF Token 사용
D. 인증서 체인 검증

정답: A

Biba는 낮은 무결성 정보가 높은 무결성 대상을 오염시키는 것을 막습니다.

오답 포인트: Biba의 No Read Down은 높은 무결성 주체가 낮은 무결성 객체를 읽어 오염되는 것을 막고, No Write Up은 낮은 무결성 주체가 높은 무결성 객체에 쓰는 것을 막습니다. 기밀성 유출 방지 규칙인 Bell-LaPadula와 방향을 구분합니다.


문제 17

Clark-Wilson 모델의 특징으로 적절한 것은?

A. 잘 형성된 트랜잭션, 직무분리, 감사 기능을 강조한다.
B. 낮은 등급이 높은 정보를 읽지 못하게 한다.
C. 공개키와 개인키를 사용한다.
D. ICMP 브로드캐스트를 이용한다.

정답: A

Clark-Wilson은 상업적 무결성 모델입니다.


문제 18

Chinese Wall 모델의 설명으로 적절한 것은?

A. 이해상충 방지를 위해 과거 접근 이력에 따라 접근을 제한한다.
B. 기밀성만을 위해 No Read Up을 사용한다.
C. 무결성만을 위해 No Write Up을 사용한다.
D. 비밀번호 해시를 생성한다.

정답: A

Chinese Wall 모델은 Brewer-Nash 모델이라고도 합니다.


접근통제·보안모델 실기형 답안 작성

실기 문제 1

문제: 식별, 인증, 인가, 책임추적성의 차이를 설명하시오.

모범 답안

식별은 사용자가 사용자 ID와 같은 식별자를 제시하여 자신이 누구인지 주장하는 과정이고, 인증은 그 신원이 실제로 맞는지 확인하는 절차이다. 인가는 인증된 사용자가 특정 자원이나 기능에 접근할 권한이 있는지 확인하는 절차이며, 책임추적성은 시스템 행위의 주체를 로그 등을 통해 추적할 수 있는 성질이다.

실기 문제 2

문제: DAC, MAC, RBAC, ABAC의 차이를 설명하시오.

모범 답안

DAC는 객체 소유자가 접근 권한을 설정할 수 있는 임의적 접근통제 방식이고, MAC는 보안 등급과 중앙 정책에 따라 접근을 강제로 통제하는 방식이다. RBAC는 역할에 권한을 부여하고 사용자를 역할에 배정하는 방식이며, ABAC는 사용자·자원·행위·환경 속성을 조합하여 접근 여부를 결정하는 방식이다.

실기 문제 3

문제: 최소권한 원칙과 직무분리 원칙을 설명하시오.

모범 답안

최소권한 원칙은 사용자나 프로세스에 업무 수행에 필요한 최소한의 권한만 부여하여 권한 오남용과 사고 피해 범위를 줄이는 원칙이다. 직무분리는 승인, 실행, 기록, 감사 기능을 서로 다른 담당자에게 분리하여 한 사람이 모든 권한을 행사하지 못하게 함으로써 부정행위와 오류를 방지하는 통제 원칙이다.

실기 문제 4

문제: MFA의 개념과 보안 효과를 설명하시오.

모범 답안

MFA는 지식, 소유, 생체 등 서로 다른 인증 요소를 2개 이상 결합하여 사용자를 인증하는 방식이다. 비밀번호가 유출되더라도 OTP, 인증서, 생체정보 등 추가 인증 요소가 필요하므로 계정 탈취 위험을 줄일 수 있다.

실기 문제 5

문제: 생체 인증에서 FAR, FRR, CER/EER의 의미를 설명하시오.

모범 답안

FAR은 비인가 사용자를 정상 사용자로 잘못 받아들이는 비율이고, FRR은 정상 사용자를 잘못 거부하는 비율이다. CER 또는 EER은 FAR과 FRR이 같아지는 지점의 오류율로, 값이 낮을수록 생체 인증 시스템의 성능이 우수하다고 볼 수 있다.

실기 문제 6

문제: Bell-LaPadula 모델과 Biba 모델의 차이를 설명하시오.

모범 답안

Bell-LaPadula 모델은 기밀성 보호를 목적으로 하며, 낮은 등급 주체가 높은 등급 객체를 읽지 못하게 하는 No Read Up과 높은 등급 주체가 낮은 등급 객체에 쓰지 못하게 하는 No Write Down 규칙을 사용한다. Biba 모델은 무결성 보호를 목적으로 하며, 높은 무결성 주체가 낮은 무결성 객체를 읽지 못하게 하는 No Read Down과 낮은 무결성 주체가 높은 무결성 객체에 쓰지 못하게 하는 No Write Up 규칙을 사용한다.

실기 문제 7

문제: Clark-Wilson 모델의 특징을 설명하시오.

모범 답안

Clark-Wilson 모델은 상업적 시스템의 무결성을 보장하기 위한 모델로, 사용자가 데이터를 직접 수정하지 않고 승인된 프로그램과 잘 형성된 트랜잭션을 통해서만 데이터를 변경하도록 한다. 또한 직무분리와 감사 기능을 통해 부정행위와 오류를 방지한다.

오답 포인트 정리

어플리케이션보안 오답 포인트

헷갈리는 부분정리
GETURL에 데이터 노출 가능
POSTBody 전송이지만 HTTPS 없으면 안전하지 않음
HttpOnlyJavaScript 쿠키 접근 제한
SecureHTTPS에서만 쿠키 전송
SameSiteCSRF 완화
SQL InjectionDB 공격, Prepared Statement
XSS브라우저 공격, 출력값 인코딩
CSRF로그인 상태 악용, CSRF Token
IDOR객체 ID 조작, 서버 권한 검증
Mass Assignment허용되지 않은 필드 반영
JWT서명 검증, 만료, 민감정보 금지

암호학 오답 포인트

헷갈리는 부분정리
인코딩보안 목적 암호화 아님
암호화키가 있으면 복호화 가능
해시일방향, 원문 복원 불가
대칭키빠름, 키 분배 어려움
공개키느림, 키 교환·전자서명
MAC/HMAC공유키, 부인방지 어려움
전자서명개인키 서명, 공개키 검증
인증서공개키와 신원 정보 보증
CRL폐지 목록
OCSP실시간 상태 질의

접근통제·보안모델 오답 포인트

헷갈리는 부분정리
식별ID 제시
인증신원 확인
인가권한 확인
DAC소유자가 권한 설정
MAC보안등급·정책 강제
RBAC역할 기반
ABAC속성 기반
Bell-LaPadula기밀성
Biba무결성
Clark-Wilson상업적 무결성, 직무분리
Chinese Wall이해상충 방지

핵심 요약

영역핵심
HTTP무상태, 쿠키와 세션 필요
GET/POSTURL 노출 vs Body 전송, HTTPS 필요
쿠키 보안HttpOnly, Secure, SameSite
SQL InjectionPrepared Statement
XSS출력값 인코딩
CSRFCSRF Token
파일 업로드웹셸 방지, 실행 권한 제거
API 보안인증, 인가, 검증, 제한, 기록
암호화기밀성, 복호화 가능
해시일방향, 무결성
전자서명인증, 무결성, 부인방지
PKICA, RA, 인증서, CRL, OCSP
접근통제식별, 인증, 인가, 책임추적성
접근모델DAC, MAC, RBAC, ABAC
보안모델Bell-LaPadula, Biba, Clark-Wilson, Chinese Wall

반드시 외울 문장

HTTP는 이전 요청 상태를 자동으로 기억하지 않는 무상태 프로토콜이므로 로그인 상태 유지를 위해 쿠키와 세션이 사용된다.

GET은 요청 데이터가 URL에 포함될 수 있어 민감정보 전송에 부적절하고, POST도 암호화가 보장되는 것은 아니므로 HTTPS가 필요하다.

SQL Injection은 입력값에 SQL 구문을 삽입하여 DB를 공격하는 기법이며, Prepared Statement와 입력값 검증이 핵심 대응책이다.

XSS는 악성 스크립트가 사용자 브라우저에서 실행되는 공격이며, 출력값 인코딩이 핵심 대응책이다.

CSRF는 사용자의 로그인 상태를 악용해 원치 않는 요청을 전송하게 하는 공격이며, CSRF Token과 SameSite 쿠키가 핵심 대응책이다.

파일 업로드 취약점은 웹셸 업로드와 서버 장악으로 이어질 수 있으므로 허용 확장자, 파일 시그니처 검증, 웹 루트 외부 저장, 실행 권한 제거가 필요하다.

API 보안은 모든 요청에 대해 인증, 인가, 입력값 검증, Rate Limiting, 로그 기록을 서버 측에서 수행하는 것이 핵심이다.

암호화는 키가 있으면 복호화할 수 있지만, 해시는 일방향 함수로 원칙적으로 원문 복원이 불가능하다.

전자서명은 송신자의 개인키로 서명하고 공개키로 검증하며 인증, 무결성, 부인방지를 제공한다.

PKI는 CA, RA, 인증서, CRL, OCSP 등을 통해 공개키와 신원 정보를 신뢰할 수 있게 관리하는 기반 구조이다.

인증은 신원 확인이고, 인가는 인증된 사용자의 권한 확인이다.

DAC는 소유자 기준, MAC는 보안등급과 정책 기준, RBAC는 역할 기준, ABAC는 속성 기준이다.

Bell-LaPadula 모델은 기밀성 보호를 목적으로 하고, Biba 모델은 무결성 보호를 목적으로 한다.

연습 과제

이번 과제는 어플리케이션보안·암호·접근통제 혼합형입니다.

A. 어플리케이션보안 단답형

1. HTTP가 무상태 프로토콜이라는 의미를 쓰시오.
2. GET과 POST의 차이를 쓰시오.
3. 쿠키와 세션의 차이를 쓰시오.
4. HttpOnly, Secure, SameSite의 의미를 각각 쓰시오.
5. 인증과 인가의 차이를 쓰시오.
6. SQL Injection의 발생 원인을 쓰시오.
7. SQL Injection 대응 방안 5가지를 쓰시오.
8. Stored XSS, Reflected XSS, DOM-based XSS의 차이를 쓰시오.
9. XSS 대응 방안 5가지를 쓰시오.
10. CSRF란 무엇인가?
11. CSRF 대응 방안 5가지를 쓰시오.
12. 파일 업로드 취약점의 위험 4가지를 쓰시오.
13. 파일 업로드 보안대책 7가지를 쓰시오.
14. IDOR란 무엇인가?
15. Mass Assignment란 무엇인가?
16. JWT 사용 시 보안상 주의사항 5가지를 쓰시오.
17. API 보안대책 7가지를 쓰시오.

B. 암호학 단답형

18. 기밀성, 무결성, 인증, 부인방지를 각각 설명하시오.
19. 인코딩, 암호화, 해시의 차이를 쓰시오.
20. 대칭키 암호와 공개키 암호의 차이를 쓰시오.
21. 블록암호와 스트림암호의 차이를 쓰시오.
22. ECB 모드의 문제점을 쓰시오.
23. CBC 모드에서 IV가 필요한 이유를 쓰시오.
24. CTR 모드에서 nonce/counter 재사용이 위험한 이유를 쓰시오.
25. 해시 함수의 주요 특징 4가지를 쓰시오.
26. 비밀번호 저장 시 솔트가 필요한 이유를 쓰시오.
27. MAC/HMAC과 전자서명의 차이를 쓰시오.
28. 전자서명이 제공하는 보안 속성 3가지를 쓰시오.
29. PKI의 구성요소 5가지를 쓰시오.
30. CRL과 OCSP의 차이를 쓰시오.

C. 접근통제·보안모델 단답형

31. 식별, 인증, 인가, 책임추적성의 차이를 쓰시오.
32. DAC, MAC, RBAC, ABAC의 차이를 쓰시오.
33. 최소권한 원칙이란 무엇인가?
34. 직무분리란 무엇인가?
35. MFA란 무엇인가?
36. FAR과 FRR의 차이를 쓰시오.
37. SSO란 무엇인가?
38. Kerberos란 무엇인가?
39. Bell-LaPadula 모델의 목표와 핵심 규칙을 쓰시오.
40. Biba 모델의 목표와 핵심 규칙을 쓰시오.
41. Clark-Wilson 모델의 특징을 쓰시오.
42. Chinese Wall 모델이란 무엇인가?

D. 상황형 문제

아래 상황에서 의심되는 취약점 또는 공격과 대응 방안을 쓰세요.

43. 검색 파라미터에 SQL 구문이 반복적으로 포함되고 DB 오류가 발생했다.

44. 게시판 댓글에 저장된 스크립트가 다른 사용자 조회 시 실행되었다.

45. 로그인된 사용자가 외부 사이트 방문 후 원치 않는 비밀번호 변경 요청을 보냈다.

46. 이미지 업로드 기능에서 실제로는 서버 코드인 파일이 업로드되어 실행되었다.

47. userId 값을 바꾸자 다른 사용자의 개인정보가 조회되었다.

48. 일반 사용자가 role=admin 필드를 추가하자 관리자 권한이 부여되었다.

49. JWT Payload에 주민등록번호와 비밀번호가 들어 있다.

50. HTTPS 인증서 경고가 발생했지만 사용자가 무시하고 접속했다.

E. 실기형 답안 작성

아래 문제는 2~4문장으로 작성하세요.

51. SQL Injection의 개념과 대응 방안을 설명하시오.

52. XSS의 개념과 대응 방안을 설명하시오.

53. CSRF의 개념과 대응 방안을 설명하시오.

54. 파일 업로드 취약점의 위험과 대응 방안을 설명하시오.

55. IDOR 취약점의 개념과 대응 방안을 설명하시오.

56. API 보안 대책을 설명하시오.

57. 암호화와 해시의 차이를 설명하시오.

58. 전자서명의 개념과 제공하는 보안 속성을 설명하시오.

59. PKI의 개념과 구성요소를 설명하시오.

60. DAC, MAC, RBAC, ABAC의 차이를 설명하시오.

61. Bell-LaPadula 모델과 Biba 모델의 차이를 설명하시오.

정답 방향 및 채점 기준

A. 어플리케이션보안 핵심 답안

범위채점 키워드
1~5HTTP 무상태, GET/POST, 쿠키/세션, 쿠키 보안 속성, 인증/인가
6~13SQLi, Prepared Statement, XSS 유형, 출력 인코딩, CSRF Token, 파일 업로드 방어
14~17IDOR, Mass Assignment, JWT 서명·만료·민감정보 금지, API 인증·인가·Rate Limiting

B. 암호학 핵심 답안

범위채점 키워드
18~20기밀성, 무결성, 인증, 부인방지, 인코딩/암호화/해시, 대칭키/공개키
21~24블록/스트림, ECB 패턴 노출, CBC IV, CTR nonce/counter 재사용 위험
25~30해시 일방향성, 솔트, MAC/HMAC, 전자서명, PKI, CRL/OCSP

C. 접근통제·보안모델 핵심 답안

범위채점 키워드
31~38식별·인증·인가·책임추적성, DAC/MAC/RBAC/ABAC, MFA, FAR/FRR, SSO, Kerberos
39~42Bell-LaPadula 기밀성, Biba 무결성, Clark-Wilson 무결성 거래, Chinese Wall 이해충돌 방지

D. 상황형 정답 방향

번호정답
43SQL Injection
44Stored XSS
45CSRF
46파일 업로드 취약점, 웹셸
47IDOR 또는 BOLA
48Mass Assignment
49JWT 민감정보 노출
50인증서 검증 실패, MITM 위험

E. 실기형 채점 기준

실기형 답안은 다음 네 요소가 있으면 안정적입니다.

취약점 또는 기술의 정의
발생 원인 또는 위험
핵심 대응책
운영 시 추가 점검사항

감점 포인트

SQL Injection 대응에서 Prepared Statement를 누락하면 감점.
XSS 대응을 입력값 검증만으로 설명하고 출력값 인코딩을 누락하면 감점.
파일 업로드 대응에서 확장자만 쓰고 MIME, 시그니처, 저장 경로 분리, 실행 권한 제거를 누락하면 감점.
JWT를 암호화된 저장소로 착각하면 감점.
전자서명과 HMAC의 부인방지 차이를 설명하지 못하면 감점.
Bell-LaPadula와 Biba를 반대로 쓰면 감점.

객관식 품질 보완 메모

  • 객관식 정답 분포를 A 22개, B 11개, C 13개, D 15개로 조정하여 A 비율을 36.1%로 낮췄습니다.
  • 어플리케이션보안과 암호학 필기형 문항의 보기 순서를 수작업으로 재배치하고 정답: 표기를 함께 맞췄습니다.
  • 일부 명백한 오답은 쿠키 속성, XSS/CSRF/IDOR, 위험한 암호 사용, HMAC/전자서명처럼 실제로 혼동될 수 있는 비교 보기로 보강했습니다.

목차

진행 방식
어플리케이션보안 필기형 문제
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
문제 7
문제 8
문제 9
문제 10
문제 11
문제 12
문제 13
문제 14
문제 15
문제 16
문제 17
문제 18
문제 19
문제 20
문제 21
문제 22
문제 23
문제 24
문제 25
어플리케이션보안 실기형 답안 작성
실기 문제 1
모범 답안
채점 포인트
실기 문제 2
모범 답안
실기 문제 3
모범 답안
실기 문제 4
모범 답안
실기 문제 5
모범 답안
실기 문제 6
모범 답안
실기 문제 7
모범 답안
실기 문제 8
모범 답안
실기 문제 9
모범 답안
실기 문제 10
모범 답안
실기 문제 11
모범 답안
실기 문제 12
모범 답안
실기 문제 13
모범 답안
어플리케이션보안 상황형 문제
상황 문제 1
의심 문제
대응 방안
모범 답안
상황 문제 2
의심 공격
대응 방안
모범 답안
상황 문제 3
의심 공격
대응 방안
모범 답안
상황 문제 4
의심 공격
대응 방안
모범 답안
상황 문제 5
의심 문제
대응 방안
모범 답안
상황 문제 6
의심 취약점
대응 방안
모범 답안
상황 문제 7
의심 취약점
대응 방안
모범 답안
암호학 필기형 문제
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
문제 7
문제 8
문제 9
문제 10
문제 11
문제 12
문제 13
문제 14
문제 15
문제 16
문제 17
문제 18
암호학 실기형 답안 작성
실기 문제 1
모범 답안
실기 문제 2
모범 답안
실기 문제 3
모범 답안
실기 문제 4
모범 답안
실기 문제 5
모범 답안
실기 문제 6
모범 답안
실기 문제 7
모범 답안
접근통제·보안모델 필기형 문제
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
문제 7
문제 8
문제 9
문제 10
문제 11
문제 12
문제 13
문제 14
문제 15
문제 16
문제 17
문제 18
접근통제·보안모델 실기형 답안 작성
실기 문제 1
모범 답안
실기 문제 2
모범 답안
실기 문제 3
모범 답안
실기 문제 4
모범 답안
실기 문제 5
모범 답안
실기 문제 6
모범 답안
실기 문제 7
모범 답안
오답 포인트 정리
어플리케이션보안 오답 포인트
암호학 오답 포인트
접근통제·보안모델 오답 포인트
핵심 요약
반드시 외울 문장
연습 과제
A. 어플리케이션보안 단답형
B. 암호학 단답형
C. 접근통제·보안모델 단답형
D. 상황형 문제
E. 실기형 답안 작성
정답 방향 및 채점 기준
A. 어플리케이션보안 핵심 답안
B. 암호학 핵심 답안
C. 접근통제·보안모델 핵심 답안
D. 상황형 정답 방향
E. 실기형 채점 기준
감점 포인트
객관식 품질 보완 메모