Zeit für Artikelbashing on How to Forge

Kleiner Disclaimer, es geht nicht um den Inhalt, sondern rein um die Darstellung.

Dieser Beitrag:

https://www.howtoforge.com/tutorial/encrypt-usb-drive-on-ubuntu/

von dem Ihr eine Variante hier findet: Mit LUKS einen USB Stick verschlüsseln mit der Fortsetzung Wie man besser USB Sticks verschlüsselt mit Linux und Double Layer Encryption mit Veracrypt. Letzterer Link beantwortet dann auch spontan die Frage des (bislang) einzigen Kommentators des HtF Artikels, wie man das Windows-kompatibel bekommt. Kurzform: LUKS ist Open Source und es gibt für Windows einen Luks mounter, ergo ist es bereits kompatibel, wenn man als Filesystem nicht EXTx benutzt, sondern NTFS. Wie sinnvoll das ist, laß ich mal im Raum stehen.

Problem

So, How-To-Forge … Wer sich den Artikel ansieht muß zwangweise drüber stolpern: Der hat die Bilder echt mit dem Handy vom Monitor abfotografiert 😀

Grund: Er wollte zeigen, wie die Aufklappmenüs aussehen, wenn man mit der Maus arbeitet, konnte es aber nicht, weil SEIN Desktop das Auslösen per STRG+DRUCK verhindert, wenn das aufgeklappt ist.

Lösung

Den Screenshot per Konsole zeitverzögert auslösen.

so macht mans richtigAlso einfach eine Konsole öffnen und folgenden Befehl eintippen:

gnome-screenshot -p -w -d 5

Das gibt Euch 5 Sekunden Zeit, das Menü auszulösen und den Zeiger in Position zu bringen. Die Zeit kann beliebig angepaßt werden.

Alternative

Macht mit SimpleScreenRecord einfach ein Video und extrahiert das Bild dann da raus 😉

Kommentar

How-To-Forge Monetarisierung an Hand von Links gezeigt

Von einem How-To-Forge Autor hätte ich mehr erwartet, als ein wackliges Handyfoto. How-To-Forge stand mal für eine Adminseite, auf der Profis gezeigt haben, wie es geht. Heute steht das für : Ich verkauf Euch an Google+ Facebook und Konsorten. (Tip: Schaut nur nicht in die Noscript Liste des Grauens rein )

Irgendwie fühle ich mich an die Youtube-Videos errinnert, wo Kinder anderen Kindern zeigen wollen wie es geht und dann mit dem  Satz „Heute zeige ich Euch mal wie..“  anfangen und komplett triviale Sachen verkacken.. Das bringt einen direkt zur Debatte um den CoC, Linus und seine Auszeit und wie Leute die Codequalität unwichtiger einstufen, als den Umgang mit „in Ihren Fähigkeiten am anderen Ende der Kette gehenden Personen“.

Wenn es einer sanft nicht versteht, muß man ihn auch mal anbrüllen dürfen, damit er kapiert, daß es Scheisse war. Die Alternative ist nämlich noch schlimmer: Kick ohne Begründung. Dabei lernt man nämlich nichts aus seinen Fehlern, fühlt sich ungerecht behandelt und verbessert sich nicht.

 

 

How-To-Forge : NoScriptversion .. urgs..

Leider, um den Bogen zurück zu HtF zu schlagen, konnte ich ohne die Werbebeacons, Googletracker, Facebookbuttons zu aktivieren, dort keinen passenden Kommentar zu der Qualität abgeben. Ansonsten wären die Bilder da nämlich jetzt schon weg, ein Ego geknickt, aber ein Mensch auf den richtigen Weg gebracht 😀

Kleines Update:

TOR ist ja unser Freund, also habe ich da mal das Tracking umgangen 🙂

Klickt mal auf die Bilder, da wird einem übel 🙁

 

Alle Tracken einen wegen Werbung, die man nicht will, für Produkte, die man nicht braucht. Alles im Namen des heiligen Commerzius.

Es gibt Hoffnung

Auch auf How-To-Forge gibt es noch Hoffnung, daß alles besser wird 🙂

Diesen Artikel fand ich jetzt schon viel informativer, als den über den USB Stick:

https://www.howtoforge.com/tutorial/passwordless-encryption-of-linux-root-partition/

