Spracherkennung mit Google Speech API

Mit dem Raspberry Pi sprechen ist eine spannende Sache. Die Google Speech API v2 ist eine einfache Möglichkeit dafür.

In einem älteren Artikel hatte ich bereits die API erwähnt. Dort hatte ich die Nutzung aber aufgrund der Situation, Daten an Google zu schicken, ausgeschlossen. Mittlerweile kamen jedoch ein paar Anfragen zu dem Thema, so dass ich dies hier noch einmal aufgreifen möchte. Viele Artikel im Internet sind leider veraltet und greifen auf Version 1 zurück. Daher gibt es hier eine vollständige Beschreibung für V2 inklusive Key Generierung.

UPDATE Juni 2018: Leider ist auch die v2 API mittlerweile veraltet. Grundsätzlich funktioniert der Ansatz hier noch. Lediglich das Ziel ist etwas anders. Siehe die Kommentare unten oder die Beispiele auf der Google Speech API Webseite.

ALSA und co

Die Einrichtung der Soundkarte funktioniert wie im anderen Artikel beschrieben.

Zusätzliche Module

$ sudo apt-get install flac
$ sudo apt-get install python-pycurl

API Key generieren

Zuerst muss die chromium-dev@chromium.org subscribed werden. Dies ist nötig, damit in der Google Clound Console die Option für die Speech API erscheint. Bei dem subscriben ist es aber möglich das Benachrichtigen per E-Mail zu deaktivieren! Anschließend auf der Developer Console ein Projekt erstellen und unter API die „Speech API“ aktivieren. Danach im Bereich „public key access“ den „Key for browser applications“ erstellen.

Das Skript

Den folgenden Inhalt in eine Datei „text2speech.sh“ kopieren und mittels „$ chmod +x text2speech.sh“ ausführbar machen.

#!/bin/bash

KEY="DEN_KEY_HIER_EINTRAGEN"
URL="https://www.google.com/speech-api/v2/recognize?output=json&lang=en-us&key=$KEY"

echo "Recording... Press Ctrl+C once to Stop and WAIT."
arecord -D plughw:0,0 -f cd -t wav -d 0 -q -r 16000 | flac - -s -f --best --sample-rate 16000 -o file.flac;

echo "Processing..."
wget -q -U "Mozilla/5.0" --post-file file.flac --header "Content-Type: audio/x-flac; rate=16000" -O - "$URL" >stt.txt

echo -n "Google reply: "
cat stt.txt

rm file.flac  > /dev/null 2>&1

Output

Die Ausgabe erfolgt im JSON Format. Dieser kann weiter verarbeitet werden. Das Projekt Pi Translate bietet ein Python Skript mit Textoutput an. Hier muss aber in der Datei „text-to-translate.py“ die letzte Zeile auskommentiert werden, andernfalls werden noch Übersetzungsprogramme durchgeführt. Am Anfang der Datei ist ein Feld für den Key.

Update: Zum parsen der JSON Datei in dem Skripte die Zeile „cat stt.txt“ mit dem folgenden Aufruf ersetzen:

cat stt.txt  | sed -e 's/[{}]/''/g' | awk -F":" '{print $4}' | awk -F"," '{print $1}' | tr -d 'n'

Referenzen: Raspberry Pi Voice Recognition Works Like Siri

Shodan – Security Suchmaschine oder Traum der Hacker

Shodan - das Google für Hacker? Ein Eishockeystadien, ISPs, IP Kameras und tausende offene Router im Internet, auffindbar mit einer Suchmaschine? Hier geht es um die Möglichkeiten für Unternehmen, die eigene Sicherheit zu erhöhen und eine Kurzanleitung zur Benutzung.

Die Suchmaschine Shodan ermöglicht die Suche nach Servern/Routern/PCs/Smartphones (also allem, was im Internet erreichbar ist – inklusive SCADA Systeme), Ländern, IP-Adressen, Ports, Bannern und vielem mehr.

