Sicherheitseinstellungen für Google Mail mit E-Mail-Programmen

Im Juni dieses Jahres hat Google die Sicherheitseinstellungen verschärft, sofern E-Mails bei Google Mail Konten mit nativen E-Mail-Programmen abgerufen werden. Dies betrifft sowohl POP-, als auch IMAP-Konten. Damit E-Mails auch wieder mit einem Third Party Client abgerufen und bearbeitet werden können, sind nun zwei Schritte nötig.:

    1. In den Einstellungen beim Menüpunkt ‚Sicherheit‘ muss die ‚Bestätigung in zwei Schritten‘ aktiviert sein.
    2. Es muss zusätzlich die Funktion ‚Mit App-Passwörtern‘ aktiviert sein. Dabei wird für jeden E-Mail-Client ein eigenes Passwort generiert.

    Weitere Informationen sind unten verlinkt. Dabei geht besonderer Dank an Herrn Burkes Artikel im Regensburger Tagebuch!

    Links:

    Fixing WordPress Redirect Hack

    Letzte Woche hatte es auch mich und meinem Server erwischt, dass dieser durch eine Sicherheitslücke mit Schadcode in Form eines kleinen Skripts kompromittiert wurde. Durch diesen „WordPress Redirection Hack“ wird im Allgemeinen ein Webbrowser beim Aufrufen (m)einer URL dann dazu genötigt, auf eine fremde URL zu verweisen, wo für den PC des Benutzers die eigentliche Malware zum Download bereitsteht, die den User durch weitere Angriffsformen schädigt. Es gibt da mehrere Möglichkeiten, wo so ein Skript für die Weiterleitungen versteckt werden kann. Bei mir war es die Variante, bei der ein Skript durch eine SQL-Injektion in die WordPress-Datenbank eingeschleust wurde. Konkret wurde die Entwicklung und Pflege des von mir eingesetzten WordPress-Plugins für die DSGVO-konforme Cookie-Information eingestellt. Dadurch blieb wohl mindestens eine Sicherheitslücke im Programmcode des Plugins, mit der die SQL-Injektion durchgeführt werden konnte. Bei meiner Recherche im Internet, den kompromittierenden Code im WordPress aufzuspüren, bin ich direkt auf einen guten Ansatz gestoßen, wie man bei der SQL-Injektion die fremden Schadskripte auch wieder loswird.

    • Am besten eignet sich hierfür der Mozilla Firefox Webbrowser. In einem neuen, leeren Tab trägt man in der Adressleiste view-source:, gefolgt von der zu untersuchenden Website ein. In meinem Fall also view-source:http://sommteck.net. Dabei holt sich der Firefox den Quellcode der Seite, tut ihn aber nicht interpretieren und ausführen, sondern nur darstellen.
    Volltextsuche HTML-Sourcecode
    Volltextsuche im HTML-Sourcecode
    • Jetzt muss man Ausschau halten und die eingeschleusten Skripte mit den fremden URLs – auf die für die Angreifer weiter geleitet werden soll – finden. Hilfreich ist, vielleicht erstmal eine Volltextsuche über das gesamte HTML-Dokument mit dem Stichwort script durchzuführen. Mit 45 Treffern waren das gar nicht mal so viele Ergebnisse wie ich erwartet hätte. Jetzt gilt es zu prüfen, ob die mit dem HTML-Tag script versehenen URLs plausibel sind. Schon nach rund der Hälfte der Tags hatte ich auch schon eine URL auf die verwiesen wurde, die als Sub-Domain einen „store“ zugewiesen bekommen hat und als Top-Level-Domain .ga besaß. Die Top-Level-Domain .ga steht für das afrikanische Land Gabun. Ich hatte in meinem Fall zwar im Hinterkopf, dass das DSGVO-Plugin gegen Bezahlung erst noch weitere Funktionen angeboten hatte, aber auf der Homepage, beziehungsweise im PHP-Quellcode einer Standard-WordPress-Installation ist eine solche Domain und URL als unseriös zu betrachten. Das vollständige Skript, in das die URL eingepackt ist, sollte man sich in die Zwischenablage kopieren. Aber hier ist noch anzumerken, dass die Kommentierungen vor und nach den HTML-Tags schon verraten haben, wie sie in den Quellcode gelangt sind. In meinem Fall ist es das WordPress-Plugin für das Cookie-Banner gewesen.
    • Im nächsten Schritt wird mit dem in die Zwischenablage gespeichertem Skript eine Volltextsuche über die gesamte Datenbank durchgeführt. Am besten geht das zum Beispiel mit der PhpMyAdmin Web-Oberfläche. Wird hier nun als Ergebnis mindestens ein Treffer aufgezeigt, dann sollte klar sein, dass der Redirection Hack mindestens über eine SQL-Injektion in die Webseite platziert wurde.
    Volltextsuche SQL-Datenbank
    Aufspüren von fremd eingeschleusten Code
    • Jetzt kann man in den oder die einzelnen Datenbankeinträge gehen und das Script entfernen. Danach konnte vom Webbrowser die HTML-Seite wieder ganz normal interpretiert und dargestellt werden.
    Eingeschleustes Skript entfernen
    Eingeschleustes Skript aus einem Datenbankeintrag entfernen
    • Zuletzt sollte man das nicht mehr gepflegte und lückenhafte WordPress-Plugin deaktivieren und löschen.

    In der Konsequenz hat der WordPress Redirect Hack bei mir dazu geführt, dass ich nochmals kritisch das Thema WordPress-Plugins überdacht habe. Plugins bieten für ein Online Content-Management-System durchaus einen Mehrwert, in dem sie es um neue nicht vorhandene Funktionen erweitern. Plugins sind aber auch zusätzliche Software, die auch zusätzlich Programmierfehler mit sich bringen können. Wenn ein Plugin nicht mehr kompatibel ist und in der Konsequenz auch nicht mehr funktioniert, weil es nicht mehr weiterentwickelt und gepflegt wird, dann ist das vielleicht das geringere Problem. Es ist eben aber auch möglich, dass es noch voller Programmierfehler steckt, die das Plugin zu einem Sicherheitsrisiko für die gesamte Webseite macht. Meine Einstellung zu Plugins war sowieso schon immer: so viele wie nötig, so wenig wie möglich. Auch ist die Empfehlung vielleicht nicht schlecht, dass wenn Plugins nicht benötigt werden, sie nicht nur zu deaktivieren, sondern sie dann auch zu löschen. So habe ich angefangen, meine WordPress-Plugins mal wieder ein wenig zu entrümpeln.
    Vor knapp zehn Jahren habe ich so zum Beispiel mir das Podlove-Plugin installiert, weil WordPress keine Audiodateien in die Mediathek mit aufnehmen und auch nicht wiedergeben konnte. Für einen Blog-Artikel habe ich diese Funktionalität aber benötigt. Vor gut fünf Jahren wurde WordPress dann endlich um die Funktion der Audiowiedergabe erweitert. So brauchte ich nun nur den Beitrag etwas anpassen und konnte wieder ein Plugin einsparen und deinstallieren.
    Eins anderes Beispiel ist das Duplicator-Plugin für Backups von WordPress-Blogs. Lange Zeit habe ich es für Backups und Migrationen des Web-Servers verwendet. Aber spätestens seit ich die Piwigo-Bildergalerie als Unterverzeichnis im Web-Server habe, ist die Größe des httpdocs-Verzeichnisses so stark gestiegen, dass es nur noch funktionieren wird, wenn ich die Bezahloption des Plugins in Anspruch nehme. Aber mal ganz ehrlich: Schon bevor es Plugins für Backups von Content-Management Systemen gab, mussten ganze Web-Verzeichnisse und Datenbanken auf andere Instanzen hin und her migriert werden.

    Links:

    Emulation einer PDP-11/70 unter SIMH mit Unix Time-Sharing System Seventh Edition (V7)

    Vor knapp einem Jahr habe ich den Beitrag über den Sanos PDP-11 Simulator mit dem Time-Sharing System Seventh Edition verfasst. Bei dem Sanos PDP-11 Simulator handelte es sich nur um eine Live CD-Demo, die man in das CD/DVD-Laufwerk des eigenen PCs – oder als ISO-Datei in eine virtuelle Maschine – einlegt und von ihr startet. Technisch wird dabei wahrscheinlich ein sehr keines Linux-Live System gebootet, welches direkt den SIMH-Emulator mit der nachgebildeten PDP-11 startet. Für den allerersten Eindruck von dem Time-Sharing System V7 ist dieser ganz in Ordnung, aber außer ein paar Verzeichnisse erstellen, Dateien manipulieren oder ein kleines C-Programm schreiben, kompilieren und Ausführen wird da nicht mehr möglich sein. Dieser Emulator ist nämlich auf mehreren Ebenen ziemlich beschränkt. Dies fängt schon bei der emulierten Hardware an.: Der nachgebildeten PDP-11 wird nur verhältnismäßig wenig Speicher gestellt. – 512 KiB. Die späteren Modelle konnten bis zu 4 MiB RAM adressieren. Außerdem ist das Time-Sharing System V7 nur auf einem emulierten DEC RL02 Wechselplattenlaufwerk vorinstalliert, welches eine formatierte Gesamtkapazität von nur 10 Megabyte hat. Aus der recht wenig vorhandenen Festspeicherkapazität resultiert natürlich auch der geringe Umfang an Software und Programmquellen des Time-Sharing Systems. So fehlen bestimmt eine Reihe an Kommandos, sowie der Quellcode des Kernels. Da der Sanos PDP-11 Simulator am PC von einer CD – also einem Read-only-Medium gestartet wird, kann der veränderte Zustand nicht gespeichert werden, beziehungsweise es gibt keine Möglichkeit ein beschreibbares Medium an dem Emulator zu koppeln. Somit gehen alle Änderungen in der ausgeführten Emulation nach dem Neustart des PCs verloren. – Das ist schade!

    Nun ist klar, dass mit dem SIMH prinzipiell auch eine individuelle Hardware-Konfiguration der PDP-11 möglich ist. So bin ich neulich beim Durchstöbern des ‚Computer History Wiki!‘ auf eine Installationsanleitung vom Time-Sharing System V7 auf eine DEC PDP-11/70 gestoßen. Diese emulierte PDP-11/70 ist mit 2 MiB RAM konfiguriert und besitzt als Systemfestplatte ein DEC RP06 Disk Drive mit 176 Megabyte Speicherkapazität, deren Plattenstapel im Original auch entfernbar, beziehungsweise wechselbar ist. Hinzu kommt noch ein DEC TU10 Magnetband-Laufwerk. Dies ist nötig, da die Installationsquelle von einem 1/2″ Magnetband kommt. Abgerundet wird dies durch ein DC11 Serial Interface für erst einmal bis zu 4 seriellen Terminals, damit die Installation auch echt Multiuser-fähig wird. Allerdings kann der Kernel das DC11-Interface nicht von Haus aus ansprechen, sondern das System muss nach vollendeter Installation erst neu konfiguriert und ein neuer Kernel erstellt werden.
    Bei dem Time-Sharing System V7 kommt das Installations-Magnetband zum Einsatz, welches Keith Bostic von der Unix Heritage Society zur Verfügung gestellt hat. Ein Gimmick dieser Installationsquelle ist der vorhandene Account ‚dmr‘ des inzwischen 2011 verstorbenen Unix-Entwicklers Dennis MacAlistair Ritchie.

    Unix Time-Sharing System V7
    Research Unix Version 7 from 1979

    Was mit dem Ende der Installation als Erstes auffällt, ist, dass es keine Befehle für den Halt des Systems, Shutdown und Reboot gibt. Man ist eher angehalten, das Dateisystem zu pflegen, in dem vor dem Abschalten oder Reset der Hardware der Befehl sync ausgeführt wird, damit die Superblöcke der Dateisysteme auf die Datenträger geschrieben werden. Auch wird stattdessen empfohlen, wenigstens einmal täglich jedes Laufwerk oder auf alle Fälle nach jedem Systemabsturz alle Dateisysteme mit den Kommandos icheck und dcheck auf ihre Konsistenz zu prüfen.
    Ein Programm oder einen expliziten Befehl zum Anlegen eines weiteren Benutzers existierte unter dem Time-Sharing System V7 noch überhaupt nicht. Stattdessen heißt es Dateien editieren, Verzeichnisse erstellen, die Verzeichnisse den entsprechenden Eigentümern zuordnen und Zugriffsrechte erteilen. – Oder man schreibt sich am Ende selber ein Programm zum Anlegen der Benutzer als Shellscript. Wie bereits erwähnt, enthält diese Unix-Version den Login-Namen ‚dmr‘, der sein Heimatverzeichnis unterhalb von /usr besitzt. Diese Anordnung der Benutzerverzeichnisse war dann noch sehr lange gängig. Der Ordnung halber habe ich für meinen eingeschränkten Account erst das Verzeichnis /home angelegt, in dessen mein Heimatverzeichnis untergeordnet wird, so wie es inzwischen bei den modernen BSDs und unter Linux üblich ist.
    Für das Bearbeiten von Dateien musste man sich Ende der 1970er Jahre immer noch mit dem Zeilen-orientierten Texteditor ed zufriedengeben. Der vi war zu diesem Zeitpunkt zwar schon geboren, fristete aber noch derzeit unter BSD sein Nischendasein, gab es doch schon für die PDP-11 neben den Druckerterminals bereits das eine oder andere Videoterminal mit einem Röhrenbildschirm. Und bedingt durch die Druckerterminals gab es auch sonst noch keinen Komfort auf der Bourne Shell.

    Für den normalen Multiuser-Betrieb habe ich den SIMH mit der emulierten PDP-11 in einer GNU Screen-Session gestartet. Danach die Sitzung trennen und sich mit Telnet auf einer der seriellen TTY-Schnittstellen anmelden. Im Gegensatz zum Terminalfenster unter Screen bleiben so die Rollback-Zeilen des Terminals erhalten. – Was nötig ist, denn die Ausgabe der Shell unter Unix V7 findet quasi auf einem emulierten Druckerterminal statt, welches nichts von einer Seitenweisen Darstellung versteht.

    Anleitung Installation und Einrichtung im eigenem DokuWiki

    Links:

    Kansas City Standard

    In den 1980er Jahren war es bei den Heim- und Personal-Computern üblich, dass die Programme, Spiele und Daten auf der sogenannten Datasette gespeichert wurden, also eine Kompaktaudiokassette mit dem Magnetband, wie sie in derselben Dekade für die Aufnahme von Musik und anderen Tonaufnahmen wie Hörspiele und Radiomitschnitte verwendet wurden. Wobei es sprachlich aufzupassen gilt, denn die Datasette ist quasi das Tempo-Taschentuch unter den Kompaktkassetten für die Speicherung der Computerdaten, da die Bezeichnung ursprünglich von Commodore ist. Das lag nicht zuletzt daran, da der Begriff vor allem mit dem Commodore C64 eine starke Verbreitung in Deutschland und Mitteleuropa bei den Heim- und Personal-Computer fand, wurde der Begriff Datasette also zum Synonym für die Speicherung von Computer-Daten auf der Kompaktaudiokassette. Andere Hersteller wie unter anderem Atari, Apple, Sinclair, Robotron oder Amstrad/Schneider besaßen ebenfalls die Möglichkeit, die Computerdaten auf Kompaktaudiokassette zu speichern und von ihr wieder zu lesen. Selbst der berühmte IBM 5150 PC besaß eine Schnittstelle zum Anschluss eines Datenrekorders. Die Hersteller boten über den Handel bereits auch Programme und Spiele auf der „Datasette“ zum Verkauf an. Je nach Größe des Programms war die Spielzeit dieser um die 15 bis 20 Minuten lang. Es war aber auch möglich, sich über den damalig gewöhnlichen HiFi-Handel sich leere Kassetten mit üblicherweise 60 oder 90 Minuten Spielzeit zu kaufen, um so auch mehrere Programme auf die Kassette zu speichern.
    Bezüglich der Heimcomputer von Robotron in der DDR hatte ich bereits einen Artikel geschrieben gehabt, wie wir es mit den Laden der Spiele in den Robotron KC 85/4 gehandhabt hatten.

    Kansas City Standard
    Kansas City Standard mit Optionen

    In dem YouTube-Video ‚Loading PC Games from Reel to Reel Tape‘ des Kanals LGR vom US-Amerikaner Clint Basinger stellt dieser den ‚Kansas City Standard‘ vor, der ein offener Standard durch den Zusammenschluss von einigen Herstellern der Heim- und Personal-Computer wie Acorn Computers Ltd, Triumph-Adler, MITS für ihren Altair 8800, dem Taschenrechner-Hersteller Casio und anderen war und im amerikanischen Byte Magazin im Jahr 1975 beschlossen und vorgestellt hatten. Mit einem nach diesem Standard funktionierenden Kassetteninterface war es möglich, im wesentlichen wie das an einer seriellen Schnittstelle angeschlossenem Modem die Bits in Töne umzuwandeln, um sie eben auf ein Tonband oder Kompaktaudiokassette speichern und wieder von ihr einlesen zu können. Gespeichert wurden die Bits mit einer Modulation von 300 Bit je Sekunde. Entsprechende Kassetteninterface-Geräte waren dann ab der zweiten Hälfte der 1970er Jahre ab zirka 80 US-$ im Handel erhältlich, was wesentlich preiswerter war als ein 8″ oder später 5,25″ Diskettenlaufwerk. Zu dieser Zeit kostete in Deutschland zum Beispiel ein Diskettenlaufwerk 3.000,- DM. Davon abweichend implementierte Sega für ihre Spielekonsole SG-1000 eine Variante mit 600 Bit je Sekunde, sowie Acorn für ihren BBC Micro und Acorn Electron eine mit bis zu 1200 Bit je Sekunde.
    Clint stellt dabei das im Jahr 2006 unter der Public Domain Mark 1.0 stehende DOS-Programm KCS08 vor, welches Dateien in Wave-Audiodateien encodiert und wieder zurück decodiert. Dabei bietet es einige Optionen wie zum Beispiel die Art der Modulation – 300, 600 oder 1200 Bit je Sekunde, Parität, die Kodierung und einige weitere an.

    Kansas City Standard
    Kansas City Standard in Benutzung

    Und Clint wäre nicht Clint von LGR, wenn er das Spielchen nicht bis aufs i-Tüpfelchen treibt und sich extra ein altes und hochwertiges Tonbandgerät zulegt, um auf einigen Tonbändern ein altes DOS-Spiel und einige andere Dateien zur Demonstration zu encodieren und speichern, um es wieder dann als Audio-Stream einzuspielen und vom KCS08-Programm zurück zu dekodieren.

    Bei meiner Internet-Recherche bin ich noch auf das Python-Script py-kcs von dem US-amerikanischen Software-Autor David Beazley gestoßen, welches Dateien mit einer Modulation von 300 Bit je Sekunde nach 8N1 encodieren und wieder decodieren kann. – Wenn man auf seinem macOS, Linux oder anderem *Unix keinen DOS-Emulator direkt zur Hand hat.

    Zum Schluss habe ich nun also auch diesen Artikel in seiner Klarschrift in eine Wave-Datei mit 1200 Baud zum Nachhören umgewandelt.

    Audio Sample Datei ‚Kansas City standard‘

    Links:

    Commandlinefu

    Als ich im vergangenen Herbst nach einer Lösung im Internet recherchiert habe, um eine Audio-Datei (wav, mp3, etc.) aus der Tonspur einer DVD zu erzeugen, bin ich in meinen Suchergebnissen über Beispiele für Kommandozeilen-Befehle auf der Website www.commandlinefu.com aufmerksam geworden. Bei Commandlinefu kann jeder nach der Registrierung einen kleinen Beitrag einstellen für einen Kommandozeilen-Befehl den er oder sie als erwähnenswert erachtet. Dabei wurden – und werden Befehle präsentiert, die entweder etwas Praktisches, etwas Nützliches, etwas Interessantes oder einfach nur etwas Witziges ausführen.
    So gab es bis vor etwa zehn Jahren alternative Beispiele, wie sich ein öffentlicher SSH-Schlüssel auf einem Ziel-Host in die Datei ~/.ssh/authorized_keys einfügen lässt. Hintergrund war, dass Apple zwar die vollständige SSH-Suite seit Beginn von Mac OS X als festes Bestandteil integriert hat, aber über etliche Versionen hat das Programm ssh-copy-id gefehlt. So wurden alternative Wege erarbeitet, die mit Hilfe der Standard-Unix-Tools den Schlüssel über ein einziges Shell-Kommando auf den Ziel-Host brachten.xx
    Ich habe mal angefangen, ein wenig in der mittlerweile über fast 12 Jahre alten Sammlung zu stöbern und eine wirklich kleine Auswahl in meinem Wiki gesammelt. Aber es steckt noch viel Potenzial in der Sammlung weitere Befehls-Schätze zu entdecken. Es braucht nur etwas Internet und vielleicht einen halben oder ganzen Tag, an dem sich nichts sinnvolleres mit der vorhandenen Freizeit anstellen lässt.
    Es gibt im übrigen auch einen Twitter-Account zu Commandlinefu, der einem über einen neuen Beitrag informiert.

    Links: