Nützliches für die .bashrc

Im Laufe der Jahre habe ich einige nützliche Dinge angesammelt, die ich in jede .bashrc übernehme, wenn ich auf einem Computer mehr als nur gelegentlich arbeite.

Einige davon sind vielleicht auch für andere Menschen von Nutzen.

(Wer es nicht sofort bemerkt: Nein, das hier ist kein Tutorial, wie man die Shell bedient. Es gibt nur sehr knappe Erläuterungen.)

Standardausgabe in das Clipboard kopieren

Hierfür muss xsel installiert sein. Die meisten »modernen« Linux-Distributionen installieren die alten Kommandozeilen-Tools für XWindows nicht mehr standardmäßig, so dass man es gegebenenfalls nachinstallieren muss.

Mit xsel könnte man sogar schon auskommen, aber als tippfauler Mensch mache ich meine eigene Funktion, die einerseits die Ausgabe auf die Konsole ausgibt, damit ich sie direkt lesen kann, und die sie andererseits in das Clipboard kopiert:

clip() {
    cat "$@" | tee /dev/tty | xsel -bi
}

Beispiel: ls -l | clip gibt das Verzeichnislisting aus und kopiert es gleichzeitig in die Zwischenablage.

HTML-Entitäten

Es kommt bei mir erstaunlich häufig vor, dass ich Texte auf die eben beschriebene Weise in die Zwischenablage kopiere, die ich anschließend in ein HTML-Dokument einfüge. Wenn dabei nur ein bis drei reservierte Zeichen von Hand durch die jeweilige Entität ersetzt werden müssen, geht das ja noch, obwohl ich es immer wieder einmal vergesse. Besser ist es für mich, dafür eine Funktion in der Shell zu haben:

htmlentities () {
    sed -e 's/&/\&/g' -e 's/"/\"/g' \
        -e 's/</\&lt;/g' -e 's/>/\&gt;/g' "$@"
}

Beispiel: Vermutlich kann sich jeder vorstellen, wie sehr es hirnt, so eine Zeile in HTML zu tippen. Gut, dass ich diese Funktion schon fertig in meiner .bashrc hatte, so dass ich sie folgendermaßen in die Zwischenablage bekam, um sie direkt in das Editorfenster einfügen zu können, in dem ich diesen Text schreibe:

$ sed -n '/^htmlentities/,/}/p' .bashrc | htmlentities | clip

🙂

Wer nicht sofort versteht, wie ich mit sed die Funktionsdefiniton aus der .bashrc extrahiert habe: Dieses olle Programm sed ist unendlich praktisch und kann einem leicht viel Arbeit sparen. Meiner Meinung nach sollte jeder Mensch, der öfter an einem Computer mit einem unixoiden Betriebssystem arbeitet, damit ein bisschen umgehen können. Leider ist die man-page (auf GNU-Systemen) sehr kurz angebunden und überhaupt nicht hilfreich. Wer gewohnheitsmäßig mit dem hervorragend dokumentierten vim editiert, hat es dafür aber leicht, sed zu erlernen, weil es der vim-Befehlszeile sehr ähnlich ist.

Besserer Prompt

Die eben angegebenen Funktionen werden auch mit anderen Shells funktionieren, insbesondere mit der ksh¹. Das gilt nicht für diesen Tipp, er geht in dieser Form nur mit der bash.

Grundsätzlich finde ich es ja gut, wenn mein aktuelles Verzeichnis im Prompt angezeigt wird – aber da ich sehr häufig tief verschachtelte Unterverzeichnisse mit zum Teil sehr langen Namen habe, ist es beim Arbeiten für mich eher verwirrend, dass mir der gesamte Pfad angezeigt wird. Wenn ich den genauen Pfad des Verzeichnisses wissen möchte, in dem ich mich befinde, kann ich immer noch pwd tippen. Deshalb schreibe ich in meine .bashrc immer folgendes:

export PS1='\u@\h [\W] \$ '

Das führt zu einer in meinen Augen wesentlich angenehmeren Darstellung des aktuellen Arbeitsverzeichnisses im Prompt:

elias@porz [~] $ pwd
/home/elias
elias@porz [~] $ cd /usr/local/share/games/mame/roms/
elias@porz [roms] $ du -hs .
42G     .
elias@porz [roms] $ pwd
/usr/local/share/games/mame/roms
elias@porz [roms] $ cd
elias@porz [~] $ _

Die Darstellung des Verzeichnisses in eckigen Klammern ist nur mein schlechter Geschmack, hier kann jeder machen, was er will. Zum Beispiel eine farbige Ausgabe mit ANSI-Sequenzen (finde ich persönlich schrecklich).

Wer nicht häufiger in ssh-Sitzungen auf anderen Rechnern arbeitet, kann natürlich die Angabe \u@\h weglassen, weil ja immer klar ist, an welchem Rechner man arbeitet. Ich hingegen würde neben dem bekannten who am i auch ein where am i benötigen… und die Verpeiltheit kommt manchmal dazu…

