Datenhaufen zu IT und Elektronik.

Kategorie: IT-Security (Seite 11 von 15)

Notizen & Praxis zur IT-Sicherheit – von Responsible Disclosure bis Härtung.

Google will sicheres Internet.

In den letzten Tagen häufen sich die Meldungen über Google bezüglich verschlüsselter Webseiten. Zugegeben… Etwas überraschend für mich! So hat Google angekündigt künftig Webseiten, die verschlüsselt HTTPS ( also per SSL / TLS ) erreichbar sind. In seinem Ranking bei den Suchergebnissen zu bevorzugen. (HTTPS as a ranking signal)

Na da werden sich wohl einige CAs die Hände reiben und die SEOs wieder viel arbeiten haben. Hoffen wir mal das inzwischen alle Hoster SNI können, sonst wird diese Aktion sicher dem IPv4 Pool noch mal ordentlich etwas abziehen. BTW. Habe ich schon gesagt das es Zeit ist sich mit IPv6 zu beschäftigen?

Jetzt lese ich gerade das Google eine kleine Liste für seinen Browser Chrome führt. Eine Liste für HTTPS only Seiten. In genau diese Liste kann sich nun jeder mit seiner Webseite eintragen, der dafür gesorgt hat, dass seine Webseite nur per HTTPS zu erreichen ist. Dazu setzt Google auf HSTS (HTTP Strict Transport Security). Das Thema Stirct Transport Security habe ich ja bereits, unter anderem, vor einigen Wochen hier beschrieben: Apache und sichere SSL / TLS Verschlüsselung

Nun kann man sich also über diese Seite https://hstspreload.appspot.com/ in die Liste eintragen. Dabei erwartet Google zum Header max-age noch includeSubDomains und preload. Ist die Seite eingetragen bedankt sich Google und verweist als nächsten Schritt zur SSLlabs Testseite um ggf. vorhandene Probleme mit seiner SSL/TLS Konfiguration zu beheben.

Google tut dieses alles ganz sicher nicht aus Nächstenliebe, denn noch wird es die allgemeine Sicherheit, vor allem aber das Theme selbst, mehr in den Vordergrund ziehen. So wird sich vielleicht der eine oder andere „Entscheider“ nun doch mit einer positiven Rückmeldung zu dem Thema bei der IT melden!

E-Mail bei Login, bitte

OK ok, ein altes Thema, denn noch habe ich es gerade an der Hand und somit kommt wieder ein kleiner Beitrag dazu hier 🙂

Man kann seine Server nicht zu 100% absichern. Um im Fall der Fälle einen kleinen Anhaltspunkt zu haben, lasse ich mir vom jeweiligen Server gerne eine E-Mail schicken sobald jemand eine root-shell öffnet. Selbstverständlich ist es Schlangenöl, wenn ich es als Security Feature bezeichnen würde! Warum ich es denn noch gerne einsetzte möchte ich daher kurz erklären.

Erlangt ein Angreifer (aus welchen Gründen auch immer) erweiterte Rechte auf einem System, möchte ich ungern erst später von Kunden davon hören…. Weil Mist auf der Webseite steht oder irgendwelche Abuse-Mails bei mir aufschlagen…. Hat sich ein Angreifer erweiterte Rechte auf dem Server erarbeitet, kann er natürlich seine Aktivitäten und Anwesenheit „verschleiern“.

Verschickt das System bei jeder Eröffnung einer root shell eine E-Mail an mich, habe ich zumindest einen Anhaltspunkt. Denn wenn sich auf irgendeinem Server jemand als root anmeldet ohne das ich eine solche Anmeldung erwarten würde und dann vielleicht noch von einer IP-Adresse, welche mir komisch vorkommt, ja dann habe ich meinen Anhaltspunkt dieses zu hinterfragen!

Natürlich sollte die verschickte E-Mail nicht an den gleichen Server geschickt werden, sonst frisst der Angreifer die E-Mail auf, noch bevor ich sie lesen kann. Da die E-Mail direkt mit dem Login verschickt wird, ist sie meist schon unterwegs, noch bevor der Angreifer sie aufhalten kann. Es ist und bleibt aber Schlangenöl!!!!

Die eigentliche Befehlszeile kursiert in den gängigen Suchmaschinen. Folgendes ist also copy & paste….

