Web Application의 파일 업로드 및 다운로드 기능은 사용자를 편의를 도와주지만, 보안적 측면에서 취약점이 존재할 수밖에 없다고 생각한다. 보안을 강화하기 위해서 웹 방화벽과 웹셸 모니터링 와 같은 방식으로 Web Application을 보호하는 방식으로 이루어진다.
파일 업로드와 다운로드 취약점에 대한 개념과 공격자가 웹 서버를 어떠한 방식으로 공격하는지에 대한 글을 작성하고자 한다.
파일 업로드 취약점이란?
- 파일 취약점은 Web Application에서 사용자로부터 업로드된 파일이 서버에 대한 검증이 없이 저장할 때 발생한다.
- 즉 공격자가 악성 파일 (web shell, script, vrius)등을 업로드하여 서버를 공격하는 방식으로 이루어진다.
파일 다운로드 취약점이란?
웹 애플리케이션에서 사용자가 파일을 다운로드 할 수 있도록 허용하는 기능에서 발생하는 보안 취약점이다.
파일 다운로드 시 파일의 절대경로 또는 상대 경로가 노출되는 경우에 발생하게 되는 취약점이다.
공격방식과 대응법
웹 서버에서는 웹 방화벽과 웹셸 모니터링을 통하여 웹 서버를 보호하게 되는데 짧은 시간에 많은 데이터가 송수신되는 과정에서 웹 방화벽은 간단한 처리만 하고 웹 서버로 데이터를 전송할 수밖에 없다.
공격방식
- 정상파일로 위장한 악성파일은 웹 서버에 존재하게 된다.
- 악성파일이 웹 서버에서 원격 시스템 명령이 가능한 취약점이 생기게 된다. (즉 서버 권한을 획득한다)
- DMZ사에 존재하는 데이터베이스, 웹서버, DNS 서버등 취약점을 발견해서 공격을 진행한다.
대응법
이 단점을 보완하기 위해 웹셸 모니터링 기법을 사용해서 웹 서버 내 파일들을 모니터링해서 악성 파일들을 분석하고 삭제하는 방법을 사용하고 있다.
웹 방화벽(WAF, Web Application Firewall)
웹 방화벽(WAF)은 Web Application에 대한 공격을 탐지하고 차단하기 위해 만들어진 보안 시스템이다. 웹 방화벽은 일반적으로 트래픽 분석, SQL인젝션, XSS(크로스 사이트 스크립팅), 파일 업로드 취약점, 디렉터리 탐색 공격 등 웹 공격을 방어하는 기능을 가지고 있다.
- HTTP 요청 및 응답 필터링 : HTTP 요청과 응답을 검사하고 악의적인 패턴을 식별하고 차단함.
- 정책 기능 필터링 : 파일 업로드, 다운로드 쿠키 조작등 특정행위를 차단한다.
- 실시간 모니터링 : 실시간 공격을 감지하여 신속한 대응을 할 수 있게 관리자에게 알리는 기능을 가진다.
웹셸 모니터링(Web Shell Monitoring)
웹셸(Web Shell)은 공격자가 원격에서 웹 서버를 제어하기 위해 사용하는 악성 스크립트이다. 웹셸 모니터링은 서버에 업로드된 파일 중에서 웹셸은 탐지하여 제거하는 일련의 과정을 말한다.
- 서명 기반 탐지 : 알려진 웹셸의 패턴들을 가지고 파일을 비교하여 악성 스크립트를 탐지하는 방법.
- 행위 기반 탐지 : 업로드된 파일의 행동을 모니터링하여, 의심스러운 동작이 생길 경우 이를 감지한다.
- 이상 징후 모니터링 : 정상적인 시스템 동작에서 벗어난 이상 행위를 감지한다. (비정상적으로 높은 CPU 사용, 메모리 사용 등 )
'CERT > Web' 카테고리의 다른 글
[Web] PHP기반 WebShell 인증기능 추가 (part2) (0) | 2024.09.23 |
---|---|
[Web] PHP기반 간단한 명령어 실행 WebShell 제작 (part1) (0) | 2024.09.23 |
[Web] PHP기반으로 Web에서 파일 업로드 제작 (0) | 2024.09.17 |
[Web] GET&POST 방식 정의 및 차이점 (0) | 2024.09.17 |
[웹 취약점] 웹 셸(Web shell) 정의 및 종류 (1) | 2024.09.16 |