Bereits auf der Defcon 18 (2010 SHODAN for Penetration Testers Michael Schearer Part – YouTube) und Defcon 20 (Dan Tentler – Drinking from the caffeine firehose we know as shodan – YouTube) gab es Fachvorträge zu der Suchmaschine. Dort wurde gezeigt, dass auch Krematorien, Eishockeystadien, ISPs, Überwachungskamera, Ampelanlagen, Waschstraßen und viele andere Geräte öffentlich erreichbar waren. Viele der Geräte wurden nie korrekt konfiguriert, so dass die Default Passwörter noch immer funktionieren.

Allein die Tatsache, dass die Suchmaschine solche Geräte einfach auffinden lässt hat in der Presse ein schlechtes Licht auf die Webseite geworden. Allerdings bietet Shodan für Sicherheitsforscher und Administratoren eine einfache Möglichkeit die eigene Serverfarm zu prüfen (sofern die Server bereits indiziert wurden). Alle Systeme die aus Gründen der Bequemlichkeit, ungesichert erreichbar sind, würden auch durch andere Wege auffindbar sein.

Häufige Suchen

Shodan bietet eine Seite für die häufigsten Suchanfragen. Die Liste gibt einen guten Einblick in das Potential der Suchmaschine.

Auf Platz eins steht die Suche nach Webcams, Netcam, Cameras und ähnlichen Schreibweisen. Oft sind Überwachungskameras ungesichert im Netz erreichbar. Bei einigen Kameras funktioniert sogar die Steuerung über ein Webinterface. So kann die Kamera bewegt und gezommt werden. Damit lassen sich viele Informationen, wie Firmennamen und Anwesenheitszeiten, ermitteln.

Ebenfalls in der Top10 ist die Suche nach „default password“, also Zugängen mit voreingestellten Benutzernamen und Passwortkombinationen. Die Ergebnisse sind potentiell erreichbare Seiten. In vielen Fällen steht das ursprüngliche Passwort nur in einem Infotext. Andere Systeme sind aber direkt erreichbar.

Die Suche zu „Anonymous access granted“ zeigt frei nutzbare FTP Server.

Sehr beliebt ist die Suche nach „scada“. Hinter den Ergebnissen finden sich viele Steuerungsgeräte für Infrastrukturkomponenten. Aus Gründen der Bequemlichkeit oder zum Einsparen von Mitarbeitern sind viele Systeme online erreichbar, um eine Fernwartung zu ermöglichen. Allerdings wird die Absicherung der Systeme oft nur unzureichend oder schlimmstenfalls überhaupt nicht durchgeführt. Das ermöglicht interessante Szenearien, wie das ausschalten der Kühlung eines Eishockeystadions (warum zur Hölle ist das im Internet erreichbar?!).

Eigene Suche

Ähnliche wie Google können bei Shodan die Suchergebnisse mit Filtern verfeinert werden. Als Operatoren sind +-| zugelassen. Also das ein- und ausschließen von Worten und das Oder. Filter werden mit einem Doppelpunkt (: ohne Leerzeichen) angegeben. Die folgenden Beispiele sind teilweise der Hilfe von Shodan entnommen.

city/country erlauben die Suche nach Städten und Ländern.

Bsp.: nginx city:"San Diego"; country:US (Ngix Server in San Diego, USA)

geo nimmt GPS Koordinaten und Entfernungen an.

Bsp.: apache geo:32.8,-117,50 (Apaches im Umkreis von 50km um 32.8,-117)

hostname filtert nach Domains oder Hostnamen.

Bsp.: iis hostname:.de (Microsoft IIS Server in Deutschland)

net schränkt die Ergebnisse auf IPs und Subnetze ein.

Bsp.: net:216.219.0.0/16 (Daten im Subnetz 216.219.*)

os ist der Filter für Betriebssysteme (windows, linux, cisco, …).

Bsp.: microsoft-iis os:"windows 2003" (Microsoft IIS auf Windows 2003)

port bietet eine Filterung auf Ports.

Bsp.: proftpd port:21 (ProFTPd auf Port 21)

before/ after sucht Daten die in dem Zeitraum gesammelt wurden.

Bsp.: apache after:22/03/2010 before:4/6/2010 (Apaches aus der Zeit von 22.03.2010 bis 4.6.2010)

