시스템·네트워크·웹보안 핵심 압축
새 개념을 계속 늘리기보다, 시험 대비 관점으로 압축 정리 + 비교 + 실기 답안 문장화를 강화합니다.
새 개념을 계속 늘리기보다, 시험 대비 관점으로 압축 정리 + 비교 + 실기 답안 문장화를 강화합니다.
이번 절은 1차 총정리입니다.
시스템보안
네트워크보안
어플리케이션보안이 세 과목을 한 번에 연결해서 정리합니다.
학습 목표
이번 절가 끝나면 다음을 할 수 있어야 합니다.
| 영역 | 목표 |
|---|---|
| 시스템보안 | 계정, 권한, 로그, 패치, 백업, 악성코드 핵심 정리 |
| 네트워크보안 | OSI 7계층, 프로토콜, 공격기법, 보안장비 핵심 정리 |
| 어플리케이션보안 | HTTP, SQL Injection, XSS, CSRF, 파일 업로드, API 보안 핵심 정리 |
| 필기 대비 | 헷갈리는 개념을 표로 구분 |
| 실기 대비 | 자주 쓰는 답안 문장을 암기 |
| 약점 점검 | 단답형·비교형 문제로 복습 |
이번 절은 “새로 배우기”보다 “시험장에서 바로 떠올리기”가 목표입니다.
전체 구조 다시 보기
지금까지 배운 전체 흐름은 다음과 같습니다.
시스템보안
→ 서버와 운영체제를 안전하게 관리하는 영역
네트워크보안
→ 데이터가 이동하는 통신 경로를 보호하는 영역
어플리케이션보안
→ 웹, API, 로그인, DB 연동 기능을 보호하는 영역
정보보안일반
→ 암호, 접근통제, 위험관리 같은 보안 원리
정보보안관리 및 법규
→ 조직 차원의 정책, 관리체계, 법규 준수이번 절에서는 앞의 세 과목을 먼저 압축합니다.
시스템보안 = 계정·권한·로그·패치·백업
네트워크보안 = 계층·프로토콜·공격·방어장비
웹보안 = 입력값·세션·인증·권한·파일·API시스템보안 핵심 압축
시스템보안은 서버와 운영체제를 안전하게 관리하는 과목입니다.
시험에서 자주 나오는 축은 다음입니다.
계정 관리
패스워드 관리
권한 관리
파일 권한
로그 관리
프로세스와 서비스
패치 관리
백업
악성코드 대응
시스템 하드닝계정 관리
계정 관리는 시스템보안의 출발점입니다.
핵심 원칙은 다음입니다.
필요한 계정만 사용한다.
공유 계정을 제한한다.
관리자 권한은 최소화한다.
퇴사자와 휴면 계정은 제거한다.
계정 사용 이력을 로그로 남긴다.계정 관리 점검 항목
| 항목 | 설명 |
|---|---|
| 불필요한 계정 제거 | 퇴사자, 테스트, 기본 계정 삭제 또는 비활성화 |
| 휴면 계정 잠금 | 장기간 미사용 계정 악용 방지 |
| 공유 계정 제한 | 책임추적성 저하 방지 |
| 관리자 계정 제한 | root, Administrator 직접 사용 제한 |
| 계정별 권한 최소화 | 업무에 필요한 권한만 부여 |
| 로그인 실패 제한 | 무차별 대입 공격 완화 |
| 계정 생성·변경·삭제 이력 | 누가 언제 권한을 부여했는지 추적 |
계정 관리를 위해 불필요한 계정과 휴면 계정을 삭제 또는 비활성화하고, 공유 계정 사용을 제한해야 한다. 또한 관리자 권한은 최소한의 사용자에게만 부여하고, 계정 생성·변경·삭제 이력과 로그인 기록을 관리하여 책임추적성을 확보해야 한다.패스워드 관리
패스워드는 계정 인증의 기본입니다.
시험 포인트는 다음입니다.
| 항목 | 핵심 |
|---|---|
| 복잡도 | 문자, 숫자, 특수문자 조합 |
| 길이 | 충분히 긴 비밀번호 |
| 주기적 변경 | 정책에 따라 변경 |
| 재사용 제한 | 이전 비밀번호 재사용 방지 |
| 초기 비밀번호 변경 | 최초 로그인 시 변경 |
| 실패 횟수 제한 | 반복 공격 방지 |
| 평문 저장 금지 | 솔트 해시 저장 |
| MFA 적용 | 관리자·중요 계정 보호 |
패스워드 보안을 위해 충분한 길이와 복잡도, 재사용 제한, 초기 비밀번호 변경, 로그인 실패 횟수 제한을 적용해야 한다. 또한 비밀번호는 평문으로 저장하지 않고 사용자별 솔트를 적용한 해시값으로 저장하며, 중요 계정에는 MFA를 적용하는 것이 바람직하다.최소권한 원칙
최소권한 원칙은 모든 보안 과목에 반복됩니다.
최소권한 원칙은 사용자나 프로세스가 업무 수행에 필요한 최소한의 권한만 갖도록 하는 보안 원칙이다.적용 예시는 다음입니다.
| 대상 | 적용 예 |
|---|---|
| 일반 사용자 | 관리자 권한 미부여 |
| 웹 서버 계정 | 시스템 전체 수정 권한 제거 |
| DB 계정 | 필요한 테이블과 쿼리 권한만 부여 |
| 파일 권한 | 읽기·쓰기·실행 권한 최소화 |
| 관리자 | 작업 시에만 권한 상승 사용 |
최소권한 원칙은 사용자나 프로세스에 업무 수행에 필요한 최소한의 권한만 부여하는 원칙이다. 이를 통해 권한 오남용을 방지하고, 계정 탈취나 서비스 침해 시 피해 범위를 줄일 수 있다.파일 권한
리눅스 파일 권한은 필기에서 자주 나옵니다.
r = read = 읽기 = 4
w = write = 쓰기 = 2
x = execute = 실행 = 1권한 숫자
| 숫자 | 권한 |
|---|---|
| 7 | rwx |
| 6 | rw- |
| 5 | r-x |
| 4 | r-- |
| 0 | --- |
chmod 755 file의미는 다음과 같습니다.
| 대상 | 권한 |
|---|---|
| 소유자 | rwx |
| 그룹 | r-x |
| 기타 사용자 | r-x |
위험한 권한
가장 대표적으로 위험한 권한은 다음입니다.
777모든 사용자가 읽기, 쓰기, 실행 가능파일 권한은 소유자, 그룹, 기타 사용자별로 읽기, 쓰기, 실행 권한을 최소한으로 부여해야 한다. 특히 777과 같이 모든 사용자에게 쓰기와 실행 권한을 부여하는 설정은 악성 파일 생성, 변조, 권한 오남용 위험이 있으므로 제한해야 한다.특수 권한
시험에서 나오는 특수 권한은 세 가지입니다.
SetUID
SetGID
Sticky Bit| 권한 | 의미 | 보안상 주의 |
|---|---|---|
| SetUID | 실행 시 파일 소유자 권한으로 실행 | root SetUID 파일 위험 |
| SetGID | 실행 시 파일 그룹 권한으로 실행 | 그룹 권한 오남용 가능 |
| Sticky Bit | 디렉터리에서 본인 파일만 삭제 가능 | /tmp 등에 사용 |
SetUID는 실행 파일을 실행할 때 파일 소유자의 권한으로 실행되게 하는 특수 권한이다. root 권한 SetUID 파일에 취약점이 있으면 권한 상승으로 이어질 수 있으므로 불필요한 SetUID 파일을 점검하고 제거해야 한다.로그 관리
로그는 사고 분석과 책임추적성의 핵심입니다.
주요 로그
| 로그 | 내용 |
|---|---|
| 로그인 로그 | 로그인 성공·실패 |
| 시스템 로그 | 서비스, 커널, 오류 |
| 보안 로그 | 권한 상승, 인증 실패 |
| 웹 로그 | 요청 URL, IP, 상태코드 |
| DB 로그 | 조회, 수정, 삭제 |
| 방화벽 로그 | 허용·차단 트래픽 |
| 관리자 작업 로그 | 설정 변경, 계정 관리 |
로그 관리 대책
필요한 로그를 수집한다.
로그 시간을 동기화한다.
로그 접근권한을 제한한다.
로그 위변조를 방지한다.
로그 보관기간을 정한다.
정기적으로 로그를 점검한다.
이상 행위를 탐지한다.로그는 침해사고 탐지, 원인 분석, 책임추적성 확보에 필요한 핵심 자료이다. 따라서 인증, 권한 변경, 관리자 작업, 오류, 보안 이벤트 로그를 수집하고, 시간 동기화, 접근통제, 무결성 보호, 보관기간 설정, 정기 점검을 적용해야 한다.프로세스와 서비스
프로세스는 실행 중인 프로그램입니다.
프로세스 = 실행 중인 프로그램서비스는 백그라운드에서 특정 기능을 제공하는 프로세스입니다.
서비스 = 백그라운드에서 지속적으로 기능을 제공하는 프로세스점검 항목
| 항목 | 설명 |
|---|---|
| 의심 프로세스 | 알 수 없는 프로세스 실행 여부 |
| 실행 사용자 | root 또는 관리자 권한 여부 |
| 실행 경로 | 임시 디렉터리, 이상 경로 여부 |
| CPU·메모리 | 비정상 자원 사용 |
| 네트워크 연결 | 외부 의심 IP 통신 |
| 자동 실행 | 부팅 시 악성 실행 여부 |
프로세스 점검 시 실행 사용자, 실행 경로, CPU·메모리 사용량, 네트워크 연결, 자동 실행 여부를 확인해야 한다. 특히 임시 디렉터리에서 root 권한으로 실행되거나 외부 의심 IP와 통신하는 프로세스는 악성코드 또는 침해 흔적으로 의심할 수 있다.불필요한 서비스 제거
불필요한 서비스는 공격 표면을 증가시킵니다.
공격 표면 = 공격자가 접근하거나 공격할 수 있는 지점사용하지 않는 FTP 서비스 실행
Telnet 외부 노출
DB 서비스 외부 직접 노출
관리자 페이지 전체 공개불필요한 서비스는 외부에서 접근 가능한 공격 지점을 증가시켜 취약점 악용, 정보 유출, 권한 상승 위험을 높인다. 따라서 사용하지 않는 서비스와 포트는 중지하거나 차단하고, 필요한 서비스만 최소 권한으로 운영해야 한다.패치 관리
패치는 알려진 취약점을 제거하는 핵심 대책입니다.
패치 관리 절차
자산과 버전 파악
→ 취약점·패치 정보 확인
→ 중요도 평가
→ 테스트
→ 백업과 롤백 계획
→ 운영 적용
→ 결과 확인
→ 이력 관리패치 관리는 운영체제와 소프트웨어의 알려진 취약점을 제거하여 공격자의 악용을 방지하기 위해 필요하다. 패치 적용 전에는 테스트와 백업, 롤백 계획을 수립하고, 적용 후 정상 동작 여부와 패치 이력을 확인해야 한다.백업
백업은 장애, 삭제, 랜섬웨어, 재해 발생 시 복구하기 위한 사본입니다.
백업 종류
| 구분 | 설명 | 복구 |
|---|---|---|
| 전체 백업 | 모든 데이터 백업 | 쉬움 |
| 증분 백업 | 직전 백업 이후 변경분 | 복잡 |
| 차등 백업 | 마지막 전체 백업 이후 변경분 | 중간 |
전체 = 전부
증분 = 직전 백업 이후
차등 = 마지막 전체 백업 이후백업 보안
백업 암호화
접근통제
무결성 검증
복구 테스트
오프라인 백업
원격지 백업
백업 이력 관리백업은 장애, 삭제, 랜섬웨어, 재해 발생 시 데이터와 시스템을 복구하기 위한 핵심 대책이다. 백업본은 암호화와 접근통제를 적용하고, 오프라인 또는 원격지에 보관하며, 정기적인 복구 테스트와 무결성 검증을 수행해야 한다.악성코드
악성코드는 악의적인 행위를 수행하는 프로그램 또는 코드입니다.
| 종류 | 핵심 |
|---|---|
| 바이러스 | 정상 파일에 감염 |
| 웜 | 네트워크로 자기 전파 |
| 트로이목마 | 정상 프로그램처럼 위장 |
| 랜섬웨어 | 파일 암호화 후 금전 요구 |
| 백도어 | 우회 접근 통로 |
| 루트킷 | 침입 흔적 은폐 |
| 키로거 | 키 입력 탈취 |
| 스파이웨어 | 사용자 정보 수집 |
악성코드 대응 절차
탐지
→ 격리
→ 분석
→ 제거
→ 복구
→ 재발 방지악성코드 감염이 의심되면 감염 시스템을 네트워크에서 격리하여 확산을 방지하고, 프로세스, 파일, 로그, 네트워크 연결을 분석해 감염 경로와 피해 범위를 파악해야 한다. 이후 악성코드를 제거하고 백업본으로 복구한 뒤, 패치 적용, 권한 점검, 보안 솔루션 강화, 사용자 교육 등 재발 방지 대책을 수행해야 한다.시스템 하드닝
하드닝은 시스템 보안 설정을 강화하는 것입니다.
하드닝 = 불필요한 기능을 제거하고 보안 설정을 강화하는 작업하드닝 예시
| 영역 | 대책 |
|---|---|
| 계정 | 불필요 계정 삭제, 관리자 권한 제한 |
| 비밀번호 | 복잡도, 실패 제한 |
| 권한 | 최소권한, 777 제거 |
| 서비스 | 불필요 서비스 중지 |
| 포트 | 불필요 포트 차단 |
| 패치 | 최신 보안패치 적용 |
| 로그 | 감사 로그 활성화 |
| 인증 | MFA, SSH 키 인증 |
| 설정 | 기본 설정 변경, 배너 정보 제한 |
시스템 하드닝은 불필요한 계정, 서비스, 포트를 제거하고, 최소권한, 보안패치, 로그 설정, 강력한 인증 등 보안 설정을 적용하여 시스템의 공격 표면을 줄이는 작업이다.네트워크보안 핵심 압축
네트워크보안은 통신 구조와 공격·방어를 묻습니다.
핵심 축은 다음입니다.
OSI 7계층
TCP/IP 4계층
IP와 MAC
ARP
TCP와 UDP
포트 번호
주요 프로토콜
스니핑과 스푸핑
DoS와 DDoS
방화벽, IDS, IPS, WAF, VPN, NAC, DMZOSI 7계층 핵심표
| 계층 | 이름 | 핵심 | 대표 |
|---|---|---|---|
| 7 | 응용 | 사용자 서비스 | HTTP, DNS, FTP, SMTP |
| 6 | 표현 | 인코딩, 암호화, 압축 | TLS 일부 기능 |
| 5 | 세션 | 세션 설정·유지·종료 | 세션 관리 |
| 4 | 전송 | 포트, 신뢰성 | TCP, UDP |
| 3 | 네트워크 | IP, 라우팅 | IP, ICMP, 라우터 |
| 2 | 데이터링크 | MAC, 프레임 | Ethernet, 스위치, ARP |
| 1 | 물리 | 비트, 신호 | 케이블, 허브 |
2계층 = MAC, 스위치, 프레임
3계층 = IP, 라우터, 패킷
4계층 = TCP/UDP, 포트
7계층 = HTTP, DNS, FTPOSI 7계층은 네트워크 통신 과정을 계층별 역할로 나누어 이해하기 위한 참조 모델이다. 이를 통해 프로토콜, 장비, 장애, 공격 위치를 계층별로 구분할 수 있다.TCP/IP 4계층
| TCP/IP 계층 | OSI 대응 | 예시 |
|---|---|---|
| 응용 계층 | 5~7계층 | HTTP, DNS, SMTP |
| 전송 계층 | 4계층 | TCP, UDP |
| 인터넷 계층 | 3계층 | IP, ICMP |
| 네트워크 접근 계층 | 1~2계층 | Ethernet, MAC |
IP, MAC, ARP
IP 주소
IP 주소 = 3계층 논리 주소MAC 주소
MAC 주소 = 2계층 물리 주소ARP
ARP = IP 주소를 MAC 주소로 변환하는 프로토콜IP 주소는 네트워크 계층에서 목적지 호스트를 식별하기 위한 논리 주소이고, MAC 주소는 데이터링크 계층에서 같은 네트워크 내 장비를 식별하기 위한 물리 주소이다. ARP는 동일 네트워크에서 IP 주소에 대응하는 MAC 주소를 알아내기 위한 프로토콜이다.TCP와 UDP
| 구분 | TCP | UDP |
|---|---|---|
| 방식 | 연결 지향 | 비연결 지향 |
| 신뢰성 | 높음 | 낮음 |
| 속도 | 상대적으로 느림 | 빠름 |
| 순서 보장 | 보장 | 보장하지 않음 |
| 재전송 | 있음 | 기본 없음 |
| 예시 | HTTP, HTTPS, SSH | DNS, VoIP, 스트리밍 |
SYN → SYN/ACK → ACKTCP는 연결 지향 프로토콜로 연결 설정 후 순서 보장, 오류 제어, 재전송을 통해 신뢰성 있는 전송을 제공한다. UDP는 비연결 지향 프로토콜로 신뢰성은 낮지만 구조가 단순하고 빠르며 DNS, 음성, 스트리밍 등에 사용된다.필수 포트 번호
| 포트 | 프로토콜 | 역할 |
|---|---|---|
| 20, 21 | FTP | 파일 전송 |
| 22 | SSH | 암호화 원격 접속 |
| 23 | Telnet | 평문 원격 접속 |
| 25 | SMTP | 메일 송신 |
| 53 | DNS | 도메인 이름 변환 |
| 67, 68 | DHCP | IP 자동 할당 |
| 80 | HTTP | 웹 통신 |
| 110 | POP3 | 메일 수신 |
| 143 | IMAP | 메일 수신·동기화 |
| 443 | HTTPS | 암호화 웹 통신 |
| 161, 162 | SNMP | 장비 관리 |
| 3389 | RDP | 원격 데스크톱 |
22 SSH
23 Telnet
53 DNS
80 HTTP
443 HTTPS
3389 RDP주요 프로토콜 보안
| 프로토콜 | 역할 | 보안 이슈 | 대응 |
|---|---|---|---|
| ARP | IP를 MAC으로 변환 | ARP Spoofing | 정적 ARP, DAI |
| ICMP | 진단, ping | ICMP Flood | Rate Limiting |
| DNS | 도메인 → IP | DNS Spoofing | DNSSEC, 캐시 점검 |
| DHCP | IP 자동 할당 | Rogue DHCP | DHCP Snooping |
| HTTP | 웹 평문 통신 | 도청, 변조 | HTTPS |
| FTP | 파일 전송 | 평문 노출 | SFTP, FTPS |
| Telnet | 원격 접속 | 평문 계정 노출 | SSH |
| SNMP | 장비 관리 | community string 노출 | SNMPv3, 접근 제한 |
| NTP | 시간 동기화 | 증폭 공격 | 접근 제한 |
스니핑과 스푸핑
스니핑
스니핑 = 네트워크 트래픽을 몰래 도청하는 공격HTTPS
SSH
SFTP
VPN
평문 프로토콜 제거
네트워크 분리스푸핑
스푸핑 = IP, MAC, DNS 등 신원 정보를 위조하는 공격ARP Spoofing
IP Spoofing
DNS Spoofing
Email Spoofing스니핑은 네트워크 상의 패킷을 몰래 수집하여 계정 정보, 세션 정보, 개인정보 등을 탈취하는 공격이고, 스푸핑은 IP, MAC, DNS 응답 등 신원 정보를 위조하여 정상 사용자나 시스템처럼 속이는 공격이다.ARP Spoofing
거짓 ARP 정보를 보내 IP-MAC 매핑을 조작하는 공격스니핑
MITM
세션 탈취
트래픽 변조정적 ARP
Dynamic ARP Inspection
DHCP Snooping
ARP 변경 모니터링
네트워크 분리
암호화 통신ARP Spoofing은 거짓 ARP 정보를 보내 IP 주소와 MAC 주소의 매핑을 조작하는 공격이다. 이를 통해 피해자의 트래픽을 공격자에게 유도하여 스니핑, 중간자 공격, 세션 탈취가 발생할 수 있으며, 대응 방안으로 정적 ARP 설정, Dynamic ARP Inspection, ARP 변경 모니터링, 네트워크 분리, 암호화 통신을 적용할 수 있다.DNS Spoofing
DNS 응답을 위조하여 정상 도메인을 공격자 IP로 연결하게 만드는 공격DNS Cache Poisoning = DNS 캐시에 위조된 정보를 저장시키는 공격DNSSEC
신뢰 DNS 사용
캐시 점검
Zone Transfer 제한
HTTPS 인증서 확인
DNS 로그 모니터링세션 하이재킹
정상 사용자의 세션 ID나 쿠키를 탈취하여 해당 사용자 권한으로 서비스를 이용하는 공격HTTPS
HttpOnly
Secure
SameSite
세션 ID 난수화
로그인 후 세션 재발급
세션 타임아웃
로그아웃 시 세션 폐기
이상 접속 탐지MITM과 Replay
| 공격 | 핵심 | 대응 |
|---|---|---|
| MITM | 통신 중간에 개입해 도청·변조 | TLS, 인증서 검증, VPN, DNSSEC |
| Replay | 정상 요청을 재전송 | Nonce, Timestamp, Sequence Number, MAC |
MITM은 통신 당사자 사이에 공격자가 개입하여 데이터를 도청하거나 변조하고 인증 정보를 탈취하는 공격이다. Replay Attack은 정상 인증 메시지나 요청을 가로챈 뒤 재전송하여 인증 우회나 중복 처리를 유발하는 공격으로, Nonce, Timestamp, Sequence Number, 메시지 인증코드 등을 통해 요청 재사용을 방지해야 한다.DoS와 DDoS
| 구분 | DoS | DDoS |
|---|---|---|
| 공격 주체 | 단일 또는 소수 | 다수 분산 |
| 규모 | 상대적으로 작음 | 큼 |
| 대응 난이도 | 상대적으로 낮음 | 높음 |
| 핵심 피해 | 가용성 침해 | 가용성 침해 |
DoS는 서버나 네트워크 자원을 고갈시켜 정상 사용자가 서비스를 이용하지 못하게 하는 공격이다. DDoS는 다수의 분산된 공격 지점에서 대량 트래픽을 발생시켜 서비스 가용성을 침해하는 공격으로, 출발지가 다양하고 규모가 커서 탐지와 차단이 더 어렵다.DDoS 공격 유형
| 공격 | 핵심 |
|---|---|
| SYN Flooding | SYN 요청 후 ACK 미전송, Half-open 증가 |
| UDP Flooding | UDP 대량 전송 |
| ICMP Flooding | ICMP 대량 전송 |
| Smurf Attack | IP 위조 + ICMP 브로드캐스트 |
| Reflection | 제3의 서버를 반사체로 이용 |
| Amplification | 작은 요청으로 큰 응답 유도 |
| HTTP Flood | 대량 HTTP 요청 |
| Slow HTTP | 느린 요청으로 연결 자원 점유 |
SYN Flooding 답안
SYN Flooding은 TCP 3-Way Handshake 과정에서 다수의 SYN 요청을 보내고 최종 ACK를 보내지 않아 서버의 연결 대기 자원을 고갈시키는 공격이다. 대응 방안으로 SYN Cookie, 연결 대기 큐와 타임아웃 조정, Rate Limiting, 방화벽·IPS 탐지, DDoS 방어 서비스 활용 등이 있다.보안장비 핵심 비교
| 장비 | 핵심 역할 | 계층 |
|---|---|---|
| 방화벽 | IP, 포트, 프로토콜 기반 허용·차단 | 3~4 |
| IDS | 침입 탐지와 경고 | 네트워크·호스트 |
| IPS | 침입 탐지와 차단 | 네트워크 |
| WAF | 웹 공격 탐지·차단 | 7 |
| VPN | 암호화 터널 | 3 또는 7 |
| NAC | 단말 인증과 보안 상태 점검 | 접근통제 |
| 프록시 | 요청 중계, 필터링, 기록 | 7 |
| 로드밸런서 | 트래픽 분산 | 4 또는 7 |
| DMZ | 외부 공개 서버와 내부망 분리 | 구조 |
| SIEM | 로그 통합 수집·상관분석 | 관제 |
IDS와 IPS
| 구분 | IDS | IPS |
|---|---|---|
| 이름 | 침입탐지시스템 | 침입방지시스템 |
| 역할 | 탐지·경고 | 탐지·차단 |
| 위치 | 보통 비인라인 | 보통 인라인 |
| 장점 | 통신 영향 적음 | 실시간 차단 |
| 단점 | 공격 통과 가능 | 오탐 시 정상 트래픽 차단 가능 |
IDS는 네트워크나 시스템의 트래픽과 이벤트를 분석하여 침입 시도나 이상 행위를 탐지하고 관리자에게 경고하는 시스템이다. IPS는 침입을 탐지한 후 실시간으로 차단까지 수행하는 시스템으로 즉시 대응이 가능하지만, 오탐 시 정상 트래픽을 차단할 수 있다.WAF와 일반 방화벽
| 구분 | 일반 방화벽 | WAF |
|---|---|---|
| 기준 | IP, 포트, 프로토콜 | URL, 파라미터, 쿠키, 헤더 |
| 계층 | 3~4계층 중심 | 7계층 |
| 목적 | 네트워크 접근통제 | 웹 공격 차단 |
| 공격 | 비인가 포트 접근 | SQL Injection, XSS, 웹셸 업로드 |
일반 방화벽은 주로 IP 주소, 포트, 프로토콜을 기준으로 네트워크 접근을 통제하는 장비이다. WAF는 HTTP/HTTPS 요청의 URL, 파라미터, 쿠키, 헤더, 본문을 분석하여 SQL Injection, XSS, 파일 업로드 공격 등 웹 애플리케이션 공격을 탐지·차단하는 7계층 보안장비이다.VPN, NAC, DMZ
VPN
공용망에서 암호화 터널을 구성하여 안전한 원격 접속 제공NAC
네트워크 접속 전 사용자와 단말을 인증하고 보안 상태를 점검DMZ
외부 공개 서버를 내부망과 분리된 중간 구간에 배치DMZ는 외부에서 접근해야 하는 웹 서버, 메일 서버, DNS 서버 등을 내부망과 분리된 중간 구간에 배치하는 네트워크 영역이다. 이를 통해 외부 공개 서버가 침해되더라도 내부 업무망으로 직접 접근하지 못하도록 방화벽 정책을 적용하여 피해 확산을 줄일 수 있다.어플리케이션보안 핵심 압축
어플리케이션보안은 웹, API, DB 연동 기능을 보호하는 영역입니다.
핵심 축은 다음입니다.
HTTP
쿠키와 세션
인증과 인가
SQL Injection
XSS
CSRF
파일 업로드
API 보안
시큐어 코딩
전자상거래 보안HTTP 핵심
HTTP는 웹에서 클라이언트와 서버가 요청과 응답을 주고받는 프로토콜입니다.
요청·응답 구조
무상태 프로토콜
응용 계층
기본 포트 80
평문 통신GET과 POST
| 구분 | GET | POST |
|---|---|---|
| 용도 | 조회 | 데이터 전송·처리 |
| 데이터 위치 | URL | Body |
| 민감정보 | 부적절 | HTTPS 필요 |
| 노출 | URL, 로그, 기록 | URL 노출은 덜함 |
GET은 주로 데이터 조회에 사용되며 요청 데이터가 URL에 포함될 수 있어 브라우저 기록이나 로그에 남기 쉽기 때문에 민감정보 전송에 부적절하다. POST는 요청 본문에 데이터를 포함하여 전송이나 등록 처리에 사용되지만, 암호화가 보장되는 것은 아니므로 로그인 정보나 개인정보 전송 시 HTTPS를 적용해야 한다.쿠키와 세션
| 구분 | 쿠키 | 세션 |
|---|---|---|
| 저장 위치 | 클라이언트 | 서버 |
| 역할 | 식별자 또는 상태 저장 | 사용자 상태 관리 |
| 위험 | 탈취·변조 | 세션 탈취·고정 |
| 예시 | sessionid | 서버 로그인 상태 |
쿠키 보안 속성
| 속성 | 의미 |
|---|---|
| HttpOnly | JavaScript 쿠키 접근 제한 |
| Secure | HTTPS에서만 쿠키 전송 |
| SameSite | 다른 사이트 요청 시 쿠키 전송 제한 |
HttpOnly는 JavaScript에서 쿠키에 접근하지 못하도록 하여 XSS로 인한 쿠키 탈취 위험을 줄인다. Secure는 HTTPS 통신에서만 쿠키가 전송되도록 하며, SameSite는 다른 사이트에서 발생한 요청에 쿠키가 자동 전송되는 것을 제한하여 CSRF 위험을 완화한다.인증과 인가
| 구분 | 인증 | 인가 |
|---|---|---|
| 질문 | 너는 누구인가? | 너는 이것을 해도 되는가? |
| 예시 | 로그인 | 관리자 페이지 접근 |
| 실패 | 로그인 실패 | 403 권한 없음 |
인증은 사용자가 주장하는 신원이 실제로 맞는지 확인하는 절차이고, 인가는 인증된 사용자가 특정 자원이나 기능에 접근할 권한이 있는지 확인하는 절차이다. 예를 들어 아이디와 비밀번호로 로그인하는 것은 인증이고, 관리자 페이지 접근 허용 여부를 판단하는 것은 인가이다.SQL Injection
사용자 입력값에 SQL 구문을 삽입하여 DB를 비정상적으로 조회, 수정, 삭제하거나 인증을 우회하는 공격사용자 입력값을 SQL 문자열에 직접 결합인증 우회
개인정보 유출
DB 변조
DB 삭제
권한 상승Prepared Statement
입력값 검증
DB 권한 최소화
오류 메시지 노출 제한
WAF
로그 모니터링SQL Injection은 웹 애플리케이션의 입력값에 악의적인 SQL 구문을 삽입하여 데이터베이스를 비정상적으로 조회, 수정, 삭제하거나 인증을 우회하는 공격이다. 대응 방안으로 SQL 구조와 입력값을 분리하는 Prepared Statement를 사용하고, 입력값 검증, DB 권한 최소화, 오류 메시지 노출 제한, WAF 적용, 로그 모니터링을 수행해야 한다.XSS
악성 스크립트가 사용자 브라우저에서 실행되는 공격쿠키 탈취
세션 탈취
피싱
화면 변조
악성 사이트 유도유형은 다음과 같습니다.
| 유형 | 핵심 |
|---|---|
| Stored XSS | 서버에 저장된 스크립트 실행 |
| Reflected XSS | 요청값이 응답에 반사되어 실행 |
| DOM-based XSS | 클라이언트 측 DOM 처리에서 발생 |
출력값 인코딩
입력값 검증
CSP
HttpOnly 쿠키
WAF
위험 HTML 제한XSS는 웹 애플리케이션이 사용자 입력값을 안전하게 처리하지 않아 악성 스크립트가 다른 사용자의 브라우저에서 실행되는 공격이다. 이를 통해 쿠키 탈취, 세션 하이재킹, 피싱, 화면 변조가 발생할 수 있으며, 대응 방안으로 출력값 인코딩, 입력값 검증, CSP 적용, HttpOnly·Secure 쿠키 설정, WAF 적용 등이 있다.CSRF
로그인된 사용자의 인증 상태를 악용해 원치 않는 요청을 서버에 보내게 하는 공격비밀번호 변경
이메일 변경
게시글 작성
송금 요청
관리자 설정 변경CSRF Token
SameSite 쿠키
Origin/Referer 검증
중요 기능 재인증
GET으로 상태 변경 금지CSRF는 사용자가 웹사이트에 로그인된 상태를 악용하여 사용자가 의도하지 않은 요청을 서버에 전송하게 만드는 공격이다. 대응 방안으로 예측 불가능한 CSRF Token을 생성해 서버에서 검증하고, SameSite 쿠키 설정, Origin/Referer 검증, 중요 기능 재인증, GET 방식의 상태 변경 금지를 적용해야 한다.XSS와 CSRF 비교
| 구분 | XSS | CSRF |
|---|---|---|
| 핵심 | 악성 스크립트 실행 | 요청 위조 |
| 대상 | 사용자 브라우저 | 사용자의 인증 상태 |
| 피해 | 쿠키 탈취, 피싱 | 비밀번호 변경, 송금 |
| 대응 | 출력값 인코딩, CSP | CSRF Token, SameSite |
XSS = 스크립트 실행
CSRF = 로그인 상태로 원치 않는 요청파일 업로드 취약점
업로드 파일 검증이 미흡하여 웹셸이나 악성 파일이 서버에 업로드·실행될 수 있는 취약점웹셸 실행
서버 명령 실행
파일 조작
악성코드 유포
서버 장악허용 확장자 방식
MIME Type 검증
파일 시그니처 검증
파일 크기 제한
파일명 난수화
웹 루트 외부 저장
실행 권한 제거
접근통제
악성코드 검사파일 업로드 취약점은 업로드 파일의 확장자, 내용, 크기, 저장 위치, 실행 권한 등을 검증하지 않아 웹셸이나 악성 파일이 서버에 업로드·실행될 수 있는 취약점이다. 대응 방안으로 허용 확장자 방식, MIME Type과 파일 시그니처 검증, 파일 크기 제한, 파일명 난수화, 웹 루트 외부 저장, 업로드 디렉터리 실행 권한 제거, 접근통제, 악성코드 검사를 적용해야 한다.API 보안
API는 직접 호출할 수 있으므로 화면 제어만으로는 안전하지 않습니다.
모든 API 요청에서 인증, 인가, 입력값 검증을 서버 측에서 수행한다.API 취약점
| 취약점 | 설명 |
|---|---|
| 인증 누락 | 로그인 없이 호출 가능 |
| 인가 누락 | 권한 없는 데이터 접근 |
| IDOR/BOLA | 객체 ID 조작으로 타인 데이터 접근 |
| Mass Assignment | 허용되지 않은 필드까지 반영 |
| 과도한 데이터 노출 | 불필요한 민감정보 응답 |
| Rate Limit 부재 | 대량 요청 가능 |
| CORS 오류 | 허용되지 않은 출처 접근 |
API 보안을 위해 모든 요청에 인증을 적용하고, 사용자가 요청한 자원에 접근할 권한이 있는지 서버 측에서 검증해야 한다. 또한 입력값 검증, 응답 데이터 최소화, Rate Limiting, 토큰 만료와 폐기 정책, Mass Assignment 방지, CORS 제한, 오류 메시지 노출 제한, API 호출 로그 기록을 적용해야 한다.IDOR
객체 식별자를 조작하여 권한 없는 타인의 자원에 접근하는 취약점/user/profile?id=100
/user/profile?id=101서버 측 권한 검증
자원 소유자 검증
역할 기반 접근통제
순차 ID 노출 최소화
로그 모니터링IDOR는 사용자가 요청 파라미터의 객체 식별자를 조작하여 권한 없는 타인의 자원에 접근하는 접근통제 취약점이다. 대응 방안으로 서버 측에서 매 요청마다 사용자 권한과 자원 소유자를 검증하고, 역할 기반 접근통제를 적용하며, 단순 순번 ID 노출을 줄이고 비정상 객체 ID 순차 접근을 로그로 모니터링해야 한다.JWT 보안
JWT는 JSON 기반 토큰입니다.
Header.Payload.Signature서명 검증
안전한 알고리즘 사용
만료시간 설정
Payload에 민감정보 저장 금지
HTTPS 전송
토큰 폐기·재발급 정책
권한 클레임 검증JWT는 JSON 형식의 클레임을 담고 서명을 통해 위변조 여부를 검증할 수 있는 토큰 기반 인증 방식이다. 보안 운영을 위해 서명 검증, 안전한 알고리즘 사용, 짧은 만료시간 설정, Payload에 민감정보 저장 금지, HTTPS 전송, 토큰 탈취 대비 폐기·재발급 정책, 권한 클레임 검증이 필요하다.시큐어 코딩
시큐어 코딩은 개발 단계에서 보안 취약점을 예방하는 방법입니다.
입력값 검증
출력값 인코딩
Prepared Statement
인증·인가 서버 검증
세션 보호
파일 업로드 검증
오류 메시지 제한
민감정보 보호
로그 보안
보안 설정 강화시큐어 코딩은 소프트웨어 개발 과정에서 보안 취약점이 발생하지 않도록 입력값 검증, 출력값 인코딩, 인증·인가 검증, 안전한 SQL 처리, 오류 처리, 민감정보 보호 등을 적용하는 개발 방법이다. 이를 통해 SQL Injection, XSS, 접근통제 취약점, 정보 노출 등 주요 웹 취약점을 개발 단계에서 예방할 수 있다.전자상거래 보안
가격, 할인, 배송비, 결제금액, 주문상태는 클라이언트가 아니라 서버에서 검증한다.가격 조작
결제 요청 변조
쿠폰 중복 사용
재전송 공격
타인 주문 조회
환불 금액 조작서버 측 금액 계산
PG 승인 결과 검증
주문번호 중복 확인
Nonce
Timestamp
Idempotency Key
상태 전이 검증
거래 로그 기록결제 요청 변조는 클라이언트가 전송한 가격, 수량, 할인, 주문번호, 결제금액 등을 공격자가 조작하여 부정 결제를 유도하는 공격이다. 대응 방안으로 상품가격, 할인, 배송비, 최종 결제금액을 서버에서 계산하고, PG 승인 결과와 서버 주문정보를 비교 검증하며, 사용자 권한 확인, 쿠폰 사용 검증, 재전송 방지, 결제 로그 기록을 적용해야 한다.필기 빈출 비교표
시스템보안 비교
| 비교 | 핵심 |
|---|---|
| 인증 vs 인가 | 신원 확인 vs 권한 확인 |
| 전체 백업 vs 증분 백업 vs 차등 백업 | 전부 vs 직전 이후 vs 마지막 전체 이후 |
| 바이러스 vs 웜 | 파일 감염 vs 네트워크 자기 전파 |
| 백도어 vs 루트킷 | 우회 통로 vs 은폐 도구 |
| 패치관리 vs 변경관리 | 취약점 보완 업데이트 vs 운영 변경 통제 |
| RTO vs RPO | 복구 시간 vs 복구 시점 |
네트워크보안 비교
| 비교 | 핵심 |
|---|---|
| 스니핑 vs 스푸핑 | 도청 vs 위조 |
| ARP Spoofing vs DNS Spoofing | IP-MAC 조작 vs DNS 응답 조작 |
| DoS vs DDoS | 단일 공격 vs 분산 공격 |
| Reflection vs Amplification | 반사체 이용 vs 트래픽 증폭 |
| IDS vs IPS | 탐지·경고 vs 탐지·차단 |
| 방화벽 vs WAF | IP·포트 통제 vs 웹 요청 분석 |
| VPN vs NAC | 암호화 터널 vs 단말 접근통제 |
| L4 vs L7 로드밸런서 | IP·포트 기준 vs URL·헤더 기준 |
웹보안 비교
| 비교 | 핵심 |
|---|---|
| SQL Injection vs XSS | DB 공격 vs 브라우저 공격 |
| XSS vs CSRF | 스크립트 실행 vs 요청 위조 |
| Stored XSS vs Reflected XSS | 서버 저장 vs 요청 반사 |
| 쿠키 vs 세션 | 클라이언트 저장 vs 서버 상태 관리 |
| 인증 vs 인가 | 로그인 확인 vs 권한 확인 |
| IDOR vs Mass Assignment | 객체 ID 조작 vs 허용되지 않은 필드 반영 |
| 제3자 제공 vs 위탁 | 받는 자 목적 vs 내 업무 대행 |
| GET vs POST | URL 데이터 vs Body 데이터 |
실기 답안 기본 구조
실기 답안은 아래 구조로 쓰면 안정적입니다.
개념 정의
→ 발생 원인 또는 위험
→ 대응 방안SQL Injection은 사용자 입력값에 SQL 구문을 삽입하여 DB를 비정상적으로 조회, 수정, 삭제하거나 인증을 우회하는 공격이다.
주요 원인은 입력값을 검증하지 않고 SQL 문자열에 직접 결합하는 것이다.
대응 방안으로는 Prepared Statement, 입력값 검증, DB 권한 최소화, 오류 메시지 제한, WAF 적용이 있다.자주 쓰는 실기 답안 키워드
실기 답안에 넣기 좋은 키워드입니다.
시스템보안
최소권한
불필요 계정 삭제
휴면 계정 잠금
관리자 권한 제한
패스워드 정책
로그 수집과 점검
시간 동기화
패치 적용
백업과 복구 테스트
서비스 최소화
하드닝네트워크보안
암호화 통신
평문 프로토콜 제거
접근 IP 제한
Rate Limiting
방화벽 정책
IDS/IPS
WAF
VPN
NAC
DMZ
DDoS 방어센터
로그 모니터링웹보안
입력값 검증
출력값 인코딩
Prepared Statement
CSRF Token
HttpOnly
Secure
SameSite
서버 측 권한 검증
파일 시그니처 검증
웹 루트 외부 저장
실행 권한 제거
Rate Limiting필기형 문제풀이
문제 1
리눅스 파일 권한 755의 의미로 올바른 것은?
A. 소유자 rwx, 그룹 r-x, 기타 r-x
B. 소유자 r--, 그룹 r--, 기타 r--
C. 모든 사용자 rwx
D. 소유자만 읽기 가능
755는 소유자 7, 그룹 5, 기타 사용자 5입니다.
문제 2
불필요한 서비스를 제거해야 하는 주된 이유는?
A. 로그를 삭제하기 위해
B. 공격 표면을 줄이기 위해
C. 비밀번호를 평문 저장하기 위해
D. 모든 포트를 열기 위해
불필요한 서비스는 공격자가 노릴 수 있는 지점을 늘립니다.
문제 3
ARP의 역할은?
A. 도메인 이름을 IP 주소로 변환
B. 파일을 압축
C. IP 주소를 MAC 주소로 변환
D. 비밀번호를 해시
ARP는 동일 네트워크에서 IP-MAC 매핑을 알아냅니다.
문제 4
TCP 3-Way Handshake 순서로 올바른 것은?
A. ACK → SYN → FIN
B. SYN → SYN/ACK → ACK
C. FIN → ACK → SYN
D. GET → POST → DELETE
TCP 연결 설정 순서입니다.
정답 이유: TCP는 연결 지향 프로토콜이므로 클라이언트의 SYN, 서버의 SYN/ACK, 클라이언트의 ACK 순서로 연결을 설정합니다.
오답 이유: A와 C는 연결 설정과 종료 패킷을 섞은 보기입니다. D는 HTTP 메서드로 응용 계층 요청 방식이며 TCP 3-Way Handshake가 아닙니다.
문제 5
HTTPS의 기본 포트 번호는?
A. 22
B. 23
C. 80
D. 443
HTTPS는 443번 포트를 사용합니다.
문제 6
SYN Flooding의 핵심 원리는?
A. DNS 캐시를 오염시킨다
B. 파일을 암호화한다
C. SYN 요청 후 ACK를 보내지 않아 연결 대기 자원을 고갈시킨다
D. 쿠키에 SameSite를 설정한다
SYN Flooding은 TCP 연결 과정을 악용합니다.
정답 이유: SYN Flooding은 SYN 요청을 대량 전송한 뒤 최종 ACK를 보내지 않아 서버의 연결 대기 자원을 고갈시키는 공격입니다.
오답 이유: A는 DNS Spoofing 또는 Cache Poisoning과 관련되고, B는 랜섬웨어의 특징입니다. D는 CSRF 방어에 쓰이는 쿠키 속성으로 SYN Flooding과 무관합니다.
문제 7
IDS와 IPS의 차이로 올바른 것은?
A. IDS는 탐지 중심, IPS는 탐지와 차단 수행
B. IDS는 백업, IPS는 복구
C. IDS는 쿠키, IPS는 세션
D. 둘은 완전히 같은 의미
IDS는 경고, IPS는 차단까지 수행합니다.
정답 이유: IDS는 침입 시도를 탐지하고 알림을 제공하는 장비이고, IPS는 탐지 후 정책에 따라 패킷 차단까지 수행할 수 있습니다.
오답 이유: B는 백업·복구 개념을 섞은 보기입니다. C는 웹 세션 관리 요소이고, D처럼 완전히 같은 장비가 아니므로 운영 위치와 오탐 영향도 다릅니다.
문제 8
SQL Injection 대응책으로 가장 핵심적인 것은?
A. Telnet 사용
B. Prepared Statement
C. 777 권한 부여
D. 상세 오류 노출
Prepared Statement는 SQL 구조와 입력값을 분리합니다.
정답 이유: Prepared Statement는 사용자 입력을 SQL 명령 구조로 해석하지 않도록 분리해 SQL Injection 위험을 줄이는 핵심 대책입니다.
오답 이유: A는 평문 원격 접속 위험을 키웁니다. C는 파일 권한 취약점이고, D는 공격자에게 SQL 구조와 오류 정보를 제공할 수 있습니다.
문제 9
XSS 대응의 핵심은?
A. SQL 문자열 직접 결합
B. 모든 쿠키 공개
C. 출력값 인코딩
D. 인증 생략
XSS는 브라우저에서 코드로 실행되지 않도록 출력값을 인코딩해야 합니다.
문제 10
CSRF 대응책으로 적절한 것은?
A. CSRF Token
B. DB DROP 권한 부여
C. GET으로 비밀번호 변경
D. 인증서 경고 무시
CSRF Token은 요청 정당성을 검증합니다.
정답 이유: CSRF Token은 사용자의 세션을 악용한 위조 요청인지 확인하기 위해 서버가 예측하기 어려운 토큰을 검증하는 방식입니다.
오답 이유: B는 DB 권한 남용 위험이고, C는 상태 변경 요청을 쉽게 위조하게 만듭니다. D는 HTTPS 인증서 검증을 약화시켜 중간자 공격 위험을 높입니다.
문제 11
IDOR 취약점의 설명으로 올바른 것은?
A. 객체 식별자를 조작해 타인의 자원에 접근하는 취약점
B. 파일을 암호화하고 금전을 요구하는 공격
C. MAC 주소를 IP 주소로 변환
D. 서버실 출입 통제
IDOR는 접근통제 취약점입니다.
문제 12
파일 업로드 취약점 대응으로 적절하지 않은 것은?
A. 업로드 디렉터리 실행 권한 제거
B. 파일 시그니처 검증
C. 웹 루트 외부 저장
D. 업로드 파일을 서버에서 실행 허용
업로드 파일 실행 허용은 웹셸 위험을 높입니다.
정답 이유: 업로드 파일이 서버에서 실행되면 공격자가 웹셸을 올려 명령 실행, 내부망 침투, 데이터 탈취로 이어질 수 있습니다.
오답 이유: A, B, C는 각각 실행 차단, 파일 내용 검증, 웹 루트 외부 저장으로 업로드 취약점 위험을 줄이는 대책입니다.
실기형 문제풀이
문제 1
문제: 불필요한 서비스 제거가 필요한 이유를 설명하시오.
답안
불필요한 서비스는 외부에서 접근 가능한 공격 지점을 증가시켜 취약점 악용, 정보 유출, 권한 상승 위험을 높인다. 따라서 사용하지 않는 서비스와 포트는 중지하거나 차단하고, 필요한 서비스만 최소 권한으로 운영해야 한다.문제 2
문제: ARP Spoofing의 개념과 대응 방안을 설명하시오.
답안
ARP Spoofing은 거짓 ARP 정보를 보내 IP 주소와 MAC 주소의 매핑을 조작하는 공격이다. 이를 통해 피해자의 트래픽을 공격자에게 유도하여 스니핑이나 중간자 공격이 발생할 수 있으며, 대응 방안으로 정적 ARP 설정, Dynamic ARP Inspection, ARP 변경 모니터링, 네트워크 분리, 암호화 통신을 적용할 수 있다.문제 3
문제: DoS와 DDoS의 차이를 설명하시오.
답안
DoS는 단일 공격자가 서버나 네트워크 자원을 고갈시켜 정상 사용자의 서비스 이용을 방해하는 공격이다. DDoS는 다수의 분산된 공격 지점을 이용해 대량의 트래픽을 발생시키는 공격으로, 출발지가 다양하고 규모가 커서 탐지와 차단이 더 어렵다.문제 4
문제: WAF와 일반 방화벽의 차이를 설명하시오.
답안
일반 방화벽은 주로 IP 주소, 포트 번호, 프로토콜을 기준으로 네트워크 접근을 통제하는 장비이다. WAF는 HTTP/HTTPS 요청의 URL, 파라미터, 쿠키, 헤더 등을 분석하여 SQL Injection, XSS, 파일 업로드 공격 등 웹 애플리케이션 공격을 탐지하고 차단하는 7계층 보안장비이다.문제 5
문제: SQL Injection의 개념과 대응 방안을 설명하시오.
답안
SQL Injection은 웹 애플리케이션의 입력값에 악의적인 SQL 구문을 삽입하여 데이터베이스를 비정상적으로 조회, 수정, 삭제하거나 인증을 우회하는 공격이다. 대응 방안으로 Prepared Statement, 입력값 검증, DB 권한 최소화, 오류 메시지 노출 제한, WAF 적용, 로그 모니터링을 수행해야 한다.문제 6
문제: XSS와 CSRF의 차이를 설명하시오.
답안
XSS는 웹페이지에 삽입된 악성 스크립트가 사용자 브라우저에서 실행되어 쿠키 탈취, 피싱, 화면 변조 등을 유발하는 공격이다. CSRF는 사용자가 로그인된 상태를 악용하여 사용자가 의도하지 않은 요청을 서버에 전송하게 만드는 공격으로, 핵심 대응은 CSRF Token과 SameSite 쿠키 설정이다.문제 7
문제: 파일 업로드 취약점의 위험과 대응 방안을 설명하시오.
답안
파일 업로드 취약점은 업로드 파일의 확장자, 내용, 크기, 저장 위치, 실행 권한 등을 검증하지 않아 웹셸이나 악성 파일이 서버에 업로드·실행될 수 있는 취약점이다. 대응 방안으로 허용 확장자 방식, MIME Type과 파일 시그니처 검증, 파일 크기 제한, 파일명 난수화, 웹 루트 외부 저장, 업로드 디렉터리 실행 권한 제거, 접근통제, 악성코드 검사를 적용해야 한다.핵심 요약
| 영역 | 반드시 기억할 내용 |
|---|---|
| 시스템보안 | 계정, 권한, 로그, 패치, 백업, 하드닝 |
| 계정관리 | 불필요 계정 제거, 관리자 권한 제한, 책임추적성 |
| 파일권한 | rwx, chmod, 777 위험, SetUID 주의 |
| 로그관리 | 수집, 보관, 접근통제, 무결성, 시간 동기화 |
| 패치관리 | 자산 파악, 테스트, 적용, 검증, 이력 |
| 백업 | 전체·증분·차등, 암호화, 복구 테스트 |
| 네트워크보안 | OSI, 프로토콜, 공격, 보안장비 |
| OSI | 2계층 MAC, 3계층 IP, 4계층 TCP/UDP, 7계층 HTTP |
| 공격 | 스니핑, 스푸핑, MITM, Replay, DoS/DDoS |
| 보안장비 | 방화벽, IDS, IPS, WAF, VPN, NAC, DMZ |
| 웹보안 | HTTP, 쿠키, 세션, 인증, 인가, 입력값 |
| SQL Injection | Prepared Statement |
| XSS | 출력값 인코딩 |
| CSRF | CSRF Token |
| 파일 업로드 | 허용 확장자, 시그니처, 실행 권한 제거 |
| API 보안 | 인증, 인가, Rate Limiting, IDOR 방지 |
반드시 외울 문장
시스템보안은 계정, 권한, 로그, 패치, 백업, 서비스, 악성코드 대응을 통해 서버와 운영체제를 안전하게 관리하는 영역이다.
최소권한 원칙은 사용자나 프로세스에 업무 수행에 필요한 최소한의 권한만 부여하여 권한 오남용과 사고 피해 범위를 줄이는 원칙이다.
로그는 침해사고 탐지, 원인 분석, 책임추적성 확보에 필요한 핵심 자료이므로 접근통제, 무결성 보호, 보관기간 설정, 시간 동기화가 필요하다.
불필요한 서비스는 공격 표면을 증가시키므로 중지하거나 제거하고 필요한 서비스만 최소 권한으로 운영해야 한다.
OSI 7계층에서 2계층은 MAC 주소와 스위치, 3계층은 IP 주소와 라우터, 4계층은 TCP·UDP와 포트 번호, 7계층은 HTTP·DNS 같은 응용 프로토콜과 관련된다.
ARP Spoofing은 거짓 ARP 정보를 보내 IP-MAC 매핑을 조작하고 피해자의 트래픽을 공격자에게 유도하는 공격이다.
DoS와 DDoS는 서비스 가용성을 침해하는 공격이며, DDoS는 다수의 분산된 공격 지점에서 발생하므로 탐지와 차단이 더 어렵다.
IDS는 침입을 탐지하고 경고하는 시스템이고, IPS는 침입을 탐지한 후 실시간 차단까지 수행하는 시스템이다.
WAF는 HTTP/HTTPS 요청을 분석하여 SQL Injection, XSS, 파일 업로드 공격 등 웹 애플리케이션 공격을 탐지·차단하는 7계층 보안장비이다.
SQL Injection은 입력값에 SQL 구문을 삽입하여 DB를 공격하는 기법이며, Prepared Statement와 입력값 검증이 핵심 대응책이다.
XSS는 악성 스크립트가 사용자 브라우저에서 실행되는 공격이며, 출력값 인코딩이 핵심 대응책이다.
CSRF는 사용자의 로그인 상태를 악용해 원치 않는 요청을 전송하게 하는 공격이며, CSRF Token과 SameSite 쿠키가 핵심 대응책이다.
파일 업로드 취약점은 웹셸 업로드와 서버 장악으로 이어질 수 있으므로 허용 확장자, 파일 시그니처 검증, 웹 루트 외부 저장, 실행 권한 제거가 필요하다.
API 보안은 모든 요청에 대해 인증, 인가, 입력값 검증, Rate Limiting, 로그 기록을 서버 측에서 수행하는 것이 핵심이다.연습 과제
이번 과제는 총정리용입니다.
정답을 완벽히 쓰려 하기보다, 답안 문장을 만드는 연습을 하세요.
A. 단답형
1. 최소권한 원칙이란 무엇인가?
2. 불필요한 서비스를 제거해야 하는 이유는 무엇인가?
3. 로그 관리가 중요한 이유 3가지를 쓰시오.
4. 전체 백업, 증분 백업, 차등 백업의 차이를 쓰시오.
5. 바이러스와 웜의 차이를 쓰시오.
6. OSI 7계층 중 2, 3, 4, 7계층의 핵심 키워드를 쓰시오.
7. TCP와 UDP의 차이를 쓰시오.
8. ARP의 역할은 무엇인가?
9. ARP Spoofing이란 무엇인가?
10. DNS Spoofing이란 무엇인가?
11. 스니핑과 스푸핑의 차이를 쓰시오.
12. MITM과 Replay Attack의 차이를 쓰시오.
13. DoS와 DDoS의 차이를 쓰시오.
14. SYN Flooding이란 무엇인가?
15. IDS와 IPS의 차이를 쓰시오.
16. WAF와 일반 방화벽의 차이를 쓰시오.
17. HTTP와 HTTPS의 차이를 쓰시오.
18. 쿠키와 세션의 차이를 쓰시오.
19. 인증과 인가의 차이를 쓰시오.
20. SQL Injection이란 무엇인가?
21. SQL Injection 대응 방안 5가지를 쓰시오.
22. XSS란 무엇인가?
23. Stored XSS와 Reflected XSS의 차이를 쓰시오.
24. CSRF란 무엇인가?
25. CSRF 대응 방안 4가지를 쓰시오.
26. 파일 업로드 취약점 대응 방안 6가지를 쓰시오.
27. IDOR란 무엇인가?
28. JWT 사용 시 보안상 주의사항 5가지를 쓰시오.
29. API 보안 대책 7가지를 쓰시오.
30. 시큐어 코딩의 주요 원칙 7가지를 쓰시오.B. 비교형 문제
아래 개념들의 차이를 2~3문장으로 쓰세요.
31. 전체 백업 vs 증분 백업 vs 차등 백업
32. TCP vs UDP
33. IP 주소 vs MAC 주소
34. 스니핑 vs 스푸핑
35. ARP Spoofing vs DNS Spoofing
36. DoS vs DDoS
37. IDS vs IPS
38. 방화벽 vs WAF
39. SQL Injection vs XSS
40. XSS vs CSRF
41. 쿠키 vs 세션
42. 인증 vs 인가
43. IDOR vs Mass AssignmentC. 실기형 답안 작성
아래 문제는 실제 답안처럼 2~4문장으로 작성하세요.
44. 계정 관리 보안대책을 설명하시오.
45. 로그 관리의 필요성과 관리 방안을 설명하시오.
46. 불필요한 서비스 제거가 필요한 이유를 설명하시오.
47. ARP Spoofing의 개념과 대응 방안을 설명하시오.
48. SYN Flooding의 원리와 대응 방안을 설명하시오.
49. IDS와 IPS의 차이를 설명하시오.
50. WAF와 일반 방화벽의 차이를 설명하시오.
51. SQL Injection의 개념과 대응 방안을 설명하시오.
52. XSS의 개념과 대응 방안을 설명하시오.
53. CSRF의 개념과 대응 방안을 설명하시오.
54. 파일 업로드 취약점의 위험과 대응 방안을 설명하시오.
55. IDOR 취약점의 개념과 대응 방안을 설명하시오.
56. API 보안 대책을 설명하시오.정답 방향 및 채점 기준
A. 단답형 핵심 답안
| 범위 | 채점 키워드 |
|---|---|
| 1~3 | 최소권한, 불필요 서비스 제거, 로그의 탐지·분석·책임추적성 |
| 4~6 | 전체·증분·차등 백업, 바이러스·웜 차이, OSI 2·3·4·7계층 키워드 |
| 7~13 | TCP/UDP, ARP, ARP Spoofing, DNS Spoofing, 스니핑·스푸핑, MITM·Replay, DoS·DDoS |
| 14~19 | SYN Flooding, IDS/IPS, WAF/방화벽, HTTP/HTTPS, 쿠키/세션, 인증/인가 |
| 20~30 | SQLi, XSS, CSRF, 파일 업로드, IDOR, JWT, API 보안, 시큐어 코딩 |
B. 비교형 채점 기준
비교형 답안은 두 개념을 각각 정의한 뒤 차이 기준을 한 문장으로 분리해야 합니다.
| 비교 유형 | 반드시 들어갈 기준 |
|---|---|
| 백업 비교 | 저장 대상, 복구 속도, 저장 공간 |
| TCP/UDP | 연결성, 신뢰성, 속도 |
| IP/MAC | 네트워크 계층 주소와 데이터링크 계층 주소 |
| 스니핑/스푸핑 | 도청과 위조 |
| DoS/DDoS | 단일 공격원과 분산 공격원 |
| IDS/IPS | 탐지 중심과 차단 포함 |
| 방화벽/WAF | 네트워크·전송 계층 중심과 HTTP 애플리케이션 계층 |
| SQLi/XSS/CSRF | DB 공격, 브라우저 스크립트, 요청 위조 |
| 인증/인가 | 신원 확인과 권한 확인 |
C. 실기형 답안 공식
정의:
위험:
대응:
운영상 주의:감점 포인트
대응 방안 없이 공격 정의만 쓰면 감점.
SQL Injection 대응에서 Prepared Statement를 누락하면 감점.
XSS 대응에서 출력값 인코딩을 누락하면 감점.
CSRF를 XSS처럼 스크립트 실행 공격으로 설명하면 감점.
IDOR 대응을 UUID 변경만으로 설명하고 서버 측 권한 검증을 누락하면 감점.
API 보안에서 인증만 쓰고 인가, 입력값 검증, Rate Limiting, 로그를 누락하면 감점.