News WannaCry stoppt Produktion von Apple- und AMD-Chips bei TSMC

User-News

Von Complicated

Hinweis: Diese "User-News" wurde nicht von der Planet 3DNow! Redaktion veröffentlicht, sondern vom oben genannten Leser, der persönlich für den hier veröffentlichten Inhalt haftet.
WannaCry, ein Verschlüsselungs-Trojaner, der im Mai 2017 für Aufsehen gesorgt hatte und in 150 Ländern ca. 230.000 Computer befallen hatte, hat den Auftrags-Chipfertiger TSMC (Taiwan Semiconductor Manufactoring Company) kurzzeitig still gelegt. Der Erpressungs-Trojaner forderte seinerzeit ein Lösegeld für die Entschlüsselung der Daten. Eigentlich sollte der Trojaner kein Problem mehr darstellen, da schon lange Patches bestehen und auch über das Windows-Update ausgeliefert werden.

Wie TSMC nun auf seiner Homepage mitteilte, war es wohl die Folge einer missglückten Einführung neuer Tools und dem damit verbundenen einspielen der Software.
Hsinchu, Taiwan, R.O.C., Aug 5, 2018 – TSMC today provided an update on the Company’s computer virus outbreak on the evening of August 3, which affected a number of computer systems and fab tools in Taiwan. The degree of infection varied by fab. TSMC contained the problem and found a solution. As of 14:00 Taiwan time, about 80% of the company’s impacted tools have been recovered, and the Company expects full recovery on August 6. TSMC expects this incident to cause shipment delays and additional costs. We estimate the impact to third quarter revenue to be about three percent, and impact to gross margin to be about one percentage point. The Company is confident shipments delayed in third quarter will be recovered in the fourth quarter 2018, and maintains its forecast of high single-digit revenue growth for 2018 in U.S. dollars given on July 19, 2018.

Most of TSMC’s customers have been notified of this event, and the Company is working closely with customers on their wafer delivery schedule. The details will be communicated with each customer individually over the next few days.

This virus outbreak occurred due to misoperation during the software installation process for a new tool, which caused a virus to spread once the tool was connected to the Company’s computer network. Data integrity and confidential information was not compromised. TSMC has taken actions to close this security gap and further strengthen security measures.
Heise berichtet es seien ungepatchte Windows 7 Computer mit dem Intranet verbunden worden:
Laut TSMC-Vorstandschef C.C. Wei war das Problem bereits am Freitag beim Aufspielen von Software auf neue Firmencomputer aufgetreten. Die neuen Geräte seien ohne vorherige Virenprüfung mit dem Intranet verbunden worden und waren offenbar gegen die von WannaCry ausgenutzte Lücke ungepatcht. Betroffen seien Rechner in einigen Chipfabriken in Taiwan, die über das Betriebssystem Windows 7 laufen, so Wei.
TSMC hat, laut eigenen Angaben, die am 03.August entstandenen Probleme bis zum 06.08.2018 wieder vollständig in den Griff bekommen, so dass es nur zu einem kurzen Produktionsstopp kam. Zu den entstandenen Schäden ist dem Statement von TSMC zu entnehmen, dass es im 3 Quartal zu 3% höheren Kosten und Auslieferungsverzögerungen kommen würde, welche aber im 4.Quartal kompensiert werden können. Betroffen soll vor allem Apples neuer A12-SoC sein und auch AMD. Beziffert wird die Schadenshöhe, laut Heise, auf ca. 150 Millionen Euro.

Wer für alle Fälle seinen PC auf vorhandene Patches gegen WannaCry checken möchte, der erhält eine Anleitung von Microsoft:
Der Patch ist in den folgenden KB-Files enthalten:

Windows 7 SP1: 4012218, 4015552, 4019265, 4022168
Windows Server 2012: 4012220, 4015554, 4019218, 4022721
Windows 8.1 und Windows Server 2012 R2: 4012219, 4015553, 4019217, 4022720

Der Patch aktuallisiert die Systemdatei "srv.sys". Daher kann auch über die Versionsnummer dieser Datei geprüft werden ob der Patch für WannaCry vorhanden ist. Die Versionsnummer ab welcher der Patch vorhanden ist unterscheidet sich allerdings von einer Windowsversion zur anderen:

Windows-Versionen
Minimale aktualisierte Srv.sys-Version
Windows XP
5.1.2600.7208
Windows Server 2003 SP2​
5.2.3790.6021
Windows Vista
Windows Server 2008 SP2​
GDR:6.0.6002.19743, LDR:6.0.6002.24067​
Windows 7
Windows Server 2008 R2
6.1.7601.23689
Windows 8
Windows Server 2012​
6.2.9200.22099
Windows 8.1
Windows Server 2012 R2​
6.3.9600.18604
Windows 10 TH1 v1507​
10.0.10240.17319​
Windows 10 TH2 v1511​
10.0.10586.839​
Windows 10 RS1 v1607
Windows Server 2016
10.0.14393.953

