icon

안동민 개발노트

1장 : 기초 진단과 전체 전략

웹·암호·관리 최소 기초

이번 절에서는 웹보안·암호학·보안관리의 최소 기초를 정리합니다.

이번 절에서는 웹보안·암호학·보안관리의 최소 기초를 정리합니다.

이번 절은 정보보안기사 전체에서 매우 중요합니다.
특히 실기에서 자주 나오는 답안 구조가 이번 절부터 본격적으로 등장합니다.

핵심 주제는 아래 12개입니다.

HTTP
쿠키
세션
인증
인가
SQL Injection
XSS
CSRF
대칭키 암호
공개키 암호
해시
위험관리

학습 목표

이번 절의 학습 후 다음 질문에 답할 수 있어야 한다.

질문목표
HTTP는 무엇인가?웹에서 요청과 응답을 주고받는 프로토콜이라고 설명 가능
쿠키와 세션은 왜 쓰는가?로그인 상태 유지와 사용자 식별을 위해 사용한다고 이해
인증과 인가는 무엇이 다른가?인증은 신원 확인, 인가는 권한 확인
SQL Injection은 무엇인가?입력값에 SQL 구문을 넣어 DB를 공격하는 기법이라고 설명
XSS는 무엇인가?웹페이지에 악성 스크립트를 삽입하는 공격이라고 설명
CSRF는 무엇인가?사용자가 원하지 않는 요청을 보내게 만드는 공격이라고 설명
대칭키와 공개키 차이는?같은 키 사용 vs 공개키·개인키 쌍 사용
해시는 무엇인가?데이터를 고정 길이 값으로 변환해 무결성 확인에 사용
위험관리는 무엇인가?자산, 위협, 취약점, 위험을 식별하고 대응하는 과정

웹보안의 큰 그림

웹보안은 핵심적으로 웹사이트와 웹 애플리케이션을 공격으로부터 보호하는 것입니다.

사용자가 웹사이트에 접속하면 다음 흐름이 발생합니다.

사용자 브라우저 → HTTP/HTTPS 요청 → 웹 서버 → DB 서버 → 응답 반환

예를 들어 로그인 화면을 생각해봅시다.

1. 사용자가 아이디와 비밀번호 입력
2. 브라우저가 서버로 로그인 요청 전송
3. 서버가 DB에서 계정 정보 확인
4. 로그인 성공 시 세션 발급
5. 이후 사용자는 로그인된 상태로 서비스 이용

이 과정에서 여러 공격이 발생할 수 있습니다.

위치가능한 공격
입력창SQL Injection
게시판·댓글XSS
로그인 상태세션 탈취
요청 처리CSRF
권한 확인접근제어 취약점
파일 업로드웹셸 업로드

이번 절에서는 그중 가장 기본인 HTTP, 쿠키, 세션, 인증, 인가, SQL Injection, XSS, CSRF를 봅니다.


HTTP

HTTP란?

HTTP는 웹에서 클라이언트와 서버가 데이터를 주고받기 위한 프로토콜입니다.

핵심 의미는 다음과 같다.

HTTP = 웹 브라우저와 웹 서버가 대화하는 방식

브라우저가 서버에 요청합니다.

이 페이지 보여줘.

서버가 응답합니다.

여기 HTML, CSS, 이미지 데이터야.

이런 요청과 응답 구조가 HTTP입니다.


HTTP 요청과 응답

HTTP는 기본적으로 요청(Request)응답(Response) 으로 동작합니다.

구분의미
요청클라이언트가 서버에 보내는 메시지
응답서버가 클라이언트에게 보내는 메시지

예를 들어 사용자가 로그인 버튼을 누르면 브라우저가 서버에 요청을 보냅니다.

POST /login
id=user01
password=1234

서버는 결과를 응답합니다.

로그인 성공
또는
로그인 실패

주요 HTTP 메서드

정보보안기사에서 기본적으로 알아야 할 HTTP 메서드는 다음입니다.

메서드의미
GET데이터를 조회할 때 사용
POST데이터를 전송하거나 등록할 때 사용
PUT데이터를 전체 수정할 때 사용
PATCH데이터를 일부 수정할 때 사용
DELETE데이터를 삭제할 때 사용

시험에서는 보통 GET과 POST 차이를 묻습니다.

구분GETPOST
목적조회전송, 등록, 처리
데이터 위치URL에 노출될 수 있음요청 본문에 포함
보안상 주의민감정보 전송에 부적절GET보다 낫지만 HTTPS 필요

중요한 점은 이것입니다.

