PowerShell Seminar mit Dr. Tobias Weltner

10.-13.01.2012: Windows PowerShell 2.0 (WPS) für System- und Netzwerkadministratoren in Hannover.

Zielgruppe
Dieser Kurs richtet sich vornehmlich an Systemadministratoren.

Vorkenntnisse
Administration von Windows Server 2003/2008, Active Directory und Exchange 2007/2010.

Schulungsinhalt
Einführung
– Architektur der PowerShell (alias Microsoft Shell (MSH)/Monad)
– Systemvoraussetzungen und Installation
– Einsatz der Microsoft Windows PowerShell zur Interaktiven Systemadministration und zum Scripting
– PowerShell-Editoren: PowerShell Integrated Scripting Environment (ISE), PowerShellPlus, PowerGUI, u.a.
– Unterschiede zwischen den Versionen

Basiswissen
– Commandlets, Commandlet-Parameter
– Hilfefunktionen
– Objekt-Pipelining
– Ausgabefunktionen
– Navigationsmodell (PowerShell-Provider)

Scripting
– PowerShell Language (PSL): Variablen und Kontrollstrukturen
– Sicherheitsfunktionen (Execution Policy)
– Vordefinierte Variablen
– Profilskripte
– Datenbereiche, Datendateien, Internationalisierung/Lokalisierung/Mehrsprachigkeit

Aufbauwissen
– Fernaufruf/Fernadministration mit WS-Management („PowerShell Remoting“)
– Zugriff auf .NET-Objekte
– Zugriff auf COM-Objekte
– Zugriff auf WMI-Objekte
– Ereignissystem
– Transaktionen
– PowerShell-Erweiterungen (Module, Snap-Ins) installieren
– Profilskripte
– Datenbereiche, Datendateien, Internationalisierung/Lokalisierung/Mehrsprachigkeit
– PowerShell-Module in Windows Server 2008 Release 2: Active Directory, Server Manager, BITS, App Locker, Best Practices, PSDiagnostics, TroubleShootingPack, etc.

Einsatzbeispiele
– Prozesse
– Dienste
– Dateisystem
– Netzwerkkonfiguration
– Berechtigungen/Sicherheitsfunktionen
– Freigaben
– Active Directory/Verzeichnisdienste
– Registry
– Drucker
– Hardware
– Software
– Ereignisprotokolle
– Dokumente (Textdateien, XML-Dokumente)
– Datenbanken
– DNS
– DHCP
– usw.

Profiwissen
– Fehlerbehandlung und Fehlersuche
– Tracing
– Script Debugging
– Asynchrone Befehlsausführung (Background Jobs, PSJobs)
– Commandlets erstellen in PowerShell Skriptsprache
– PowerShell-Module erstellen
– Sicherheitsfunktionen (Execution Policy)

Ausblick auf die kommenden Versionen der PowerShell
Tipps und Tricks
Antworten auf Ihre Fragen

Dozent
Dr. Tobias Weltner gehört mit über 50 Büchern zu den bekanntesten Fachbuchtoren zum Thema Windows in Deutschland. Er arbeitet als Trainer und Consultant für Großkonzerne in ganz Europa. Sein Spezialgebiet sind Window Scripting-Techniken, insbesondere die Windows PowerShell. Er ist Entwickler der PowerShell-Entwicklungsumgebung „PowerShellPlus“ und Autor der Bücher „Scripting mit Windows PowerShell – Der Einsteiger-Workshop“ sowie „PowerShell-Scripting für Administratoren“ (beide erschienen bei Microsoft
Press) . Von Microsoft ist er aufgrund seines Fachwissens ausgezeichnet mit dem Titel „Microsoft Valuable Professional“ (MVP) für die Kategorie „Windows PowerShell“.

Wo?
michael-wessel.de
Krausenstraße 50
30171 Hannover

Kosten?
1800,- €* statt 2.249€ p.P. inkl. Tagesverpflegung
*zzgl. MwSt.

Bei Interesse kontaktieren Sie uns unter 0511 260 911-44 oder service [at] michael-wessel.de.

SSL Renegotiation

