Nextcloud Analyse

Info

Dies ist mein Teil auf der Gruppenaufgabe.

Der Kontext ist eine Überprüfung von Nextcloud Server auf Datensparsamkeit im Rahmen eines Moduls an der OvGu Magdeburg.

Analyse

[UB, MF] Die Nextcloud ist eine Open Source basierte Cloud-Hosting Software. Mit ihrer Hilfe kann jeder IT-Interessierte sein eigenes Cloud-System von zuhause oder auch auf einem vServer/Root-Server selber hosten und somit sein eigener Herr werden. Folglich hat der Nutzer nicht zu befürchten, von Unternehmen ausspioniert zu werden. Nextcloud bietet aber auch die Möglichkeit seinen eigenen Messenger mit der Erweiterung “Talk” der Installation hinzufügen und somit als Server des Messengers zu fungieren.

Für den User gibt es weiterhin die Möglichkeit

  • die Next Cloud Talk App,
  • die Webanwendung oder
  • einen Desktop Client zu nutzen.

Die App ist nur auf den Messenger Dienst beschränkt. Die Web- und Desktop Clients umfassen jedoch auch andere Funktionen von Next Cloud, die für diesen Test aber nicht relevant sind.

Die original verwendete URL und IP werden, da sie personenbezogene Informationen verraten, im Verlauf dieser Arbeit pseudonymisiert. Die IP/Domain wird als taits.nextcloud bezeichnet und die URL ist taits.nextcloud/nextcloud.

Veränderte Daten sind durch ein * gekennzeichnet.

5.3.1. Netzwerkanalyse Server

[UB] Der Augenmerk ist die Serverkonfiguration der Nextcloud und ihr Verhalten auf dem Server. Es ist unter anderen festzustellen, welche Daten die Anwendung sendet oder nicht sendet.

5.3.1.1. Webbkoll Analyse Nr. 1

[UB] Die erste Analyse ist mit Webbkoll von Dataskyd durchgeführt worden. Die gefundenen Analysefehler sind:

  • Blockiert Inline-Stilvorlagen durch Verhindern von ‚unsafe-inline‘ innerhalb style-src ist fehlgeschlagen
  • HTTPS nicht als Voreinstellung ist fehlgeschlagen
  • Cookies können unverschlüsselt gesendet werden Dieses Ergebnis zeigt, dass der Apache2 zwar gut voreingestellt ist, aber noch nicht optimal ist.

Es gibt keine gesetzten Header in der Konfiguration, die zur vollständigen Erhärtung der Content-Security-Policy führen.

Zudem ist der Server anfällig für Man-in-the-Middle Attacken, da die Cookies unverschlüsselt gesendet werden können.

Die gesamte Möglichkeit der Datensparsamkeit ist noch nicht ausgereizt.

5.3.1.2. Privacy Score Nr. 1

[UB] Die zweite Analyse der ersten Phase ist Privacy Score. Der Dienst findet folgende Fehler:

  • NoTrack
    • keine Fehler
    • (Rest ist) irrelevant, weil kein Mailserver auf den Nextcloud Server liegt
  • EncWeb
    • keine automatische Weiterleitung auf SSL
    • kein Strict-Transport-Security (HSTS)
  • Attacks;
    • Test Failure
  • EncMail:
    • kein Mailserver
    • TLS 1.1 nicht vorhanden D ies ist ein gutes Ergebnis und auch das Ergebnis von Webbkoll, da HSTS auch als Fehler erscheint.

Die anderen Punkte von PrivacyScore sind nicht relevant, da kein Mail-Server auf dem Computer/Server vorhanden ist.

5.3.1.4. Statistik Server

Passive Statistik

[UB] Im einen kurzen Test wird keine Third-Parties IP-Adressen (Anzahl der Verbindungen: 173) gefunden, während man auf der Webseite aktiv unterwegs war, außer ein paar DNS-Anfrage an einen DNS-Server von MDCC. Alle sonstigen gefunden IP-Adressen beziehen sich auf mein Heimnetzwerk, in dem mein Server eingebunden ist.

In einem langen Test (Anzahl der Verbindungen: 740), habe ich zwei IP-Adresse von Google-Cloud bzw. der Google ( Brasilien, USA) und Linode ( USA) gefunden. Welche Daten diese Anfragen enthalten, war nicht zu entschlüsseln.