Um diese Versionen schnell checken zu können hat Microsoft auch ein Powershell-Script zur Verfügung gestellt, welches man auf allen Windows-Systemen ab Windows XP und Windows Server 2003 ausführen kann. Benötigt wird eine Powershell ab Version 2.0 (Aktuell ist 5.1).


  1. Das folgende Script kopieren und als Datei im Editor mit der Endung ".PS1" abspeichern.
  2. Dann mit einem Rechtsklick auf die Datei den Menüpunkt "Mit Powershell ausführen" im Kontextmenü auswählen
Code:
[reflection.assembly]::LoadWithPartialName("System.Version")
$os = Get-WmiObject -class Win32_OperatingSystem
$osName = $os.Caption
$s = "%systemroot%\system32\drivers\srv.sys"
$v = [System.Environment]::ExpandEnvironmentVariables($s)
If (Test-Path "$v")
    {
    Try
        {
        $versionInfo = (Get-Item $v).VersionInfo
        $versionString = "$($versionInfo.FileMajorPart).$($versionInfo.FileMinorPart).$($versionInfo.FileBuildPart).$($versionInfo.FilePrivatePart)"
        $fileVersion = New-Object System.Version($versionString)
        }
    Catch
        {
        Write-Host "Unable to retrieve file version info, please verify vulnerability state manually." -ForegroundColor Yellow
        Return
        }
    }
Else
    {
    Write-Host "Srv.sys does not exist, please verify vulnerability state manually." -ForegroundColor Yellow
    Return
    }
if ($osName.Contains("Vista") -or ($osName.Contains("2008") -and -not $osName.Contains("R2")))
    {
    if ($versionString.Split('.')[3][0] -eq "1")
        {
        $currentOS = "$osName GDR"
        $expectedVersion = New-Object System.Version("6.0.6002.19743")
        } 
    elseif ($versionString.Split('.')[3][0] -eq "2")
        {
        $currentOS = "$osName LDR"
        $expectedVersion = New-Object System.Version("6.0.6002.24067")
        }
    else
        {
        $currentOS = "$osName"
        $expectedVersion = New-Object System.Version("9.9.9999.99999")
        }
    }
elseif ($osName.Contains("Windows 7") -or ($osName.Contains("2008 R2")))
    {
    $currentOS = "$osName LDR"
    $expectedVersion = New-Object System.Version("6.1.7601.23689")
    }
elseif ($osName.Contains("Windows 8.1") -or $osName.Contains("2012 R2"))
    {
    $currentOS = "$osName LDR"
    $expectedVersion = New-Object System.Version("6.3.9600.18604")
    }
elseif ($osName.Contains("Windows 8") -or $osName.Contains("2012"))
    {
    $currentOS = "$osName LDR"
    $expectedVersion = New-Object System.Version("6.2.9200.22099")
    }
elseif ($osName.Contains("Windows 10"))
    {
    if ($os.BuildNumber -eq "10240")
        {
        $currentOS = "$osName TH1"
        $expectedVersion = New-Object System.Version("10.0.10240.17319")
        }
    elseif ($os.BuildNumber -eq "10586")
        {
        $currentOS = "$osName TH2"
        $expectedVersion = New-Object System.Version("10.0.10586.839")
        }
    elseif ($os.BuildNumber -eq "14393")
        {
        $currentOS = "$($osName) RS1"
        $expectedVersion = New-Object System.Version("10.0.14393.953")
        }
    elseif ($os.BuildNumber -eq "15063")
        {
        $currentOS = "$osName RS2"
        "No need to Patch. RS2 is released as patched. "
        return
        }
    }
elseif ($osName.Contains("2016"))
    {
    $currentOS = "$osName"
    $expectedVersion = New-Object System.Version("10.0.14393.953")
    }
elseif ($osName.Contains("Windows XP"))
    {
    $currentOS = "$osName"
    $expectedVersion = New-Object System.Version("5.1.2600.7208")
    }
elseif ($osName.Contains("Server 2003"))
    {
    $currentOS = "$osName"
    $expectedVersion = New-Object System.Version("5.2.3790.6021")
    }
else
    {
    Write-Host "Unable to determine OS applicability, please verify vulnerability state manually." -ForegroundColor Yellow
    $currentOS = "$osName"
    $expectedVersion = New-Object System.Version("9.9.9999.99999")
    }
Write-Host "`n`nCurrent OS: $currentOS (Build Number $($os.BuildNumber))" -ForegroundColor Cyan
Write-Host "`nExpected Version of srv.sys: $($expectedVersion.ToString())" -ForegroundColor Cyan
Write-Host "`nActual Version of srv.sys: $($fileVersion.ToString())" -ForegroundColor Cyan
If ($($fileVersion.CompareTo($expectedVersion)) -lt 0)
    {
    Write-Host "`n`n"
    Write-Host "System is NOT Patched" -ForegroundColor Red
    }
Else
    {
    Write-Host "`n`n"
    Write-Host "System is Patched" -ForegroundColor Green
    }
#
Sollte sich das Ausgabefenster zu schnell schließen um das Ergebnis zu erkennen (fehlender patch erzeugt rote Schrift und ein gepatchtes System eine grüne Ausgabe), kann man das Script auch direkt in die Powershell ISE kopieren und erhält dort die Ausgabe ebenfalls.

So sieht das Ergebnis dann aus. Danke für den Screenshot @deoroller

attachment.php
 
Zuletzt bearbeitet:
Zurück
Oben Unten