CISA가 10월 13일 발표한 Ivanti Connect Secure 경고는 가상의 결함에 대한 예방 조치가 아니었다. 공격자는 인증 우회와 실행을 연결해 당시 해당 브랜치의 패치를 모두 적용한 장비를 이미 침해했다. 기관은 CVE-2026-104935를 알려진 악용 취약점 목록에 추가하고 연방 민간 기관에 10월 16일까지 조치하도록 했다.
즉각적인 소프트웨어 수정과 해결되지 않은 침입은 별개 문제다. Volexity는 일반적인 영구 웹셸 없이 반복 악용, 임시 메모리 변경, 자격 증명 수집, 선택적 로그 삭제가 이뤄졌다고 설명한다. 업데이트는 기록된 입구를 막지만 이미 도난당한 비밀을 무효화하거나 이전 접근이 없었다고 증명하지 않는다.
시한과 영향을 받는 버전
CVSS 점수는 8.6이다. 복잡도가 낮은 원격 명령 실행으로 기존 계정이나 사용자 동작이 필요하지 않다. Connect Secure는 인터넷과 내부 애플리케이션, 신원 서비스 사이에 있다. 이 장비의 인증 실패는 공격자에게 가치 있는 신뢰 위치를 준다.
완료된 보도는 각 브랜치의 25.1.1.1 이하, 25.1.2.2 이하, 22.8R2.4 이하를 영향 대상으로 든다. 수정 버전에는 25.1.1.2, 25.1.3.0, 25.1.3.1, 22.8R2.5가 포함된다. 브랜치를 임의로 바꿔도 된다는 지침이 아니다. 설치 버전과 지원 업그레이드 경로를 Ivanti 권고문에 맞춰 확인해야 한다.
이전 버전 예외의 정밀도는 자료마다 다르다. 주 원고는 22.7.x 이하, 병합한 CVE 기반 원고는 22.7R2.14 이하를 명시한다. 어느 표현도 구형 소프트웨어 전체의 안전 보증이나 다운그레이드 이유가 아니다. 다른 취약점이나 지원 종료는 별도로 검토해야 한다.
10월 13일 KEV 갱신에는 Windows Shell CVE-2026-96951도 포함됐다. 이는 사용자 상호작용이 필요한 별도 문제로, 인증 없이 직접 공격하는 Ivanti 경로와 다르다. 인용된 BOD 26-04 요건에 따라 Federal Civilian Executive Branch 기관에는 두 항목 모두 10월 16일 시한이 적용됐다. 민간 조직이 그 지침의 의무를 자동으로 물려받는 것은 아니지만 기술 위험은 같다. Windows는 여기서 배경이지 두 번째 Ivanti 취약점이 아니다.
KEV 등재는 실제 악용이 관찰됐다는 뜻이다. 모든 노출 장비가 침해됐거나 대규모 공격이 있었다는 의미가 아니다. 랜섬웨어 사용 항목은 미확인으로, 연관성이 입증된 것이 아니다. Ivanti의 제한적 악용 인지 발언도 회사의 가시성일 뿐 피해 수의 확실한 상한이 아니다.
공개 전에 당시 최신 장비가 공격받았다
Volexity는 10월 5일 조사를 시작해 10월 3일까지 악용을 추적했다. 대상은 해당 브랜치에서 당시 최신이던 Connect Secure 22.8R2.4, Build 19097이었다. 다른 위협 정보 제공자는 10월 1일부터 관련 징후를 봤다고 전해진다. 두 관찰은 다르며 더 이른 날짜를 Volexity의 직접 확인으로 쓰면 안 된다.
회사는 미확인 활동을 UTA0576으로 추적한다. 분석용 묶음 이름이지 실제 조직이나 국가 후원자의 입증된 신원이 아니다. 첩보보다 범죄 동기일 가능성을 낮은 신뢰도로 평가했다. 최종 목표를 규명하기 전에 활동은 차단됐다.
Ivanti는 제품 보안 프로그램으로 일부 문제를 발견해 2026년 7월 25.1.3.0에서 수정했다고 밝혔다. 다른 지원 버전에 수정을 이식하는 동안 악용이 발생했다. 브랜치 간 보호 공백은 실제였으나 회사가 전체 체인과 실제 공격을 언제 이해했는지는 공개 자료로 확정되지 않는다. 이식·호환성 작업을 근거 없는 고의 지연 주장으로 바꿔서는 안 된다.
배경에는 2025년 1월 악용된 스택 버퍼 오버플로 CVE-2025-0282와 이후 중국 연계 첩보에 연결된 CVE-2025-22457이 있다. 이런 사건은 UTA0576의 신원이나 모든 Ivanti 장비의 불안전을 증명하지 않는다. Volexity는 패킷 캡처에서 자격 증명을 복구하는 행위를 SonicWall 원격 접근 장비 공격과도 비교했다. 신뢰받는 경계 인프라가 전반적으로 매력적인 표적임을 보여 준다.
세 가지 약점이 공개 요청을 root로 바꿨다
재구성한 체인은 권한 확인과 라우팅의 불일치로 시작한다. 공개 로그인 구성요소 welcome.cgi 요청에 X-DSCGI-PATH 헤더로 다른 목적지를 지정할 수 있었다. 장비는 공개 URL을 검사하면서 보호된 업로드 처리기 wu.cgi로 요청을 전달했다.
처리기는 유효한 ZIP인지 확인하기 전에 파일을 썼다. ZIP 확장자로 위장한 Perl 스크립트가 거부·삭제 전 잠시 존재했다. 병렬 요청이 정리 시간과 경합해 제한된 cgi-server 계정으로 실행되게 했다. 이는 시간 순서에 의존하는 파일 처리 결함이지 일반 ZIP이 본질적으로 실행 가능하다는 뜻은 아니다.
Ivanti는 인증 우회와 원격 실행을 CVE-2026-104935에 묶었다. 별도의 권한 상승은 특권 서비스가 조작된 설정을 믿는 문제와 메모리 내 라이브러리 변경을 이용했다. 정상 유지보수 작업이 악성 스크립트로 향해 root로 실행됐다. 공격자는 보호된 암호 정보 접근을 시험한 뒤 설정과 변경한 메모리 명령을 복원했다.
완료된 보도 당시 Ivanti는 별도 상승 결함을 나중에 수정할 예정이었다. 그렇다고 10월 13일 업데이트가 기록된 비인증 경로를 열어 둔다는 의미는 아니다. 진입과 실행 단계를 차단하면 그 특정 체인은 끊긴다. 그래도 후속 공급업체 버전은 계속 확인해야 한다.
공격자는 초기 백도어를 남기지 않고 취약점 통로를 반복 사용해 HTTPS로 명령과 결과를 주고받았다. 압축·인코딩된 Python 페이로드를 포함한 일부 단계는 메모리에만 있었다. 선택한 디버그·Linux 감사 로그를 지우고 임시 파일과 결과를 청소했으며 변경 상태를 복원했다.
Volexity는 이 방식이 Ivanti Integrity Checker Tool을 우회했다고 밝혔다. 도구는 예상치 못한 파일 변화를 찾는다. 임시 메모리 변경과 복원한 설정은 정상 디스크 검사로 배제할 수 있는 범위를 벗어난다. 결과의 의미를 제한할 뿐 무결성 검사가 쓸모없다는 뜻은 아니다.
신원 데이터가 영향을 장비 밖으로 넓혔다
게이트웨이의 디렉터리 접근 권한으로 내부 Active Directory 도메인 컨트롤러에 질의할 수 있었다. 조사팀은 LAPS 로컬 관리자 자격 증명, BitLocker 복구 정보, 암호가 담긴 속성, 사용자 메타데이터와 로그온 스크립트 경로를 노리는 전용 LDAP 도구와 Python 스크립트를 확보했다. 인증 기록에서는 유효한 사용자명도 얻었다.
LAPS 정보는 로컬 관리 접근, BitLocker 복구 정보는 암호화 드라이브 해제에 쓰일 수 있다. Volexity는 표적 디렉터리 질의로 얻을 수 있는 정보가 외부로 나갔다고 높은 신뢰도로 평가했다. 모든 요청한 비밀이 존재했거나 이후 모든 침해가 성공했다는 뜻은 아니다.
공격자는 패킷 캡처에서도 평문 LDAP 자격 증명, HTTP Basic 자료, NTLM 챌린지-응답 해시를 찾았다. 숨김 디렉터리에서 이름을 바꾼 캡처 도구가 LDAP, HTTP, FTP, Telnet 등을 감시하며 8개 파일을 순환 사용했다. 해시 악용과 오프라인 암호 공격은 설정·암호 강도에 따라 다르지만, 수집한 자료는 VPN 업데이트로 되돌릴 수 없다.
내부 DNS·호스트명 정찰, VPN 설정·인증 로그 검색, 디렉터리 계정에 대한 암호 스프레이도 있었다. 이런 행동은 측면 이동과 확대 접근 준비를 뒷받침했다. 최종 목표와 모든 기법의 성공 여부까지 규명한 것은 아니다.
병합 보도의 AI 주장도 절제가 필요하다. Volexity는 맞춤 스크립트, 하드코딩한 자격 증명, 반복 명령 통로, 체인 복잡도를 들어 개발이나 침입 후 활동에 대형 언어 모델을 썼을 가능성을 중간 신뢰도로 평가했다. 직접 증거가 아니라 추론이다. 사람의 반복 작업이나 기존 비공개 도구도 비슷한 패턴을 만들 수 있어 확인된 자율 AI 침입이라고 할 수 없다.
근거 있는 종결에 필요한 확인
공개 뒤 Shadowserver는 인터넷에 노출된 것으로 보이는 Connect Secure 인스턴스 5,500개 이상을 집계했다. 이는 노출 관찰이지 취약·피해 고객 수가 아니다. 허니팟, 중복, 업데이트된 시스템이 섞일 수 있다. 자산 파악에는 운영·대기 게이트웨이, 복구 노드, 잊힌 시험 장비를 넣고 실제 빌드를 확인해야 한다.
Ivanti는 즉시 업데이트와 정기 무결성 검사를 권고했고 Rapid7는 패치 후 침해 검색도 강조했다. 노출 날짜, 게이트웨이에서 시작한 연결, 신원·디렉터리 로그, 방화벽·DNS 기록과 보존한 메모리는 버전 확인과 다른 질문에 답한다. welcome.cgi의 비정상 요청량과 URL·헤더 불일치는 단서지만 바꿀 수 있다. 공개 지표가 없다는 사실은 보편적인 안전 판정이 아니다.
차단과 증거 보존은 충돌할 수 있다. 재부팅·재구축은 휘발성 흔적을 없애고 격리 지연은 공격자의 접근을 늘릴 수 있다. 현재 위험, 이중화, 포렌식 역량으로 순서를 정해야 한다. 대응자는 불필요하게 접근을 연장하지 않으면서 수집을 조율하고 작업과 시간을 기록해야 한다.
자격 증명 교체는 연동 서비스, 접근 가능한 비밀과 관찰 활동을 따라야 한다. 서비스 자격 증명, 로컬 관리자 암호, 복구 키, 토큰, 재사용 사용자 비밀을 따로 검토해야 한다. 무차별 재설정은 의존 관계를 깨면서 눈에 덜 띄는 증명을 놓칠 수 있다. 신뢰 게이트웨이에서 나온 후속 시스템 연결도 독립적인 조사 대상이다.
장기적으로 불필요한 인터넷·관리 노출을 줄이고 로그를 중앙화하며 디렉터리 서비스 계정 권한을 최소화하고 내부망을 분리하고 평문 인증을 없애는 것이 중요하다. 제로데이를 제거하지는 않지만 침해 장비 한 대의 접근 범위와 지울 수 있는 증거를 제한한다.
다음 지표는 추가 악용·피해 조사, 지원 브랜치의 검증된 패치 보급, 별도 권한 상승 수정, 도난 자격 증명의 후속 사용이다. Volexity는 무기화한 공격 코드를 공개하지 않았지만 기술 분석은 모방자도 도울 수 있다. 새 공개 사례가 없다고 추가 침해가 없었다고 단정할 수 없다.
종결하려면 취약 버전, 공격 기간의 노출, 접근 증거, 이후 닿을 수 있던 시스템과 비밀에 대해 각각 답해야 한다. 패치 완료는 첫 질문에 답한다. 필요한 이정표지만 나머지 세 답을 대신하지 않는다.