Vor kurzem wurden Tools veröffentlich, welche mit Hilfe von clientseitiger SSL Renegotiation versuchen, Webserver so stark unter Last zu setzen, dass diese nicht mehr auf Anfragen reagieren können und somit die Seiten für den Zeitraum des Angriffs nicht zur Verfügung stehen (Denial of Service). Abhilfe können hier Loadbalancer wie der Citrix NetScaler schaffen, welcher auf eine effiziente Verarbeitung von SSL-Verschlüsselungen ausgelegt und als Hardware Appliance sogar mit SSL-Beschleuniger-Chips (Cavium) ausgestattet ist.

Darüber hinaus besteht bei vielen Webservern die Möglichkeit die clientseitige SSL Renegotiation zu deaktivieren. Standardmäßig ist dies z.B. bei neueren Versionen des Apache Webservers der Fall.

Steht zwischen Client und Webserver ein Loadbalancer, entsteht die Rechenlast im Normalfall nicht auf dem Backend sondern auf den davor geschalteten Loadbalancern. Um zu verhindern, dass es nun zu einer erhöhten Last auf den NetScalern kommt, besteht hier ebenfalls die Möglichkeit die clientseitige SSL Renegotiation zu deaktvieren:

Die Konfiguration erfolgt in der GUI über die Haupseite SSL -> „Change advanced SSL settings“ -> „Deny SSL Renegotiation“.

Citrix Receiver für das BlackBerry Playbook

Mit Spannung wurde das erste Enterprise-Tablet von Research in Motion erwartet.

Doch damit ein Enterprise-Tablet seinem Ruf gerecht werden kann, bedarf es natürlich auch Anwendungen, die die tägliche Arbeit unterstützen bzw. überhaupt erst ermöglichen. Man könnte fast behaupten, dass der Erfolg eines Device davon abhängt, wie gut oder schlecht das Angebot an Apps ist, welche für das entsprechende Endgerät zur Verfügung stehen.

Ist nicht der unglaubliche Erfolg von iPad, iPhone und Co. auch in hohem Maß der Vielzahl an fantastischen Anwendungen zu verdanken? Gerade hier steckt RIM mit der AppWorld noch in den Kinderschuhen und hinkt deutlich hinter Android und Apple hinterher. Fast vier Monate nach dem Erscheinen des Tablets auf dem deutschen Markt, gehen nun endlich auch die ersten namhaften Hersteller von Enterprise Anwendungen ins Rennen.

Der Arbeitsbereich des Citrix Receiver für das BlackBerry Playbook

Ein erster Schritt zu einem erwachsenen Enterprisegerät wird mit der Verfügbarkeit des Citrix Receivers für das Playbook über die BlackBerry AppWorld gemacht. Zur Zeit steht der Receiver in einer Pre-Release-Version zur Verfügung, die auf den ersten Blick einen recht soliden und aufgeräumten Eindruck macht. Nach Eingabe der Verbindungsdaten wird der Anwender mit einer Lister der für ihn publizierten Anwendungen belohnt. Diese können dann nach Belieben auf den Arbeitsbereich gezogen und von dort aus gestartet werden.

Nach dem ersten Start einer Anwendung erhielten wir allerdings eine „Application Launch Failed“-Meldung. Diese ließ sich mit einer Anpassung der „webinterface.conf“ im Verzeichnis “inetpub”\wwwroot\Citrix\PNAgent\conf auf dem XenApp-Server beheben. Hierbei muss folgender Bereich der Konfigurationsdatei erweitert definiert werden:

ClientAddressMap=*,SG,192.168.30.0/255.255.255.0,Normal

Wobei natürlich die Netzadresse und die Netzmaske des eignen internen Netzes verwendet werden sollte. Von dieser Erweiterung sollten nur Verbindungen betroffen sein, die über den PNAgent erfolgen (Service Site). Das Webinterface sollte davon unberührt bleiben.

Wechsel zwischen einzelnen Anwendungen

Arbeitet man nun mit mehreren Applikationen gleichzeitig und möchte zwischen diesen hin und her schalten, so kann man dieses z.B. durch eine Fingerbewegung vom oberen Rand des Playbooks in die Bildschirmmitte erreichen. In diesem Fall erhält man eine Übersicht, in der dann zwischen den gestarteten Anwendungen gewechselt werden kann.

In dieser ersten freigegebenen Version werden Verbindungen über ein Citrix Access Gateway noch nicht unterstützt, so dass damit auch Sicherheitsfeatures wie z.B. eine zwei-Faktoren Authentifizierung erst einmal wegfallen. Dieses Manko wird laut Citrix aber in der endgültigen ersten Version beseitigt sein. Man darf also gespannt hoffen.

 