POST라고 해서 자동으로 안전한 것은 아니다.
민감정보 전송에는 HTTPS가 필요하다.

쿠키와 세션

왜 쿠키와 세션이 필요한가?

HTTP는 기본적으로 상태를 기억하지 않는 프로토콜입니다.

이를 시험식으로는 이렇게 표현합니다.

HTTP는 무상태(stateless) 프로토콜이다.

무상태란 서버가 이전 요청을 자동으로 기억하지 않는다는 뜻입니다.

예를 들어 사용자가 로그인했다고 해봅시다.

1번째 요청: 로그인 성공
2번째 요청: 마이페이지 접속

HTTP만 놓고 보면 서버는 2번째 요청이 로그인한 사용자에게서 온 것인지 자동으로 알기 어렵습니다.

그래서 로그인 상태를 유지하기 위해 쿠키와 세션을 사용합니다.


쿠키

쿠키는 사용자 브라우저에 저장되는 작은 데이터입니다.

예를 들어 서버가 브라우저에게 이렇게 말합니다.

앞으로 너는 이 식별값을 가지고 와.

브라우저는 이후 요청마다 쿠키를 함께 보낸다.

Cookie: session_id=abc123

쿠키는 브라우저에 저장되므로 보안상 주의가 필요합니다.

위험설명
쿠키 탈취공격자가 쿠키를 훔치면 로그인 세션을 악용 가능
변조쿠키 값 조작으로 권한 우회 시도 가능
평문 전송HTTPS가 없으면 중간에서 노출될 수 있음

세션

세션은 서버가 사용자 상태를 관리하는 방식입니다.

일반적인 로그인 흐름은 다음과 같습니다.

1. 사용자가 로그인
2. 서버가 세션 생성
3. 서버가 세션 ID를 브라우저 쿠키에 저장
4. 브라우저는 이후 요청마다 세션 ID 전송
5. 서버는 세션 ID를 보고 사용자를 식별

즉, 세션 정보 자체는 보통 서버에 있고, 사용자는 세션 ID만 가지고 다닙니다.


쿠키와 세션 비교

구분쿠키세션
저장 위치클라이언트 브라우저서버
보안성상대적으로 낮음상대적으로 높음
용도사용자 식별값, 설정값 저장로그인 상태 관리
위험탈취, 변조세션 탈취, 세션 고정 공격

시험식 한 줄 정리입니다.

쿠키는 클라이언트에 저장되는 데이터이고, 세션은 서버 측에서 사용자 상태를 관리하는 방식이다.

인증과 인가

인증과 인가는 정보보안기사에서 계속 나오는 핵심 개념입니다.

인증

인증은 사용자가 누구인지 확인하는 과정입니다.

예시는 다음과 같습니다.

아이디/비밀번호 입력
OTP 입력
공동인증서 사용
지문 인증
얼굴 인증

시험식 표현은 다음입니다.

인증은 사용자의 신원을 확인하는 절차이다.

인가

인가는 인증된 사용자가 어떤 자원이나 기능에 접근할 수 있는지 결정하는 과정입니다.

예를 들어 사용자가 로그인했습니다.
그런데 일반 사용자인지 관리자인지에 따라 접근 가능한 메뉴가 다릅니다.

사용자접근 가능 기능
일반 사용자본인 정보 조회
관리자전체 사용자 관리, 권한 변경
감사자로그 조회

이처럼 권한을 확인하는 것이 인가입니다.

시험식 표현은 다음입니다.

인가는 인증된 사용자에게 허용된 권한 범위 내에서 자원 접근을 통제하는 과정이다.

인증과 인가 비교

구분인증인가
질문너는 누구인가?너는 무엇을 할 수 있는가?
영어AuthenticationAuthorization
예시로그인관리자 페이지 접근 허용
실패 시로그인 실패권한 없음, 접근 거부

외우는 방법은 간단합니다.

인증 = 신원 확인
인가 = 권한 확인

실기에서도 이 두 단어는 정확히 구분해서 써야 합니다.


SQL Injection

SQL Injection이란?

SQL Injection은 사용자 입력값에 악의적인 SQL 구문을 삽입하여 데이터베이스를 공격하는 기법입니다.

예를 들어 로그인 입력창이 있습니다.

아이디: admin
비밀번호: 1234

서버는 내부적으로 DB에 이런 식으로 물어볼 수 있습니다.

SELECT * FROM users WHERE id='admin' AND password='1234';

그런데 공격자가 입력창에 SQL 구문을 넣으면 쿼리 구조가 바뀔 수 있습니다.

아이디: admin' OR '1'='1
비밀번호: 아무거나