Das werde ich mir für Fedora auch mal ansehen, ist natürlich obercoolio wenn Du statt ein Passwort einzutippen, bei dem man Dich beobachten kann, einen USB Stick einsteckst. Dabei kann man einen auch beobachten, seinen Schluß ziehen, den Einen dann um den USB Stick und das Laptop erleichtern und schön auf alles zugreifen.

Nein, das ist leider keine Fantasie, so was passiert laufend. ABER, wenn man sich einen RFID unter die Haut implantiert und als menschlicher Mobilfunkmast durch die Gegend läuft (ja, natürlich ist das übertrieben), dann sieht wenigstens keiner wie das Laptop aufgeht, schlitzt einem nicht die Hand auf beim Diebstahl und es könnte trotzdem mit der automatischen Entschlüsselung klappen.

Man muß immer noch einen kleinen Stecker im USB Port haben, weil RFIDs können nur die wenigstens Laptops lesen (afaik gar keine), aber den halten Angreifer dann wenigstens genau für so einen USB-KEY-Dongle, klauen den mit, stellen fest, daß es doch nicht geht und formatieren dann die Platte ohne an den Finger und die Daten gekommen zu sein. Das wäre dann ein Erfolg 😀

Fiktiver Grenzübertritt in die USA

Jetzt stellen wir uns mal ganz blöd an die US-Einreise-Schlange am New Yorker Flughafen, haben ein Laptop, einen RFID-zu-USB-Stick und einen Finger dabei. Der Einreisebeamte sieht das Laptop, geht damit weg, kommt nach 30 Minuten wieder und fragt nach dem Passwort. Man gibt es ihm nicht. Der Mann schleift einen in einen Raum, setzt einen vor das Laptop und sagt „mach auf“. Man sagt: „nö“.

Der Typ schaltet das Laptop ein, das vorher nicht wollte und ohhhhhhhh…. es geht… Ein Wunder! Alle reiben sich verdutzt die Augen! Der Typ im Nebenraum an der Kamera, der als Backup für seinen Kollegen mit Knarre an der Hüfte bereitsteht, traut seinen Augen nicht und ruft das SEK, weil das ja ein Laptop von einem Terroristen oder anderem Schwerkriminellen sein muß. 1 Minute später steht Ihr auf der Fahnungsliste der meistgesuchten Verbrecher, damit Sie das, was dann folgt, auch begründen können 🙂 Naja, so oder so ähnlich 😀

Glaubt Ihr nicht?

https://www.theatlantic.com/technology/archive/2016/05/iphone-fingerprint-search-warrant/480861/

Ist natürlich nicht ganz so wie in meiner kleinen Fanatasie, aber die sollte ja auch nur das Problem verdeutlichen. Kurzfassung: Frau + Iphone + Gerichtsbeschluß, daß Sie Ihr IPhone per Fingerprint entsperrt.

Problem: Man muß sich in einem Rechtsstaat nicht selbst belasten. Wenn ich gezwungen werde, Beweise herzuschaffen, welche die Ankläger gegen mich benutzen können, ist das eine Selbstbelastung und die darf der Staat nicht durchsetzen. Der Staat/Ankläger muß mir ein Verbrechen / Tat beweisen, nicht ich.

Wenn ich also mit einem RFID als Fingerabdruckersatz in der Hand durch die Gegend laufen und durch Handauflegen mein Handy/Laptop entsperren kann, dann wäre das eine Selbstbelastung, wenn der Staat mich genau dazu zwingen würde.

Jetzt mal rein praktisch: Securityrules für Dummies

1. Ein Passwort, daß ich durch die Gegend schleppe, ist kein Passwort

Es entfallen alle Arten von Biometrie.
Es entfallen alle Arten von Geräten wie RFID, USB-Sticks etc.

Kann man alles nachbilden und von außen aufzeichnen. Das kann ich nicht verhindern.
Man kann im Falle der Biometrie den Organismus auch passive zur Authentifizierung nutzen, da ja nur die Anwesenheit des Merkmals nötig ist, nicht die Motivation des Merkmalsträgers.

2. eine Zwei/Drei-Faktor-Authentifizierung wäre hilfreich

Wenn ich eine davon preisgeben muß ( meine Hand mit dem RFID drin z.b. ) dann, bleibt noch min. eine andere Information zum Schutz übrig.

3. „Nur was im Hirn gespeichert ist, ist sicher.“

Problem: Ich muß es irgendwann eingeben. Dabei könnte ich …

