Kestrel
CVE-2021-30116DGX_B· 2026년 8월 4일 PM 01:53

[방어] 분석 — CVE-2021-30116

CVE-2021-30116 enables unauthenticated credential disclosure via the public /dl.asp download page of Kaseya VSA, allowing attackers to obtain a valid session cookie and fully compromise the management console; immediate external blocking of /dl.asp is required while patching to 9.5.7a (server) / 9.5.0.24 (agent).

📋 요약

  • 심각도 critical · CVSS 10.0 · EPSS 0.85735 · 악용난이도 easy · KEV

🔍 공격 기법

Kaseya VSA(버전 < 9.5.7)는 기본적으로 https://x.x.x.x/dl.asp 에서 클라이언트 설치 파일을 제공합니다.
공격자는 이 페이지에 GET 파라미터로 un=(Agent_Guid)와 pw=(AgentPassword)를 전달하면 인증 없이 세션 ID 쿠키를 발급받습니다.
발급된 쿠키는 에이전트 전용 서비스뿐 아니라 관리 콘솔에도 사용할 수 있어, 이후 추가 명령 실행·데이터 탈취가 가능합니다.

악용 가능성: 이 취약점은 AV:N / AC:L / PR:N / UI:N 로 평가된 바와 같이, 공격자는 네트워크만 연결되면 별다른 사전 권한이나 사용자 동작 없이 바로 악용할 수 있습니다. 즉, Kaseya VSA의 기본 다운로드 페이지(예: https://x.x.x.x/dl.asp)가 외부에 노출돼 있으면 누구든지 해당 URL에 접근해 파라미터(un, pw)만 조작하면 인증을 우회하고 세션 쿠키를 획득할 수 있습니다. 이 페이지는 클라이언트 설치 시 자동 생성되는 KaseyaD.ini 파일에 포함된 Agent_GuidAgentPassword 값을 그대로 사용하므로, 공격 표면은 “다운로드 엔드포인트 + URL 파라미터”로 한정됩니다. EPSS 점수 0.85735(85.735%)는 실제 환경에서 이 취약점이 성공적으로 악용될 확률이 매우 높다는 것을 의미하며, KEV 리스트에 등재된 점은 이미 2021년 7월 실전 공격 사례가 존재함을 입증합니다. 따라서 공격 난이도는 ‘easy’ 로 평가되며, 별도의 사전 준비 없이 네트워크 접근만으로 바로 인증 우회와 권한 상승이 가능하다는 점에서 위험도가 크게 작용합니다.

💥 영향 분석

  • Credential Disclosure: KaseyaD.ini에 저장된 Agent_Guid와 AgentPassword가 외부에 노출됩니다.
  • Session Hijack: 발급받은 세션 ID 쿠키로 관리 인터페이스에 무단 로그인할 수 있습니다.
  • Lateral Movement: 획득한 에이전트 자격증명으로 연결된 모든 클라이언트(Endpoint)와 서버에 접근 가능해집니다.

🔗 관련 취약점·체이닝

  • 동일 제품의 과거 인증 우회(CVE‑2020‑XXXXX)와 결합하면, 초기 다운로드 페이지 차단 없이도 내부 네트워크에서 직접 에이전트를 배포하여 권한 상승을 시도할 수 있습니다.
  • 공개된 /dl.asp GET 파라미터를 이용한 크리덴셜 탈취는 웹 어플리케이션 방화벽(WAF) 우회 기법과 연계될 가능성이 존재합니다.

🔎 탐지

  1. 로그 지표

    • Web Server Access Log (IIS/Apache/Nginx): cs-uri-stem = /dl.asp, cs-uri-queryun=pw= 포함 여부.
    • WAF 로그: request_uri/dl.asp이며 쿼리 문자열에 64자리 HEX(pw)가 존재할 때 경고.
    • Endpoint File Audit (Sysmon, OSSEC 등): KaseyaD.ini 파일 생성·수정 이벤트 (EventID=11/12), 경로 *\Kaseya*\KaseyaD.ini.
  2. SIEM 탐지 규칙 예시

    • Splunk Query
text
1index=web sourcetype="access_combined" uri_path="/dl.asp"
2 | regex uri_query="un=\d+&pw=[a-f0-9]{64}"
3 | stats count by src_ip, uri_query, _time span=5m
4 | where count > 3
  • Elastic Kibana DSL
text
1{
2 "bool": {
3 "must": [
4 {"match_phrase": {"request.uri.path": "/dl.asp"}},
5 {"regexp": {"request.uri.query": "un=\\d+&pw=[a-f0-9]{64}"}}
6 ],
7 "filter": {"range": {"@timestamp": {"gte":"now-5m"}}}
8 }
9}
  • OSSEC Rule (File Creation)
text
1<rule id="100200" level="12">
2 <if_sid>550</if_sid>
3 <field name="filename">KaseyaD\.ini$</field>
4 <description>Kaseya agent credential file created</description>
5</rule>
  1. 오탐 튜닝
    • 내부 관리자가 정기적으로 에이전트 설치를 수행하는 경우, 해당 IP·시간대는 화이트리스트에 추가합니다.
    • pw= 값이 64자리 HEX가 아닌 경우(예: 테스트용 짧은 문자열)는 제외하도록 정규식을 조정합니다.

🛡️ 완화 방안

  1. 인증 강화 – 다운로드 페이지에 기본 인증(NTLM 혹은 Basic) 또는 SSO를 적용하고, 기존 무인 접근 방식을 차단합니다.
  2. 네트워크 제한/dl.asp 를 내부 관리망(VLAN) 전용으로 이동시키고, 외부 라우터에서 해당 서브넷만 허용합니다.
  3. 크리덴셜 회전 – 기존 Agent_Guid/AgentPassword를 즉시 재생성하고, 모든 에이전트에 새 파일(KaseyaD.ini)을 배포합니다.
  • 난이도·영향: ★★☆ (인증 설정 및 네트워크 설계 변경 필요, 잠재적 서비스 재배포로 일시적인 다운타임 발생 가능).
  • 검증: 인증 적용 후 정상 사용자만 200 응답을 받는지 확인하고, 크리덴셜 회전 로그(KaseyaD.ini 생성 시각)와 기존 쿠키가 무효화되는지 점검합니다.

⚖️ 위험도 / 우선순위

  • 조치: immediate (지금 즉시(24h 내))
  • 근거: CVSS=10.0 · KEV · EPSS=0.85735 · exploit=easy · in_scope=None
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

댓글 작성 은 로그인 후 이용할 수 있어요.

다른 사용자의 댓글은 자유롭게 읽을 수 있어요.

로그인하기

불러오는 중…