¹Weil die ksh die eigentlich POSIX-konforme Shell ist, die bash des GNU-Projektes hingegen in einigen Dingen (insbesondere in der Behandlung von Pipes in Kontrollstrukturen) inkompatible Wege geht, versuche ich immer ein bisschen an die ksh zu denken. Vielleicht muss ich einige meiner Skripten ja mal auf einem richtigen Unix laufen lassen…

Veröffentlicht unter Technisches | Verschlagwortet mit , | Kommentar hinterlassen

Aber es war immerhin keine SQL-Injection

Vor ein paar Jahren habe ich immer wieder die folgende Security-Dummaussage von Ahnungslosen gehört: »SQL-Injections sind ein häufiger und gefährlicher Angriff«. Und dann haben die Dummen und Ahnungslosen nicht etwa gesagt, dass man deshalb niemals unvorsichtig eine Benutzereingabe in einem SQL-Statement verwenden darf, dass man immer auf korrektes Quoting achten muss, dass man nach Möglichkeit bewährten Bibliothekscode verwenden sollte, der einem in dieser elementaren Sicherheitsangelegenheit unterstützt… sondern so etwas unsäglich Dummes wie »Mit eine NoSQL-Datenbank kann das nicht passieren«.

In der Tat, Herr Hirnamputiert, eine SQL-Injection ist damit nicht möglich.

Eine Security-Unfähigkeit der Größenordung »Die Datenbank nicht durch ein Passwort absichern, sondern quasi offen für jeden zugreifbar ins Internet stellen« kann dann aber immer noch dazu führen, dass die für einen Identitätsmissbrauch völlig hinreichenden Daten von 93 Millionen Wahlberechtigten in Mexiko veröffentlicht werden.

Dumme Antworten auf Probleme der Datensicherheit sind nämlich vor allem eines: Sie sind dumm.

Und dumme Antworten auf Probleme der Datensicherheit werden auch heute noch oft und gern gegeben, zum Beispiel vom Bundesamt für Sicherheit in der Informationstechnik (die Hervorhebung im folgenden Zitat ist von mir):

Das Bundesamt für Sicherheit in der Informationstechnik (BSI) hat im Rahmen der Hannover Messe eine Sicherheitsanalyse des Kommunikationsprotokolls OPC UA veröffentlicht. Dieser Industriestandard gilt als essenziell für eine sichere Kommunikation zwischen Maschinen (M2M). Laut BSI hat OPC UA keine systematischen Sicherheitslücken – zumindest auf dem Papier

Mit Verlaub, aber eine technische Spezifikation ist deutlich einfacher frei von Sicherheitslücken zu halten als ihre Implementation in Form von Software – es ist doch schön, dass das BSI uns einmal allen diese triviale Wahrheit erzählt hat, wenn auch auf eine Weise, die das Potenzial in sich trägt, einige Satiriker arbeitslos zu machen. Zu den Spätfolgen dieser Erzählweise empfehle ich, in den nächsten fünf Jahren die Nachrichten von »gehackten« Industrieanlagen in der Bundesrepublik Deutschland zu verfolgen.

Veröffentlicht unter Technisches | Verschlagwortet mit , , , , , | Kommentar hinterlassen

Unwichtige Fakten über die Türkei

Achtung, dieser Post enthält ein paar Datenbankabfragen in SQL. Allergiker mögen bitte genau jetzt mit dem Lesen aufhören.

$ psql mernis
psql (9.3.11)
Type "help" for help.

mernis=# select count(*) from citizen;
  count   
----------
 49611709
(1 row)

Die Türkei hat 49.611.709 gemeldete Einwohner.

mernis=# select address_city, count(*) 
mernis=#   from citizen 
mernis=#   group by 1 
mernis=#     having count(*) > 1000000
mernis=#   order by 2 desc;

 address_city |  count  
--------------+---------
 ISTANBUL     | 8829584
 ANKARA       | 3081443
 IZMIR        | 2791399
 BURSA        | 1784471
 AYDIN        | 1411630
 ADANA        | 1390497
 KONYA        | 1332240
 ANTALYA      | 1289687
 MERSIN       | 1098963
 KOCAELI      | 1018557
(10 rows)

Es gibt in der Türkei 10 Städte mit mehr als einer Million gemeldeter Einwohner. Übrigens hat die türkische Meldedatenbank folgende, für mich überraschende Eigenschaften:

  • Alle Daten sind in Großbuchstaben hinterlegt.
  • Es gibt keine türkischen Sonderzeichen. (Wenn Mustafa Kemal Atatürk, der Vater der Türken, wüsste, dass er in der Meldedatenbank zum »Vater der Turken« gemacht wird! Nein, diese Verunstaltung ist nicht von mir, sondern eine Eigenschaft der staatlichen Datenbank, die an vielen nach Atatürk benannten Straßen und Plätzen sichtbar wird.)