Workshifting mit XenApp und Lync

Heute mal ein kurzer Schnappschuss aus der Praxis, der zeigt, dass „Workshifting“ und das Versprechen mit dem Arbeiten jederzeit, von jedem Ort, mit jedem Endgerät, nicht nur bei den Herstellern funktioniert.

Heute arbeite ich über eine UMTS-Verbindung von ANYPLACE aus. Morgens den Citrix Receiver angeklickt, LogOn mit Benutzername, Passwort und per Blackberry generiertem OTP. In der XenApp Session (hinter einem Access Gateway Enterprise natürlich) läuft der Lync Client, in dem ich mit drei Klicks die Anrufumleitung auf meinen Blackberry aktiviere (gestern war ich noch im Office). Wer nicht auf meine Statusnachricht achtet, merkt nicht, dass ich gar nicht im Haus bin.

Einen externen Anrufer verpasse ich anzunehmen, so dass er bei unserem Servicedesk landet. Die Telefone dort hängen zwar noch an der parallel laufenden VoIP Anlage, aber auch die ist transparent über das Media Gateway verbunden. So stellt der Kollege den Anruf ganz normal auf meine interne Durchwahl durch und übergibt den externen Anrufer von der VoIP TK über Lync an meinen Blackberry, ohne sich darüber Gedanken machen zu müssen.

Ein anderer Kollege möchte mal mit mir gemeinsam einen Sachverhalt begutachten und ruft mich dazu an. Zwar kann ich nicht kurz vorbeikommen, aber er gibt seinen Desktop per Lync frei, so dass wir gemeinsam sehen, agieren und darüber sprechen können – ganz so als säßen wir gemeinsam vor dem Schirm.

Sollte ich später doch noch in einem Office auftauchen, setze ich mich dort an einen Arbeitsplatz, melde mich an und verbinde meine XenApp Session, die ich in der Zwischenzeit vielleicht auch aus dem Zug noch mal aufgerufen habe, um auf dem Tablet an einem Text weiter zu schreiben, und arbeite genau an der Stelle weiter, wo ich vorher aufgehört habe.

Abgesehen vom letzten Teil habe ich das heute schon alles so praktiziert. Da ich nicht mit dem Zug unterwegs bin, entfällt dieser Teil wohl auch, aber es kommt vor. Und das ist schon cool. 🙂

XenServer: Hängende VM zurücksetzen

Wenn auf einem XenServer mal eine VM total hängt und ein Shutdown über das XenCenter auch nicht hilft, geht es so weiter:

Auflisten der noch laufenden Tasks:

xe task-list

Den entsprechenden Tast abbrechen:

xe task-cancel force=true uuid=UUID

Häufig reicht dies bereits aus und die VM beendet sich entsprechend.

Ist dies nicht der Fall geht es wie folgt weiter:

Herausfinden der UUID der entsprechenden VM:

xe vm-list

Herausfinden der DomainID anhand der UUID:

list_domains | grep UUID

Zerstören der Entsprechenden DomainID:

/opt/xensource/debug/destroy_domain -domid DOMAINID

Daraufhin muss die VM noch neu gestartet werden:

xe vm-reboot name-label='VMNAME' --force

Daraufhin sollte die VM nach ein paar Minuten Startzeit wieder erreichbar sein.

Direkter Zugriff auf das Dateisystem einer virtuellen Maschine in einem XenServer LVM Storage

Wenn der XenServer nicht mehr startet oder sein lokales Storage Repository nicht mehr findet, kann folgendes Vorgehen Abhilfe schaffen, um kurzfristig auf benötigte Dateien zuzugreifen.

Voraussetzung, um auf die Daten der virtuellen Maschinen im lokalen XenServer Storage zuzugreifen, ist eine Live-CD mit LVM Unterstützung. In diesem Fall wurde eine Debian GNU/Linux 6 Live-CD verwenden.

Vorgehen:

1. Von der Live-CD booten und als Benutzer root anmelden

2. Den Befehl lvscan ausführen und das benötigte Logical Volume auswählen und „merken“. Welches LV zu welcher virtuellen Maschine gehört lässt sich meist nur durch Ausprobieren herausfinden, eingrenzen kann man die wahrscheinlichsten Kandidaten meist nur anhand der Größe des LV.

root@debian:/# lvscan

