Ⅰ. 파일 업로드 공격이란?
악의적인 사용자가 웹 애플리케이션의 파일 업로드 기능을 악용하여 서버에 악성 파일을 업로드하고 이를 실행하거나, 서버의 파일 시스템 및 데이터에 접근하는 등의 공격을 말합니다. 이러한 공격은 웹 애플리케이션의 보안 취약점을 이용하며, 서버와 클라이언트 모두에게 심각한 피해를 줄 수 있습니다.
Ⅱ. 파일 업로드 공격 유형
ⅰ. 웹 셸(Web Shell) 업로드
공격자가 PHP, ASP, JSP 등의 스크립트 파일을 업로드하여 서버에서 임의의 코드를 실행할 수 있는 셸을 만듭니다.
이 웹 셸을 통해 서버의 파일 시스템에 접근하거나, 추가적인 명령을 실행할 수 있습니다.
ⅱ. 디렉토리 탐색(Directory Traversal)
파일 업로드 시 경로를 조작하여 서버의 중요한 파일을 덮어쓰거나, 서버의 다른 디렉토리에 접근합니다.
예를들면 ../../etc/passwd와 같은 상대 경로를 사용하여 서버의 민감한 파일에 접근이 있습니다.+
ⅲ. 파일 형식 검증 우회
파일 형식 검증을 우회하여 서버가 허용하지 않는 파일 형식을 업로드합니다.
예를들면 이미지 파일로 위장한 실행 파일(.php.jpg) 업로드가 있습니다.
ⅳ. 클라이언트 사이드 취약점 공격
악성 코드가 포함된 파일을 업로드하여 이를 다운로드 받는 다른 사용자의 시스템을 공격합니다.
예를들면 악성 PDF 파일을 업로드하여 열람 시 악성 코드 실행이 있습니다.
Ⅲ. 파일 업로드 공격 특징
ⅰ. 경로 탐색
업로드된 파일의 경로를 조작하여 서버의 파일 시스템을 탐색하거나 민감한 파일에 접근 할 수 있습니다.
ⅱ. 권한 상승
서버의 권한을 상승시켜 더 높은 수준의 접근 권한을 획득 할 수 있습니다.
ⅱ. 리소스 소모
서버의 자원을 소모시켜 서비스 거부(DoS) 상태를 유발 할 수 있습니다/
ⅲ. 백도어 설치
지속적인 접근을 위해 백도어를 설치하여 서버를 장악 할 수 있습니다.
Ⅳ. 파일 업로드 공격 대응 방법
ⅰ. 파일 형식 및 확장자 검증
MIME 타입과 파일 확장자를 확인하여 허용된 파일 형식만 업로드 허용해야 합니다.
업로드 시 이미지 파일만 허용 할 경우 .jpg, .png, .gif 등의 이미지 파일 확장자만 허용합니다.
ⅱ. 파일 내용 검사
업로드된 파일의 내용을 분석하여 악성 코드가 포함되어 있는지 확인해야 합니다.
안티바이러스 소프트웨어 사용하여 업로드 시 파일 검사를 해야합니다.
ⅲ. 경로 제한
파일 업로드 경로를 고정하고, 사용자 입력을 통한 경로 조작을 방지해야 합니다.
서버 측 경로 탐색 방지 필터링 적용하여, 405 Error 페이지를 모두 동일하게 적용해야 합니다.
ⅳ. 파일 이름 난수화
업로드된 파일의 이름을 난수화하여 경로 탐색 공격을 방지합니다.
예를 들면, 업로드한 파일의 이름을 5f4dcp3b5ad765d69d8327deb82cf99.jpg 처럼 난수로 만듭니다.
ⅴ. 파일 실행 권한 제한
업로드된 파일에 대해 실행 권한을 제한하여 웹 셸 실행 방지해야 합니다.
웹 서버 설정을 통해 업로드 디렉토리의 실행 권한 제거합니다.
ⅵ. 디렉토리 접근 제한
업로드된 파일에 대한 웹 서버 접근을 제한해야 합니다.
예를들면 업로드 디렉토리를 웹 서버의 루트 디렉토리 밖에 위치시켜 직접 접근 방지해야 합니다.
ⅶ. 보안 패치 및 업데이트
웹 서버와 애플리케이션 소프트웨어를 알려진 취약점을 패치하여 최신 버전으로 유지해야 안전합니다.
'어플리케이션' 카테고리의 다른 글
APT(Advanced Persistent Threat)에 대해 알아보겠습니다. (0) | 2024.08.09 |
---|---|
ModSecurity 에 대해 알아보겠습니다. (0) | 2024.08.02 |
가상화 플랫폼에 대해 알아보겠습니다. (0) | 2024.06.28 |
SSO와 IAM 에 대해 알아보겠습니다. (0) | 2024.05.17 |
웹 애플리케이션 보안에 관련된 두 가지 주요 공격 유형인 XSS(Cross-Site Scripting)와 CSRF(Cross-Site Request Forgery)에 대해 알아보겠습니다. (0) | 2024.05.14 |