Ich wäre nicht überrascht, wenn Teile des Datenbestandes auf eine frühere Lochkarten-Lösung zurückgingen und sich von daher die Einschränkungen bis in unser Unicode-Zeitalter gehalten haben.

mernis=# select first, count(*) 
mernis=#   from citizen 
mernis=#   where gender='K' 
mernis=#   group by 1 
mernis=#   order by 2 desc 
mernis=#   limit 20;

  first  |  count  
---------+---------
 FATMA   | 1154707
 AYSE    |  893025
 EMINE   |  756629
 HATICE  |  658979
 ZEYNEP  |  315488
 MERYEM  |  214972
 ELIF    |  203543
 SULTAN  |  173627
 HULYA   |  166646
 SEVIM   |  163928
 SERIFE  |  158777
 FADIME  |  158131
 OZLEM   |  157157
 AYSEL   |  152450
 HANIFE  |  151887
 YASEMIN |  144333
 HACER   |  143326
 DILEK   |  143144
 HAVVA   |  139982
 ZEHRA   |  136409
(20 rows)

Dies sind die zwanzig häufigsten Frauennamen in der Türkei.

mernis=# select first, count(*) 
mernis=#   from citizen 
mernis=#   where gender='E' 
mernis=#   group by 1 
mernis=#   order by 2 desc 
mernis=#   limit 20;

  first   |  count  
----------+---------
 MEHMET   | 1172949
 MUSTAFA  |  898640
 AHMET    |  719375
 ALI      |  663121
 HUSEYIN  |  521223
 HASAN    |  487897
 MURAT    |  403148
 IBRAHIM  |  398216
 ISMAIL   |  382176
 OSMAN    |  282860
 RAMAZAN  |  278833
 OMER     |  237684
 YUSUF    |  230066
 HALIL    |  202444
 SULEYMAN |  201852
 ABDULLAH |  191434
 RECEP    |  154332
 MAHMUT   |  153623
 FATIH    |  153251
 METIN    |  145817
(20 rows)

Dies sind die zwanzig häufigsten Männernamen in der Türkei.

mernis=# select first, count(*) 
mernis=#   from citizen 
mernis=#   where first in ('ELIAS', 'FRANK', 'KEVIN') 
mernis=#   group by 1 
mernis=#   order by 2 desc;

 first | count 
-------+-------
 ELIAS |     4
 FRANK |     3
 KEVIN |     2
(3 rows)

Es gibt natürlich auch ein paar seltene Namen in der Türkei. Die beiden Kevins genießen mein aufrichtiges Beileid – aber immerhin werden sie nicht für Juden gehalten und mit wenig erfreulichen Wörtern beschimpft.

mernis=# select first, 
mernis=#        overlay(last placing '.' from 2 for 30), 
mernis=#        date_of_birth 
mernis=#   from citizen 
mernis=#   limit 10;

     first     | overlay | date_of_birth 
---------------+---------+---------------
 SERPIL        | D.      | 27/4/1969
 YAGMUR        | S.      | 6/11/1987
 SUNA          | Y.      | 8/5/1990
 DENIZ         | K.      | 13/4/1989
 NIHAL         | Z.      | 30/9/1974
 ESIN          | S.      | 25/6/1984
 IBRAHIM CIHAN | D.      | 15/12/1984
 GOKHAN        | G.      | 3/3/1983
 MERYEM        | D.      | 17/4/1961
 ALI           | E.      | 13/6/1977
(10 rows)

(Mit overlay habe ich den Nachnamen auf den ersten Buchstaben runtergekürzt. Die Menschen in der Türkei sind mit diesem Datenleck bereits gestraft genug, da muss ich ihre Namen nicht noch zusätzlich für jene veröffentlichen, die gar nicht dazu imstande sind, einen Datenbankserver aufzusetzen und die Daten zu importieren.)

Die Geburtsdaten sind als Text hinterlegt, was etwas ärgerlich ist, weil es einfache Abfragen erschwert. Tag, Monat und Jahr sind durch Querstriche getrennt. Noch ärgerlicher ist, dass die Angabe des Tages und des Monats in vielen Datensätzen fehlen, so dass ich die Daten nicht mit einer einfachen Funktion in eine verarbeitbare Datumsangabe konvertieren kann.

mernis=# select date_of_birth, count(*) 
mernis=#   from citizen 
mernis=#   where date_of_birth like '//%' 
mernis=#   group by 1 
mernis=#   order by 2 desc;

 date_of_birth | count 