ACTIVE ‚/dev/VG_XenStorage-4a48ea5b-ca5d-280f-4699-8d930df8500b/LV-8adc14c2-38ff-4377-a096-911eff7f58c8‘ [100.20 GB] inherit
ACTIVE ‚/dev/VG_XenStorage-<ID>/LV-<ID>‘ [100.20 GB] inherit
ACTIVE ‚/dev/VG_XenStorage-<ID>/LV-<ID>‘ [9.24 GB] inherit
ACTIVE ‚/dev/VG_XenStorage-<ID>/LV-<ID>‘ [38.86 GB] inherit
ACTIVE ‚/dev/VG_XenStorage-<ID>/LV-<ID>‘ [26.03 GB] inherit
ACTIVE ‚/dev/VG_XenStorage-<ID>/LV-<ID>‘ [10.28 GB] inherit
ACTIVE ‚/dev/VG_XenStorage-<ID>/LV-<ID>‘ [8.06 GB] inherit
ACTIVE ‚/dev/VG_XenStorage-<ID>/LV-<ID>‘ [100.20 GB] inherit
[…]

3. Über parted den Offset der Partition des benötigte LV ermitteln. Dazu parted unter Angabe des LV, welches wir uns gemerkt haben, starten und die Darstellung auf Blocks ändern.

root@debian:/# parted /dev/VG_XenStorage-<ID>/LV-<ID>
GNU Parted 2.3
Using /dev/dm-1
Welcome to GNU Parted! Type ‚help‘ to view a list of commands.
(parted) unit
Unit? [compact]? b
(parted) print
Model: Linux device-mapper (linear) (dm)
Disk /dev/dm-1: 16106127360B
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number Start End Size Type File system Flags
1 32256B 16106127360B 16105065984B primary ntfs boot

(parted)
quit

Durch den Befehl print werden die verfügbaren Partitionen aufgelistet, nun müssen wir uns einen weiteren Wert merken und zwar den Wert in der Spalte Start. Anschließend kann das Programm parted mit dem Befehl quit verlassen werden.

4. Loopback-Device erstellen

root@debian:/# losetup -o 32256B -f /dev/VG_XenStorage-<ID>/LV-<ID>

Der Parameter –o bestimmt den Offset und –f die Datei bzw. in unserem Beispiel das LV welches eingehängt werden soll.

5. Zugewiesenes Loopback-Device ermitteln:

root@debian:/# losetup –a

6. Das Loopback-Device mit Hilfe von mount einhängen:

root@debian:/# mount /dev/loop-1 /mnt/lv-test1

Sofern der Typ des Dateisystems bekannt ist, kann anschließend in den Dateien der Virtuellen Maschine gestöbert werden.

Kriegsschauplatz Internet

Ein reißerischer Betreff, durchaus, aber wer regelmäßig einschlägige Branchennews konsumiert, der wird sicher festgestellt haben, dass die Zahl der „Online-Einbrüche“ und „Datendiebstähle“, oder zumindest die Berichterstattung darüber, seit einigen Monaten erheblich gestiegen ist. Vielleicht ist dies nur ein subjektiver Eindruck, aber selbst in den non-IT Medien waren Namen bekannter Opfer zu lesen, wie dem FBI, dem BKA, sämtlichen Sparten der Sony Gruppe und weiteren.

Gestohlen wurden u.a. geheime und vertrauliche Dokumente, Konto- und Adressdaten samt Passwörtern und was sonst nicht niet- und nagelfest war und als halbwegs interessant galt.

Neuerdings trifft es scheinbar auch vermehrt die weniger großen Unternehmen und Organisationen. Von der Handelskette Rewe war z.B. zu hören. Von den allgegenwärtigen DDoS-Attacken, die getreu ihrem Namen lediglich Dienste und Online-Angebote zeitweise zum Erliegen bringen, ganz zu schweigen.

Eine Web Application Firewall (kurz: WAF) ist eine gute Möglichkeit Erste Hilfe leisten zu können oder proaktiv Einbrüchen vorzubeugen. Sie arbeitet auf Applikationsebene (Layer 7) und kann somit Anfragen und Antworten auswerten und verändern. Eine Filterung ist sowohl mit Positiv- als auch mit Negativlisten möglich und es gibt verschiedene weitere Möglichkeiten bekannte Angriffe zu verhindern.