Nutzen für Unternehmen

Wie kann nun das eigene Unternehmen von diesen Daten profitieren? Zum einen ist eine allgemeine Suche nach dem Firmennamen möglich. In den Ergebnissen werden alle Geräte auftauchen die in irgendeiner Art mit den Namen im Zusammenhang stehen. Bei Webservern beispielsweise die gesicherten Webserver über die Angaben in den SSL Zertifikaten oder die Banner von FTP Server mit einem Begrüßungstext.

Zusätzlich kann mittels net: oder hostname: Filter eine Suche auf die eigenen Domains erfolgen oder mittels ip eine Suche auf die Subnetze der Firma. Sofern Shodan bereits die Server im Index hat, gibt es möglicherweise interessante Ergebnisse.

Maltego und Shodan

Wie in dem Artikel Securitysoftware und Scanner erwähnt ist Maltego eine Software zum Erstellen von Topologien. Shodan bietet ein Add-On für Maltego an, um die Suchergebnisse einbinden zu können. Damit lassen sich Abhängigkeiten zwischen bekannten Systemen grafisch aufbereiten.

Raspberry Pi einrichten

Die ganze Haussteuerung lässt sich mit dem kleinen und handlichen Raspberry Pi durchführen. Wo es den kleinen Superhelden gibt und wie du den Raspberry Pi einrichten kanst, erfährst du hier.

Einkaufen

In der Raspberry Pi Einkaufsliste sind alle notwendigen Komponenten aufgeführt.

Raspbian installieren

Auf der Download Webseite raspberrypi.org/downloads gibt es das aktuelle Raspbian Image.

Unter Windows hilft die Software Win32DiskImager. Die Software muss mittels Rechtsklick auf „Als Administrator ausführen“ gestartet werden. Danach wählt man das heruntergeladene ISO Image aus, gibt den korrekten(!!!) Laufwerksbuchstaben der SD Karte an und klickt auf „write“.

Nach dem Schreiben des Images auf die Karte ist die Einrichtung von Raspbian erledigt. Die SD Karte muss nur noch in den Raspberry Pi gesteckt werden. Nach dem Anbringen der Stromversorgung sollte das System booten. Mit einem SSH Tool auf die IP Adresse erscheint die Anmeldemaske. Die Zugangsdaten lauten „pi / raspberry“.

Raspberry Pi konfigurieren

Die Konfiguration ist im Raspberrycenter hervorragend beschrieben.

Danach kann die Einrichtung der Hausautomatisierung beginnen.

Bildquelle: raspberrypi.org

Securitysoftware und Portscanner

Netzwerk- und Vulnerability Scanner gehören neben Portscanner, Netzwerkanalysetool und Sniffer zum Standardrepertoire eines Administrators. Einrichtung und Aufbau der Programme erfordert oft viel Zeit. Einfacher ist hier eine Lösung die viele Tools direkt mitbringt.

Eine von vielen Lösungen ist die Linux Live Distribution Kali. Kali Linux ist der Nachfolger des eingestellten BackTrack Linux. Der große Vorteil des Systems besteht darin, dass Konfigurationen für unterschiedlichste Szenarien bereitstehen. Die Standard ISO Datei umfasst die gängigsten Tools aus den Bereichen Password Recovery Tool, Netzwerk-/Portscanner, Sniffer, Wireless Analyse, Vulnerability Scanner und einigen mehr. Mittels Forensic Modus können Dateisysteme ohne Veränderung ausgelesen werden.

Nutzung

Die Nutzung ist dabei sehr intuitiv. Nach dem herunterladen der ISO Datei, kann diese auf eine DVD oder einem USB Stick installiert werden. Im Bootmenü ist eine Auswahl des gewünschten Modus möglich. Danach begrüßt einem der Desktop, der die gängigen Tools bereits nach Kategorien sortiert zur Verfügung stellt.

Neben der i386 und amd64 Architektur steht auch eine ARM-Fassung von Kali für den Raspberry Pi zur Verfügung!

Rechtliches

Ein rechtlicher Hinweis für deutsche Anwender ist der Wikipedia zu entnehmen.

