CVE-2020-1350 - kritische DNS Lücke
Am 14.7.2020 hat Microsoft eine Sicherheitswarnung veröffentlicht, die eine schnelle Reaktion seitens der Administratoren erfordert. Die Lücke hat den Codename "SIGRed" bekommen.
Risiko
Die Lücke liegt im Windows DNS-Server, welcher mit entsprechend präparierten Anfragen dazu gebracht werden kann, beliebigen Code als "Local System" auszuführen. Es ist also eine weitere klassische "Buffer Overflow"-Situation, bei der ein Server-Prozess sehr große Pakete im Speicher anlegt und dabei übersieht, wohin er schreibt.
Das Problem betrifft alle Windows DNS-Server seit Windows 2008 bis 2019 und ist für alle Administratoren interessant. Es gibt zwei Szenarien:
- Externe DNS-Server mit anonymen
Angreifern
Es gibt sicher DNS-Server auf Basis von Windows, die im Internet direkt erreichbar sind. Diese könnten von anonymen Angreifern dann gekapert werden. Das Risiko ist real. - Interne DNS-Server
Viel kritischer sehe ich aber all die internen DNS-Server, die bei den meisten Firmen für den Betrieb des Active Directory erforderlich sind und in den meisten Fällen auf dem Domain Controller laufen. Ein Schadcode, z.B. die Payload einer neuen Malware, könnte eine DNS-Anfrage an einen internen DNS-Server senden. Über den Weg könnte man einen Domaincontroller als "LocalSystem" Schaden anrichten.
Da Risiko ist also durchaus die Einstufung "10" wert und Microsoft schreibt selbst dazu:
This vulnerability has a CVSS Base score of 10. How bad is this?
We consider this to be a wormable vulnerability, meaning that it has the
potential to spread via malware between vulnerable computers without user
interaction. DNS is a foundational networking component and commonly installed
on Domain Controllers, so a compromise could lead to significant service
interruptions and the compromise of high level domain accounts.
Quelle:
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-1350
Also gilt es nicht lange abzuwarten.
SIGRed: Windows DNS Server Remote Code Execution | Check Point Research
https://www.youtube.com/watch?v=PUlMmhD5it8
Gegenmaßnahme
Es gibt mittlerweile aktualisierte Versionen, die im Microsoft Bulletin (https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-1350) verlinkt sind. Bis Windows 2012R2 sind sie im "Monthly Security Update 2020-07 enthalten als auch einzeln verfügbar. Für Windows 2016/2019/2004 gibt es nur die Security Updates:
Laden Sie das aktuelle Updates für ihren Server entsprechend herunter.
Temporärer Schutz
Wenn Sie die Updates nicht sofort einspielen können, dann hat Microsoft passend dazu auch einen temporären Schutz veröffentlicht. Über einen Konfigurationseintrag in der Registrierung kann der Windows DNS-Service angewiesen werden, zu große Pakete zu verarbeiten. Microsoft hat also im Code durchaus eine "Schutzfunktion" für nachfolgende Codeteile implementiert und in diesem Fall erlaubt dies eine schnelle Abhilfe.
Hier einmal als REG-Datei zum Import auf dem DNS-Server:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters] "TcpReceivePacketSize"=dword:0000ff00
Sie können das auch per PowerShell (Als Admin starten) samt Neustart des DNS-Service umsetzen:
New-ItemProperty ` -Path "HKLM:\SYSTEM\CurrentControlSet\Services\DNS\Parameters" ` -Name "TcpReceivePacketSize" ` -Value 0x0000ff00 ` -PropertyType "dword"; restart-service dns;
Das Skript addiert einfach den Key. Wer das Skript auf einem Server ohne DNS-Service ausführt, hat keinen Schaden aber auch keinen Nutzen und der Neustart des DNS-Service sollte jede Umgebung problemlos überstehen.
Wer eine größere Umgebung hat, kann das Skript natürlich als Task per
Softwareverteilung auf die DNS-Server ausführen lassen oder per
Gruppenrichtlinie diesen Registrierungsschlüssel setzen.
Sie könnten auch die PowerShell-Zeilen per "Invoke-Command" auf alle DNS-Server
remote ausführen.
Hier eine schnelle Lösung ohne Logging, Fehler-Behandlung o.ä. Verwendung auf eigene Gefahr.
foreach ($dc in get-ADDomainController) { invoke-command ` -computername $dc.hostname ` -command {New-ItemProperty ` -Path "HKLM:\SYSTEM\CurrentControlSet\Services\DNS\Parameters" ` -Name "TcpReceivePacketSize" ` -Value 0x0000ff00 ` -PropertyType "dword"; restart-service dns;} }
Auch wenn Microsoft sehr zügig ein Update liefern wird, sollten Sie diesen Schutz aktivieren. Sobald Microsoft ein Update veröffentlicht, werden sich die "bösen Jungs und Mädels" natürlich an das Reverse Engineering machen. Die werden sicher schneller fertig sein, als alle DNS-Server der Welt aktualisiert wurden.
Nebeneffekte
Keine Aktion ohne Reaktion und der schneller Fix verhindert, dass DNS-Pakete mit mehr als 64kbyte vom DNS-Server verarbeitet werden. Es ist quasi eine "Application Firewall" auf Basis der Größe. Es kann, zumindest in seltenen Fällen, aber auch regulären Traffic geben, der so blockiert wird. Microsoft schreibt dazu.
TCP-based DNS response packets that exceed the recommended value will be dropped
without error, so it is possible that some queries may not be answered. This
could result in an unanticipated failure. A DNS server will only be negatively
impacted by this workaround if it receives valid TCP responses that are greater
than allowed in the previous mitigation (over 65,280 bytes).
Quelle:
https://support.microsoft.com/en-us/help/4569509/windows-dns-server-remote-code-execution-vulnerability
Es könnte also in Ausnahmesituationen passieren, aber der überwiegende Anteil an Abfragen wird problemlos beantwortet.
Weitere Links
- Hafnium Nachbereitung
- Hafnium: Exploit
- Pwn2Own 2021
- Print Nightmare
- Sicherheit
- Firmen werden gehackt
- Ransomware - Fiktive Story
- KB4569509: Guidance for DNS Server Vulnerability CVE-2020-1350
https://support.microsoft.com/en-us/help/4569509/windows-dns-server-remote-code-execution-vulnerability - CVE-2020-1350 | Windows DNS Server Remote Code Execution Vulnerability
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-1350 - CISA: EMERGENCY DIRECTIVE (ED 20-03) WINDOWS DNS SERVER VULNERABILITY
https://www.cisa.gov/blog/2020/07/16/emergency-directive-ed-20-03-windows-dns-server-vulnerability - SIGRed – Resolving Your Way into Domain Admin: Exploiting a 17 Year-old Bug
in Windows DNS Servers
https://research.checkpoint.com/2020/resolving-your-way-into-domain-admin-exploiting-a-17-year-old-bug-in-windows-dns-servers/ - SIGRed: Windows DNS Server Remote Code Execution | Check Point Research
https://www.youtube.com/watch?v=PUlMmhD5it8