이런 식의 공격으로 인증 우회, 데이터 조회, 데이터 변조, 데이터 삭제 등이 발생할 수 있습니다.


SQL Injection의 영향

영향설명
인증 우회비밀번호 없이 로그인 가능성
정보 유출사용자 정보, 개인정보, 관리자 정보 조회
데이터 변조DB 데이터 수정
데이터 삭제테이블 또는 데이터 삭제
시스템 장악DB 권한이 과도하면 서버 공격으로 확대 가능

SQL Injection 대응책

시험과 실기에서 매우 중요합니다.

대응책설명
입력값 검증허용된 형식의 값만 입력받음
Prepared StatementSQL 구조와 입력값을 분리
특수문자 필터링따옴표, 주석, SQL 키워드 등 처리
DB 권한 최소화웹 계정에 필요한 DB 권한만 부여
오류 메시지 노출 제한DB 구조나 쿼리 정보 노출 방지
웹 방화벽SQL Injection 패턴 탐지 및 차단

실기형 답안은 이렇게 쓰는 것이 적절합니다.

SQL Injection은 사용자 입력값에 악의적인 SQL 구문을 삽입하여 데이터베이스를 비정상적으로 조회, 수정, 삭제하는 공격이다. 대응 방안으로는 입력값 검증, Prepared Statement 사용, 특수문자 필터링, DB 권한 최소화, 오류 메시지 노출 제한 등이 있다.

이 문장은 반드시 익숙해져야 합니다.


XSS

XSS란?

XSS는 Cross-Site Scripting의 약자입니다.

XSS는 웹페이지에 악성 스크립트를 삽입하여 사용자의 브라우저에서 실행되게 하는 공격입니다.

예를 들어 게시판 댓글에 이런 스크립트를 넣는다고 생각해봅시다.

<script>alert('attack');</script>

취약한 사이트라면 이 스크립트가 다른 사용자 브라우저에서 실행될 수 있습니다.


XSS의 위험

XSS는 서버 자체를 직접 공격한다기보다, 주로 사용자 브라우저를 공격합니다.

위험설명
쿠키 탈취로그인 세션 탈취 가능
피싱가짜 로그인 창 표시
악성 사이트 유도사용자를 공격자 사이트로 이동
화면 변조웹페이지 내용 조작
사용자 행위 대리 수행사용자 권한으로 요청 수행 가능

XSS 대응책

대응책설명
입력값 검증스크립트 입력 제한
출력값 인코딩HTML, JavaScript 문맥에 맞게 인코딩
쿠키 보안 속성HttpOnly, Secure 설정
CSP 적용허용된 스크립트만 실행되도록 제한
불필요한 HTML 허용 금지게시판 등에서 태그 입력 제한

실기형 답안은 이렇게 씁니다.

XSS는 웹페이지에 악성 스크립트를 삽입하여 사용자의 브라우저에서 실행되게 하는 공격이다. 이를 통해 쿠키 탈취, 세션 탈취, 피싱, 화면 변조 등이 발생할 수 있으며, 대응 방안으로는 입력값 검증, 출력값 인코딩, HttpOnly 쿠키 설정, CSP 적용 등이 있다.

CSRF

CSRF란?

CSRF는 Cross-Site Request Forgery의 약자입니다.

CSRF는 사용자가 의도하지 않은 요청을 공격자가 유도하여 서버에 전송하게 만드는 공격입니다.

예를 들어 사용자가 은행 사이트에 로그인된 상태라고 가정합니다.
공격자가 만든 악성 페이지에 사용자가 접속하면, 사용자의 로그인 세션을 이용해 송금 요청이 자동으로 보내질 수 있습니다.

즉, 핵심은 이것입니다.

사용자가 로그인된 상태를 악용하여 원하지 않는 요청을 보내게 만든다.

XSS와 CSRF 차이

XSS와 CSRF는 자주 헷갈립니다.

구분XSSCSRF
핵심악성 스크립트 실행원하지 않는 요청 전송
공격 위치사용자 브라우저사용자의 인증 상태
주요 피해쿠키 탈취, 피싱, 화면 변조비밀번호 변경, 게시글 작성, 송금 요청
대응출력값 인코딩, CSPCSRF 토큰, Referer 검증, 재인증

외우는 방법은 다음입니다.

XSS = 스크립트 실행
CSRF = 요청 위조

CSRF 대응책

대응책설명
CSRF 토큰요청마다 예측 불가능한 토큰 검증
Referer 검증요청 출처 확인
SameSite 쿠키다른 사이트에서 쿠키가 자동 전송되는 것을 제한
중요 기능 재인증비밀번호 변경, 송금 등에서 추가 인증
GET으로 상태 변경 금지상태 변경 작업은 POST 등 적절한 방식 사용