Nextcloud Server (passiv lang) Testdatum: 30.05.2021

Gesamtverbindungen:
740

IPs
Eigentümer
Anzahl

45.33.XXX.XX 🇺🇸
Linode
11

35.199.XX.XXX 🇧🇷
google Cloud
3

34.72.XXX.XX 🇺🇸
Google
3

Tabelle:: Auszug der interessanten Verbindungen

Nextcloud Server (passiv kurz) Testdatum: 30.05.2021

Gesamtverbindungen:
137

IPs
Eigentümer
Anzahl

taits.nextcloud* 🇩🇪
Meine IP
24

213.211.XXX.XX 🇩🇪
MDLINK (DNS)
70

Tabelle:: Auszug der interessanten Verbindungen

Aktive Statistik

Nextcloud Server (aktiv 1) Testdatum: 30.05.2021

Gesamtverbindungen:
1052

IPs
Eigentümer
Anzahl

taits.nextcloud* 🇩🇪
Meine IP
1029

239.255.255.250 
Broadcast
4
Tabelle:: Auszug der interessanten Verbindungen

[UB] Wenn auf der Webseite Daten abgerufen werden, werden keine dritten Parteien seitens des Servers einbezogen.

Mit einer Ausnahme: ein DNS-Server von MDCC wird kontaktiert. Alle (sonstigen) erfassten IP-Adressen sind zu meinem Heimnetzwerk zuzuordnen sowie meiner öffentlichen IP-Adresse.

Die Anzahl der Verbindungen sind: 1052 (Die verschiedenen Apps wurden geladen) bzw. 4904 (Die Struktur-Apps, wie Ordner erstellen und vorhanden Dateien/Ordner ausgeben, wurden abgerufen).

5.3.2. Nextcloud sichern

[UB] In diesem Abschnitt geht es Verschärfung der Sicherheit des Servers.

5.3.2.1. Apache2 einrichten

[UB] Um Fehler bzgl. des “HTTPS nicht als Voreinstellung” zu beseitigen, gibt es ein einfaches Tool [40] von Mozilla (Einstellungen: Apache, Modern, Server Version: 2.4.41, OpenSSL Version: 1.1.1d, HTTP Strict Transport Security [aktiv], OCSP Stapling [aktiv]), das eine Vielzahl von Webserver zum Konfigurieren unterstützt.

Dabei wird die “RewriteEngine” konfiguriert, sodass jede Verbindung über http zu https automatisch weitergeleitet wird. Das bedeutet, dass alle Verbindungen werden automatisch verschlüsselt

Dies ersetzt die Apache2-Standardkonfiguration. Um den Fehler “HSTS” zu beheben, wird als Konfiguration der Text “Header set Strict-Transport-Security max-age=15552000; includeSubDomains; preload“, innerhalb der “VirtualHost” Abschnitt hinzugefügt.

Damit wird unter anderen verhindert werden, dass Downgrade-Attacken, sowie Session-Hijacking erfolgen können. Um sicherzustellen, dass die Referrer Policy nicht anderweitig überschrieben wird, werden die gleichen Argumente von Nextcloud in die Apache2-Konfiguration übernommen.

Dies ist nicht notwendig, da die Nextcloud diese schon zutreffend setzt.

5.3.2.2. Nextcloud Server absichern

[UB] Um den Nextcloud Server gegen andere Personen abzusichern, die zum Abruf keine Berechtigungen haben, gibt es eine Vielzahl von Möglichkeiten. Die Software beinhaltet bereits:

  • 2-Faktor Authentifizierung (F2A) aktivieren (zB. mittels Backup-Codes)
  • File Encryption Mode aktivieren

Zu beachten ist jedoch, dass zum Aktivieren des Encryption-Mode das schon installierte, aber deaktivierte Plugin “Default encryption module” zu aktivieren, sowie unter Einstellung→Sicherheit→ Serverseitige Verschlüsselung zu aktivieren ist.

Das Plugin “Usage survey” sammelt auf Wunsch der Nutzer Nutzungsdaten der Nextcloud. Diese werden dann an Nextcloud gesendet. Aus diesem Grund wird das Plugin deaktiviert.

5.3.2.3. Turn Server für Talk

