seeseekey.net - Invictus Deus Ex Machina

Wenn unter CentOS der Dienst FirewallD aktiviert ist und man eine wie auch immer geartete Serverapplikation auf dem Server betreiben möchte, wird man feststellen das der Dienst von außen nicht zu erreichen ist. Die einfache wenn auch nicht zielführende Möglichkeit wäre es natürlich die Firewall komplett zu deaktivieren. Sinnvoller ist es hingegen den entsprechenden Port welcher benötigt wird freizuschalten. Dies geschieht dabei mit dem Kommando:

firewall-cmd --zone=public --add-port=1234/tcp --permanent

Damit wird der Port 1234, wenn er über TCP angesprochen wird, in der Zone Public freigeschaltet. Die aktiven Zonen auf dem System können dabei mittels:

firewall-cmd --get-active-zones

angezeigt werden. Die Änderung der Regel wird dabei nicht sofort übernommen. Stattdessen müssen die Einstellungen neu geladen werden:

firewall-cmd --reload

Der freie Browser Firefox kann (wie so ziemlich jeder Browser) Passwörter für Webseiten speichern. Dieser Passwörter werden dabei verschlüsselt in einer Datei gespeichert. Allerdings wird diese Datei automatisch entschlüsselt wenn Firefox läuft – was problematisch ist wenn andere Personen einen Zugang zum Rechner haben.

In den Einstellungen kann das Master-Passwort gesetzt werden

Möchte man hier Abhilfe schaffen, so kann man ein Master-Passwort definieren. Ohne dieses Passwort ist anschließend kein Zugriff mehr auf die Passwörter möglich. Um das Master-Passwort zu setzen müssen die Einstellungen und dort der Tab Sicherheit geöffnet werden. Sobald man dort Master-Passwort verwenden aktiviert ist, wird man nach dem gewünschten Master-Passwort gefragt. Ist das Master-Passwort gesetzt, wird man, sobald man das erste Mal in einer Sitzung auf den Passwortspeicher zugreifen möchte, nach dem Passwort gefragt. Für den Rest der Sitzung wird der Passwortspeicher schließlich offen gehalten.

Nach der Installation von Gogs läuft dieses standardmäßig über unverschlüsseltes HTTP. Um dies zu ändern muss die app.ini welche sich im Verzeichnis gogs/custom/conf/ befindet bearbeitet werden:

nano app.ini

In der Sektion Server welche für gewöhnlich so aussieht:

[server]
DOMAIN = example.org
HTTP_PORT = 3000
ROOT_URL = http://example.org:300/
DISABLE_SSH = false
SSH_PORT = 22
OFFLINE_MODE = false

müssen einige Änderungen vorgenommen werden. Die Schlüssel PROTOCOL, CERT_FILE und KEY_FILE werden hinzugefügt und die ROOT_URL angepasst. Danach sollte die Server-Sektion in etwa so aussehen:

[server]
DOMAIN = example.org
HTTP_PORT = 3000
PROTOCOL = https
ROOT_URL = https://example.org:300/
CERT_FILE = custom/https/cert.pem
KEY_FILE = custom/https/key.pem
DISABLE_SSH = false
SSH_PORT = 22
OFFLINE_MODE = false

Nachdem die Konfiguration gespeichert wurde muss das passende Zertifikat erzeugt werden:

cd custom
mkdir https
cd https
./gogs cert -ca=true -duration=8760h0m0s -host=example.org

Damit ist Gogs nach einem Neustart des Service per HTTPS und damit verschlüsselt erreichbar.

Bei KeePassX und 1Password handelt es sich um Passwortmanager mit welchem man die unterschiedlichsten Passwörter sinnvoll verwalten kann. KeePassX ist dabei eine Mac Variante des freien Passwortmanagers KeePass. Möchte man die Daten von KeePassX zu 1Password importieren, steht man vor dem Problem das die aktuelle Version 2 keine Exportfunktionen unterstützt.

1Password unter Mac OS X

Als Abhilfe kann man KeePass 2 nutzen und die Daten mit diesem in das KeePass XML Format exportieren. Der nächste Schritt besteht darin die entsprechende Konverterapplikation herunterzuladen. Diesen Konverter muss nach dem Download mit der exportieren XML-Datei gefüttert werden:

/usr/bin/perl5.16 convert_to_1p4.pl keepass2 -v /Users/seeseekey/Desktop/passwords.xml

Der Konverter erzeugt im gleichen Ordner eine 1P4_import.1pif-Datei als Ergebnis. Diese wiederum kann in 1Password importiert werden. Der direkte Aufruf der systemeigenen Perl-Installation verhindert das es zu Fehlern wie diesem kommt:

Can't locate Date/Calc.pm in @INC (@INC contains: /opt/local/lib/perl5/site_perl/5.16.3/darwin-thread-multi-2level /opt/local/lib/perl5/site_perl/5.16.3 /opt/local/lib/perl5/vendor_perl/5.16.3/darwin-thread-multi-2level /opt/local/lib/perl5/vendor_perl/5.16.3 /opt/local/lib/perl5/5.16.3/darwin-thread-multi-2level /opt/local/lib/perl5/5.16.3 /opt/local/lib/perl5/site_perl /opt/local/lib/perl5/vendor_perl .) at Utils/PIF.pm line 18.