Die Lösung kann so z.B. auch eine Prüfung auf gültige Kreditkartennummern durchführen, um gezielt eine Übertragung dieser Daten nach außen zu verhindern. SQL Injections und CrossSiteScripting Angriffe können direkt in den Paketen durch harmlosen Code ersetzt werden. Die Manipulation von Formularen wird durch das Einfügen eines versteckten Feldes wirksam verhindert und bekannte Angriffsmuster können durch vom Hersteller gelieferte Signaturdateien erkannt werden.

Im einfachsten Fall werden beispielsweise nur Zugriffe über gelernte Positivlisten (vorher durchgeführte gutartige Requests) durchgelassen – eine sehr elegante Möglichkeit Web Applikationen sicherer zu machen. So haben wir zum Beispiel mit dem Citrix Netscaler ein starkes Werkzeug zur Hand, mit dem wir Web Applikationen absichern (und beschleunigen) können und der in der Platinum Edition auch noch eine vollständige Web Application Firewall mit hybridem (positiv und negativ kombinierbar) Sicherheitsmodell enthält.

Eine WAF filtert wirkungsvoll, an vorderster Front – prinzipiell sollte ein IT-System aber auch ohne so einen Filter sicher sein (Programmierung und Konfiguration). Aber wie immer gibt es keinen 100%-igen Schutz – und wenn es nur durch Insider-Wissen oder Social Engineering erlangte Zugriffswege sind, die „ganz normal“ die Systeme nutzen. Daher ist es für uns alle wichtig zu überlegen, wem wir welche Daten geben und wo wir sie lagern/bereitstellen.

Autoren: Thiemo Noack, Benjamin Rodewald

LDAPS mit Access Gateway Enterprise

Standardmäßig ist auf einem Windows Server 2008 LDAPS aktiviert, allerdings ist kein entsprechendes Zertifikat im System hinterlegt, was dazu führt, dass gültige Anmeldeversuche abgewiesen werden, sobald man den Security Type des Authentication Servers auf TLS oder SSL stellt.

Bei der Verwendung von PLAINTEXT ist der Login für Benutzer zwar möglich, sollte das Kennwort des Benutzers jedoch abgelaufen oder zurückgesetzt worden sein, stellt der Benutzer bei der nächsten Anmeldung am CAGEE fest, dass er sein Kennwort nicht ändern kann, obwohl er die Abfragen zum Ändern seines Kennworts richtig beantwortet. Zur erfolgreichen Änderung des Kennworts ist die Verwendung von LDAPS zwingend erforderlich.

Um die Kennwortänderung über das Webinterface des CAGEE zu ermöglichen müssen folgende Bedingungen erfüllt sein:

  • LDAP Server muss Anfragen über SSL akzeptieren (LDAPS)
  • Der Authentication Server des CAG muss Passwortänderungen erlauben und LDAPS nutzen

Für die Konfiguration von LDAPS wird in diesem Beispiel ein selbstsigniertes Zertifikat verwendet, die Zertifikatserstellung erfolgt nicht mit den Active Directory Certificate Services, sondern wird lokal auf der Windows Maschine durchgeführt.

 

Erstellen eines selbstsignierten Zertifikats:

Das Zertifikat wird auf dem Domain Controller erstellt der später LDAPS anbieten soll. Prinzipiell kann das Zertifikat auch mit OpenSSL erstellt werden, allerdings finden sich dann bei jedem Login über das CAG Warnmeldungen (Ereignis-ID: 36886) im Eventlog des Domain Controllers, da bestimmte Zertifikatserweiterungen (x.509 Extensions) fehlen.

Zur Erstellung des Request wird das Kommandozeilentool certreq verwendet, welches nach Übergabe einer .inf Datei alle benötigten Dateien anlegt. Wir benötigen also die Datei request.inf mit folgendem Inhalt:

;—————– request.inf —————–
[Version]
Signature=“$Windows NT$
[NewRequest]
Subject = „CN=server.domain.zz“ ; replace with the FQDN of the DC
KeySpec = 1
KeyLength = 2048
; Can be 1024, 2048, 4096, 8192, or 16384.
; Larger key sizes are more secure, but have
; a greater impact on performance.
Exportable = TRUE
MachineKeySet = TRUE
SMIME = False
PrivateKeyArchive = FALSE
UserProtected = FALSE
UseExistingKeySet = FALSE
ProviderName = „Microsoft RSA SChannel Cryptographic Provider“
ProviderType = 12
RequestType = PKCS10
KeyUsage = 0xa0
[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.1 ; this is for Server Authentication
;———————————————–

Nachdem die Datei angelegt ist, wird das Kommando certreq -new request.inf request.req mit Administratorberechtigungen ausgeführt. Um an die benötigten Dateien (Zertifikat und Private Key) zu kommen öffnen wir nun die mmc.exe und fügen das Snap-In Zertifikate für das Computerkonto „lokalen Computer“ hinzu. In der Baumansicht an der linken Seite Zertifikatsregistrierungsanforderungen -> Zertifikate erweitern. An dieser Stelle sollte ein Eintrag mit unseren Daten (server.domain.zz) zu finden sein. Ein Doppelklick auf den Eintrag öffnet das Zertifikat welches über den Karteireiter Details -> In Datei Kopieren… gespeichert wird. Nun noch einen Rechtsklick auf den Eintrag Alle Aufgaben -> Exportieren… und dem Dialog folgen.

  • Ja, privaten Schlüssel exportieren
  • Privater Informationsaustausch – PKCS#12
  • Alle erweiterten Eigenschaften exportieren
  • Kennwort eingeben
  • Speicherort auswählen und Fertigstellen

Nachdem die beiden Dateien gespeichert sind, wechseln wir in der Baumansicht zu den eigenen Zertifikaten und importieren die PKCS#12 Datei (Rechtsklick -> Alle Aufgaben -> Importieren..). Anschließend muss noch das gespeicherte Zertifikat, in die Vertrauenswürdigen Stammzertifizierungsstellen importiert werden. Sobald diese Schritte abgeschlossen sind, bekommen wir Antworten vom LDAP-Dienst über SSL.

Ob die Funktionalität tatsächlich bereit steht, kann mit dem Tool ldp.exe getestet werden. Das Tool über Ausführen ldp.exe starten und im Fenster Remotedesktopverbindung -> Verbinden die Adresse des Domain Controllers welcher LDAPS bereitstellt eingeben, SSL anhaken, Port 636 eingeben und mit OK bestätigen.

Wenn die Verbindung funktioniert erfolgt eine längere Ausgabe mit dem Inhalt

[…]
Established connection to server.domain.zz.
Retrieving base DSA information…
Getting 1 entries:
Dn: (RootDSE)
[…]

andernfalls wird eine Fehlermeldung angezeigt.

Anpassen der Einstellungen auf dem CAGEE:

Die Einrichtung im Bereich Windows ist an dieser Stelle abgeschlossen. Damit LDAPS vom CAGEE genutzt werden kann, müssen nun noch zwei Einstellungen am Authentication Server angepasst werden. Im Dialog des Authentication Server muss der Radiobutton Security Type auf SSL (Port 636) eingestellt werden und zusätzlich zu den bisherigen Einstellungen sollte die Checkbox Allow Password Change aktiviert werden.

Im Anschluss an diese Änderungen kommuniziert das CAGEE SSL gesichert mit dem LDAP-Backend und Benutzer sind in der Lage ihr Passwort über die Weboberfläche zu ändern.

iOS „Bewegungsprofile“

Nachdem das Thema gestern Abend sogar in der Tagesschau umfangreich behandelt wurde, sei der eine oder andere wichtiger Hinweis gestattet:

  • Es existiert keinerlei Beweis oder auch nur Indiz, dass Apple diese Daten sammelt – lediglich das einzelne Gerät erfasst und speichert sie. Zahlreiche Kommunikationsanalysen konnten keinen Transfer dieser Daten in Richtung Apple belegen oder Anhaltspunkte dafür liefern.
  • Die Erkenntnis, dass Geo-Location-Daten erfasst werden, ist nicht neu.
  • Die Erkenntnis, dass die Geo-Location-Daten auch gespeichert werden, ist ebenfalls nicht neu. Es existieren ebenfalls Werkzeuge (Software) und sogar ein Buch, die ein gutes halbes Jahr und mehr alt sind, die sich mit diesen Daten beschäftigen. Die beiden Kollegen von O’Reilly hätten diese Tatsachen zumindest erwähnen müssen, statt das alles jetzt als revolutionäre Entdeckung darzustellen.

Eine deutsche Adaption des oben referenzierten Artikels von Alex Levinson gibt es übrigens auch seit ein paar Minuten bei FAZ.net.