Das Programm mailx sorgt dabei für den Mailversand auf der Shell. Die folgende Befehlszeile tut nichts weiter als den letzten „SSH“-Login abzugreifen, den ~Absender~ des Logins heraus zu fummeln und es mir per E-Mail zu schicken. Damit es bei jedem Start der Bash des Users Root erfolgt, landet die Zeile im Home des Roots in der Datei: /root/.bashrc

echo 'ALERT - Root Shell Access (ServerName) on:' `date` `who` | mail -s "Alert: Root Access from `who | cut -d'(' -f2 | cut -d')' -f1`" root-logins@kernel-error.com

Ich darf an der Stelle noch erwähnen, das ich meinem SSH-Server verboten habe DNS Abfragen zu tätigen. So landet in meinem Fall direkt die IP Adresse in der E-Mail und kein Hostname.

/etc/ssh/sshd_config

UseDNS no

Ein Login sorgt nun also für eine E-Mail mit folgendem Inhalt:

ALERT - Root Shell Access (dlg-srv88) on: So 3. Aug 19:28:18 CEST 2014 root pts/0 2014-08-03 19:28 (1.2.3.4)

Dieses kann nun auf gleichem Wege auf andere Benutzer ausgeweitet werden. Man könnte auch zusätzlich noch die letzten und wichtigen Logdateien anhängen. Ich denke aber es sollte nur ein Hinweis bleiben und nicht versucht werden zu einer Security Lösung ausgebaut werden, denn es greift sicher nicht in jedem Fall und es lässt sich ebenfalls aushebeln.

 

Aber ich habe doch nichts zu verbergen…

Da ist nun also das Ergebnis von eurem „Ich habe doch nichts zu verbergen“! Klasse, gut gemacht….

http://www.golem.de/news/data-mining-polizei-will-straftaten-mit-predictive-policing-verhindern-1407-107638.html

Jetzt muss du nicht mal was zu verbergen haben, jetzt reicht es, wenn man statistisch leider gerade „auffällig“ ist. Am Ende treten die Jungs euch die Türe ein, verhaften euch und führen euch in Handschellen ab. OK ok… Wird nicht passieren, Rechtsstaat usw…. Riiiiiiccchhhhtttiiiigggg

Glaubt ihr das wirklich?

Klar, wenn sich am Ende herausstellt das ihr nichts zu verbergen hattet, wird schon nichts passieren…. Dem Rest kann man ja auch später erklären das die Vorwürfe völlig haltlos waren und euch nichts nachgewiesen werden konnte. Das verstehen alle und es bleibt kein ~Nachgeschmack~… Ich übertreibe? Na warten wir mal ab, ich denke es wird noch genau so kommen. Genug Metadaten habe sie ja inzwischen.

Ich denke: „It´s time for PANIC!“ Ich habe Angst 🙁

Wir müssen unbedingt alle etwas mehr auf unsere Daten achten und vor allem etwas „nervöser“ werden wenn es um die Überwachung von egal was geht. Nicht alles sinnfrei glauben, sondern mal mit Hirn hinterfragen! Das Thema: „Ich habe doch nichts zu verbergen“ ist damit wohl hoffentlich erschlagen, oder?

Openfire: AES-256-Verschlüsselung mit JCE Unlimited Strength aktivieren​

Möchte man unter seinem Java AES mit 256 Bit nutzen, muss man die JCE Unlimited Strength Jurisdiction Policy Files von Hand installieren.

Ja, man fühlt sich schnell einige Jahre zurück versetzt, als man noch aus den USA keine große Krypto exportieren durfte/darf. Daher war es ja lange nicht möglich große Krypto in Browsern einzusetzen. Das Java Thema ist sehr ähnlich!

Die Installation ist recht einfach.

Zuerst einmal die neuen Policy Files herunterladen (für Java 7):

http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html  

Im heruntergeladenen ZIP-File finden sich zwei jar Dateien. Diese müssen nun gegen die….  na, sagen wir mal beschränkten, ausgewechselt werden. Auf einem Debian finden sich diese hier:

/usr/lib/jvm/java-7-oracle/jre/lib/security
/usr/lib/jvm/jdk1.7.0_51/jre/lib/security

Nachdem beiden Dateien getauscht wurden, sind sie auch schon aktiv für jeden neuen Java Prozess. Ich will damit sagen, wenn es für den Openfire genutzt werden soll, diesen bitte einmal durchstarten.

Clientreport:

https://xmpp.net/result.php?id=42150

Serverreport:

https://xmpp.net/result.php?id=42151

Noch Fragen? Na dann fragen 🙂

Openfire und StartSSL Zertifikate