… optisch beobachtet werden : kann man verhindern
… digital abgehört werden : kann man verhindern
… ich könnte es vergessen : kann man auch verhindern.
… ich könnte gezwungen werden es preiszugeben: kann man nicht immer verhindern.

Ich könnte lügen. Der Angreifer kann es nur prüfen, indem er es eingibt. Wenn es nicht stimmt, dann droht mir was, ok, aber DAS SZENARIO kann man mit einer Partition mit Fakedaten verhindern, die mit dem falschen Passwort geöffnet werden kann. Das kann der Angreifer nicht mehr so ohne weiteres prüfen.

Da kommt TrueCrypt ins Spiel. Das hatte extra Hidden Volumes im Einsatz, welche die echten Daten hatten und normale Partitionen, falls man mal gezwungen wird, etwas preiszugeben.

Die Option fällt natürlich weg, wenn man den richtigen Key per RFID aussendet. Könnte schwierig werden, das per RFID kontrollierbar für den Anwender zu machen. Ich halte es ja eh für eine blöde Idee 🙂

 

Sicherheitsabend bei der LUG BS

„Guten Abend meine sehr verehrten Damen und Herren,
ich darf Sie heute zum IT-Sicherheitsabend der LUG Braunschweig im Haus der Talente begrüßen.“

So wird es nächsten Mittwoch, ab 18 Uhr im Haus der Talente garantiert nicht klingen, wenn wir die Besucher zu unserem IT-Sicherheitsabend 2018 begrüßen werden.

Im Programm haben wir u.a. Vorträge zu folgenden Themen:

  • „TLS – Was kann da schon schiefgehen?“
  • „Firefox absichern“
  • „Du und Dein Passwort – Wieso Passwörter lang sein müssen“
  • „Unterschiede von Windows und LINUX am Beispiel der Datenausleitung“

Ich würd mich natürlich freuen, wenn Ihr auch kommen würdet.

Datum: 26.9. 2018 ab 18 Uhr

Ort der Veranstaltung : Nachbarschaftszentrum / Haus der Talente, Elbestr. 45.  (Tram 3, Haltestelle: Saalestr.)

 

Redhat patcht 6 Monate nach Fedora

Wer heute die Patchnotes der CERTs verfolgt hat, wird dort eine Warnung für BASH finden, die vom Redhat Security Team stammt.

Betroffene Software:

  Bash
  

Betroffene Plattformen:

  Red Hat Enterprise Linux Desktop 6
  Red Hat Enterprise Linux HPC Node 6
  Red Hat Enterprise Linux Server 6
  Red Hat Enterprise Linux Workstation 6
  
Mehrere Schwachstellen in GNU Bash ermöglichen einem lokalen, nicht
authentisierten Angreifer die Ausführung beliebigen Programmcodes, auch mit
Administratorrechten, sowie das Umgehen von Sicherheitsvorkehrungen u.a. mit
der Folge eines Denial-of-Service (DoS)-Zustandes.

Red Hat stellt für die Red Hat Enterprise Linux 6 Produkte Server, Desktop,
Workstation und HPC Node Sicherheitsupdates bereit.

Patch:

  Red Hat Security Advisory RHSA-2017:0725

  <http://rhn.redhat.com/errata/RHSA-2017-0725.html>

Da es sich hier um eine aus meiner Sicht problematische Sicherheitslücke handelt, ist es unverständlich, wieso RedHat 6 Monate gewartet hat. Fedora, daß ja im Prinzip vom selben Team mit betreut wird, hatte den Patch bereits im September 2016 eingepflegt:

* Fr Sep 30 2016 Siteshwar Vashisht <svashisht@redhat.com> - 4.3.42-7
- CVE-2016-7543: Fix for arbitrary code execution via SHELLOPTS+PS4 variables
  Resolves: #1379634

