[방어] 분석 — CVE-2019-7481
The unauthenticated SQL injection in SonicWall SMA‑100 firmware < 9.0.0.4 allows read‑only data leakage and can be leveraged for session token theft, so the top priority is to block suspicious SQL payloads at the perimeter immediately.
📋 요약
- 심각도 high · CVSS 7.5 · EPSS 0.99906 · 악용난이도 easy · KEV
🔍 공격 기법
- 외부 공격자는 인증 없이 HTTP GET/POST 요청에
UNION SELECT등 SQLi 페이로드를 삽입한다. - SMA100의 내부 데이터베이스 쿼리를 조작해 읽기 전용 테이블(예: 세션, 설정) 데이터를 반환받는다.
- 추출된 세션 토큰을 이용하면 동일 네트워크 내 다른 서비스에 인증 우회(Lateral Movement)가 가능하다.
악용 가능성: 이 취약점은 AV:N (네트워크를 통한 원격 접근) + PR:N (인증 필요 없음) + UI:N (사용자 상호작용 없이) 조합으로, 공격자는 인터넷에 노출된 SonicWall SMA100 장비에 바로 HTTP/HTTPS 요청만 보내면 됩니다. AC:L (낮은 복잡도) 때문에 특별한 프레임워크나 권한 상승 단계가 필요 없으며, 기본적인 GET/POST 파라미터만 조작하면 읽기 전용 리소스에 접근할 수 있습니다. EPSS 값이 0.99906 으로 거의 확실히 악용될 가능성을 나타내며, 실제 공격 사례가 KEV(Known Exploited Vulnerabilities) 리스트에 등재된 점은 이론적 심각도와 무관하게 현재 활발히 이용되고 있음을 증명합니다. 공격 표면은 주로 관리 포털(예: https://<IP>/admin)과 REST‑API 엔드포인트이며, 인증 헤더나 쿠키 없이도 해당 URL에 접근하면 민감한 설정 파일이나 로그를 열람할 수 있습니다. 따라서 공격자는 별도의 피싱이나 악성 코드 배포 없이 단순히 대상 IP와 포트만 알면 자동화 스크립트를 통해 대량 탐색·수집이 가능합니다. 이러한 조건은 “easy” 등급과 일치하며, 방어자는 네트워크 경계에서 해당 엔드포인트에 대한 비정상적인 트래픽을 즉시 차단하는 것이 시급합니다.
💥 영향 분석
- 공격자가 데이터베이스에서 세션 토큰이나 구성 파일을 탈취하면, 관리 인터페이스에 무단 접근하거나 내부망 서비스를 직접 호출할 수 있다.
- 결과적으로 기밀 설정 유출·내부망 침투·전체 시스템 제어권 상실 위험이 존재한다.
🔗 관련 취약점·체이닝
- 동일한 SQLi 패턴을 이용하는 CVE‑2020‑XXXXX(가정)와 연계해 인증 우회 및 권한 상승이 가능하다.
- 탈취된 세션 토큰은 일반적인 웹 애플리케이션 세션 고정 공격(CWE‑384)과 결합되어 Lateral Movement를 촉진한다.
🔎 탐지
- 로그 소스: SMA100 접근 로그(
access.log), 방화벽 트래픽 로그, WAF 이벤트 로그. - 핵심 필드:
client_ip,request_method,uri_path,query_string,user_agent.
-
SQLi 페이로드 패턴
- 정규식:
(?i)union\s+select|or\s+1=1|--\s*$(대소문자 구분 없이 UNION SELECT, OR 1=1, 주석) - SIEM 쿼리(예시):
source="sma100_access_log" | where match(query_string, "(?i)union\\s+select|or\\s+1=1|--\\s*$") | stats count by client_ip
- 정규식:
-
대량 데이터 반환 감지
- 조건:
response_size > 500KBANDuri_path contains "/api/"ANDclient_ip not in whitelist - SIEM 쿼리 예시:
source="sma100_access_log" | where response_bytes > 512000 and uri_path like "%/api/%" and !in(client_ip, ["10.0.0.0/24"]) | top client_ip limit 10
- 조건:
-
세션 토큰 접근 시도
- 패턴:
uri_path matches "/session/.*"ANDrequest_method = "GET"ANDclient_ip not in admin_subnet - SIEM 쿼리 예시:
source="sma100_access_log" | where uri_path =~ "/session/.*" and request_method=="GET" and !cidr_match(client_ip, "192.168.10.0/24")
- 패턴:
🛡️ 완화 방안
-
세션 TTL 축소: 현재 세션 유효 시간을 5 분 이하로 설정하고, 기존 활성 세션을 모두 강제 종료한다.
- 구현 난이도: ★★☆ (SMA 관리 콘솔에서
session timeout옵션 변경) - 운영 영향: 사용자 재인증 빈도 증가 → 지원팀에 사전 안내 필요.
- 검증 방법: 새 세션 생성 후
expires_at값 확인, 기존 토큰이 무효화되는지 테스트.
- 구현 난이도: ★★☆ (SMA 관리 콘솔에서
-
관리자 계정 IP 제한: 관리 인터페이스 접근을 내부 관리 서브넷(IP 10.0.0.0/24)으로만 허용한다.
- 구현 난이도: ★★☆ (ACL 정책 추가)
- 운영 영향: 원격 관리 필요 시 VPN 등 우회 경로 마련 필요.
- 검증 방법: 외부 IP에서 접근 시 403 응답 확인.
⚖️ 위험도 / 우선순위
- 조치: immediate (지금 즉시(24h 내))
- 근거: CVSS=7.5 · KEV · EPSS=0.99906 · exploit=easy · in_scope=None