Etwas hilflos stand ich heute vor der Meldung von Openfire, welche mit mitteilte, dass mein Zertifikat von StartSSL nicht importiert werden konnte.

Über folgenden Weg habe ich es denn noch in meinen Openfire gießen können.

1. OpenFire beenden.

2. Das Root-Zertifikat von StartSSL sowie das Class1 Zertifikat für Server ist bereits im Java Truststore von Openfire enthalten. Da ich ein Class2 Zertifikat erstellt habe, muss ich das Intermedia Zertifikat noch aufnehmen. Sonst lässt sich ja kaum eine Kette bilden.

In meiner Installation liegt mein Openfire unter /etc/. Dort findet sich auch der Trust- sowie der Keystore. Die nächsten Schritte finden also am besten direkt dort statt. Damit ich am Ende direkt mein Zertifikat und das Intermediate Zertifikat in einem Rutsch importieren kann. Werfe ich direkt beide zusammen. Domain.tld.cert ist dabei der öffentliche Teil meines Zertifikates.

$ cd /etc/openfire/security
$ wget http://www.startssl.com/certs/sub.class2.server.ca.crt
$ cat sub.class2.server.ca.crt domain.tld.cert > domain.tld.cert.tmp

3. Das eigentliche Zertifikat muss ins pkcs12 Format konvertiert werden, domain.tld.key ist dabei der private Teil meines Zertifikates. Bei dieser Aktion muss ein Kennwort erstellt werden. Das Standardkennwort des Keystores ist: „changeit“. Ich nutze dieses hier ebenfalls.

$ openssl pkcs12 -export -in domain.tld.cert.tmp -inkey domain.tld.key -out domain.tld.pkcs12 -name domain.tld

4. Als letzten Schritt kann ich nun das Zertifikat in den Keystore meines Openfires aufnehmen:

$ keytool -importkeystore -deststorepass changeit -destkeypass changeit -destkeystore /etc/openfire/security/keystore -srckeystore domain.tld.pkcs12 -srcstoretype PKCS12 -srcstorepass changeit -alias domain.tld

5. Openfire wieder starten.

Nun lässt sich bereits im Webinterface das neue Zertifikat sehen und ist nutzbar.

Noch Fragen?

Openfire: IPv6 Authentifizierung mit Remote-Server für Domain einrichten

Da fummle ich gerade mit dem Jabber / XMPP Server Openfire herum und stoße auf einen etwas nervigen Bug. Das Teil hat nämlich ein kleines Problem, wenn man als Nameserver in seinem System den localhost als IPv6 Adresse eingetragen hat.

Zur besseren Identifikation, im ErrorLog (/var/log/openfire/error.log)von Openfire finden sich dann Meldungen wie diese:

2014.06.15 22:48:35 org.jivesoftware.openfire.session.LocalOutgoingServerSession - Error authenticating domain with remote server: jabber.ccc.de
java.lang.NumberFormatException: For input string: ":1"
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
        at java.lang.Integer.parseInt(Integer.java:492)
        at java.lang.Integer.parseInt(Integer.java:527)
        at com.sun.jndi.dns.DnsClient.<init>(DnsClient.java:125)
        at com.sun.jndi.dns.Resolver.<init>(Resolver.java:61)
        at com.sun.jndi.dns.DnsContext.getResolver(DnsContext.java:570)
        at com.sun.jndi.dns.DnsContext.c_getAttributes(DnsContext.java:430)
        at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_getAttributes(ComponentDirContext.java:231)
        at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(PartialCompositeDirContext.java:139)
        at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(PartialCompositeDirContext.java:127)
        at javax.naming.directory.InitialDirContext.getAttributes(InitialDirContext.java:142)
        at org.jivesoftware.openfire.net.DNSUtil.srvLookup(DNSUtil.java:192)
        at org.jivesoftware.openfire.net.DNSUtil.resolveXMPPDomain(DNSUtil.java:124)
        at org.jivesoftware.openfire.session.LocalOutgoingServerSession.createOutgoingSession(LocalOutgoingServerSession.java:270)
        at org.jivesoftware.openfire.session.LocalOutgoingServerSession.authenticateDomain(LocalOutgoingServerSession.java:167)
        at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.sendPacket(OutgoingSessionPromise.java:261)
        at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(OutgoingSessionPromise.java:238)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)

Zum lösen muss also nur in die /etc/resolf.conf der Nameserver von ::1 auf 127.0.0.1 umgestellt werden.

Immer diese Kackbugs hinsichtlich IPv6. Hoffentlich arbeiten so langsam mal mehr mit IPv6, damit die Fehler schneller gefunden und gefixt werden. Ich hasse es an so etwas hängen zu bleiben, da ich es so unnötig finde!

Fertig…

DNSSEC fähiger Registrar

In der letzten Zeit häufen sich bei mir die Anfragen, mit welchem Registart ist zusammenarbeite. Vor allem im Hinblick auf DNSSEC und dem KSK oder besser der DS-RECORDS.

Hier kann und möchte ich gerne die SpeedPartner GmbH aus Neuss empfehlen. Hier arbeite ich gerne mit dem Herrn Metz zusammen. Es ist immer jemand erreichbar, vor allem lassen sich schnell und einfach auch etwas ungewöhnliche Dinge umsetzten. Zwar ist das Webinterface (stand 06.2014) noch nicht so weit das man darüber DS-RECORDS einwerfen kann, der Weg per E-Mail funktioniert aber in der Regel binnen Minuten / Stunden.

Es kommt ja eher selten bis nie vor, das ich hier Werbung für ein Unternehmen mache, dieses hat es aber verdient.

So long…

Webseite: http://www.speedpartner.de/

E-Mail Adresse: info@speedpartner.de

Gestohlene FTP-Zugangsdaten BSI

WOOOOHOOOOO… Ich habe auch mal so eine E-Mail bekommen 🙂


CERT-Bund Reports <noreply@reports.certbund.net> schrieb am 27.05.2014 11:31:10:

Von: CERT-Bund Reports <noreply@reports.certbund.net>
An: registry@domain.tld
Datum: 27.05.2014 11:31
Betreff: [CERT-Bund#2014052612345678] Gestohlene FTP-Zugangsdaten

Sehr geehrte Damen und Herren,

CERT-Bund hat von einer vertrauenswürdigen externen Quelle eine Liste
gestohlener FTP-Zugangsdaten für in Deutschland gehostete Server erhalten.
Die Zugangsdaten wurden im Rahmen der Analyse eines Botnetzes gefunden
und werden offenbar dazu verwendet, um in mit dem FTP-Account
verbundene Webseiten schädlichen Code einzuschleusen, welcher auf
Drive-by-Exploits verweist. Es liegen leider keine Informationen vor,
wann und wie die Zugangsdaten ausgespäht wurden.

Nachfolgend senden wir Ihnen eine Liste der Zugangsdaten für Server in
Ihrem Netzbereich. Die Passwörter wurden sanitarisiert.

Format: ASN | IP-Adresse | FTP-Login

Wir möchten Sie bitten, den Sachverhalt zu prüfen und Ihre Kunden
entsprechend zu informieren.

Bitte bestätigen Sie den Eingang dieser Benachrichtigung und
informieren Sie uns über die von Ihnen getroffenen Maßnahmen.

Liste der Zugangsdaten für Server in Ihrem Netzbereich:

 12345 | 123.123.123.123  | benutzername:IG******@ftp21.domain.tld

Mit freundlichen Grüßen
Team CERT-Bund

Bundesamt für Sicherheit in der Informationstechnik (BSI) Referat C21 –
CERT-Bund Godesberger Allee 185-189
D-53175 Bonn

————————————————————————
Dies ist eine automatisch generierte Nachricht.
Bitte beachten Sie beim Antworten die Reply-To Adresse.

TLSA-/DANE-Records manuell prüfen: So funktioniert’s mit der Shell

Zur Prüfung von TLSA RECORDS gibt es inzwischen viele lustige Tools und Webseiten im Internet. Wenn man es aber einmal selbst gemacht hat, dann wird einem klar was überhaupt passiert.

In meinem Beispiel geht es um die Prüfung des TLSA-RECORDS meines Mailservers. Dazu baue ich erst per openssl eine Verbindung zu Postfix auf und starte dann mittelst STARTTLS die gesicherte Verbindung. Dabei wird das Serverzertifikat übermittelt (Bild).

$ openssl s_client -starttls smtp -connect smtp.kernel-error.de:25

Hier kopiert man sich nun den Zertifikatsteil heraus und speichert diesen einfach in einer Textdatei zwischen (Bild). Als nächstes erstelle ich die SHA256 Checksumme über das öffentliche Zertifikat meines Postfix.

$ openssl x509 -in test.crt -outform DER | openssl sha256
(stdin)= 94c8e1bdfff4f6d3fec0c4e2f26293d78870650bfd3534e77b93cdaccb77eb95

 Als Vergleich muss nun der TLSA-RECORD herhalten. Diesen hole ich mir mit dig aus der DNS-Zone. Die 1 beutet dabei das die komplette Zertifikatskette gültig sein muss, damit dieses Zertifikat als gültig angesehen wird. Die 0 bedeutet das die Checksumme über das komplette Zertifikat erstellt wurde und die 1 bedeutet das es eine SHA256 Checksumme sein muss.

$ dig _25._tcp.smtp.kernel-error.de IN TLSA +short
1 0 1 94C8E1BDFFF4F6D3FEC0C4E2F26293D78870650BFD3534E77B93CDAC CB77EB95

Nun vergleiche ich die beiden Checksummen:

94c8e1bdfff4f6d3fec0c4e2f26293d78870650bfd3534e77b93cdaccb77eb95
94C8E1BDFFF4F6D3FEC0C4E2F26293D78870650BFD3534E77B93CDACCB77EB95

Sind sie identisch, ist alles perfekt. Möchte man nun einen TLSA RECORD eines anderen Anbieters prüfen greift man sich am besten zuerst dessen TLSA RECORD aus dem DNS. Dann sieht man welche Checksumme in welcher Art erstellt werden muss. Ebenfalls wird klar ob man die komplette Zertifikatskette prüfen muss oder nicht.

Viel Spaß!


Ich hatte es ja bereits erwähnt… Wer „einfach“ testen möchte ob sein Mailserver bzw. seine RECORDS für diesen korrekt sind, nutzt am besten posttls-finger:

# posttls-finger -t30 -T180 -c -L verbose,summary kernel-error.de
posttls-finger: initializing the client-side TLS engine                                                                                                                                                                          
posttls-finger: using DANE RR: _25._tcp.smtp.kernel-error.de IN TLSA 1 0 1 94:C8:E1:BD:FF:F4:F6:D3:FE:C0:C4:E2:F2:62:93:D7:88:70:65:0B:FD:35:34:E7:7B:93:CD:AC:CB:77:EB:95                                                       
posttls-finger: setting up TLS connection to smtp.kernel-error.de[2a02:c200:0:10:3:0:4297:1]:25                                                                                                                                  
posttls-finger: smtp.kernel-error.de[2a02:c200:0:10:3:0:4297:1]:25: TLS cipher list "aNULL:-aNULL:ALL:!EXPORT:!LOW:+RC4:@STRENGTH:!aNULL"                                                                                        
posttls-finger: smtp.kernel-error.de[2a02:c200:0:10:3:0:4297:1]:25: depth=1 verify=0 subject=/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Class 2 Primary Intermediate Server CA                      
posttls-finger: smtp.kernel-error.de[2a02:c200:0:10:3:0:4297:1]:25: depth=1 verify=0 subject=/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Class 2 Primary Intermediate Server CA                      
posttls-finger: smtp.kernel-error.de[2a02:c200:0:10:3:0:4297:1]:25: depth=0 verify=1 subject=/description=y0xkuso3gx7t8h0o/C=DE/ST=Nordrhein-Westfalen/L=Sprockh\xF6vel/O=Sebastian Van De Meer/CN=smtp.kernel-error.de/emailAddress=postmaster@kernel-error.de                                                                                                                                                                                                   
posttls-finger: smtp.kernel-error.de[2a02:c200:0:10:3:0:4297:1]:25: depth=0 matched end entity certificate sha256 digest 94:C8:E1:BD:FF:F4:F6:D3:FE:C0:C4:E2:F2:62:93:D7:88:70:65:0B:FD:35:34:E7:7B:93:CD:AC:CB:77:EB:95         
posttls-finger: smtp.kernel-error.de[2a02:c200:0:10:3:0:4297:1]:25: subject_CN=smtp.kernel-error.de, issuer_CN=StartCom Class 2 Primary Intermediate Server CA, fingerprint=E1:92:93:D4:CA:E9:5D:44:B5:CC:A4:15:1F:12:A6:E0:B5:C2:97:56, pkey_fingerprint=E9:84:8E:51:47:99:90:53:0B:2C:2E:1E:70:6E:DE:CA:A4:65:8A:C5                                                                                                                                             
posttls-finger: Verified TLS connection established to smtp.kernel-error.de[2a02:c200:0:10:3:0:4297:1]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)

« Ältere Beiträge Neuere Beiträge »

© 2026 -=Kernel-Error=-RSS

Theme von Anders NorénHoch ↑