[UB] Die Turn-Server haben die Aufgabe, zwei oder mehrere Geräte miteinander zu verbinden, die sich durch eingesetzte Firewalls oder Blockaden sonst nicht erreichen können.
Nextcloud Talk benutzt webRTC [41] um diesen Messenger Dienst anzubieten.

Allerdings kann diese Technologie, wie oben beschrieben, durch Sicherheitsprogramme unterbunden werden.

Somit hat diese Kommunikation über einen anderen Weg zu erfolgen.

Der TURN-Server ist somit der Vermittler zwischen diesen Geräten.

Der Standardserver-Adresse ist “stun.nextcloud.com:443”. Diese Einstellung geändert, um unseren eigenen aufgesetzten Server zu installieren (in die Nextcloud-Installation).

Mithilfe dieser Anleitung [42] wird der Turn Server installiert und eingestellt.

Für die Verschlüsselung werden speziell folgende Punkte aktiviert:

  • cert/pkey/dh-file
  • cipher-list
  • no-tlsv1, no-tlsv1_1

5.3.3. Codeanalyse Server

[UB] Zuerst, es wurde keine Veränderungen am Source-Code vorgenommen. Notwendige, auffällige Plugins:

  • Microsoft Azure Storage Blob PHP Client Library
  • Amazon AWS SDK

Abbildung: auffällige Ordner im Verzeichnis 3rdparty Storage Blob [43]

[UB] Mit Hilfe der Azure Storage Blob Bibliothek werden die Daten, in die Cloud hochgeladen, sortiert, in Containern gespeichert und einen Nutzerkonto zugewiesen.

Zur Gewährleistung der Erreichbarkeit haben diese Blobs eine en Storage-ID.

Hierdurch können Dateien in externe Datenspeicher Dienste genutzt werden.

Amazon AWS [44]

[UB] Die Amazon AWS SDK dient der Verbreitung von statische Daten, wie Skripte, .css-Daten, .html-Daten, sowie weitere statische Daten zu verbreiten.

Dabei werden die Daten auf an verschiedenen Server von Amazon gespeichert. Damit wird der schnelle Im Bedarfsfall wird die zu verwendende Datei vom Server mit der geringsten Latenz Aufbau einer Website gewährleistet und ein schneller Zugriff auf die Datei ermöglicht.

Allerdings war von dem selbst gehosteten Server keine Verbindungen zu Amazon-Servern festzustellen. Jedoch befinden sich entsprechende Links im

Server-Code.

Dies kann auch für den externen Datenspeicher Dienst genutzt werden.

Beide[f] Dienste (Amazon AWS, Azure Storage Blob) werden für den External Storage, wie in der internen Dokumentation [44] beschrieben wird.

Tiefensuche

[UB] Bei der Tiefensuche, mittels “grep[g]”, nach den Begriffen, vorwiegend die Domains:

  • Microsoft
  • Amazon
  • google
  • phicdn (0 Treffer)
  • pki-googl (0 Treffer) wurden Einträge gefunden.

[g] grep -R -I „Suchbegriff“ ./

Die ersten drei Einträge befanden sich in verschieden Variationen, auf auch auf der internen Passwort-Sperrliste der Nextcloud.

Die Viewer-App kann YouTube, Google, Objekte anzeigen. Daher wird deswegen angezeigt.

In der “Spreed” App der Nextcloud kam Amazon, Microsoft, Google als Begriffe vor, da die Konfigurationsbezeichnung für ihre Smartphones teilweise anfangen oder diese Begriffe beinhalten.

In dieser Hinsicht ist dieser Eintrag unbedenklich.

In der mitgelieferten Dokumentation sind auch diese Suchbegriffe (Microsoft, Amazon, Google) vorhanden.

Die Amazon AWS-SDK, sowie die Azure Blob Bibliothek sind auch gefunden wurden.

Die weitere Suche nach den Domains phicdn und pki-google sind erfolglos ausgegangen, das bedeutet, dass diese Anfragen nicht serverseitig erfolgen können.

Hinzu kamen etliche Kommentare (zum Beispiel in user_status), die entweder Microsoft oder Google enthalten, da die Programmier sich verewigt haben, mit ihrer E-Mail oder sonstige Referenzen.

Zweiter Test

[UB] Der 2. Test erfolgte nach der Erhärtung der Konfiguration des Webservers. Webbkoll-Fehler

  • Blockiert Inline-Stilvorlagen durch Verhindern von ‚unsafe-inline‘ innerhalb style-src ist fehlgeschlagen