실기형 답안은 다음처럼 씁니다.

CSRF는 사용자가 로그인된 상태를 악용하여 사용자가 의도하지 않은 요청을 서버에 전송하게 만드는 공격이다. 대응 방안으로는 CSRF 토큰 검증, Referer 검증, SameSite 쿠키 설정, 중요 기능 수행 시 재인증 적용 등이 있다.

암호학의 큰 그림

암호학은 정보보안기사에서 어렵게 느껴질 수 있지만, 처음에는 목적만 잡으면 됩니다.

암호학은 주로 다음 보안 목표를 달성하기 위해 사용됩니다.

보안 목표의미
기밀성허가받지 않은 사람이 내용을 볼 수 없게 함
무결성데이터가 위변조되지 않았음을 확인
인증상대방이 누구인지 확인
부인방지나중에 자신이 한 행위를 부인하지 못하게 함

암호 기술은 크게 다음 네 가지를 먼저 알아야 합니다.

대칭키 암호
공개키 암호
해시
전자서명

대칭키 암호

대칭키 암호란?

대칭키 암호는 암호화와 복호화에 같은 키를 사용하는 방식입니다.

암호화 키 = 복호화 키

예를 들어 A와 B가 같은 비밀키를 공유합니다.

A가 비밀키로 암호화
B가 같은 비밀키로 복호화

대칭키 암호의 특징

특징설명
속도빠름
구조비교적 단순
키 관리키를 안전하게 공유해야 함
용도대량 데이터 암호화에 적합

대표 예시는 다음입니다.

AES, DES, 3DES, SEED, ARIA

처음에는 AES만 먼저 기억해도 됩니다.

AES = 대표적인 대칭키 암호

공개키 암호

공개키 암호란?

공개키 암호는 공개키와 개인키라는 한 쌍의 키를 사용하는 방식입니다.

공개키 = 남에게 공개 가능
개인키 = 본인만 안전하게 보관

예를 들어 누군가 내게 비밀 메시지를 보내고 싶다면, 내 공개키로 암호화합니다.
그러면 그 메시지는 내 개인키로만 복호화할 수 있습니다.


공개키 암호의 특징

특징설명
키 구조공개키·개인키 쌍 사용
장점키 분배 문제 완화
단점대칭키보다 느림
용도키 교환, 전자서명, 인증서

대표 예시는 다음입니다.

RSA, ECC

처음에는 RSA만 기억해도 됩니다.

RSA = 대표적인 공개키 암호

대칭키와 공개키 비교

구분대칭키 암호공개키 암호
같은 키 사용공개키·개인키 쌍 사용
속도빠름느림
키 분배어려움상대적으로 쉬움
용도대량 데이터 암호화키 교환, 전자서명, 인증
예시AESRSA

시험식으로 외우면 다음입니다.

대칭키는 같은 키를 사용하여 빠르지만 키 분배가 어렵고, 공개키는 공개키와 개인키 쌍을 사용하여 키 분배 문제를 완화하지만 속도가 느리다.

해시

해시란?

해시는 임의 길이의 데이터를 고정 길이 값으로 변환하는 함수입니다.

예를 들어 어떤 파일을 해시 함수에 넣으면 고정 길이의 결과값이 나옵니다.

원본 데이터 → 해시 함수 → 해시값

해시는 암호화와 다릅니다.

암호화는 복호화가 가능하지만, 해시는 기본적으로 원래 데이터로 되돌릴 수 없습니다.

암호화 = 복호화 가능
해시 = 원칙적으로 복원 불가

해시의 주요 특징

정보보안기사에서 중요한 특징은 다음입니다.

특징의미
일방향성해시값으로 원문을 알아내기 어려움
고정 길이 출력입력 길이와 관계없이 일정한 길이 결과
충돌 저항성서로 다른 입력이 같은 해시값을 갖기 어려움
무결성 확인원본이 바뀌면 해시값도 달라짐

대표 예시는 다음입니다.

SHA-256, SHA-3

오래된 알고리즘으로는 MD5, SHA-1이 있는데, 현재는 충돌 취약성 때문에 안전하지 않은 것으로 봅니다.


해시의 용도

용도설명
파일 무결성 검증파일이 변조되었는지 확인
비밀번호 저장원문 비밀번호 대신 해시값 저장
전자서명메시지 해시값에 서명
인증데이터 변경 여부 확인

실기형 답안은 이렇게 씁니다.

