V. 어플리케이션 보안 - 1
2026년 04월 30일 15시
카테고리 -
LECTURE,
인터넷보안
인터넷보안(황승연) 9주차 강의내용
1. 웹 어플리케이션 보안
웹 어플리케이션 개념
1) 웹 (Web, World Wide Web)이란?
- 인터넷을 기반으로 하여 하이퍼텍스트(HyperText)를 이용해 문서와 문서를 연결하고 정보를 공유할 수 있는 서비스
- 역사 및 특징
- 1989년 CERN의 팀 버너스 리(Tim Berners-Lee)에 의해 연구 목적 프로젝트로 시작
- 초기 명칭: ‘Hyper Text Project’
- Hypertext: 1960년대 테드 넬슨이 만든 신조어로, 다른 문서와 연관 관계를 가지는 텍스트를 의미
- 주로 HTTP 프로토콜을 기반으로 동작하며, HTML로 문서를 구성하여 웹 브라우저를 통해 제공
2) 웹 브라우저 (Web Browser)
- 사용자가 웹 서버에 요청을 보내고 서버로부터 전달받은 HTML, CSS, JavaScript 등을 해석하여 화면에 출력하는 프로그램
- 예시: Chrome, Edge, Firefox, Safari 등
3) 웹 애플리케이션 (Web Application)
- 웹 브라우저를 통해 사용자에게 서비스를 제공하는 응용 프로그램
- 일반적인 3계층 구조 (3-Tier Architecture)
- 프레젠테이션 계층 (Presentation Layer): 사용자 인터페이스 담당 (HTML, CSS, JS)
- 애플리케이션 계층 (Application Layer): 비즈니스 로직 처리 (ASP, JSP, PHP 등)
- 데이터 계층 (Data Layer): 데이터 저장 및 관리 (Database)
웹 구성 요소 및 프로토콜
1) 주요 구성 요소
- HTTP (Hypertext Transfer Protocol): 클라이언트와 서버가 데이터를 주고받는 규칙
- 프록시 서버 (Proxy Server): 클라이언트와 서버 사이에서 대신 요청/응답을 수행하는 중간 서버 (보안, 캐싱, 익명성 목적)
- 웹 캐시 (Web Cache): 자주 사용하는 데이터를 저장하여 빠르게 제공하는 공간
- HTML (Hyper Text Markup Language): 웹 페이지의 구조(뼈대)를 만드는 언어
- Script: 브라우저에서 실행되는 Client Side Script와 서버에서 실행되는 Server Side Script로 구분
- 쿠키 (Cookie): 웹사이트가 브라우저에 저장하는 데이터 (로그인 유지, 사이트 설정 등)
2) HTTP 프로토콜 특성
- 동작 방식: 클라이언트가 요청(Request)을 보내면 서버가 응답(Response)을 반환
- 전송 방식 (Method)
- GET 방식: 데이터를 URL 뒤에 쿼리 문자열(Query String)로 붙여 전달. 데이터 노출 및 길이 제한 있음. 조회에 주로 사용.
- POST 방식: 데이터를 HTTP 메시지 바디(Body)에 담아 전송. URL 노출 없음. 길이 제한 거의 없음. 보안에 상대적으로 유리.
- 연결 특성
- 비연결성 (Connectionless): 요청과 응답이 끝나면 연결을 종료
- 무상태성 (Stateless): 이전 요청의 상태를 기억하지 않음
- 보완 기법: 사용자 상태 유지를 위해 Cookie, Session, Hidden Form Field 등을 사용
3) HTTP 메시지 구조
- 요청 메시지 (Request Message): 시작라인(Method 포함), 헤더(User-Agent, Cookie 등), 바디(POST 데이터)
- 응답 메시지 (Response Message): 상태라인(Status Code), 헤더, 바디(HTML 등 콘텐츠)
어플리케이션 보안의 중요성
- 소프트웨어 개발 과정(설계, 구현, 테스트, 배포)에서 발생할 수 있는 보안 취약점과 결함을 식별하고 방지하는 활동
- 웹 애플리케이션은 조직의 주요 자산을 노리는 사이버 공격의 핵심 표적
- 공격 성공 시 개인정보 유출, 금전적 피해, 서비스 장애 등 심각한 2차 피해 발생
2. 보안 취약점 점검 및 모의 해킹
취약점 (Vulnerability)의 개념
- 정의: 정보시스템의 하드웨어, 소프트웨어 또는 설계상 결함으로 인해 공격자가 권한 밖의 행위를 하거나 허용되지 않은 정보에 접근할 수 있게 만드는 보안상의 약점
- 식별자 표준
- CVE (Common Vulnerabilities and Exposures): 공개적으로 알려진 실제 취약점에 부여되는 고유 식별자 (예: CVE-2021-44228)
- CWE (Common Weakness Enumeration): 소프트웨어 개발 단계에서 발생할 수 있는 보안 약점(원인)을 유형별로 분류한 목록
1) 공격 시점에 따른 분류
- 제로데이 공격 (Zero-day): 패치가 없는 상태에서 수행되는 공격
- 원데이 공격 (1-day): 패치가 공개되었으나 시스템에 적용되지 않은 틈을 노린 공격
- N-day 공격: 오래전 패치가 공개되었음에도 적용하지 않은 시스템을 대상으로 하는 공격
취약점 점검 방법
1) 진단 방식
- 자동진단: 도구를 사용하여 자동으로 탐지. 빠르고 대량 점검이 가능하나 오탐 가능성 있음.
- 수동진단: 점검자가 직접 매뉴얼로 진단. 논리적 취약점 탐지가 가능하며 정확도가 높음.
- 소스코드 점검: 정적 분석 도구를 활용하여 코드를 실행하지 않고 취약점 사전 식별.
2) 점검 절차
- 정보 수집 (탐색): 서버, OS, DB 종류, IP, 포트 등 대상 시스템 정보 파악
- 취약점 점검: 자동/수동 도구를 이용한 실제 취약점 탐지 및 검증
- 결과 보고: 취약점 목록 정리, 위험도 평가 및 대응 방안 제시
3) 스캐닝 (Scanning)
- 호스트 탐색: 네트워크에 연결된 시스템의 존재 여부 확인
- 포트 스캐닝: 열려 있는 포트를 확인하여 실행 중인 서비스 파악
- Well Known Port: 0 ~ 1023 (주요 서비스)
- Registered Port: 1024 ~ 49151
- Dynamic/Private Port: 49152 ~ 65535
- 운영체제 탐색 (OS Fingerprinting)
- 배너 기반 탐색 (Banner Grabbing): 응답 메시지의 배너 정보 확인
- TCP/IP 기반 탐색: TTL, 윈도우 크기 등 패킷 응답 패턴 분석
보안 취약점 점검 도구 및 모의 해킹
1) 주요 점검 도구
| 이름 |
특징 |
| Burp Suite |
웹 프록시 도구. 요청/응답 가로채기 및 분석·수정에 가장 널리 사용 |
| OWASP-ZAP |
오픈소스 웹 취약점 자동 스캐너 및 프록시 도구 |
| Wireshark |
네트워크 트래픽 분석 및 취약점 진단 |
| Nessus |
네트워크 취약점 점검 전문 도구 |
2) 모의 해킹 (Penetration Test) 방식
- Black Box Test: 사전 정보 없이 수행. 실제 공격 상황과 가장 유사.
- White Box Test: 시스템 구조, 소스코드 등 모든 정보를 제공받아 정밀 분석.
- Grey Box Test: 일부 제한된 정보만 제공받아 효율성과 현실성 균형 유지.
3) 실습용 어플리케이션
- DVWA (Damn Vulnerable Web Application): 단계별 학습이 가능한 대표적 실습 환경
- bWAPP (bee-box): 다양한 취약점을 포함한 가상머신 형태의 실습 도구
- Kali Linux: 다양한 보안 도구가 기본 탑재된 모의 해킹 전용 OS