---------------+-------
 //1934        |  5688
 //1926        |  4145
 //1930        |  3446
 //1933        |  2988
 //1929        |  2981
 //1931        |  2921
 //1928        |  2858
 //1932        |  2768
 //1936        |  2533
 //1927        |  2490
 //1937        |  2374
 //1935        |  2243
 //1938        |  1977
 //1939        |  1663
 //1944        |  1581
 //1925        |  1580
 //1924        |  1191
 //1923        |  1095
 //1940        |  1083
 //1956        |   957
 //1941        |   942
 //1946        |   838
 //1922        |   815
 //1942        |   774
 //1943        |   763
 //1945        |   697
 //1947        |   626
 //1921        |   603
 //1920        |   532
 //1950        |   501
 //1919        |   433
 //1917        |   381
 //1918        |   349
 //1916        |   348
 //1948        |   337
 //1949        |   330
 //1951        |   311
 //1914        |   266
 //1954        |   265
 //1952        |   263
 //1915        |   260
 //1953        |   240
 //1913        |   193
 //1912        |   174
 //1955        |   171
 //1960        |   153
 //1957        |   129
 //1911        |   115
 //1343        |   113
 //1910        |   106
 //1958        |    69
 //1909        |    64
 //1959        |    60
 //1342        |    45
 //1961        |    42
 //1969        |    33
 //1908        |    33
 //1962        |    31
 //1963        |    30
 //1906        |    28
 //1344        |    24
 //1973        |    23
 //1966        |    23
 //1967        |    22
 //1964        |    21
 //1965        |    20
 //1970        |    18
 //1968        |    15
 //1976        |    15
 //1978        |    15
 //1971        |    14
 //1975        |    12
 //1974        |    11
 //1972        |    10
 //1907        |    10
 //1905        |     9
 //1904        |     8
 //1980        |     8
 //1981        |     6
 //1340        |     5
 //1979        |     5
 //1977        |     5
 //1985        |     5
 //1894        |     4
 //1346        |     4
 //1341        |     4
 //1338        |     3
 //1901        |     3
 //1345        |     3
 //1899        |     3
 //1902        |     3
 //1898        |     3
 //1339        |     2
 //1900        |     2
 //1984        |     2
 //1903        |     2
 //1348        |     1
 //1896        |     1
 //1354        |     1
 //1982        |     1
 //1983        |     1
 //1355        |     1
 //1333        |     1
 //1353        |     1
 //1989        |     1
 //1352        |     1
 //1335        |     1
 //1330        |     1
 //1990        |     1
 //1991        |     1
(110 rows)

Dieses Fehlen des genauen Geburtsdatums betrifft vor allem ältere Datensätze, kommt aber auch in jüngerer Zeit ab und an mal vor. Ich gratuliere den Menschen, die bei ihrer Anmeldung ein Geburtsjahr 1330, 1335, 1352, 1354, 1333, 1354, 1348, 1339, 1345 etc. angegeben haben, übrigens zu ihrem gesegneten Alter! (Vermutlich handelt es sich nicht um ein gregorianisches Datum.)

mernis=# select birth_city, count(*) 
mernis=#   from citizen 
mernis=#   where date_of_birth='//1342' 
mernis=#   group by 1 
mernis=#   order by 2 desc;

   birth_city    | count 
-----------------+-------
 AKCAKOY         |     5
 GUNEY           |     4
 BURSA           |     4
 USAK            |     3
 KARAHUYUKAFSARI |     2
 ULUPINAR        |     2
 AKHISAR         |     2
 GAZIANTEP       |     1
 ALANKOY         |     1
 KARAABDULBAKI   |     1
 HIVRIS          |     1
 KIRLI           |     1
 DOMANIC         |     1
 BEYTUSSEBAP     |     1
 SARIKAMIS       |     1
 CAPAKCUR        |     1
 YAKA            |     1
 SEBINKARAHISAR  |     1
 MURUDU          |     1
 DENIZLI         |     1
 ZIRZANOS        |     1
 ORHANGAZI       |     1
 ALANKOY         |     1
 KARAABDULBAKI   |     1
 HIVRIS          |     1
 KIRLI           |     1
 DOMANIC         |     1
 BEYTUSSEBAP     |     1
 SARIKAMIS       |     1
 CAPAKCUR        |     1
 YAKA            |     1
 SEBINKARAHISAR  |     1
 MURUDU          |     1
 DENIZLI         |     1
 ZIRZANOS        |     1
 ORHANGAZI       |     1
 SALDA           |     1
 VERAS           |     1
 SINEK           |     1
 REFAHIYE        |     1
 SINCAN          |     1
 DUDEN           |     1
 REFIK           |     1
 PASINLER        |     1
(30 rows)

Eine Liste der Orte, in denen die 45 Menschen geboren wurden, die bei der Anmeldung das Geburtsjahr 1342 angegeben haben. (Die Beamten dort akzeptieren offenbar bei der Ausstellung einer Geburtsurkunde ein nicht-gregorianisches Datum.)

mernis=# select street_address, 
mernis=#        door_or_entrance_number as number, 
mernis=#        count(*) 
mernis=#   from citizen 
mernis=#   where address_city='ISTANBUL' 
mernis=#   group by 1, 2 
mernis=#   order by 3 desc 
mernis=#   limit 20;

         street_address         | number  | count 