해시 함수는 임의 길이의 데이터를 고정 길이의 해시값으로 변환하는 일방향 함수이다. 원본 데이터가 변경되면 해시값도 달라지므로 데이터 무결성 검증에 활용된다.

전자서명

전자서명이란?

전자서명은 메시지 작성자를 확인하고, 데이터가 위변조되지 않았으며, 작성자가 나중에 부인하지 못하도록 하는 기술입니다.

전자서명은 공개키 암호 기술을 사용합니다.

흐름은 단순화하면 다음과 같습니다.

보낸 사람: 개인키로 서명
받는 사람: 보낸 사람의 공개키로 검증

전자서명의 보안 속성

전자서명은 특히 다음 세 가지와 연결됩니다.

보안 속성의미
인증서명자가 누구인지 확인
무결성문서가 위변조되지 않았는지 확인
부인방지서명자가 나중에 서명 사실을 부인하지 못함

시험에서는 전자서명과 부인방지를 자주 연결합니다.

전자서명 = 인증 + 무결성 + 부인방지

보안관리의 큰 그림

보안관리는 기술보다 조직 운영에 가깝습니다.

보안관리는 다음 질문에 답하는 영역입니다.

무엇을 보호할 것인가?
어떤 위험이 있는가?
어떻게 줄일 것인가?
사고가 나면 어떻게 대응할 것인가?
개인정보는 어떻게 안전하게 관리할 것인가?

가장 기본은 위험관리입니다.


위험관리

위험관리란?

위험관리는 조직의 자산에 대한 위협과 취약점을 식별하고, 위험을 분석·평가하여 적절한 보호대책을 수립하는 과정입니다.

처음에는 아래 네 단어만 기억하면 됩니다.

자산
위협
취약점
위험

자산, 위협, 취약점, 위험

용어의미예시
자산보호해야 할 가치 있는 대상서버, DB, 개인정보, 소스코드
위협피해를 줄 수 있는 원인해커, 악성코드, 내부자, 화재
취약점공격당할 수 있는 약점미패치 서버, 약한 비밀번호
위험위협이 취약점을 이용해 피해가 발생할 가능성해커가 미패치 서버를 공격해 개인정보가 유출될 가능성

암기 기준은 다음입니다.

자산 = 지켜야 할 것
위협 = 공격 원인
취약점 = 약점
위험 = 피해 가능성

위험관리 절차

기본 절차는 다음 흐름으로 이해하면 됩니다.

자산 식별
→ 위협 및 취약점 식별
→ 위험 분석
→ 위험 평가
→ 위험 처리
→ 사후 관리

위험 처리는 보통 네 가지로 나눕니다.

위험 처리 방법의미예시
위험 감소보안대책을 적용해 위험을 줄임방화벽, 암호화, 패치
위험 회피위험한 활동 자체를 중단취약한 서비스 폐기
위험 전가위험을 다른 곳에 이전보험, 외주 계약
위험 수용위험을 받아들임비용 대비 영향이 작아 그대로 둠

시험에서는 특히 위험 감소, 회피, 전가, 수용을 자주 봅니다.


침해사고 대응

침해사고란?

침해사고는 보안 사고가 실제로 발생한 상황입니다.

예시는 다음과 같습니다.

서버 해킹
개인정보 유출
랜섬웨어 감염
DDoS 공격
관리자 계정 탈취
웹셸 업로드

침해사고 대응 절차

시험에서는 사고 대응 절차가 자주 나옵니다.

기본 흐름은 다음입니다.

탐지
→ 분석
→ 차단
→ 복구
→ 보고
→ 재발 방지

좀 더 공식적인 느낌으로 쓰면 다음과 같습니다.

단계설명
탐지이상 징후나 사고 발생 여부 확인
분석원인, 공격 경로, 피해 범위 파악
차단공격 확산 방지, 악성 트래픽 차단
복구시스템 정상화, 백업 복원
보고관련 부서나 기관에 보고
재발 방지보안대책 수립, 정책 개선

실기 답안으로는 이렇게 쓸 수 있습니다.

침해사고 발생 시 로그와 네트워크 트래픽을 분석하여 사고 원인과 피해 범위를 파악하고, 공격 경로를 차단한 뒤 시스템을 복구한다. 이후 사고 내용을 보고하고 보안 설정 강화, 패치, 정책 개선 등을 통해 재발 방지 대책을 수립한다.

개인정보보호 기초

정보보안기사에서 법규 파트는 나중에 자세히 다루지만, 이번 절에서는 최소 기초만 봅니다.

