Search

파일업로드

개요
파일 업로드 취약점은 공격자가 서버에 악성 파일을 업로드하여 서버 내에서 코드 실행, 파일 변경, 데이터 탈취 등의 악의적인 행위를 할 수 있는 보안 취약점입니다.
웹 애플리케이션에서 파일 업로드 기능이 제대로 검증되지 않으면, 공격자는 PHP, ASP와 같은 실행 가능한 스크립트 파일을 업로드해 서버에서 이를 실행할 수 있습니다. 이로 인해 서버 권한 탈취, 데이터 유출, 시스템 손상 등 다양한 보안 위협이 발생할 수 있습니다.
이를 방지하기 위해서는 파일 확장자 및 내용 검증, 업로드된 파일의 실행 권한 제한, 파일명 및 경로 검사를 철저히 해야 합니다.
공격 탐지 규칙 확인 및 설정 (Suricata & Zeek)
Suricata
1.
Detection - “+” Detection 메뉴 이동 및 “+”버튼 클릭, 룰 추가 메뉴 진입
2.
룰 작성
Language : Suricata
License : GPL-2.0-only
Signature
alert http $EXTERNAL_NET any -> $HTTP_SERVERS any (msg:"Suspicious file upload attempt"; flow:to_server,established; content:"POST"; http_method; content:"/dvwa/vulnerabilities/upload/"; http_uri; pcre:"/filename=.*\.(php|jsp|exe|sh|asp|aspx)/i"; sid:1000013; rev:1;)
Plain Text
복사
룰 내용 (Signature):
alert http $EXTERNAL_NET any -> $HTTP_SERVERS any: HTTP 프로토콜을 통해 외부 네트워크에서 내부 네트워크로 들어오는 모든 트래픽을 감시합니다.
msg: "Suspicious file upload attempt" – 파일 업로드 시도를 감지하는 경고 메시지.
flow: to_server,established – 서버로 가는 확립된 HTTP 연결을 감시.
content: "POST" – POST 메서드를 감지하여 파일 업로드 요청을 확인.
content: "/dvwa/vulnerabilities/upload/" – DVWA 파일 업로드 경로 감지.
pcre: /filename=.*\.(php|jsp|exe|sh|asp|aspx)/i – 확장자가 .php, .jsp, .exe, .sh, .asp, .aspx인 파일을 감지.
sid: 1000013 – 룰의 고유 식별자.
rev: 1 – 수정 버전.
공격 지표 확인 및 경고 필터링 (Kibana&zeek)
suricata
알람 발생 확인
kibana & zeek
Alert 로그 발생 확인
Document
하단에서 자세히 확인 (message)
대응 방안
파일 확장자 검사
MIME 타입 검사
파일 크기 제한
파일 저장 경로 분리
파일 이름 변경