Privacy Score

Für Privacy Score ist kein Test durchführbar, weil Privacy Score keine Verbindung zur Nextcloud herstellen kann.

5.3.4. Auswertung Server

[UB] Die Nextcloud sendet auf der Serverseite keine Daten an Drittanbieter. Wobei drei nicht entschlüsselbare Anfragen, in einem Test, zum “Hintergrundrauschen” der Hostmaschine zugeordnet werden kann – der Rechner darf automatisch nach Updates suchen und die Telemetrie wurde nicht abgeschaltet. Die Erhärtung der Konfiguration bewirkt, dass die eingesetzte Software, vor allen Apache2, Daten automatisch verschlüsselt. Somit können die persönlichen Daten der Nutzer nicht in falsche Hände geraten.

Zum Punkt der Content-Security-Property: diese ist fast optimal. Ausnahme ist die Aktivierung der “unsafe-inline” Flag.

Die “unsafe-inline”-Flag [45] beschreibt, dass Skripte und Style-Sources geladen werden dürfen, für die kein Hash existiert während diese eingebunden werden.

Wenn diese Flag deaktiviert ist, können grundsätzlich Angriffe auf die Style- und Skript-Ressourcen reduziert werden.

Allerdings ist diese Flag nicht zu deaktivieren, weil ansonsten keine externe Inhalte nachgeladen werden können.

Sollte diese Flag deaktiviert sein, kann die Nextcloud, inklusive Talk, nicht mehr genutzt werden. Somit muss diese Flag (“unsafe-inline”) aktiv sein.

Eine absolute Sicherheit ist also nicht mehr gegeben.