개인정보는 핵심적으로 살아 있는 개인을 식별할 수 있는 정보입니다.

예시는 다음과 같습니다.

이름
주민등록번호
전화번호
이메일
주소
계좌번호
얼굴 사진
생체정보
위치정보

개인정보보호에서 중요한 흐름은 다음입니다.

수집
이용
제공
보관
파기

개인정보 보호조치

개인정보를 안전하게 관리하기 위한 보호조치는 다음과 같습니다.

보호조치설명
접근통제권한 있는 사람만 접근
암호화개인정보를 알아볼 수 없게 변환
접속기록 보관누가 언제 접근했는지 기록
백신 및 보안패치악성코드와 취약점 대응
물리적 보호서버실 출입통제
파기보유 기간이 지난 개인정보 삭제

실기형 답안은 이렇게 씁니다.

개인정보 보호를 위해 접근권한 관리, 암호화, 접속기록 보관 및 점검, 보안패치, 백신 설치, 물리적 출입통제, 보유기간 경과 시 안전한 파기 등의 보호조치를 적용해야 한다.

학습 내용을 하나로 연결

웹서비스 하나를 예로 들어봅시다.

쇼핑몰 웹사이트

이 쇼핑몰에는 다음 자산이 있습니다.

회원 개인정보
결제 정보
상품 DB
관리자 계정
웹 서버
DB 서버

공격자는 다음 공격을 시도할 수 있습니다.

공격설명
SQL InjectionDB에서 회원정보 탈취 시도
XSS사용자 쿠키 탈취 시도
CSRF사용자가 원치 않는 요청 수행
관리자 계정 탈취관리자 페이지 접근
DDoS서비스 마비

이를 막기 위해 다음 보안대책을 적용합니다.

보안대책목적
HTTPS통신 암호화
입력값 검증SQL Injection, XSS 방지
출력값 인코딩XSS 방지
CSRF 토큰요청 위조 방지
암호화개인정보 보호
해시비밀번호 안전 저장, 무결성 확인
접근통제권한 없는 접근 차단
로그 분석침해사고 탐지 및 원인 분석
위험관리자산과 위험을 식별하고 대책 수립

이렇게 보면 웹보안, 암호학, 관리보안이 따로 떨어진 게 아니라 하나의 서비스 보안을 구성하는 요소라는 것을 알 수 있습니다.


시험에 나오는 포인트

이번 절 내용 중 필기와 실기에서 중요한 포인트입니다.

주제시험 포인트
HTTP웹 요청·응답 프로토콜, 무상태
쿠키클라이언트에 저장되는 데이터
세션서버 측 사용자 상태 관리
인증사용자의 신원 확인
인가사용자의 권한 확인
SQL Injection입력값에 SQL 구문 삽입, DB 공격
XSS악성 스크립트를 사용자 브라우저에서 실행
CSRF로그인 상태를 악용해 요청 위조
대칭키같은 키 사용, 빠름, 키 분배 어려움
공개키공개키·개인키 쌍, 느림, 키 분배 문제 완화
해시일방향, 고정 길이, 무결성 확인
전자서명인증, 무결성, 부인방지
위험관리자산, 위협, 취약점, 위험 식별 및 대응
침해사고 대응탐지, 분석, 차단, 복구, 보고, 재발 방지
개인정보 보호접근통제, 암호화, 접속기록, 파기

필기형 문제풀이

문제 1

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

A. 기본적으로 상태를 계속 기억하는 프로토콜이다
B. 웹에서 요청과 응답을 주고받기 위한 프로토콜이다
C. 로그인 상태를 서버에 저장하는 세션 저장소이다
D. 도메인 이름을 IP 주소로 변환하는 프로토콜이다

정답: B

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


문제 2

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

A. 서버에만 저장되는 로그인 상태 정보이다
B. 클라이언트 브라우저에 저장되는 데이터이다
C. 사용자의 권한 범위를 결정하는 인가 정책이다
D. 웹 요청의 본문을 암호화하는 공개키이다

정답: B

쿠키는 사용자의 브라우저에 저장되는 작은 데이터입니다.


문제 3

인증과 인가의 설명으로 올바른 것은?

A. 인증은 권한 확인, 인가는 신원 확인이다
B. 인증은 신원 확인, 인가는 권한 확인이다
C. 인증과 인가는 같은 의미이다
D. 인증은 암호화, 인가는 복호화이다

정답: B

인증은 사용자가 누구인지 확인하는 것이고, 인가는 무엇을 할 수 있는지 권한을 확인하는 것입니다.


문제 4

SQL Injection의 설명으로 적절한 것은?