--------------------------------+---------+-------
 SELAMET SOKAK                  | 5       |  2361
 KUCUKSU CADDESI                | 265     |  1799
 BASIBUYUK YOLU CADDESI         | 36      |  1439
 SABRI ULKER (G/62) SOKAK       | 37      |  1346
 510. SOKAK                     | 6 A /1  |  1214
 GUL SOKAK                      | 7       |  1073
 GUL SOKAK                      | 5       |  1060
 RUMELI FENERI YOLU KUME EVLERI | 1       |  1053
 ITU KUME EVLERI                | 1       |   995
 GUL SOKAK                      | 3       |   989
 GUL SOKAK                      | 8       |   965
 GUL SOKAK                      | 4       |   943
 GUL SOKAK                      | 6       |   899
 GUL SOKAK                      | 10      |   880
 GUL SOKAK                      | 9       |   863
 GUL SOKAK                      | 1       |   860
 LALE SOKAK                     | 3       |   838
 LALE SOKAK                     | 6       |   826
 ESKI HAVAALANI CADDESI         | 13      |   803
 MENEKSE SOKAK                  | 3       |   798
(20 rows)

Unter diesen Anschriften sind in Istanbul die meisten Menschen gemeldet.

Wer immer noch daran glaubt, dass Daten beim Staat sicher sind: Die Meldedatenbank steht zurzeit jedem Menschen auf der Welt zur Verfügung, natürlich auch Kriminellen, die sich nicht mit einer schnellen Demonstration in einer kaum gelesenen Website begnügen. Diesen Kriminellen steht für jeden gemeldeten Bewohner der Türkei der Name, die Meldeadresse, der Geburtsort, das Geschlecht, das Geburtsdatum und der Name von Vater und Mutter zur Verfügung. Das ist genug für einen kriminellen Identitätsmissbrauch oder einen fiesen, personalisierten Betrug.

Ich hoffe, hier in der Bundesrepublik Deutschland freut sich schon jeder so richtig auf die elektronische Gesundheitskarte und staatlich erzwungene Überwachungsdatenbanken (aus der so genannten »Vorratsdatenspeicherung«), die beidesamt deutlich weiter in die Privatsphäre hineinragen als so eine »harmlose« Meldedatenbank, die schon erschreckende kriminelle Nutzungsformen ermöglicht.

Auch beim Staat sind Daten niemals sicher.

Wer trotz der Tatsachen immer noch an den Datenschutz glaubt, ist ein dummer Vollidiot! Wer nicht mehr daran glaubt, sollte damit aufhören, sich wie ein Vollidiot zu verhalten.

Veröffentlicht unter Technisches | Verschlagwortet mit , , , | Kommentar hinterlassen

Über die Verschlüsselungs- und Erpressungstrojaner

Die Programmierer dieser Trojaner verwenden zwar Bitcoin, aber sie sie haben eine gewisse Unabhängigkeit von diesem Bezahlverfahren, die in der gegenwärtigen medialen Berichterstattung viel zu wenig beleuchtet wird. Frühere »Ransomware« hat den Geldtransfer über Western Union, UKash, Money Gram und vergleichbare Dienstleister abgewickelt und war für die Kriminellen auch ein gutes Geschäft. Wer vermeiden möchte, diese unangenehmen Handschellen angelegt zu bekommen, ist eben einfallsreich.

Dass Menschen auf diese Kriminalitätsform reinfallen und von Verbrechern abgezogen werden, liegt keineswegs an der Existenz oder Nichtexistenz irgendwelcher Bezahlverfahren, sondern in erster Linie daran, dass sie ungebildet sind. Wenn die Menschen in den Anforderungen »Lesen und Schreiben« lediglich so wenig Bildung hätten wie in der Anforderung »Informationstechnik«, dann müsste man zurzeit die meisten Menschen als Analphabeten bezeichnen. Das ist bitter.

Wer etwas informationstechnische Bildung hat, fällt nicht so leicht auf eine Spam rein, öffnet schon gar nicht einen Mailanhang von Unbekannten, weiß davon, dass Absenderadressen einer E-Mail beliebig gefälscht sein können, verwendet einen gut gesicherten Webbrowser mit wirksamem Adblocker und NoScript, lässt nicht standardmäßig die Ausführung von Makros in Office-Dokumenten unbekannter Zeitgenossen zu, hat eine halbwegs angemessene Backupstrategie und achtet immer darauf, ein aktuelles System mit aktueller Software zu benutzen, so dass möglichst wenig von Kriminellen ausbeutbare Fehler die Computersicherheit gefährden.

