Store passwords like a boss #2

Als Programmierer von Webanwendungen, die Ihre Benutzer selbst verwalten, kommt man um das Thema Sicherheit nicht herum – so auch ich als Mitentwickler von Icinga Web 2.

Aus diesem Anlass habe ich recherchiert, wie Passwörter von Benutzern sinnvoll gespeichert werden können und mein neu gewonnenes Wissen geteilt.

Darüber hinaus habe ich vorgeschlagen, Icinga Web 2 dementsprechend zu erweitern. Eric hat diesen Vorschlag begutachtet und mich auf eine Alternative aufmerksam gemacht, nämlich…

password_hash()

PHP bietet seit Version 5.5 u. a. diese Funktion, um Passwörter zu verschlüsseln. Diese ersetzt meine selbst geschriebene Funktion aus dem Vorgänger-Blogpost vollständig:

$encryptedNewPassword = password_hash($newPassword, PASSWORD_DEFAULT);

Der Rückgabe-Wert kann direkt in einer Datenbank gespeichert werden – so einfach ist das.

Der zweite Parameter der Funktion bestimmt den Verschlüsselungs-Algorithmus. Damit kann man diesen zwar frei wählen, aber ich empfehle, den Standard vorzuziehen, denn dieser ändert sich (laut Doku) mit neueren PHP-Versionen zu Gunsten der Sicherheit. Damit bleiben zumindest die neuen/geänderten Passwörter aktuell was die Sicherheit angeht.

password_verify()

Wie der Name schon andeutet, überprüft diese Funktion ein vom Benutzer eingegebenes Passwort auf Übereinstimmung mit einem verschlüsselten Passwort:

$ok = password_verify($enteredPassword, $encryptedPassword);
if ($ok) {
    ...

password_needs_rehash()

Wie bereits erläutert: mit einem neuen Standard-Verschlüsselungs-Algorithmus werden automatisch alle neu verschlüsselten Passwörter sicherer. Aber was ist mit den bereits bestehenden?

Da bestehende Passwörter (aus gutem Grund!) nur verschlüsselt vorliegen, können sie nicht alle “in einem Abwasch” migriert werden. Die einzige Gelegenheit ist die Anmeldung eines Benutzers, die das Klartext-Passwort erfordert. Und als wäre die Funktion für diese Gelegenheit geschrieben…

if ($ok) {
    $outdated = password_needs_rehash($encryptedPassword, PASSWORD_DEFAULT);
    if ($outdated) {
        $encryptedPassword = password_hash($enteredPassword, PASSWORD_DEFAULT);
    }
    ...

Fazit

Der IT-Branche wird nicht umsonst nachgesagt, dass sie eine “permanente Innovation” vollbringe. Umso wichtiger ist es, aus Gründen der Datensicherheit, mit der dunklen Seite der Macht mitzuhalten.

Denn die sind böse, sehr böse…

Alexander Klimov

Autor: Alexander Klimov

Alexander hat Ende 2013 mit einem Praktikum bei NETWAYS gestartet. Als leidenschaftlicher Programmierer und begeisterter Anhänger der Idee freier Software, hat er sich dabei innerhalb kürzester Zeit in die Herzen seiner Kollegen im Development geschlichen. Wäre nicht ausgerechnet Gandhi sein Vorbild, würde er von dort aus daran arbeiten, seinen geheimen Plan, erst die Abteilung und dann die Weltherrschaft an sich zu reißen, zu realisieren - tut er aber nicht. Stattdessen beschreitet er mit der Arbeit an Icinga Web 2 und seiner Ausbildung bei uns friedliche Wege.

Mein Praktikum bei Netways – Thorben

//Im Namen von Thorben

Erstmal vorweg, ich bin Thorben, 16 Jahre alt und besuche zur zeit das Europa Gymnasium in Gommern (Sachsen-Anhalt, nähe Magdeburg) in der 10. Klasse. Wir hatten die Ankündigung zum Praktikum bekommen und ich wollte irgendwas in Richtung IT machen. Da war es natürlich super, dass ich Ronny Biering kenne, der hier bei Netways arbeitet, über welchem ich dann auch den Kontakt und das Praktikum mit und bei Netways bekam. Nun sollte meine Praktikumsstelle 2 Wochen lang bei Netways sein, was mich echt freute.

Es fing klassisch mit dem Vorstellen jedes Mitarbeiters dieser Firma an und auch mit der Einweisung bei der Kaffeemaschine (wichtigster Mitarbeiter) :). Ich lernte Tim kennen, welcher fortlaufend, neben Sebastian, mein Betreuer des Praktikums sein sollte. Er erklärte mir grob Dinge über die 2 Wochen hier bei Netways und zeigte mir auch diverse Bereiche, wie auch das Rechenzentrum. Meine erste Aufgabe war testweise einen Raspberry PI zum laufen zu bringen und ihm im Anschluss mit dem Netways Dashboard zu versehen. Das ganze wiederholte ich 3 mal, bis ich dann auch schneller als es Tim lieb war, fertig wurde.
Markus Frosch hatte noch einen Vortrag über Passwörter im allgemeinen und über die Benutzung mit Enpass gehalten. Es war recht informativ, sodass ich dieses Programm auch zuhause verwenden werde. Danke dafür.
Danach sollte ich WordPress mit einer Mysql-Datenbank einrichten, womit ich jetzt auch erfolgreich einen eigenen Blog habe. Als auch dies fertig war, „durfte“ ich dann auch die Netzwerk Anschlüsse protokollieren und dann im Anschluss auch die Notebooks der neu ankommenden Praktikanten mit CentOS aufsetzen. Zwischendrin war ich auch im Lager und habe den Bereich mit den Lan Kabeln aufgeräumt und fein säuberlich nach Farbe sortiert. Zur zeit beschäftige ich mich neben dem Blog hier mit dem erledigen einiger Aufgaben, wie einen eigenen Passwort Generator oder auch die Buchstabenhäufigkeit per Bash zu ermitteln. Zum Abschluss bekam ich die Aufgabe, eine html-Seite mit eingebundenen Bildern zu erstellen.

Damit sind meine 2 Wochen Praktikum hier bei Netways auch fast um und ich kann getrost sagen, es war kein Fehler dieses hier zu absolvieren. Ich bekam einen für mich recht großen Einblick in die Shell Oberfläche, da ich nur 2 Jahre mit Delphi zu tun hatte. Im Gegensatz zu Delphi versteh ich jetzt wenigstens mal ein paar Dinge im Bereich der Befehle, womit es im Endeffekt auch Spaß macht die Shell zu benutzen. Auch die Firma an sich ist für mich eine positive Erfahrung in Hinsicht der Hilfe und auch dem Zusammenhalt unter den Mitarbeitern. Und auch Tim, welcher immer ein Ohr für meine Fragen offen hat.

Netways stellt sich vor – Stefan Schneider

Name: Stefan Schneider

Alter: 33

Position bei NETWAYS: Event Manager

Mein Name ist Stefan Schneider. Ich bin 33 Jahre alt, bin verheiratet und habe zwei Kinder.

In der Zeit vor NETWAYS habe ich zuerst eine kaufmännische Ausbildung bei BMW und anschließend ein Bachelor-Studium im Bereich Business Administration and Economics absolviert.
Gearbeitet habe ich in den letzten vier Jahren in einer Nürnberger Agentur für mobile Außenwerbung und habe dort als Projektmanager diverse Werbeprojekte auf die Straße gebracht.

Jetzt freue ich mich sehr bei NETWAYS angekommen zu sein. Die Kollegen haben mich super aufgenommen und das Arbeitsumfeld ist spitze.
Meine Aufgaben liegen im Eventbereich. Ich werde der Ansprechpartner für alle Fragen rund um die Organisation der Schulungen und Konferenzen sein.

Privat bin ich eher sportlich unterwegs. Vom Joggen über Slaklining bis hin zum Skateboarden ist alles dabei. Außerdem halten mich meine zwei Kids immer ordentlich auf Trab. Als Ausgleich zu der ganzen Rennerei liebe ich es kleine Filmchen zu schneiden, die sich die Family dann reinziehen darf / muss!!
Bei allem ist stets Musik dabei – momentan hat es mir da besonders der bayrische Hip-Hop angetan. Wer Bedarf hat, kann sich jederzeit bei mir melden.

Stefan Schneider

Autor: Stefan Schneider

Vor seiner Zeit bei Netways hat Stefan als Projektmanager in einer Nürnberger Agentur dabei geholfen Werbeprojekte auf die Straße zu bringen. Seit Juni 2017 ist er nun stolzes Mitglied der Netways-Crew. Hier ist er Ansprechpartner für alle Fragen rund um die Organisation unserer Schulungen und Konferenzen. Die Freizeit vertreibt sich Stefan am liebsten mit Sport. Vom Joggen über Slaklining bis hin zum PennyBoard fahren ist er für alles zu haben.

Request Tracker 4.4 Security Update and UTF8 issues with Perl’s DBD::Mysql 4.042

Last week, Best Practical announced that there are critical security fixes available for Request Tracker. We’ve therefore immediately pulled the patches from 4.4.2rc2 into our test stages and rolled them out in production.

 

Update == Broken Umlauts

One thing we did notice too late: German umlauts were broken on new ticket creation. Text was simply cut off and rendered subjects and ticket body fairly unreadable.

Encoding issues are not nice, and hard to track down. We rolled back the security fix upgrade, and hoped it would simply fix the issue. It did not, even our production version 4.4.1 now led into this error.

Our first idea was that our Docker image build somehow changes the locale, but that would have at least rendered “strange” text, not entirely cut off. Same goes for the Apache webserver encoding. We’ve then started comparing the database schema, but was not touched in these regards too.

 

DBD::Mysql UTF8 Encoding Changes

During our research we learned that there is a patch available which avoids Perl’s DBD::mysql in version 4.042. The description says something about changed behaviour with utf8 encoding. Moving from RT to DBD::Mysql’s Changelog there is a clear indication that they’ve fixed a long standing bug with utf8 encoding, but that probably renders all other workarounds in RT and other applications unusable.

2016-12-12 Patrick Galbraith, Michiel Beijen, DBI/DBD community (4.041_1)
* Unicode fixes: when using mysql_enable_utf8 or mysql_enable_utf8mb4,
previous versions of DBD::mysql did not properly encode input statements
to UTF-8 and retrieved columns were always UTF-8 decoded regardless of the
column charset.
Fix by Pali Rohár.
Reported and feedback on fix by Marc Lehmann
(https://rt.cpan.org/Public/Bug/Display.html?id=87428)
Also, the UTF-8 flag was not set for decoded data:
(https://rt.cpan.org/Public/Bug/Display.html?id=53130)

 

Solution

Our build system for the RT container pulls in all required Perl dependencies by a cpanfile configuration. Instead of always pulling the latest version for DBD::Mysql, we’ve now pinned it to the last known working version 4.0.41.

 # MySQL
-requires 'DBD::mysql', '2.1018';
+# Avoid bug with utf8 encoding: https://issues.bestpractical.com/Ticket/Display.html?id=32670
+requires 'DBD::mysql', '== 4.041';

Voilá, NETWAYS and Icinga RT production instances fixed.

 

Conclusion

RT 4.4.2 will fix that by explicitly avoiding the DBD::Mysql version in its dependency checks, but older installations may suffer from that problem in local source builds. Keep that in mind when updating your production instances. Hopefully a proper fix can be found to allow a smooth upgrade to newer library dependencies.

If you need assistance with building your own RT setup, or having trouble fixing this exact issue, just contact us 🙂

Michael Friedrich

Autor: Michael Friedrich

Michael ist seit vielen Jahren Icinga Developer und hat sich Ende 2012 in das Abenteuer NETWAYS gewagt. Ein Umzug von Wien nach Nürnberg mit der Vorliebe, österreichische Köstlichkeiten zu importieren - so mancher Kollege verzweifelt an den süchtig machenden Dragee-Keksi. Oder schlicht am österreichischen Dialekt der gerne mit Thomas im Büro intensiviert wird ("Jo eh."). Wenn sich Michael mal nicht im Monitoring-Portal helfend meldet, arbeitet er am nächsten LEGO-Projekt oder geniesst das schöne Nürnberg. Oder - at an Icinga Camp near you 😉

Ihre Server schwitzen? AKCP sensorProbe 2+

AKCP-SP2plus

Ich gebe zu: Die AKCP sensorProbe 2+ wird Ihre Server nicht vom Schwitzen abhalten. Dafür vielleicht Ihre KollegInnen, die genannte Server beaufsichtigen und für ihre Sicherheit zuständig sind. Durch das Thermal Mapping kann nämlich jetzt noch viel gezielter überwacht werden (siehe Skizze weiter unten). Aber von vorne: In unserem Online-Store spielen die Umweltmonitore von AKCP schon immer eine bedeutende Rolle. Versehen mit einer exzellenten Qualität, begeistert diese Monitoringhardware unsere Kunden schon sehr lange Jahre.

Die AKCP sensorProbe2 wurde komplett überarbeitet und nennt ihre Nachfolgerin nun sensorProbe2+. Alle bekannten Features blieben erhalten und auch die Kompatibilität mit allen Sensoren der sensorProbe-Reihe bleibt gegeben.

Jetzt kann auch endlich ein GSM-Modem direkt integriert werden, wobei dies bei der Erstbestellung der AKCP sensorProbe2+ zwingend mit angegeben werden muss. Ein Nachrüsten ist leider nicht möglich. Außerdem sind bei allen Geräten der AKCP sensorProbe2+– Reihe die VPN Funktion und ein Upgrade auf SNMPv3 optional bestellbar. Neuheit: Bei der E-Mail-Alarmierung wird nun auf TLS-Verschlüsselung gesetzt, die es bislang nur bei den securityProbes gab.

Zusätzlich zu den bekannten RJ45-Sensoren, von denen bei der AKCP SP2+ insgesamt 4 angeschlossen werden können (Vorgängerin SP2 konnte nur 2 verarbeiten), können auch bis zu 20 potentialfreie Kontakte genutzt werden. Für den Anschluss der potentialfreien Kontakte ist sowohl der Kauf des Sensors: Inputs für potentialfreie Kontakte (5 potentialfreie Kontakte) als auch eine Lizenz, die jeweils für 5 potentialfreie Kontakte gilt, erforderlich.

Technische Daten AKCP sensorProbe2+

  • Anschlüsse: 4 RJ45 Ports, für sämtliche AKCP-Sensoren der sensorProbe-Reihe, bis zu 20 potentialfreie Kontakte (über speziellen Sensor + Lizenz)
  • Maße/Gewicht: (ca. BxHxT in cm) 11,5 x 6,35 x 3,2/ 0,3 kg
  • GSM-Modem: optional, inklusive externer Antenne
  • sensorProbe2+ Expansion: mit Expansion Unit für bis zu 100 Sensoren
  • Stromversorgung: 12 VDC, 1 Amp; inkl Modem: 12 VDC, 2 Amp
  • Arbeitsumgebung: Temperatur: -35 bis +80 C / Luftfeuchte: 20 bis 80 % (ohne Kondensation)

Intelligente Erweiterung: AKCP sensorProbe2+ Expansion

Sie wollen mehr als 4 Sensoren anschließen? Gerne doch! Bei der AKCP sensorProbe2+ Expansion kann einer der 4 RJ45 Ports dazu genutzt werden, die von der AKCP securityProbe Reihe bekannten Expansion Units anzuschließen. Somit kann eine Erweiterung um 8 Ports und/oder die Erweiterung um 16 potentialfreie Kontakte vollzogen werden. Im Daisy Chain Verfahren können somit bis zu 100 Sensoren angeschlossen werden. Ausnahme: Die o.g. VPN Funktion wurde zusätzlich eThermal Map Sensoringekauft. Damit verringert sich die Anzahl der Sensoren auf 50.

Thermal Mapping: Noch genauere Überwachung Ihrer Serverschränke möglich

Kommen wir nochmal auf das Thermal Mapping zu sprechen: Die genauere Auswertung und Erfassung thermischer Bedingungen eines Serverracks wird nun durch den neuen Thermal Map Sensor ermöglicht. Dabei wird der Sensor wie im Schaubild rechts zu sehen, an unterschiedlichen Stellen des Racks positioniert. So können “Hot-Spots” leicht lokalisiert werden, was ein gezieltes Eingreifen schneller ermöglicht. Hier kann durch effizientes Kühlen an den besonders warmen und kühlen Stellen, bares Geld gespart werden. Der Thermal Map Sensor kann separat gekauft werden, es gibt aber auch ein Bundle in Form der AKCP sensorProbe2+ inkl. Thermal Map Sensor (Temperatur + Luftfeuchte).

 

Also: Auf in den NETWAYS Online Store und noch heute die AKCP sensorProbe 2+ sichern!

Isabel Salampasidis

Autor: Isabel Salampasidis

Isabel ist seit Februar zurück bei NETWAYS. Bis 2009 war sie unsere Office Managerin und verstärkt nun ab sofort das Sales Team. Hier ist sie für alle Belange des Online Stores verantwortlich. Der Ein- und Verkauf der Monitoring Hardware sowie die Weiterentwicklung des Shops und seines Portfolios wird sie mit ihrem bekannten Tatendrang gehörig vorantreiben. Privat verbringt die halbgriechische Ruhrpott-Fränkin sehr gerne so viel Zeit wie möglich mit ihren bald 4-jährigen Patensöhnen oder schreit sich für den Club - als stolze Dauerkartenbesitzerin! - die Seele aus dem Leib.