Website-Suche

So beheben Sie die SambaCry-Sicherheitslücke (CVE-2017-7494) in Linux-Systemen


Samba ist seit langem der Standard für die Bereitstellung gemeinsamer Datei- und Druckdienste für Windows-Clients auf *nix-Systemen. Es wird sowohl von Privatanwendern als auch von mittelständischen Unternehmen und Großunternehmen verwendet und ist die Lösung der Wahl in Umgebungen, in denen verschiedene Betriebssysteme nebeneinander existieren.

Wie es leider bei weit verbreiteten Tools der Fall ist, sind die meisten Samba-Installationen dem Risiko eines Angriffs ausgesetzt, der eine bekannte Schwachstelle ausnutzen könnte, die nicht als schwerwiegend angesehen wurde, bis der Ransomware-Angriff WannaCry die Schlagzeilen machte vor langer Zeit.

In diesem Artikel erklären wir, was diese Samba-Schwachstelle ist und wie Sie die Systeme, für die Sie verantwortlich sind, davor schützen können. Abhängig von Ihrem Installationstyp (aus Repositorys oder aus der Quelle) müssen Sie hierfür einen anderen Ansatz wählen.

Wenn Sie derzeit Samba in einer beliebigen Umgebung verwenden oder jemanden kennen, der dies tut, lesen Sie weiter!

Die Sicherheitslücke

Veraltete und nicht gepatchte Systeme sind anfällig für eine Sicherheitslücke zur Remotecodeausführung. Vereinfacht ausgedrückt bedeutet dies, dass eine Person mit Zugriff auf eine beschreibbare Freigabe einen beliebigen Code hochladen und diesen mit Root-Rechten auf dem Server ausführen kann.

Das Problem wird auf der Samba-Website als CVE-2017-7494 beschrieben und betrifft bekanntermaßen die Samba-Versionen 3.5 (veröffentlicht Anfang März 2010) und höher. Inoffiziell wurde es aufgrund seiner Ähnlichkeit mit WannaCry SambaCry genannt: Beide zielen auf das SMB-Protokoll ab und sind potenziell wurmfähig – was zur Ausbreitung von System zu System führen kann.

Debian, Ubuntu, CentOS und Red Hat haben schnell Maßnahmen zum Schutz ihrer Benutzer ergriffen und Patches für ihre unterstützten Versionen veröffentlicht. Darüber hinaus wurden auch Sicherheitsumgehungen für nicht unterstützte Versionen bereitgestellt.

Samba aktualisieren

Wie bereits erwähnt, gibt es je nach vorheriger Installationsmethode zwei Vorgehensweisen:

Wenn Sie Samba aus den Repositorys Ihrer Distribution installiert haben.

Schauen wir uns an, was Sie in diesem Fall tun müssen:

Sambacry in Debian reparieren

Stellen Sie sicher, dass apt so eingestellt ist, dass es die neuesten Sicherheitsupdates erhält, indem Sie die folgenden Zeilen zu Ihrer Quellenliste hinzufügen (/etc/apt/sources.list):

deb http://security.debian.org stable/updates main
deb-src http://security.debian.org/ stable/updates main

Aktualisieren Sie als Nächstes die Liste der verfügbaren Pakete:

aptitude update

Stellen Sie abschließend sicher, dass die Version des Samba-Pakets mit der Version übereinstimmt, in der die Schwachstelle behoben wurde (siehe CVE-2017-7494):

aptitude show samba

Sambacry in Ubuntu reparieren

Suchen Sie zunächst nach neuen verfügbaren Paketen und aktualisieren Sie das Samba-Paket wie folgt:

sudo apt-get update
sudo apt-get install samba

Die Samba-Versionen, bei denen der Fix für CVE-2017-7494 bereits angewendet wurde, sind die folgenden:

  • 17.04: samba 2:4.5.8+dfsg-0ubuntu0.17.04.2
  • 16.10: samba 2:4.4.5+dfsg-2ubuntu5.6
  • 16.04 LTS: samba 2:4.3.11+dfsg-0ubuntu0.16.04.7
  • 14.04 LTS: samba 2:4.3.11+dfsg-0ubuntu0.14.04.8

Führen Sie abschließend den folgenden Befehl aus, um zu überprüfen, ob auf Ihrer Ubuntu-Box jetzt die richtige Samba-Version installiert ist.

sudo apt-cache show samba

Sambacry unter CentOS/RHEL 7 reparieren

Die gepatchte Samba-Version in EL 7 ist samba-4.4.4-14.el7_3. Um es zu installieren, tun Sie dies

yum makecache fast
yum update samba

Stellen Sie wie zuvor sicher, dass Sie jetzt über die gepatchte Samba-Version verfügen:

yum info samba

