devRenio

V. 어플리케이션 보안 - 1

인터넷보안(황승연) 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