Kali Linux enthält Softwaretools, die zum Teil Sicherheitsvorkehrungen umgehen und die nach § 202c StGB, dem Ende Mai 2007 inkraftgetreten sogenannten Hackerparagrafen, in Deutschland als Computerprogramme zum Ausspähen von Daten aufgefasst werden. Aufgrund dieser Gesetzeslage kann bereits der Besitz oder Vertrieb strafbar sein, sofern die Absicht zu einer rechtswidrigen Nutzung nach § 202a StGB (Ausspähen von Daten) oder § 202b StGB (Abfangen von Daten) besteht.

Top10 Tools

Nessus (tenable.com) Nessus ermöglicht, analog zu Nexpose, das Scannen nach bekannten Schwachstellen. Als Ergebnis listet der Scanner eine Reihe von potentiellen Sicherheitslücken auf und bietet Anleitungen zur Behebung.

Metasploit Framework (metasploit.com) Mit dem Metasploit Framework können Exploits getestet und entwickelt werden. Metasploit ermöglicht die Überprüfung von Sicherheitslücken, die Nexpose erkannt hat.

Aircrack-ng (aircrack-ng.org) Aircrack-ng umfasst die Analyse von Funknetzwerken. Mit der Software können 802.11 WEP and WPA-PSK Keys ermittelt werden.

Burp Suite (portswigger.net) Die Burp Suite stellt Tools für die Sicherheitsanalyse von Webapplikationen. WebSpider und Proxys unterstützen die Analyse.

THC-Hydra (thc.org – hydra) Mittels THC-Hydra können Zugangsdaten ermittelt werden. Die Software unterstützt sehr viele Applikationen und Protokolle.

John the Ripper (openwall.com – john) John the Ripper ist ein Tool zur Wiederehestellung von Passwörtern. Insbesondere UNIX Passwörter sind hiermit analysierbar.

Maltego (paterva.com – maltego) Die Software ermöglicht das Sammeln von Daten über Unternehmen, Personen, Webseiten und Sozialen Netzwerken und bringt diese in eine Verbindung miteinander. Damit ergibt sich ein Netzwerk aus Relationen, die grafisch aufbereitet werden.

Nmap (nmap.org) Network Mapper ist ein einfaches Analyse Tool für die Ermittlung von offenen Ports (Portscanner) und die Analyse von Betriebssystem und Serverversionen.

OWASP Zed Attack Proxy Project (owasp.org) Das Tool des Open Web Application Security Projects ist ein Schwachstellenscanner für Webapplikationen. Die intuitive Oberfläche ermöglicht schnelle Tests der eigenen Applikationen.

Wireshark (wireshark.org) Wireshark schneidet den Datenverkehr im Netzwerk mit und ermöglicht eine umfassende Analyse der Datenpakete und deren Inhalt. Mit Hilfe von umfangreichen Filtern können relevante Informationen einfach und zusammenhängend extrahiert werden.

Weitere Tools

sqlmap (sqlmap.org) sqlmap umfasst die Erkennung aus Nutzung von SQL Injections für alle gängigen Datenbanksysteme.

Social-Engineer Toolkit (SET) (trustedsec.com) SET bietet Tools rund um das Thema Social-Engineer Hacking. Beispielsweise lassen sich bestehende Webseiten klonen, um die modifizierte Version für gefälschte Anmeldemasken zu nutzen.

Ettercap (github.io – ettercap) Ettercap ermöglicht Man-in-the-middle Attacken. Mit dem Tool ist es möglich, Netzwerkpakete zu manipulieren und zu filtern.

Nemesis (sourceforge.net – nemesis) Nemesis ist ein Tool zur Manipulation von Datenpaketen. Intrusion Prevention Systeme (IPS) können hiermit geprüft werden.

Weiterführende Artikel

Schnellstart mit Kali Linux Kurze Einführung von Heise security zu Kali Linux.

Cracking Passwords Guide Ein Artikel zur Wiederherstellung von Passwörtern.

Extracting MetaData from photos using exiftool Hiermit lassen sich beispielsweise GPS Koordinaten aus Bildern extrahieren.