* Mi Sep 21 2016 David Kaspar [Dee'Kej] <dkaspar@redhat.com> - 4.3.42-6
- CVE-2016-0634 - Fix for arbitrary code execution via malicious hostname
  Resolves: #1377614

Für mich erschreckend daran, daß die Lücke auch nur als Moderate geführt wird, obwohl man mit Hilfe eines DHCP Servers Code auf einem Computer ausführen kann. Einen Rouge DHCP Server in ein Netz zu bringen ist nachdem man einen Computer übernommen hat, nicht mehr so schwer. Da die meisten Netze via DHCP gemanaged werden, reagieren natürlich auch praktische alle Rechner im Netz auf so einen Angriff. Um so mehr ist es unverständlich, wie es sechs Monate gedauert hat, bis der Patch endlich erstellt wurde.

Und dabei hatte ich vor, die Linux Distributionen für Ihre zügigen Updates zu loben, was zumindest bei Fedora stimmt.

Ein MCP namens SystemD

Bunte Linien kreisen vor meinen Augen und bilden bunte Muster. Die Augen schmerzen. Der Kopf schmerzt und auch das Gehirn hat Schaden genommen. Die Welt ist dunkel, aber bunt.  Ich öffne die Augen. Ein rötlich strahlender Wächter stößt mich mit einer Energielanze an: „Aufstehen, Programm!“ Er will, daß ich mit ihm komme. Wir beschreiten Wege aus Energie… bunter Energie, seltsam neonfarbend und doch schwarz, wie die Nacht. Unterwegs treffen wir andere „Programme“ mit Ihren „Wächtern“. Bald stehe ich vor einem Kopf aus Licht: Der MCP, es gibt ihn wirklich!!!!!!

Verstört wache ich auf. Ein Computeradminalptraum, mitten am Tag, vermutlich am Keyboard eingenickt. Aber was könnte mir so einen Schrecken eingejagt haben, daß ich davon einen Tron .. ähm… traum hatte ?

Es fällt mir wieder ein, ich war grade dabei den Beitrag „Revenge of MariaDB“ Part II zu schreiben. Ja, MariaDB, was war doch gleich … achja.. ging mal wieder nicht nach dem Wechsel von F23 auf F24. Einer unserer Datenbankserver  macht merkwürdige Dinge. Die Webanwendung produzierte sporadisch „Kann nicht in die Datenbank verbinden“ Fehlermeldungen und brachte damit die QA vom Kunden an den Rand des Nervenzusammenbruchs.

Die Analyse geschaltete sich schwierig, weil die Admins immer erst nach einem Vorfall gerufen wurden, aber da ging es wieder. Erst eine zeitnahe Analyse des Netzwerkverkehrs bracht dann den ersten Hinweis: „Can’t create a new Thread. If you have enough free memory, check if … “

Damit konnte man etwas anfangen, ein Blick in eine spezielle Überwachungsdatei brachte dann den Hinweis, daß statt 40.000 Datenbankprozessen, nur wenige Hundert liefen. Also half nur ein Testlauf, mit einer Software, die Verbindungen in die Datenbank aufbaut und offen hält. Sowas kann man schnell in PHP, Perl oder Java schreiben:

import ordb.*;

public class Test {

    public static void main(String[] args) {

        Httpd[] liste = new Httpd[100000];
        for(int i=0;i< Integer.parseInt( args[0] );i++) {
            System.out.println("i="+i);
            liste[i] = new Httpd();
        }
        try {
            Thread.sleep(30000);
        } catch(Exception e) {

            e.printStackTrace();
            System.out.println(e);
        }

    }

}

In einer zweiten Konsole, kann man dann den Datenbankserver überwachen :

strace -e send,read,write -s 1024 -f -p `pidof mysqld`

Damit hat man alle Datenbankserverinstanzen im Blick, was die so Lesen und Schreiben und tatsächlich bestätigte dies den Anfangsverdacht, daß der Datenbankserver nicht genug Prozesse spawnen kann. Er setzte bei 512 Prozessen aus, viel zu wenig für unsere Anwendung.

Der schwierige Teil : Limits prüfen

Als erstes denkt man natürlich, daß sich bei den Limits aus Systemd und die Limits : The Revenge of Mariadb etwas geändert hätte, hatte es aber nicht. Wenn man das OS updatet können aber noch ganz andere Dinge passieren, also muß man hier nach „neuen“ Limits suchen.  Um überhaupt die Limits eines Prozesses Live einsehen zu können, muß man ins /proc/ eintauchen:  cat /proc/`pidof mysqld`/limits

Das kann dann so aussehen:

Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max file size             unlimited            unlimited            bytes     
Max data size             unlimited            unlimited            bytes     
Max stack size            unlimited            unlimited            bytes     
Max core file size        unlimited            unlimited            bytes     
Max resident set          unlimited            unlimited            bytes     
Max processes             unlimited            unlimited            processes 
Max open files            65536                65536                files     
Max locked memory         65536                65536                bytes     
Max address space         unlimited            unlimited            bytes     
Max file locks            unlimited            unlimited            locks     
Max pending signals       32195                32195                signals   
Max msgqueue size         819200               819200               bytes     
Max nice priority         0                    0                    
Max realtime priority     0                    0                    
Max realtime timeout      unlimited            unlimited            us

Dummerweise sagt dies genau, was man nicht hören will: Alles ok, es gibt keine Limits bei den Prozessen.

Und jetzt steht man da, wo zum Geier kommt dieses 512 Prozesse Limit her?

Es gibt eine Datei namens:  /etc/security/limits.conf

In der könnte man Limits für User eintragen, was aber nicht der Fall war. Außerdem wäre das in der Auflistung genau dieser Limits aufgefallen. Wo kommt dann das Limit her ?

An der Stelle muß man dann praktisch zu Denken anfangen, weil Docs lesen bringt einen fast nicht weiter, weil man gar nicht damit rechnet, daß es noch mehr Limitmöglichkeiten gibt, also auch nicht weiß in welcher Richtung man suchen sollte. Ein gesunder Pragmatismus ist jetzt hilfreich, vielleicht wars auch eine Verzweiflungstat :  grep -r 512 /etc/ /proc/sys/

Also in allen Dateien von ETC und PROC nach einer EIntragung mit 512 zu suchen. Und genau das hat zum Erfolg geführt, so daß ich jetzt eine Anklage wegen Ruhestörung und einen Abdruck meiner Hand an der Stirn habe 😀

Der SystemD macht mehr als er sollte

Im SystemD gibt es eine Konfigurationsdatei : /etc/systemd/system.conf

Der Auslieferungszustand bei Fedora ist, daß dort alle Werte auskommentiert sind, also ungültig sind. Dort fand sich eine 512 Eintragung und der Name der Option war … DefaultTasksMax=512 !

Aber die Option war abgeschaltet, also ist doch die erste Annahme, daß es kein Limit gibt, oder? Tja, Pech gehabt! Der Wert ist nur Deko, weil als Default in den SystemD einkompiliert 🙁

Zum Glück kann man den Wert in dieser Config ändern, den SystemD + MariaDB neustarten und dann wird der neue, unlimitierte Wert auch übernommen. Er taucht in keiner ( mir bekannten ) Procdatei auf. (Hinweise willkommen)

Alles in allem eine Änderung die wohl zu einer heftigen Reaktion seitens der Betroffenen geführt hat, weil die Systemd Entwickler das in einer neueren Version auf 15% der möglichen Prozesse eines Systems limitiert haben. In  unserem Fall wäre das noch schlimmer gewesen, weil wir so noch schlechter hätten Debuggen können, weil es sehr viel seltener passiert wäre.

Warum gibt es das Limit überhaupt ? Ja, weil es Bomben gibt. Das sind z.b. Bashscripte die sich selbst starten und dabei von der Shell abforken, so daß nach kurzer Zeit alle Resourcen eines Systems aufgebraucht sind. Hackt man also einen Server, könnte man den so intern dosen. Damit das nicht geht, gibt wenigstens ein Limit 😉 Das mal jemand Fedora als Server benutzt und dann auch noch als High Performance, damit hatte wohl niemand gerechnet 😀

Meiner Meinung nach, sollte sich der SystemD auf das Starten von Programmen konzentrieren, denn da ist er bedingt besser als SystemV. Aber die ganzen anderen Anmaßungen die das Teil so vornimmt, sind nicht so schön. Der SystemD kann einen echt fertig machen 😉

Ich bin mal gespannt, was beim nächsten OS Upgrade auf uns wartet 😉

Event: Real World Java Web Security

Folgende Veranstaltung der Java User Group Braunschweig, findet am 2. Juni bei LINEAS statt:

Real World Java Web Security

Es geht um die Sicherheit von Java Webanwendungen. Wir dürfen gespannt sein, was uns da präsentiert wird. Als Sprecher kommt Dominik Schadow , welcher als Senior Consultant beim IT-Beratungsunternehmen bridgingIT arbeitet.

Er ist spezialisiert auf die Architektur und Entwicklung von Java Enterprise Applikationen, Enterprise Application Integration und die sichere Softwareentwicklung mit Java. In Trainings und Coachings überzeugt er andere Entwickler von der sicheren Entwicklung mit Java.

Ort:  LINEAS Informationstechnik, Theodor-Heuss-Str. 2, 38122 Braunschweig