Post

웹 보안 이론 3

CSRF

개념

  • 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 수행.
  • 사용자가 인증된 상태에서 공격자가 준비한 악의적인 링크 또는 스크립트를 실행.
  • 해당 웹사이트는 이를 사용자의 요청으로 인식하고 공격자가 원하는 작업을 수행.

디렉토리 리스팅

개념

  • 웹 서버 설정 오류로 인해 웹 사이트의 디렉토리 구조와 파일 목록이 노출되는 취약점.
  • 공격자는 이를 통해 웹 사이트의 민감한 정보에 접근하여 악용.
    (예: 소스코드, 백업파일, 설정파일)

위험성

  1. 민감한 정보 노출
    • 소스코드, 백업파일, 설정파일 등이 노출되어 공격자가 웹 사이트의 작동 방식을 파악하고 취약점을 찾아 악용.
  2. 악성 코드 업로드
    • 업로드 가능한 디렉토리를 찾아 악성 코드를 업로드하고 실행.
  3. 웹 사이트 변조
    • 웹 사이트의 파일을 변조하여 내용을 변경하거나 악성 코드를 삽입.
  4. 데이터 유출
    • 데이터베이스 연결 정보 등이 포함된 설정 파일로 인해 민감한 데이터가 유출될 위험.

방어 방법

  1. 웹 서버 설정
    • 디렉토리 리스팅을 비활성화.
      • Apache: .htaccess 파일에 Options -Indexes 추가.
      • Nginx: nginx.conf 파일에 autoindex off; 추가.
  2. 디렉토리 인덱스 파일
    • 각 디렉토리에 index.html 또는 index.php와 같은 파일을 생성.
  3. 접근 제어
    • 민감한 디렉토리에 대한 접근 제한.
  4. 정기적인 보안 점검
    • 웹 서버와 디렉토리의 보안 상태를 주기적으로 점검.

헤더 구조

개념

  • HTTP 메시지에 포함된 추가 정보로 웹 클라이언트와 서버 간 통신에 사용.
  • 헤더는 콘텐츠 표시 및 보안을 유지하는 데 중요한 역할을 함.

헤더 형식

  • 필드 이름 : 값

종류

  1. 요청 헤더
    • 클라이언트가 서버에 정보를 요청할 때 포함.
    • 예: 브라우저 종류, 지원 언어, 쿠키 정보 등.
  2. 응답 헤더
    • 서버가 클라이언트 요청에 대한 응답으로 전송.
    • 예: 콘텐츠 유형, 캐싱 정보, 서버 정보 등.

기능

  1. 캐싱 정책 지정
    • 예: no-cache, max-age.
  2. 연결 관리 방법 지정
    • 예: keep-alive, close.
  3. 메시지 생성 날짜와 시간 정보 제공

웹쉘

개념

  • 공격자가 서버를 원격으로 제어할 수 있도록 설계된 악성 스크립트.
  • PHP, ASP, JSP 등으로 작성.
  • 웹 서버에 업로드되어 시스템 명령어 실행, 파일 업로드 및 다운로드, 데이터베이스 조작 등을 수행.

종류

  1. 단순 웹쉘
    • 파일 업로드, 명령어 실행 등 기본적인 기능 제공.
  2. 암호화된 웹쉘
    • 탐지를 어렵게 하기 위해 암호화된 형태.
  3. 루트킷 웹쉘
    • 시스템에 숨어 탐지를 어렵게 만드는 웹쉘.
  4. C&C 웹쉘
    • 공격자와 명령제어 서버 간 통신 기능을 포함.

공격 방법

  1. 파일 업로드
    • 파일 업로드 취약점을 이용해 웹쉘 업로드 후 실행.
  2. SQL 삽입
    • 데이터베이스에 웹쉘 코드를 삽입하여 실행.
  3. 원격 파일 포함
    • 원격 파일 포함 취약점을 악용하여 외부 서버에 있는 웹쉘을 실행.
  4. 취약한 플러그인 및 애플리케이션
    • 설치된 취약한 플러그인이나 애플리케이션을 통해 웹쉘 업로드.

방어 방법

  1. WAF (웹 애플리케이션 방화벽)
    • 웹쉘 탐지 및 차단.
  2. 보안 업데이트
    • 서버와 애플리케이션의 최신 보안 패치 적용.
  3. 파일 업로드 제한
    • 업로드 파일 유형과 크기 검증.
  4. 입력 검증
    • 모든 사용자 입력 값을 철저히 검증.
  5. 정기적인 보안 감사
    • 시스템 및 서버에 대한 정기 점검.
  6. 모니터링 및 로깅
    • 서버의 활동을 모니터링하고 이상 활동 로그를 분석.

탐지 및 분석

  1. 파일 무결성 검사
    • 중요한 파일의 무결성을 주기적으로 검사하여 변경 사항 감지.
  2. 로그 분석
    • 비정상적인 파일 업로드 및 명령 실행 로그 분석.
  3. 보안 도구 활용
    • 웹쉘 탐지 도구를 사용해 서버에서 악성 스크립트 검색.
  4. 수동 분석
    • 의심스러운 파일을 직접 분석하여 웹쉘 여부 확인.