A. 악성 스크립트를 사용자 브라우저에서 실행하는 공격
B. 사용자가 원하지 않는 요청을 보내게 하는 공격
C. 입력값에 SQL 구문을 삽입하여 DB를 공격하는 기법
D. 서버에 대량 트래픽을 보내 서비스를 마비시키는 공격

정답: C

SQL Injection은 입력값에 SQL 구문을 삽입하여 데이터베이스를 공격하는 기법입니다.


문제 5

XSS 공격의 핵심 위험으로 적절한 것은?

A. 사용자의 브라우저에서 악성 스크립트가 실행될 수 있다
B. 사용자의 로그인 상태를 이용해 요청을 위조한다
C. 입력값의 SQL 구문으로 DB 쿼리가 조작된다
D. 서버 인증서 검증 없이 HTTPS가 우회된다

정답: A

XSS는 악성 스크립트를 웹페이지에 삽입하여 사용자의 브라우저에서 실행되게 하는 공격입니다.


문제 6

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

A. 사용자가 로그인된 상태를 악용해 원하지 않는 요청을 보내게 한다
B. 악성 스크립트를 웹페이지에 삽입해 브라우저에서 실행한다
C. 입력값에 SQL 구문을 삽입해 DB 명령을 조작한다
D. 해시값 충돌을 이용해 파일 무결성 검증을 우회한다

정답: A

CSRF는 사용자의 인증 상태를 악용하여 원하지 않는 요청을 서버로 전송하게 만드는 공격입니다.


문제 7

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

A. 공개키와 개인키 쌍을 사용한다
B. 암호화와 복호화에 같은 키를 사용한다
C. 반드시 속도가 느리다
D. 키 분배 문제가 공개키 방식보다 항상 없다

정답: B

대칭키 암호는 암호화와 복호화에 같은 키를 사용합니다.


문제 8

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

A. 암호화와 복호화에 항상 같은 키만 사용한다
B. 공개키와 개인키 쌍을 사용한다
C. 해시 함수처럼 원문 복원이 불가능하다
D. 대량 데이터 암호화에만 사용되고 인증에는 쓰지 않는다

정답: B

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


문제 9

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

A. 일방향성을 가진다
B. 고정 길이 출력을 생성한다
C. 무결성 검증에 활용된다
D. 해시값만으로 원문을 쉽게 복구할 수 있다

정답: D

해시는 원칙적으로 해시값만으로 원문을 복구하기 어렵습니다.


문제 10

위험관리에서 취약점의 의미로 가장 적절한 것은?

A. 보호해야 할 대상
B. 피해를 줄 수 있는 원인
C. 공격당할 수 있는 약점
D. 위험을 다른 곳으로 이전하는 것

정답: C

취약점은 공격당할 수 있는 약점입니다.


실기형 답안 훈련

실기 예제 1

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

좋은 답안

SQL Injection은 사용자 입력값에 악의적인 SQL 구문을 삽입하여 데이터베이스를 비정상적으로 조회, 수정, 삭제하는 공격이다. 대응 방안으로는 입력값 검증, Prepared Statement 사용, 특수문자 필터링, DB 권한 최소화, 오류 메시지 노출 제한 등이 있다.

채점 포인트

요소포함 여부
사용자 입력값필요
SQL 구문 삽입필요
DB 공격필요
입력값 검증필요
Prepared Statement매우 중요
권한 최소화가산점 요소

실기 예제 2

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

좋은 답안

XSS는 웹페이지에 악성 스크립트를 삽입하여 사용자의 브라우저에서 실행되게 하는 공격이다. 이를 통해 쿠키 탈취, 세션 탈취, 피싱 등이 발생할 수 있으며, 대응 방안으로는 입력값 검증, 출력값 인코딩, HttpOnly 쿠키 설정, CSP 적용 등이 있다.

채점 포인트

요소포함 여부
악성 스크립트필요
사용자 브라우저에서 실행매우 중요
쿠키·세션 탈취중요
출력값 인코딩매우 중요
HttpOnly가산점 요소

실기 예제 3

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

좋은 답안

대칭키 암호는 암호화와 복호화에 같은 키를 사용하는 방식으로 속도가 빠르지만 키 분배가 어렵다. 공개키 암호는 공개키와 개인키 쌍을 사용하는 방식으로 키 분배 문제를 완화할 수 있으나 대칭키 방식보다 속도가 느리다.

채점 포인트

요소포함 여부
대칭키는 같은 키필요
공개키는 키 쌍필요
대칭키는 빠름중요
공개키는 느림중요
키 분배 문제중요

실기 예제 4