Hacking Tools Repository Hunderte von Sicherheitsprogrammen aufgelistet.

Bildquelle: By Offensive Security (Desktop screen shot) [GPL], via Wikimedia Commons

Tails und Tor

Ich weiß was du gestern geschrieben hast. Seit den Enthüllungen von Edward Snowden rücken Anonymisierungsdienste und Programme immer mehr in den Vordergrund. Neben dem Tor Projekt für einen anonymen Webzugang bietet Tails ein komplettes System zum Schutz der Privatsphäre.

Ein Wort der Warnung: Sowohl der Guardian als auch Heise Security verweisen auf die Dokumente der NSA über die Überwachung von Tor Nutzern. Die NSA ist verärgert über das Tor Netzwerk weil es die Überwachung extrem erschwert und teilweise unmöglich macht. Dadurch ziehen sich Tor Interessierte potentiell die Aufmerksamkeit der Fahnder auf sich.

Funktionsprinzip

Dennoch ist Tor ein hervorragendes Mittel zur anonymen Nutzung des Internets und anderer Dienste. Grundsätzlich basiert die Idee von Tor darauf, die Daten durch wechselnde Internetknoten zu schicken. Der Client wählt zufällig einen Eintrittsknoten aus einer großen Liste von Servern. Die Daten werden danach über zufällige Tor-Server zum Austrittsknoten geleitet. Innerhalb des Netzwerkes sind die Daten immer verschlüsselt. Am Ausgangsknoten kann es zu einer unverschlüsselten Verbindung kommen. Hierbei helfen End-To_End Encryptions. Grundsätzlich hängt die Sicherheit von Tor von der Anzahl der insgesamt zur Verfügung stehenden Nodes im Netzwerk ab und von der Nutzung des Dienstes. Wer Tor nutzt um sich, ohne entsprechende Sicherungsmaßnahmen, mit Anmeldedaten zu Authentifizieren, umgeht das Prinzip der anonymen Nutzung. Bekannte Sicherheitslücken im Browser und dem Betriebssystem können ebenfalls als Mittel gegen die Tor Nutzer missbraucht werden.

Tails

Die Linux Distribution Tails (The Amnesic Incognito Live System) geht noch einen Schritt weiter. Bei Tails werden alle Datenpakete über das Tor Netzwerk verschickt. Sämtliche direkte Verbindungen sind unterbunden. Außerdem startet das System als Live System ohne Daten auf einem Medium zu speichern. Dadurch hinterlässt Tails keinerlei Spuren auf dem System. Neben der Anonymisierung des Standorts und Zugriff auf gesperrte Dienste, beinhaltet die Distribution umfangreiche Kryptographische Werkzeuge.

Das Benutzerhandbuch von Tails ist sehr umfangreich. Unter dem Bereich Warnungen ist eine Liste mit Szenarien zu finden, in denen Tails keinen Schutz bieten kann.

Anonym unterwegs

Wer anonym im Netz unterwegs sein möchte sollte noch einige Punkte beachten. Für den sicheren Zugang muss eine Software wie Tor (besser Tails) zum Einsatz kommen. Idealerweise läuft die Software auf einem ein leeren Linux System auf dem PC. Sicherheitslücken könnten sonst den Zugriffe und das Auslesen von persönlichen Daten ermöglichen. Das System sollte eine eigene dedizierte Hardware haben und vom normalen Arbeitsplatzrechner abgetrennt sein. Die Hardware am Besten direkt vom Händler beziehen und Bar bezahlen. Wer paranoid ist und seinem Händler nicht traut könnte sonst auf eine Verbindung der Identifikationsmerkmale eines PCs (MAC Adresse, …) und der Kreditkarte kommen. Wer sich noch weiter absichern möchte, nutzt den PC nicht in den eigenen vier Wänden und vermeidet den Zugang über das eigene W-LAN Netzwerk. Somit wäre der ideale anonyme Platz vermutlich ein neu gekaufter PC mit Tails auf dem USB Stick in einem öffentlichen W-LAN.

Dokumente dürfen keine Metadaten enthalten.

Bildquelle: https://tails.boum.org/doc/first_steps/startup_options/index.de.html