Literaturverzeichnis

  1. Whatsapp Privacy Policy (01.06.2021) https://www.whatsapp.com/legal/privacy-policy
  2. Why People Are Leaving WhatsApp for Telegram and Signal (05.06.2021) https://www.lifewire.com/why-people-are-leaving-whatsapp-for-telegram-and-signal-5095697
  3. Most popular messaging apps | Statista (18.06.2021) https://www.statista.com/statistics/258749/most-popular-global-mobile-messenger-apps/
  4. Was ist Fingerprinting und warum sollte man es blockieren? (18.06.2021) https://www.mozilla.org/de/firefox/features/block-fingerprinting/
  5. Stolen Data of 533 Million Facebook Users Leaked Online (05.06.2021) https://www.businessinsider.com/stolen-data-of-533-million-facebook-users-leaked-online-2021-4
  6. Whatsapp Web messages, contact details leak on public search platforms | Deccan Herald (05.06.2021) https://www.deccanherald.com/specials/whatsapp-web-messages-contact-details-leak-on-public-search-platforms-940005.html
  7. Art. 25 DSGVO – Datenschutz durch Technikgestaltung und durch datenschutzfreundliche Voreinstellungen | Datenschutz-Grundverordnung (DSGVO) (18.06.2021) https://dsgvo-gesetz.de/art-25-dsgvo/
  8. Telegram (03.06.2021) https://telegram.org/
  9. Signal (03.06.2021) https://signal.org/de/
  10. Nextcloud Talk (03.06.2021) https://nextcloud.com/de/talk/
  11. PrivacyScore (03.06.2021) https://privacyscore.org/
  12. Webbkoll (03.06.2021) https://webbkoll.dataskydd.net/de
  13. Website Evidence Collector (03.06.2021) https://edps.europa.eu/node/5452_de
  14. Exodus Privacy (03.06.2021) https://exodus-privacy.eu.org/en/
  15. AppChecker (16.06.2021) https://github.com/Tienisto/AppChecker
  16. AppChecker von mobilsicher (16.06.2021) https://appcheck.mobilsicher.de/
  17. Wireshark (03.06.2021) https://www.wireshark.org/
  18. SSL Key Export für Wireshark (03.06.2021) https://linuxhint.com/decrypt-ssl-tls-wireshark/
  19. Blokada v4 (ad blocker) | F-Droid – Free and Open Source Android App Repository (20.06.2021) https://f-droid.org/en/packages/org.blokada.alarm/
  20. IP-Adressen Lookup (16.06.2021) https://whatismyipaddress.com/ip-lookup
  21. ASML – Cloud (18.06.2021) https://brain.cs.uni-magdeburg.de/amslCloud/index.php/s/ePBxYC5rg33xfBc
  22. Oracle VM VirtualBox (19.06.2021) https://www.virtualbox.org/
  23. mitmproxy – an interactive HTTPS proxy (19.06.2021) https://mitmproxy.org/
  24. AFWall+ | F-Droid – Free and Open Source Android App Repository (20.06.2021) https://f-droid.org/packages/dev.ukanth.ufirewall/
  25. NextCloud-Docs, Installation on Linux — Nextcloud latest Administration Manual latest documentation (03.06.2021) https://docs.nextcloud.com/server/21/admin_manual/installation/source_installation.html#apache-web-server-configuration
  26. NextCloud-Docs, Hardening and security guidance — Nextcloud latest Administration Manual latest documentation, Enable HTTP Strict Transport Security (03.06.2021) https://docs.nextcloud.com/server/21/admin_manual/installation/harden_server.html
  27. Wie man Let’s Encrypt SSL/TLS-Zertifikate mit Certbot erstellt und verwaltet (04.06.2021) https://www.howtoforge.de/anleitung/wie-man-lets-encrypt-ssl-tls-zertifikate-mit-certbot-erstellt-und-verwaltet/
  28. Telegram Statistiken und Infos (16.06.2021) https://www.businessofapps.com/data/telegram-statistics/
  29. Telegram · GitHub (20.06.2021) https://github.com/telegramdesktop
  30. Sucuri (20.06.2021) https://sucuri.net/
  31. Signal · GitHub (19.06.2021) https://github.com/signalapp
  32. Signal – Sicherer Messenger – AppCheck (19.06.2021) https://appcheck.mobilsicher.de/appchecks/signal-sicherer-messenger-2
  33. Green Circuit Board · Free Stock Photo (19.06.2021) https://www.pexels.com/photo/green-circuit-board-343457
  34. Signal >> Blog >> Certifiably „F“ine (20.06.2021) https://signal.org/blog/certifiably-fine/
  35. Configure Analytics Data Collection and Usage Firebase (13.06.2021) https://firebase.google.com/docs/analytics/configure-data-collection?platform=android#permanently_deactivate_collection
  36. Does Signal send my number to my contacts? – Signal Support (20.06.2021) https://support.signal.org/hc/en-us/articles/360007061452-Does-Signal-send-my-number-to-my-contacts-
  37. What is DNS cache poisoning? | DNS spoofing | Cloudflare (21.06.2021) https://www.cloudflare.com/learning/dns/dns-cache-poisoning
  38. DNSSEC – DENIC eG (21.06.2021) https://www.denic.de/en/know-how/dnssec/
  39. DNS over TLS vs. DNS over HTTPS | Secure DNS | Cloudflare (21.06.2021) https://www.cloudflare.com/learning/dns/dns-over-tls/
  40. Mozilla,Mozilla SSL Configuration Generator (13.05.2021) https://ssl-config.mozilla.org/
  41. Nextcloud, Nextcloud Talk: Private communication, anywhere – Nextcloud (04.06.2021) https://nextcloud.com/de/talk/
  42. Decatec, Jan, Nextcloud Talk mit eigenem TURN-Server (coturn) » DecaTec (04.06.2021) https://decatec.de/home-server/nextcloud-talk-mit-eigenem-turn-server-coturn/
  43. Microsoft, Einführung in Azure Blob Storage (23.06.2021) https://docs.microsoft.com/de-de/azure/storage/blobs/storage-blobs-introduction
  44. In der Nextcloud Doku beschrieben (Ordner: core/doc/admin/configuration_files/external_storage_configuration_gui.html)
  45. Scott Helme, CSP Cheat Sheet (16.06.2021) https://scotthelme.co.uk/csp-cheat-sheet/
  46. So wählen wir Apps aus – AppCheck (20.06.2021) https://appcheck.mobilsicher.de/allgemein/app-auswahl-diese-apps-testen-wir
  47. Nextcloud · GitHub (19.06.2021) https://github.com/nextcloud
  48. Fakultät für Informatik – OvGU Magdeburg, Technische Aspekte der IT-Sicherheit [TAITS], https://omen.cs.uni-magdeburg.de/itiamsl/deutsch/lehre/ss-21/taits.html