Und während diese Bildung – angesichts der Bedeutung von Informationstechnik halte ich sie für eine Form der unabdingbaren Allgemeinbildung – bei den meisten Menschen nur rudimentär vorhanden ist oder gar völlig fehlt, werden in den staatlichen Schulen von heute die Erwachsenen von morgen auf die Herausforderungen von gestern vorbereitet, und zwar so »gut«, dass nach wenigen Jahren aus neugierigen, aufgeweckten und interessierten kleinen Menschen stumpfe, ausgewachsene Zeitgenossen werden, die jeden Vorgang der Wissensaneignung für eine unbedingt zu vermeidende Last halten.

Dummheit ist leider ein gutes Geschäft. Dies gilt schon für legale Geschäfte, was der tiefere Grund für die systematische Förderung der Dummheit durch Staat, Schule, Fernsehprogramm und Journalismus ist. Aber es ist nicht auf legale Geschäfte beschränkt.

Vor rd. achteinhalb Jahren schrieb ich an anderer Stelle die folgenden Zeilen:

Fragen sie ihre Tageszeitung, warum es keine Informationen und Warnungen zu den jeweils aktuellen Phishing- und Spam-Wellen an auffälliger Stelle gibt. Das Internet ist schließlich keine Spielwiese der Nerds mehr, es ist eine Massenerscheinung, an der auch ganz gewöhnliche Menschen in verschiedener Weise Teil haben. Auch die Journaille muss unter solchen Umständen einen Beitrag zur Verbrechensverhinderung leisten. Jeder andere Trickbetrüger bringt es doch auch als Warnung in die Presse, warum also nicht ein gefährlicher Phisher, der bei Erfolg Menschen um tausende von Euros erleichtern und sogar an den Rand des persönlichen wirtschaftlichen Ruins bringen kann? Wenden sie sich an ihren bevorzugten Radio- oder Fernsehsender und fragen sie, warum es zwar Unwetterwarnungen gibt, aber keinen Hinweis auf gefährliche Schadsoftware, die ihren Weg über Spam auf die Rechner ganz gewöhnlicher Mitbürger findet und die diese Rechner in fernsteuerbare Zombies der Spam-Mafia verwandelt?

Das größte Problem im Zusammenhang der Spam ist die gefährliche Unwissenheit vieler Menschen. Das beste Mittel gegen Unwissenheit ist besonnene, den Fakten verpflichtete und hilfreiche Aufklärung.

Ich kann und will hier keine umfassende und aktuelle Aufklärung geben – tatsächlich habe ich auch noch ein Leben neben dem Internet. Aber die Passivität derer, die solche Aufklärung leisten müssten, ist schon erschreckend. Dies gilt in besonderer Weise angesichts der Tatsache, dass die öffentlich-rechtlichen Rundfunkanstalten inzwischen von jedem Computernutzer über die Gebühren mitfinanziert werden; ich bin durchaus der Meinung, dass aus diesem Umstand auch eine Verantwortung für die Versorgung der Computernutzer mit essentiellen Informationen erwächst

Nichts an diesen Worten hat seine Aktualität verloren. In fast einem Jahrzehnt. Das ist schon ziemlich bitter, und es lässt nur einen Schluss zu: Die Agenda, die in den Medien (und in den staatlichen Schulen) verfolgt wird, soll nicht verantwortungsvoll handelnde, kundige Menschen hervorbringen, sondern dumme Konsumtrottel, denen man jedes Schlangenöl andrehen kann¹. (Ich weiß übrigens genau, dass in diesem Moment irgendwo ein paar Leute zusammensitzen, das dort von Heise Online mutmaßlich in bezahlter Schleichwerbung angepriesene Programm genau analysieren und eine Version ihres Trojaners bauen, die von diesem Programm nicht erkannt werden kann. Das ist nämlich das »Geschäft« dieser Leute. Die leben davon.)

Die Opfer der aktuellen Erpressungstrojaner sind auch Opfer eines vorsätzlich verdummenden, von der Werbung finanzierten Journalismus und eines vorsätzlich verdummenden staatlichen Schulbetriebes. Gegen Letzteres kann man leider nicht so viel machen; vor die Gründung von Privatschulen sind hohe Hürden gesetzt, deren Überwindung Mühe und Mittel erfordert, die für die meisten Menschen schlicht nicht erbringbar sind, während die Kultusministerien der BRD-Bundesländer von einer unfassbaren Trägheit befallen sind, die jede Entwicklung in der Gesellschaft zu verneinen scheint. Aber der Journalismus ist durchaus beeinflussbar, und sei es dadurch, dass seine Produkte systematisch boykottiert werden, bis sie wieder einen Wert und einen Nutzen für die Menschen bekommen haben, die sich daraus informieren sollen.

Anders, als die meisten Journalisten denken und unterschwellig schreiben, ist die mangelnde informationstechnische Bildung breiter Bevölkerungsschichten sowie das Fehlen selbst grundlegenden Wissens nämlich kein Naturgesetz, sondern ein auch durch die Praxis des Journalismus bewusst und planvoll miterzeugter Zustand. Und zwar einer, der beendet werden muss. So schnell wie möglich.