In einem solchen Fall nutzt das System bei Eingabe des Kommandos perl eine alternative Version wie sie z.B. von MacPorts bereitgestellt wird.

Mit einer Zwei-Faktor-Authentifizierung ist ein Account im Falle eines Passwortverlustes geschützt, da ein zweiter Faktor benötigt wird. Auch GitHub unterstützt seit einiger Zeit eine solche Authentifizierung. Auf der entsprechenden Nutzerseite findet man den Punkt Enable two-factor authentification.

GitHub unterstützt zwei Varianten der Zwei-Faktor-Authentifizierung

Nachdem diese Option ausgewählt wurde, muss sich entschieden werden, ob man die Authentifizierung per SMS oder entsprechender Authentifizierungsapp, wie dem Google Authenticator, einrichten möchte.

Preis: Kostenlos
Preis: Kostenlos

Bei der Einrichtung muss ein Sicherheitscode (nach der Einrichtung der App, bzw. per SMS zugesendet) eingeben werden, um die Zwei-Faktor-Authentifizierung zu aktivieren. Danach werden Recovery-Codes von GitHub angezeigt, welche unbedingt gesichert werden sollten, da mit diesen auch bei Verlust des Authentifizierungsgerätes ein Zugriff auf das GitHub-Konto erhält.

Beim sogenannten Certificate pinning werden Zertifikate, welche für die Verschlüsselung von Webseiten und anderen Diensten genutzt werden, lokal gespeichert. Dies hat den Vorteil, das dass Zertifikat nicht einfach unbemerkt durch ein anderes Zertifikat ausgetauscht werden kann und erschwert damit das abhören von SSL/TLS-Verbindungen.

Preis: Kostenlos

Leider ist diese Funktionalität in den gängigen Browsern nicht vorhanden. Mit dem Firefox-AddOn Certificate Patrol kann man ein solches Certificate pinning im Browser nachrüsten. Zertifikate müssen dabei einmalig akzeptiert werden – anschließend wird man informiert, wenn sich das Zertifikat ändert. Damit ist es für einen Angreifer wesentlich schwieriger geworden, dem Nutzer falsche Zertifikate unterzuschieben.

Viele Entwickler würden ihre Anwendungen so entwickeln, das sie möglichst sicher sind. Das Problem ist, das den meisten Entwicklern das notwendige Wissen fehlt. Genau hier setzt das Open Web Application Security Project kurz OWASP an. In der Eigenbeschreibung des Projektes sieht es so aus:

The Open Web Application Security Project (OWASP) is a 501(c)(3) worldwide not-for-profit charitable organization focused on improving the security of software. Our mission is to make software security visible, so that individuals and organizations worldwide can make informed decisions about true software security risks.

Um das Wissen zu vermitteln, betreibt das Projekt eine Wiki unter owasp.org. In dieser Wiki sind profunde Informationen zu häufigen Sicherheitsproblemen zu finden. Auch bietet die Seite eine Reihe von Cheat Sheets welche bestimmte Probleme gezielt angehen und dem Entwickler helfen eine bestimmte Anforderung z.B. Authentifikation richtig zu implementieren.

Exploits (also ein Stück Quellcode zum Ausnutzen einer Schwachstelle) gibt es wie Sand am Meer. Manchmal möchte man sich einen solchen für eine bestimmte Anwendung anschauen und testen. An diesem Punkt kommt die Exploit Database ins Spiel, welche sich selbst so beschreibt:

The Exploit Database (EDB) – an ultimate archive of exploits and vulnerable software. A great resource for penetration testers, vulnerability researchers, and security addicts alike. Our aim is to collect exploits from submittals and mailing lists and concentrate them in one, easy to navigate database.

Zur Zeit archiviert die Exploit Database über 30.000 unterschiedliche Exploits. Die Exploits auf der Seite sind nach Kategorien sortiert und können auch durchsucht werden. Betrieben wird die Seite dabei von der Firma Offensive Security, welche unter anderem für die Entwicklung von Kali Linux verantwortlich ist.

exploit-db.com

Neben der offiziellen Seite ist die Exploit Database auch auf Twitter und Facebook zu finden.

Wenn man sich bei einem Webdienst anmeldet, so geschieht das meist mittels eines Passwortes. Das Problem an dieser Art von Authentifizierung ist das man nur mit Hilfe des Passwortes einen Account übernehmen kann. Bei der Zwei-Faktor-Authentifizierung läuft das ganze etwas anders. Hier bekommt der Nutzer zusätzlich noch ein Token oder muss sich mittels einer TAN oder seinem Fingerabdruck identifizieren.

twofactorauth.org

Viele bekannte Webdienste bieten diese Möglichkeit der Authentifizierung mittlerweile an. Meist bekommt man eine SMS mit dem Code, oder nutzt einen Generator auf seinem Smartphone. Wenn man sich informieren möchte, ob der gewünschte Webdienst eine Zwei-Faktor-Authentifizierung unterstützt, so sollte man twofactorauth.org besuchen. Auf der Webseite ist übersichtlich dargestellt welche Dienste eine solche Authentifizierung anbieten und welche es planen. Auch ist es möglich dem Dienst direkt mitzuteilen, das man sich eine Zwei-Faktor-Authentifizierung wünscht.