[방어] 분석 — CVE-2021-30116
Critical credential leakage via /dl.asp enables unauthenticated session hijacking, requiring immediate external access restriction to the download page and strict monitoring of GET-based authentication attempts.
📋 요약
- 심각도 critical · CVSS 10.0 · EPSS 0.85735 · 악용난이도 easy · KEV
🔍 공격 기법
- 자격 증명 노출: 외부로 공개된
/dl.asp페이지에서 Windows 에이전트 설치 파일을 다운로드하여 실행. - 로컬 식별자 추출: 설치 후 생성되는
KaseyaD.ini파일(C:\Program Files (x86)\Kaseya\...\KaseyaD.ini)에서Agent_Guid와AgentPassword를 획득. - 인증 우회: 탈취한 식별자를
/dl.asp?un=[Guid]&pw=[Password]형태의 GET 요청으로 전송하여 서버로부터 유효한sessionId쿠키를 획득. - 권한 확장 및 침투: 획득한 세션을 통해 에이전트 권한을 넘어선 관리자 서비스에 접근하거나, 추정: 웹 서버 설정 오류(Directory Listing 등)를 이용해
config.php와 같은 DB 자격 증명 파일을 추가 탈취하여 내부망 Lateral Movement 수행.
악용 가능성: 본 취약점의 공격 난이도는 매우 낮으며(Easy), 실제 악용 가능성이 극도로 높은 상태입니다. CVSS 벡터가 AV:N/AC:L/PR:N/UI:N인 것은 인증이나 사용자 상호작용 없이 네트워크를 통해 누구나 쉽게 트리거할 수 있음을 의미합니다. 특히 EPSS 수치가 0.85735로 매우 높고 KEV에 등재되었다는 점은, 이론적 위험을 넘어 이미 공격자들이 자동화된 도구를 통해 실제 환경에서 적극적으로 악용하고 있다는 강력한 증거입니다. 공격 표면은 외부로 노출된 /dl.asp 엔드포인트이며, 공격자는 공개된 설치 페이지에서 클라이언트를 다운로드하여 KaseyaD.ini 파일 내의 Agent_Guid와 AgentPassword를 획득함으로써 공격에 필요한 모든 전제조건을 충족합니다. 이렇게 탈취한 자격 증명을 /dl.asp 파라미터(un, pw)에 주입하면 인증을 우회하여 sessionId 쿠키를 획득할 수 있으며, 이는 후속 공격으로 이어지는 결정적인 진입점이 됩니다. 결과적으로 복잡한 익스플로잇 과정 없이 단순한 설정 파일 확인과 HTTP 요청만으로 권한 탈취가 가능하므로 방어자 관점에서 매우 치명적인 위협입니다.
💥 영향 분석
- 인증 체계 완전 무력화: 공격자가 인증 없이 관리자급 세션 쿠키를 획득하여 시스템 전반에 접근 가능.
- 전체 인프라 제어권 상실: VSA 서버 및 연결된 모든 클라이언트 에이전트에 대한 원격 제어 및 명령 실행 가능(CVSS 10.0).
- 데이터베이스 침투: 추정:
config.php등 설정 파일 유출 시 DB 자격 증명을 통한 직접적인 데이터 덤프 및 내부망 진입 가능.
🔗 관련 취약점·체이닝
- Credential Leakage $\rightarrow$ Auth Bypass: 평문 자격 증명 노출이 세션 탈취로 이어지는 구조.
- Information Disclosure $\rightarrow$ Lateral Movement: 설정 파일 유출과 WAS 설정 오류(정적 서빙)가 결합되어 DB 권한 탈취 및 RCE로 확장될 가능성이 높음.
🔎 탐지
1. 로그 지표 및 위치
- 로그 소스: Web Server Access Log (Apache, Nginx, IIS), WAF Log.
- 핵심 필드:
request_uri,query_string,http_user_agent,cookie. - 이상 징후:
/dl.asp경로에 대해un=및pw=파라미터가 포함된 GET 요청이 외부 IP에서 발생한 후, 동일 IP가 관리자 페이지나 API 엔드포인트로 접근하는 패턴.
2. 탐지 규칙 예시
- Rule 1 (비정상 인증 시도):
Condition:url == "/dl.asp" AND method == "GET" AND query_string matches /\?un=[a-zA-Z0-9]+&pw=[a-zA-Z0-9]+/Logic: 자격 증명을 URL 파라미터로 직접 전달하는 비정상적 GET 요청 탐지.
- Rule 2 (세션 탈취 후 권한 상승 시도 - SIEM 의사코드):
sql1SELECT source_ip, session_id FROM web_logs2WHERE (url == "/dl.asp" AND query_string LIKE "%un=%pw=%")3FOLLOWED BY (url NOT LIKE "/dl.asp%" AND cookie contains "sessionId")4WITHIN 10 minutes
- Rule 3 (설정 파일 접근 시도):
Condition:request_uri matches /(\.php$|config\.php|KaseyaD\.ini)Logic: WAS 설정 오류를 이용한 민감 파일 직접 접근 및 정적 서빙 시도 탐지.
3. 오탐 튜닝 및 주의사항
- 오탐 시나리오: 정상적인 신규 에이전트 설치 과정에서도 동일한 GET 요청이 발생함.
- 튜닝 방법: 내부망(Trusted IP)의 요청은 제외하고, 외부 공인 IP 대역에서 발생하는
/dl.asp호출 및 이후의 관리자 페이지 접근 행위에 가중치를 부여하여 알람 설정.
🛡️ 완화 방안
본 리포트는 다중 소스 교차검증을 통해 데이터 일관성이 확인되었으며, EPSS 0.85735(실제 악용 예측 최고 수준) 및 KEV 등재 사실에 근거하여 'Immediate' 우선순위로 대응을 권고함.
1. 즉시 (긴급 차단)
- 조치: WAF 또는 웹 서버 ACL에서
/dl.asp경로에 대한 외부 IP 접근을 완전히 차단하거나,un=및pw=파라미터가 포함된 GET 요청을 403 Forbidden 처리. - 난이도/영향: 낮음 / 신규 에이전트 설치 불가 (운영 마찰 발생하나 보안 이득이 압도적).
- 검증: 외부망에서
/dl.asp접속 시 차단 페이지 확인.
2. 단기 (완화)
- 조치:
- 웹 서버의 디렉터리 리스팅(Directory Indexing) 비활성화 및
.php파일의 정적 서빙/직접 접근 차단 설정(LocationMatch "\.php$"$\rightarrow$ 403). - 추정:
config.php등 민감 파일의 OS 권한을 640 이하로 제한하여 웹 프로세스의 과도한 읽기 권한 제거.
- 웹 서버의 디렉터리 리스팅(Directory Indexing) 비활성화 및
- 난이도/영향: 중간 / 서비스 가용성에 영향 없음.
- 검증: 브라우저를 통해
/config.php또는 디렉터리 경로 직접 접근 시 403/404 응답 확인.
3. 근본 (해결)
- 조치: Kaseya VSA 서버(9.5.7a 이상) 및 에이전트(9.5.0.24 이상) 최신 패치 적용.
- 난이도/영향: 중간 / 서비스 일시 중단 필요, 버전 호환성 테스트 필수.
- 검증: 업데이트 후
KaseyaD.ini내 자격 증명 구조 변경 확인 및/dl.asp를 통한 인증 우회 불가 확인.
⚖️ 위험도 / 우선순위
- 조치: immediate (지금 즉시(24h 내))
- 근거: CVSS=10.0 · KEV · EPSS=0.85735 · exploit=easy · in_scope=None