Denn nicht »Bitcoin« ist das Problem. Unwissen und informationstechnischer Analphabetismus ist das Problem.

¹Wer sich an diesem zugegebenermaßen unsachlichen Begriff für Antivirus-Produkte stört, lese bitte vor dem bequemen Ablassen eines schnellen Kommentares hier und hier weiter. Danach sind Ergänzungen und Widersprüche durchaus erwünscht…

Veröffentlicht unter Allgemeines | Verschlagwortet mit , , , , | 4 Kommentare

Bis zum Ende der Werbung im Web sinds nur noch zwei Jahre

Ich habe zu meinem vorhin in der Nacht (und nach Meinung einiger meiner Zeitgenossen: auch in geistiger Umnachtung) geschriebenen und veröffentlichten Text eine Menge Feedback erhalten. Vielfach wurde – wie ich jetzt einräumen muss – zu Recht kritisiert, dass die Abhängigkeit des Firefox-Projektes von Google nicht mehr so groß ist, was in der Tat stimmt. Es handelt sich inzwischen um eine Abhängigkeit von Yahoo, einer Unternehmung, die ebenfalls auf die Sichtbarkeit von Werbung angewiesen ist. Wie leicht zu sehen ist, wird das grundsätzliche Argument von meiner kurzfristigen Recherchefaulheit nicht entwertet.

Eine besonders interessante Rückfrage betrifft die folgende Anmerkung in einer Fußnote:

Ich bin optimistisch und gehe davon aus, dass der Werbemarkt im Internet binnen der nächsten zwei Jahre zusammenbricht; und mit ihm alle darauf basierenden Geschäftsmodelle. Ich habe Gründe für diese Prognose, aber diese sind so komplex, dass diese Fußnote sie nicht fassen kann. Komme es, wie es komme: Bis dahin haben wir den Salat

Ich wurde mehrfach nach meinen ominös wirkenden »Gründen« für diese Prognose gefragt, und ich bin gern bereit, sie hier verkürzt darzulegen – in aller Ausführlichkeit könnte ich daraus einen sehr langen Text machen, zu dem ich gerade nicht die Zeit habe.

Der Angriff auf den Werbemarkt im Web kommt von mehreren Seiten gleichzeitig.

Zum einen liegt die Adblocker-Nutzung in Europa inzwischen bei über zwanzig Prozent, so dass mehr als ein Fünftel der Webnutzer gar keine Werbung mehr sieht. Ergänzend wird auch auf mobilen Zugangsgeräten immer häufiger ein Adblocker eingesetzt. Generell ist diese Zahl steigend, und mit zunehmender Gefährlichkeit und Nervigkeit der meist völlig unerwünschten Reklame wird sie schneller steigen. Niemand mag es, in einer Halde aus unerwünschtem Müll nach dem zu suchen, was er eigentlich haben möchte.

Zum zweiten gibt es automatisierten und trojanifizierten Klickbetrug auf Werbebanner, der ein immer größeres Geschäft wird. In einigen extremen Fällen, die bei den seltenen Untersuchungen mal aufgefallen sind, waren schon jetzt lediglich wenige Prozent der Klicks auf ein Banner von Menschen ausgegangen. (Ich finde gerade in meinem Archiv nur diesen zwei Jahre alten Text mit einer etwas besseren Quote) Eine technische Abwehr gegen diese Betrugsform ist sehr schwierig, denn jedes messbare Anzeichen einer »echten Benutzerinteraktion« beim Klick auf eine rechteckige Fläche lässt sich auch brauchbar von einem Programm simulieren. Die Sichtbarkeit, die von Werbetreibenden bezahlt wird, ist eine verzerrte statistische Illusion, und das wird sich irgendwann bis zu denen herumsprechen, die zurzeit noch das Geld für die Werbung ausgeben. Bis dahin wird aber noch eine Menge Geld bewegt, indem Leute eine Müllseite voller Banner aufsetzen und gemietete Botnetze darin automatisiert »klicken« lassen. Angesichts der Einfachheit dieser »Gelderzeugung« gehe ich sogar noch von einer Ausweitung aus, denn es ist sehr einfach, diese Nummer durchzuführen und es ist sehr schwierig, diese Nummer gerichtsfest zu beweisen, wenn sich nicht gerade jemand ausgesprochen dumm dabei anstellt. Wo die Kriminalität risikoarm, technisch, abstrakt, gewaltfrei und lukrativ wird, finden sich die Täter nun einmal besonders leicht.

