IT 관련/보안

[새싹 성동 2기] 보안관제 실무(5) - 대표 웹 공격 방식 12가지

insu90 2024. 12. 16. 18:23

 

웹 보안: 취약성 및 공격 방식에 대한 이해

웹 보안은 정보 보안에서 가장 중요한 부분 중 하나입니다. 웹 애플리케이션의 취약점을 악용한 공격은 빈번하게 발생하며, 이를 방지하기 위해 취약점을 이해하고 대응 방안을 마련하는 것이 필수적입니다. 이번 포스팅에서는 웹과 관련된 주요 취약성 및 공격 방식을 설명합니다.

1. 웹 취약성 가이드라인

웹 보안 취약점은 여러 기준과 가이드라인에 따라 정의됩니다. 주요 가이드라인은 다음과 같습니다:

  1. OWASP Top 10 (2021년 기준 최신)
    • 가장 빈번하게 발생하는 웹 애플리케이션 취약점을 연구하여 목록화.
    • 4년에 한 번 개정됨.
  2. NIST 기준 (웹 취약성 31개)
    • 미국 국가 표준 기술 연구소가 제시한 기준.
  3. 주요통신기반시설 취약점 점검 가이드라인 (28개)
    • 행정안전부에서 공개한 가이드라인 (2021년 이후 개정 없음).
  4. 행정안전부 SW 취약점 개발 가이드 (49개)
    • 소프트웨어 개발과 관련된 보안 취약점 가이드 (2021년 기준 최신).
  5. 전자금융기반시설 취약점 점검 가이드 (48개)
    • 금융보안원이 배포한 비공개 가이드라인 (2024년 기준 최신).
  6. 국정원 정보보안관리실태평가 (13개)
    • 국정원이 제공하는 비공개 가이드라인 (2024년 기준 최신).

2. 대표적인 웹 공격 방식 12가지

2-1. SQL Injection (SQLi)

  • 내용: 사용자가 입력한 데이터를 통해 SQL 쿼리를 조작하여 데이터베이스에 접근하거나 민감한 정보를 유출.
  • 공격 예시:
    • OR 1=1 조건으로 인해 인증 우회 발생.
    • 싱글쿼터(')를 이용해 SQL 구문을 변조.
      SELECT id, pw FROM users WHERE id='admin' OR 1=1--';
  • 대응 방안:
    • 사용자 입력값 검증.
    • Prepared Statement, ORM 등 안전한 SQL 사용.

 

2-2. XSS (Cross-Site Scripting)

  • 내용: 악성 스크립트를 주입하여 사용자 브라우저에서 실행되도록 유도.
  • 종류:
    • Stored XSS: 악성 스크립트가 서버에 저장되어 다수의 사용자에게 실행.
    • Reflected XSS: 입력값이 즉시 반영되어 사용자 브라우저에서 실행.
  • 공격 예시:
    <script>alert("XSS")</script>

  • 대응 방안:
    • 사용자 입력값 필터링 및 인코딩.
    • 콘텐츠 보안 정책(Content Security Policy) 적용.

 

2-3. 파일 업로드 및 다운로드

  • 내용:
    • Upload: 악성 스크립트를 업로드하여 서버에서 실행.
    • Download: 경로 조작으로 민감한 파일 다운로드.
  • 공격 예시:
    • 업로드: .php 파일 업로드 후 웹셸 실행.
    • 다운로드: 
      http://test.com/notice/file?down=../../../../etc/passwd
  • 대응 방안:
    • 파일 확장자 및 크기 제한.
    • 업로드된 파일의 실행 권한 제한.
    • 다운로드 경로 검증.

 

2-4. 정보 노출

  • 내용: 웹 서버의 버전 정보, API 키, 디버깅 정보를 노출.
  • 공격 예시:
  • 대응 방안:
    • 불필요한 헤더 제거.
    • 디버깅 모드 비활성화.

2-5. 관리자 페이지 노출

  • 내용: 관리자 페이지가 쉽게 노출되는 취약점.
  • 공격 예시:
    http://test.com/admin


  • 대응 방안:
    • 관리자 페이지 접근 제어 (IP 제한, 인증).
    • URI를 난독화하거나 경로를 숨김.

 

2-6. 인증 우회

  • 내용: 인증 프로세스를 우회하여 비인가 사용자 접근.
  • 공격 예시:
    • 인증서 복사 후 조작하여 인증 우회.
  • 대응 방안:
    • 인증 절차 강화 (OTP, 2FA).
    • 서버에서 입력값 유효성 검증.

2-7. 파라미터 조작

  • 내용: 파라미터 값을 변조하여 권한 없는 데이터 접근.
  • 공격 예시:
    http://test.com/board?id=3
  • 대응 방안:
    • 입력값 서버단 검증.
    • 세션 및 권한 체크 로직 추가.

2-8. 디버깅 정보 노출

  • 내용: 개발자 도구를 통해 하드코딩된 민감 정보 노출.
  • 공격 예시:
    • DB 접속 정보, 관리자 계정 정보 노출.
  • 대응 방안:
    • 디버깅 정보 최소화.
    • 중요한 정보는 환경 변수에 저장.

2-9. 세션 재사용

  • 내용: 만료된 세션을 재사용하여 인증 우회.
  • 대응 방안:
    • 세션 타임아웃 설정.
    • 로그아웃 시 세션 삭제.

2-10. 불필요한 HTTP 메서드 사용

  • 내용: PUT, DELETE와 같은 메서드를 통해 데이터 조작.
  • 대응 방안:
    • 허용된 메서드만 사용.
    • 필요하지 않은 메서드는 서버에서 비활성화.

2-11. 브루트 포스 공격

  • 내용: 무작위 대입으로 계정 정보 탈취.
  • 대응 방안:
    • 로그인 시도 횟수 제한.
    • CAPTCHA 도입.

2-12. Command Injection

  • 내용: 시스템 명령어를 주입하여 서버를 제어.
  • 공격 예시:
    http://test.com/command?input=ls;pwd
  • 대응 방안:
    • 사용자 입력값 검증.
    • 시스템 명령어 사용 제한.

 

3. 보안 룰 작성 시 유의사항

  1. 정규표현식 사용 여부 확인:
    • 예: GET1, GET2와 같은 변형 데이터 탐지.
  2. 탐지 로그 관리:
    • 탐지된 공격 유형별 로그 분류.
    • 로그 기반으로 공격 횟수 카운팅 및 분석.

 

웹 애플리케이션 보안을 강화하기 위해서는 취약점을 사전에 분석하고, 이를 방어할 수 있는 규칙과 솔루션을 마련해야 합니다.

 

 

 

 

 

 

 

*생성형 AI 활용한 클라우드&보안 전문가 양성캠프 과정의 교육내용 정리 자료입니다.