로그·관제·SIEM·ELK

31. 웹쉘 업로드 공격, 관제 시나리오와 실제 대응 흐름 정리

privacydo 2025. 12. 11. 18:00
반응형

면접에서도 자주 나오는 질문이
“웹쉘 업로드 공격이 발생했을 때 어떻게 대응하겠냐”는 것이다.
관제·운영 현장에서도 한 번쯤은 겪어보는 유형의 인시던트다.

웹쉘(web shell)은
공격자가 서버에서 임의 명령을 실행하기 위해
업로드하는 스크립트 파일이다.
PHP, JSP, ASP, WAR 등 형태는 다양하지만
본질은 서버 측 RCE(Remote Code Execution)를 얻는 것이다.

실제 관제·대응 흐름을 단계별로 정리해 보았다.

1. 탐지 단계: 로그와 시그니처로 이상 징후 포착


웹쉘은 흔히 다음 경로에서 포착된다.
• WAF 로그:
파일 업로드, 특이한 파라미터, 악성 패턴 탐지
• 웹 서버 로그(Apache, Nginx, IIS):
.php, .jsp 등의 스크립트 파일에 대한 비정상적인 POST 요청
• EDR/백신 로그:
웹 루트 디렉터리 내 의심스러운 스크립트 생성 탐지
• 파일 무결성 점검(FIM):
특정 디렉터리에서 예상치 못한 파일 생성/변경

관제 시나리오에서는 보통
• 업로드 기능이 있는 URI에 대해
비정상적인 확장자, 의심스러운 User-Agent, 특이한 파라미터 조합이 있는지
• 짧은 시간에 다수의 업로드 시도가 있는지
• 업로드 후 곧바로 해당 파일을 호출하는 패턴이 있는지

를 룰이나 대시보드로 만들어 두고 모니터링한다.

2. 1차 분석: 공격 성공 여부와 영향도 가늠하기


알람이 발생하면
가장 먼저 보는 것은 “실제로 웹쉘이 실행됐는가”다.
• 업로드 요청이 200 OK로 끝났는지,
• 그 직후 업로드된 파일로 보이는 URI에 대한 GET/POST 요청이 있는지,
• 응답 크기와 응답 코드 패턴이 평소와 다른지

를 로그로 확인한다.

가능하다면 웹 서버에 접속해
• 웹 루트 하위 디렉터리 중
upload, temp, attach 등 업로드 경로를 우선 점검하고
• 최근 생성·수정된 스크립트 파일 목록을 확인한다.

의심 파일을 찾았다면
파일 내용을 열어 보지 않고
우선 사본을 떠서 격리 영역으로 복사해 두고,
원본을 임시로 rename 또는 권한 변경하는 방식으로
추가 피해를 막는 것도 고려할 수 있다
(운영팀과 협의 하에).

3. 대응 단계: 격리, 차단, 로그 보존


웹쉘이 실제로 업로드·실행된 것이 확인되면
우선 확산을 막는 조치가 필요하다.
• WAF/웹서버 설정으로
해당 URI·디렉터리·확장자에 대한 접근 임시 차단
• 업로드 기능이 필수적이지 않다면
잠시 비활성화하거나, 특정 계정/역할로만 제한
• 의심 세션·IP에 대한 추가 요청 차단

동시에 향후 포렌식과 재발 방지를 위해
다음 로그를 보존·백업한다.
• 웹 서버 액세스/에러 로그
• WAF 로그
• 시스템 로그(auth.log 등)
• EDR/백신 로그
• 관련 계정 로그인 기록

특히 “언제부터 공격이 시작되었는지”를 확인하기 위해
현재 시점 전후 로그뿐 아니라
과거 며칠~몇 주간의 기록도 함께 보존하는 것이 좋다.

4. 2차 분석: 권한 상승과 수평 이동 여부 확인


웹쉘이 단순 명령 실행에 그쳤는지,
추가적인 침투 활동이 있었는지를 확인해야 한다.

다음과 같은 흔적을 로그와 시스템에서 찾아본다.
• 시스템 계정 생성/권한 변경
• 비정상적인 프로세스 실행 (netcat, powershell, wget, curl 등)
• 외부 C2 서버와의 통신 시도
• 다른 내부 서버로의 SSH/RDP 시도
• DB 접속 계정 탈취·쿼리 로그 이상 패턴

이 단계에서는
웹 서버 한 대를 넘어
네트워크 플로우 로그, DB 로그, AD/SSO 로그까지
범위를 넓혀 보는 것이 좋다.

웹쉘 인시던트는
대부분 “초기 침투(initial access)”에 해당하므로,
그 이후 단계(kill chain 상 privilege escalation, lateral movement 등)가
있었는지 확인하는 것이 핵심이다.

5. 조치 및 재발 방지: 업로드 정책과 코드 레벨 검토


사건을 마무리하는 단계에서는
단순히 파일을 삭제하는 것으로 끝내지 않는다.
• 파일 업로드 기능의 검증 로직 재점검
(확장자 검사, MIME 타입 검사, 파일 헤더 시그니처 검사 등)
• 업로드 파일 저장 위치를
웹루트 밖으로 분리하고,
별도 프로세스를 통해서만 접근 가능하도록 구조 변경
• 실행 권한 제거:
업로드 디렉터리에는 스크립트 실행이 불가능하도록 권한 설정
• WAF 룰 보완:
웹쉘 패턴 시그니처 강화,
업로드 URI에 대한 anomaly 기반 탐지 추가

그리고 인시던트 리포트에는
• 탐지 경로
• 타임라인
• 영향 범위
• 조치 내용과 재발 방지 대책

을 정리해 두면
추후 모의훈련이나 교육에 활용할 수 있다.

반응형