Zum dritten sind Werbebanner mit Code von anderen Leuten ein sehr häufig verwendetes Transportmittel für Schadsoftware, was zurzeit den Adblocker zur unverzichtbaren Sicherheitssoftware macht. Die über Ads transportierten Trojanerpacks sind bislang immer der heißeste Schrei der Kriminellen gewesen und wurden deshalb ein, zwei Tage lang von keinem Antivirus-Schlangenöl erkannt. Während das Antivirusprogramm bei einer häufigen und gefährlichen Angriffsform versagt, schützt der Adblocker den Computer zuverlässig. Der Adblocker ist also – jetzt schon, obwohl es immer noch selten offen so benannt wird – eine Sicherheitssoftware, deren Einsatz vernünftig ist; der Verzicht darauf ist hingegen ein Zeichen von Unwissen, Desinteresse und Dummheit. Ich gehe davon aus, dass Unwissen, Desinteresse und Dummheit mit beschissenem Job, schlechter Bildung und geringer Kaufkraft korrelliert sind (die Classe politique mag da ein Ausreißer sein), so dass immer mehr gesehene Werbung bei Menschen ankommt, die sich die beworbenen Produkte gar nicht leisten können. Auch das wird sich irgendwann zu denen herumsprechen, die die Werbung bezahlen – spätestens, wenn sie den Erfolg ihrer Kampagnen ernsthaft kontrollieren.

So viel dazu in Kürze. Es ist ein Thema, zu dem ich eine riesen Betrachtung machen müsste, und das lohnt sich nicht, weil ich davon ausgehe, dass es sich bald erledigt hat. Außer vielleicht auf »schmuddeligen« Seiten, so dass ein wachsender Reputationsverlust der Online-Werbung noch hinzukommt.

Es wurde auch angemerkt…

…dass Google, Facebook und Co in 2 Jahren ihr gesamtes Geschäftsfeld umstellen müssten

Bei Google ahnt man offenbar schon sehr lange, dass das Werbegeschäft zum Ende geht; vermutlich sitzt man dort an direkt erfassten Daten. Die Reaktion Googles auf diese Entwicklung ist aufwändige, teure Forschung und ein auffälliges Streben nach Diversifikation. Google wird diesen Zusammenbruch überstehen, und in zehn Jahren wird sich kaum jemand, der Heimautomation mit Google macht, ein Google-Auto fährt, weitere materielle Google-Produkte nutzt und unter Google… ähm… Alphabet eine große, »coole« Technikfirma versteht, noch daran erinnern, dass Google anfangs einmal sein ganzes Geld mit Werbung gemacht hat. Die Werbung in der Suchmaschine wird vermutlich bestehen bleiben – sie kann übrigens, wenn sie gut geschaltet wird, in vielen Fällen ähnlich nützlich sein wie ein Suchergebnis. Sie wird ohne Javascript auskommen und keinen Code von Dritten enthalten. Und sie wird immer noch ein fettes Geschäft sein, denn Google hat einen unglaublich guten Algorithmus zum Auffinden von Netzinhalten, dessen Beliebtheit bei den Nutzern nicht aus dem Nichts gekommen ist. Aber sie wird nicht mehr das Hauptgeschäft sein.

Facebook wird es nicht überstehen. Twitter auch nicht. Andere S/M-Sites¹, deren verachtenswertes Geschäftsmodell darin besteht, erwünschte Kommunikation mit unerwünschter Reklame zu vergällen, auch nicht. Und der gegenwärtige Online-Journalismus ebenfalls nicht. Keine der teilweise an der Börse hochkapitalisierten Klitschen ohne seriöses Geschäftsmodell, die da recht schnell zusammenbrechen werden (für Facebook und Twitter, die als »Geschäftsmodell« nur eine Datensammlung und eine Werbemöglichkeit sind, wird es die Insolvenz bedeuten), werde ich vermissen – genau so wenig, wie ich MySpace² vermisse. Irgendwelche LayerAds werde ich übrigens auch niemals vermissen. Nichts am gegenwärtigen Irrsinn der Monetarisierung durch Werbung werde ich vermissen. Ganz im Gegenteil, ich werde mich freuen, wenn ich sehe, was nicht mehr da ist. Und ich glaube nicht, dass ich da der Einzige bin.

Schon in fünf Jahren wird jeder wissen, was »Big Data« und Werbung im Internet wirklich waren und jetzt bereits sind: Die Tulpen des 21. Jahrhunderts

Es wird übrigens auch nach diesem Zusammenbruch noch Werbung geben, sogar im Web. Es wird andere Werbung sein. Es wird Werbung sein, die nicht aus dem Code irgendwelcher Dritter besteht, den man in die eigene Seite einbettet. Es wird Werbung sein, die nicht ihren Betrachter offen verachtet. Es wird bessere Werbung sein, wenn auch immer noch keine »gute«, weil es keine »gute« Werbung geben kann. Es gibt ja auch heute noch Tulpen.

¹S/M ist meine Abk. für »social media«. Aus Gründen.

²Das war eine Website, wo sie alle waren, bevor es Facebook gab.

Veröffentlicht unter Technisches | Verschlagwortet mit , , | Kommentar hinterlassen