Für ältere, noch unterstützte Versionen von CentOS und RHEL sind ebenfalls Korrekturen verfügbar. Weitere Informationen finden Sie unter RHSA-2017-1270.

Wenn Sie Samba von der Quelle installiert haben

Hinweis: Bei der folgenden Vorgehensweise wird davon ausgegangen, dass Sie Samba zuvor aus dem Quellcode erstellt haben. Wir empfehlen Ihnen dringend, es ausgiebig in einer Testumgebung auszuprobieren, BEVOR Sie es auf einem Produktionsserver bereitstellen.

Stellen Sie außerdem sicher, dass Sie die Datei smb.conf sichern, bevor Sie beginnen.

In diesem Fall werden wir Samba ebenfalls aus dem Quellcode kompilieren und aktualisieren. Bevor wir beginnen, müssen wir jedoch sicherstellen, dass alle Abhängigkeiten zuvor installiert wurden. Beachten Sie, dass dies mehrere Minuten dauern kann.

In Debian und Ubuntu:

aptitude install acl attr autoconf bison build-essential \
    debhelper dnsutils docbook-xml docbook-xsl flex gdb krb5-user \
    libacl1-dev libaio-dev libattr1-dev libblkid-dev libbsd-dev \
    libcap-dev libcups2-dev libgnutls28-dev libjson-perl \
    libldap2-dev libncurses5-dev libpam0g-dev libparse-yapp-perl \
    libpopt-dev libreadline-dev perl perl-modules pkg-config \
    python-all-dev python-dev python-dnspython python-crypto xsltproc \
    zlib1g-dev libsystemd-dev libgpgme11-dev python-gpgme python-m2crypto

In CentOS 7 oder ähnlich:

yum install attr bind-utils docbook-style-xsl gcc gdb krb5-workstation \
    libsemanage-python libxslt perl perl-ExtUtils-MakeMaker \
    perl-Parse-Yapp perl-Test-Base pkgconfig policycoreutils-python \
    python-crypto gnutls-devel libattr-devel keyutils-libs-devel \
    libacl-devel libaio-devel libblkid-devel libxml2-devel openldap-devel \
    pam-devel popt-devel python-devel readline-devel zlib-devel

Stoppen Sie den Dienst:

systemctl stop smbd

Laden Sie die Quelle herunter und entpacken Sie sie (wobei 4.6.4 zum Zeitpunkt des Verfassens dieses Artikels die neueste Version war):

wget https://www.samba.org/samba/ftp/samba-latest.tar.gz 
tar xzf samba-latest.tar.gz
cd samba-4.6.4

Überprüfen Sie nur zu Informationszwecken die verfügbaren Konfigurationsoptionen für die aktuelle Version mit.

./configure --help

Sie können einige der vom obigen Befehl zurückgegebenen Optionen einbeziehen, wenn sie im vorherigen Build verwendet wurden, oder Sie können sich für die Standardeinstellung entscheiden:

./configure
make
make install

Starten Sie abschließend den Dienst neu.

systemctl restart smbd

und stellen Sie sicher, dass Sie die aktualisierte Version ausführen:

smbstatus --version

was 4.6.4 zurückgeben sollte.

allgemeine Überlegungen

Wenn Sie eine nicht unterstützte Version einer bestimmten Distribution verwenden und aus irgendeinem Grund kein Upgrade auf eine neuere Version durchführen können, sollten Sie die folgenden Vorschläge berücksichtigen:

  • Wenn SELinux aktiviert ist, sind Sie geschützt!
  • Stellen Sie sicher, dass Samba-Freigaben mit der Option noexec gemountet sind. Dadurch wird die Ausführung von Binärdateien verhindert, die sich im gemounteten Dateisystem befinden.

Hinzufügen,

nt pipe support = no

Gehen Sie zum Abschnitt [global] Ihrer Datei smb.conf und starten Sie den Dienst neu. Beachten Sie möglicherweise, dass dies gemäß dem Samba-Projekt „einige Funktionen in Windows-Clients deaktivieren kann“.

Wichtig: Beachten Sie, dass die Option „nt pipe support=no“ die Freigabeliste von Windows-Clients deaktivieren würde. Beispiel: Wenn Sie im Windows Explorer auf einem Samba-Server \\10.100.10.2\ eingeben, wird Ihnen die Berechtigung verweigert. Windows-Clients müssten die Freigabe manuell als \\10.100.10.2\share_name angeben, um auf die Freigabe zugreifen zu können.

Zusammenfassung

In diesem Artikel haben wir die als SambaCry bekannte Schwachstelle beschrieben und wie man sie entschärfen kann. Wir hoffen, dass Sie diese Informationen zum Schutz der Systeme nutzen können, für die Sie verantwortlich sind.

Wenn Sie Fragen oder Kommentare zu diesem Artikel haben, können Sie uns diese gerne über das untenstehende Formular mitteilen.