문제: 위험관리에서 위협, 취약점, 위험의 차이를 설명하시오.

좋은 답안

위협은 자산에 피해를 줄 수 있는 원인이고, 취약점은 위협에 의해 악용될 수 있는 약점이다. 위험은 위협이 취약점을 이용하여 자산에 피해를 발생시킬 가능성을 의미한다.

채점 포인트

요소포함 여부
위협 = 피해 원인필요
취약점 = 약점필요
위험 = 피해 가능성필요
자산과 연결좋음

핵심 요약

개념한 줄 요약
HTTP웹에서 요청과 응답을 주고받는 프로토콜
쿠키클라이언트 브라우저에 저장되는 데이터
세션서버 측에서 사용자 상태를 관리하는 방식
인증사용자의 신원을 확인
인가사용자의 권한을 확인
SQL Injection입력값에 SQL 구문을 삽입하여 DB 공격
XSS악성 스크립트를 사용자 브라우저에서 실행
CSRF로그인 상태를 악용해 요청 위조
대칭키암호화와 복호화에 같은 키 사용
공개키공개키와 개인키 쌍 사용
해시일방향, 고정 길이, 무결성 확인
전자서명인증, 무결성, 부인방지 제공
위험관리자산의 위험을 식별·분석·평가·처리하는 과정
침해사고 대응탐지, 분석, 차단, 복구, 보고, 재발 방지
개인정보 보호접근통제, 암호화, 접속기록, 안전한 파기

필수 암기 항목

이번 절에서는 아래 문장들을 우선 외우면 됩니다.

HTTP는 웹에서 요청과 응답을 주고받는 프로토콜이다.

쿠키는 클라이언트에 저장되고, 세션은 서버에서 사용자 상태를 관리한다.

인증은 신원 확인이고, 인가는 권한 확인이다.

SQL Injection은 입력값에 SQL 구문을 삽입하여 DB를 공격하는 기법이다.

XSS는 악성 스크립트를 사용자 브라우저에서 실행시키는 공격이다.

CSRF는 사용자의 로그인 상태를 악용하여 원하지 않는 요청을 보내게 하는 공격이다.

대칭키 암호는 같은 키를 사용하고, 공개키 암호는 공개키와 개인키 쌍을 사용한다.

해시는 일방향 함수이며 데이터 무결성 검증에 사용된다.

전자서명은 인증, 무결성, 부인방지를 제공한다.

위협은 원인, 취약점은 약점, 위험은 피해 가능성이다.

연습 과제

다음 문제에 답한다. 답안의 완성도보다 직접 문장으로 작성하는 것이 중요합니다.

A. 단답형

1. HTTP란 무엇인가?
2. 쿠키와 세션의 차이는 무엇인가?
3. 인증과 인가의 차이는 무엇인가?
4. SQL Injection이란 무엇인가?
5. XSS란 무엇인가?
6. CSRF란 무엇인가?
7. 대칭키 암호란 무엇인가?
8. 공개키 암호란 무엇인가?
9. 해시 함수의 특징 2가지는?
10. 위협, 취약점, 위험의 차이는?

B. 실기형 답안 작성

다음 3문제는 2~3문장으로 작성한다.

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

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

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

답안 작성 형식

다음 형식으로 답안을 작성합니다.

1. HTTP는 ...
2. 쿠키는 ..., 세션은 ...
3. 인증은 ..., 인가는 ...
...
13. ...

연습 과제 정답 및 해설

문항핵심 답안
1웹에서 클라이언트와 서버가 요청과 응답을 주고받는 프로토콜
2쿠키는 클라이언트 저장, 세션은 서버 측 상태 관리
3인증은 신원 확인, 인가는 권한 확인
4입력값에 SQL 구문을 삽입해 DB 명령을 조작하는 공격
5브라우저에서 악성 스크립트를 실행시키는 공격
6로그인 상태를 악용해 사용자가 의도하지 않은 요청을 보내게 하는 공격
7암호화와 복호화에 같은 키를 사용하는 암호 방식
8공개키와 개인키 쌍을 사용하는 암호 방식
9일방향성, 고정 길이 출력, 충돌 저항성 등
10위협은 원인, 취약점은 약점, 위험은 피해 가능성

실기형 채점 기준: SQL Injection은 입력값 검증, Prepared Statement, 최소권한을 포함해야 한다. XSS는 출력 인코딩, 입력 검증, CSP, 쿠키 보호 속성을 연결한다. 대칭키와 공개키 비교는 속도, 키 관리, 사용 위치를 함께 쓰면 높은 점수를 받을 수 있다.