Forum: Mikrocontroller und Digitale Elektronik Penetration Test on Embedded Device


von Soriano B. (armer_junge)


Lesenswert?

Hallo,
Hat Irgendjemand Erfahrungen mit Penetration Test an einem Embedded 
System?
wie geht man da vor ? hat Irgendjemand einen Leitfaden oder so was 
ähnliches ? was muss man da beachten ?

Vielen Dank im Voraus.

Gruss
Soriano

von Aha (Gast)


Lesenswert?

> Penetration Test

Da misst man die Eindringtiefe. Also laesst das Teil von 100m oder so 
fallen und schaut wie weit es in den Boden oder so eindringt.

Sowas misst man vieleicht mit Projektilen..

von Dennis S. (eltio)


Lesenswert?

So pauschal kann man das glaube ich nicht sagen (jedenfalls wenn du 
Security meinst). Welche Schnittstellen und Protokolle hast du denn?

Gruß
Dennis

P.S.: es gibt einige "Standards" die sehr teuer sind.

von Arc N. (arc)


Lesenswert?

Dennis S. schrieb:
> So pauschal kann man das glaube ich nicht sagen (jedenfalls wenn du
> Security meinst). Welche Schnittstellen und Protokolle hast du denn?
>
> Gruß
> Dennis
>
> P.S.: es gibt einige "Standards" die sehr teuer sind.

Welche Standards? Mir ist nur bekannt, dass solche Tests z.B. im Rahmen 
der ISO 27001 gemacht werden.

Ansonsten ist die Frage was der TO da genau testen will bzw. auf welcher 
Ebene: Passive oder aktive Angriffe. Reverse Engineering erlaubt (der 
Firmware oder sollen ICs abgeschliffen werden und deren Funktion 
rekonstruiert werden), Logikfehlertests (der Protokolle), 
Seitenkanalangriffe z.B. Differential Power Analysis oder kombinierte 
Angriffe wie Fault Injection zusammen mit DPA?

von Heinz L. (ducttape)


Lesenswert?


von Mark B. (markbrandis)


Lesenswert?

Soriano B. schrieb:
> Hallo,
> Hat Irgendjemand Erfahrungen mit Penetration Test an einem Embedded
> System?
> wie geht man da vor ? hat Irgendjemand einen Leitfaden oder so was
> ähnliches ? was muss man da beachten ?

Das dürfte entscheidend davon abhängen:

1.) welche Schnittstellen das System nach außen hin hat
2.) an welchem Ort es sich befindet

Ein System, das nicht an ein Netzwerk (z.B. Internet) angeschlossen ist, 
kann auch nicht über dieses Netzwerk gehackt werden.

Bei einem Geldautomaten zum Beispiel ist sicher auch interessant, ob man 
physikalisch vor Ort drankommt und etwas manipulieren kann. Bei einem 
Steuergerät auf einer Ölbohrinsel in der Arktis kann man einen 
Vor-Ort-Angriff wohl eher ausschließen.

von Nö-Sager (Gast)


Lesenswert?

Soriano B. schrieb:
> Hallo,
> Hat Irgendjemand Erfahrungen mit Penetration Test an einem Embedded
> System?

Pentest bezieht sich auf Software bspw wie dringe ich über einen 
Webserver in das OS ein. Auf welcher Hardware die zu penetrierende 
Software läuft ist egal.

von Arc N. (arc)


Lesenswert?

Nö-Sager schrieb:
> Soriano B. schrieb:
>> Hallo,
>> Hat Irgendjemand Erfahrungen mit Penetration Test an einem Embedded
>> System?
>
> Pentest bezieht sich auf Software

Nein, da es je nach Anwendung schlicht nicht reicht nur die Software zu 
testen.
Ähnlich zu Metaploit und anderen Frameworks gibt es für Hardware z.B. 
http://hardsploit.io/the-project/

> bspw wie dringe ich über einen
> Webserver in das OS ein. Auf welcher Hardware die zu penetrierende
> Software läuft ist egal.

Nein. Beispiel: Software x nutzt die Hardware-Verschlüsselungsfunktionen 
eines Controllers. Test könnte z.B. eine Power Analysis sein, die 
aufdeckt, dass diese Hardware-Implementierung die Schlüssel leakt 
(Firmware könnte damit bspw. ausgetauscht und das Gerät übernommen und 
weiteres angestellt werden)

Schönes Beispiel:
http://www.cs.tau.ac.il/~tromer/acoustic/
"The attack can extract full 4096-bit RSA decryption keys from laptop 
computers (of various models), within an hour, using the *sound 
generated by the computer* during the decryption of some chosen 
ciphertexts."

von Heinz L. (ducttape)


Lesenswert?

Beliebt sind auch timing-leaks wo auf einigen Hardwareimplementierungen 
Schlüssel ermittelt werden können indem die Laufzeiten verschiedener 
Zweige nachverfolgt werden. Häufig ließen sich so auch lange und 
komplexe Keys in endlicher Zeit ermitteln.

Embedded PenTesting läuft teilweise ganz anders ab als herkömmliches. 
Auch weil man es selten mit general purpose hardware zu tun hat.

von Soriano B. (armer_junge)


Lesenswert?

Mark B. schrieb:
> 1.) welche Schnittstellen das System nach außen hin hat
> 2.) an welchem Ort es sich befindet

Das System ist so ähnlich wie ein Bordcomputer in einem Bus mit 
Druckfunktion.
er besitzt folgende Schnittstellen: WLAN, Bluetooth, USB, SD-Karten 
Slot.

von Kaj G. (Firma: RUB) (bloody)


Lesenswert?

Wie wärs wenn du mal bei einschlägigen Instituten anfragst, z.B. das 
Fraunhofer?

von ??? (Gast)


Lesenswert?

Dann einfach alle Einfallpunkte durchgehen.
Die Funkschnittstellen sind das hauptsächliche Einfalltor.
USB&SD braucht physikalischen Zugriff, Funk nicht.
Also testen ob man z.B. via Bruteforce mit einem Notebook oder 
Smartphone ins WLAN bzw. Bluetooth kommen kann.
Wenn Dir das Protokoll bekannt ist kannst Du das als Einstiegspunkt 
nehmen.
Wirklich sicher wird's nie ...

von Mark B. (markbrandis)


Lesenswert?

??? schrieb:
> Dann einfach alle Einfallpunkte durchgehen.
> Die Funkschnittstellen sind das hauptsächliche Einfalltor.

Dies.

Also zum Beispiel mal mit einem Tool wie Wireshark den Datenverkehr 
mitschneiden zwischen dem Gerät und einer Gegenstellle, und nachschauen 
ob da irgendwas im Klartext übertragen wird was besser verschlüsselt 
sein sollte. Zum Beispiel Passwörter.

Wenn Dienste aktiv sind, die nicht aktiv sein sollten - zum Beispiel 
telnet - dann diese deaktivieren. Hierfür kann ein Portsniffer hilfreich 
sein.

von Fpgakuechle K. (Gast)


Lesenswert?

Arc N. schrieb:

> Nein. Beispiel: Software x nutzt die Hardware-Verschlüsselungsfunktionen
> eines Controllers. Test könnte z.B. eine Power Analysis sein, die
> aufdeckt, dass diese Hardware-Implementierung die Schlüssel leakt
> (Firmware könnte damit bspw. ausgetauscht und das Gerät übernommen und
> weiteres angestellt werden)
>
> Schönes Beispiel:
> http://www.cs.tau.ac.il/~tromer/acoustic/
> "The attack can extract full 4096-bit RSA decryption keys from laptop
> computers (of various models), within an hour, using the *sound
> generated by the computer* during the decryption of some chosen
> ciphertexts."

Das ist aber kein Pentest sondern eine Side-channel attacke.

Pentest sind hier gut definiert:
https://www.internet-sicherheit.de/fileadmin/docs/downloads/andere_studien_dokumente/BSI/penetrationstest.pdf

Stichworte für die Suche nach Schutzmassnahmen für Embedded
*Anti tamper
*TEMPEST
*side channel attacks
*Van Eck phreaking

Heinz L. schrieb:
> Embedded PenTesting läuft teilweise ganz anders ab als herkömmliches.

Eben, deshalb nennt man es auch nicht pentesting.

MfG,

von Johannes O. (jojo_2)


Lesenswert?

Soriano B. schrieb:
> Hat Irgendjemand Erfahrungen mit Penetration Test an einem Embedded
> System?

Ich habe auf diesem Gebiet berufliche Erfahrung und Kontakte.


Einen Leitfaden oder Dinge die "zu beachten" sind gibt es so pauschal 
nicht. Das ist jedes mal ein individueller Vorgang, der mit dem Kunden 
abgestimmt werden muss. Vor dem Pentest sollte beispielsweise erstmal 
eine Bedrohungsanalyse erfolgen, damit festgehalten wird, WAS denn genau 
getestet werden soll. Insgesamt ist das ganze KEINE einfache Sache die 
man mal schnell selbst erledigt. Erfahrung auf dem Gebiet muss auf jeden 
Fall da sein, da gibt es unglaublich viele Fallstricke. Ganze Firmen und 
Institute leben davon.

Wenn du Interesse hast, einen PROFESSIONELLEN Pentest durchführen zu 
lassen, dann schreib mich bitte über das Forum an, dann kann ich einen 
Kontakt herstellen.

von Soriano B. (armer_junge)


Lesenswert?

Johannes O. schrieb:
> Ich habe auf diesem Gebiet berufliche Erfahrung und Kontakte.
>
> Einen Leitfaden oder Dinge die "zu beachten" sind gibt es so pauschal
> nicht. Das ist jedes mal ein individueller Vorgang, der mit dem Kunden
> abgestimmt werden muss. Vor dem Pentest sollte beispielsweise erstmal
> eine Bedrohungsanalyse erfolgen, damit festgehalten wird, WAS denn genau
> getestet werden soll. Insgesamt ist das ganze KEINE einfache Sache die
> man mal schnell selbst erledigt. Erfahrung auf dem Gebiet muss auf jeden
> Fall da sein, da gibt es unglaublich viele Fallstricke. Ganze Firmen und
> Institute leben davon.
>
> Wenn du Interesse hast, einen PROFESSIONELLEN Pentest durchführen zu
> lassen, dann schreib mich bitte über das Forum an, dann kann ich einen
> Kontakt herstellen.

Danke für's Angebot, ist aber leider nicht möglich, da es nur um ein 
Master-thesis geht.
Wie ist es mit der Bedrohungsanalyse? wie geht mann hier vor?
ich hoffe, dass Sie mir trotzdem paar Tipps geben würden.

von Christian B. (casandro)


Lesenswert?

Was erst mal wichtig ist, ist zu wissen was überhaupt das Szenario ist. 
Es gibt zum Beispiel jede Menge Deppen die es für ein Problem halten, 
wenn jemand seine eigene Firmware auf ein Gerät spielen kann wenn man 
physikalischen Zugriff hat. Eigenen Code in das Gerät über die 
Webschnittstelle ausführen zu können kann aber ein großes Problem sein, 
oder es kann sogar relativ egal sein.

Also mach Dir erst mal Gedanken darüber, was du schützen willst, dann 
arbeite sich davon runter auf die Dinge die Du überprüfen willst.

von Fpgakuechle K. (Gast)


Lesenswert?

Kaj G. schrieb:
> Wie wärs wenn du mal bei einschlägigen Instituten anfragst, z.B. das
> Fraunhofer?

Eher nicht. Kommerziel beackert (nur?) Infineon in Augsburg das Thema in 
bezug auf Chipkarten.

http://www.infineon.com/dgdl/Visibility+Campaign+Augsburg.pdf?fileId=5546d46149a28bd10149a44fd3960009

 Die werden dann vom BSI zertifiziert die wiederum den TÜV den Chip auf 
Verletzbarkeit testen:

https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Zertifizierung/Reporte/Reporte08/0827a_pdf.pdf?__blob=publicationFile&v=1

Die halten auch ab und zu Vorträge an der FH Augsburg, vielleicht 
schicken dir die ein script zu.


Auf die schnelle hab ich nur was zu mobilen Geräten gefunden, nicht 
embedded:
https://www.unibw.de/code/ergebnisse/speeches/kickoff/workshop4/at_download/file

MfG

von Johannes O. (jojo_2)


Lesenswert?

Soriano B. schrieb:
> Wie ist es mit der Bedrohungsanalyse? wie geht mann hier vor?
> ich hoffe, dass Sie mir trotzdem paar Tipps geben würden.

Also kurz gesagt machst du folgendes:
Du betrachtest dein Gerät und dessen Einsatzgebiet. Dann stellst du dir 
die Frage, welche Gefahren (im weiteren Sinne) bestehen und wer 
Interesse an Manipulationen oder Informationen hätte. Da kannst du dann 
noch ein Angreifermodell aufstellen.

Ich mach mal ein paar kurze Beispiele für Bedrohungen:

- Ein Mitbewerber könnte versuchen, euer Gerät zu klonen oder 
irgendwelche Algorithmen zu extrahieren, die ihr zur Datenverarbeitung 
verwendet. D.h. es geht hier um den Schutz geistigen Eigentums.

- Ein Angreifer könnte versuchen, übers Internet Zugang zu deinem Gerät 
zu bekommen (beispielsweise über schlecht abgesicherte Schnittstellen / 
Fernwartung etc.) um Schaden zu verursachen. Der Angreifer könnte 
beispielsweise
 * das Gerät durch Fehlkonfiguration zerstören
 * irgendein Produktionssystem lahmlegen
 * die Qualität deiner Produkte verringern
 * das Gerät als Zwischenpunkt verwenden, um das Firmennetz weiter zu 
infiltrieren.
 * usw. usw.

- Ein Angreifer könnte versuchen, dein Gerät zu modifizieren um 
Erweiterungen ohne Bezahlung/Lizenz freizuschalten (sofern bei dir sowas 
angeboten wird).

Da ist noch viel mehr denkbar. Kommt ganz auf deine Anwendung drauf an. 
Da kann einiges wegfallen (beispielsweise Bedrohungen über das Internet, 
wenn du gar keinen Netzwerkanschluss hast), aber auch was dazukommen 
(beispielsweise Schutz der Daten verschiedener Benutzer untereinander, 
bei einem multi-user system).

Als nächstes kannst du noch ein Angreifermodell aufstellen:
Beispielsweise verfügt ein Mitbewerber üblicherweise über große 
finanzielle Möglichkeiten, technisches know-how, große finanzielle 
Motivation usw.
Ein Angreifer wie im letzten Fall ist ein Endanwender und versucht das 
beispielsweise nur mal kurz, gibt aber schnell auf, wenn es nicht 
klappt. Da ist die Motivation geringer und auch der Schaden bei euch 
nicht so groß (1 EVENTUELL verlorener Lizenzverkauf). Im ersten Fall, 
wenn das Gerät kopierbar ist, ist der potentielle Schaden viel größer.

Basierend darauf würde ich dann überlegen, was ich denn wirklich 
schützen will. Darf beispielsweise der Programmspeicher für einen 
Angreifer leicht erreichbar sein? Wie müssen Schnittstellen abgesichert 
sein? Dann würde man von einem weitgehend unabhängigen(!) Team die 
Sachen überprüfen lassen. Also keinesfalls von denen, die es schon 
implementiert haben.

Ansonsten würd ich aber mal sagen: Schreib doch mal, was du gemacht 
hast. Dann kann ich dir da eventuell ein paar Tipps geben.

von Arc N. (arc)


Lesenswert?

Soriano B. schrieb:
> Danke für's Angebot, ist aber leider nicht möglich, da es nur um ein
> Master-thesis geht.

Welche Uni? Wenn es in NRW ist, mal an der RUB vorbeischauen. Die haben 
diverse Lehrstühle 
http://www.ei.ruhr-uni-bochum.de/fakultaet/professuren/, einen der 
wenigen IT-Sicherheitsstudiengänge in DE
und das Horst Görtz Institut für IT-Sicherheit
https://www.hgi.ruhr-uni-bochum.de/hgi/news/

Fpga K. schrieb:
>> Schönes Beispiel:
>> http://www.cs.tau.ac.il/~tromer/acoustic/
> Das ist aber kein Pentest sondern eine Side-channel attacke.
>
> Pentest sind hier gut definiert:
> 
https://www.internet-sicherheit.de/fileadmin/docs/downloads/andere_studien_dokumente/BSI/penetrationstest.pdf

"Ein Beispiel ist ein Penetrationstest bei dem gezielt geprüft werden 
soll, ob es unautorisierten Dritten möglich ist, über das Internet auf 
Systeme innerhalb des LANs des Unternehmens zuzugreifen."

Ob das jetzt auf "direktem" Weg bspw. mit einem Default-Passwort oder 
über einen Timing-Seitenkanal geht läuft aufs selbe hinaus: Zugriff ist 
möglich.

oder wie es das BSI formuliert "Technik
: Welche Techniken werden beim Testen eingesetzt?
Beim klassischen Penetrationstest werden die Systeme nur über das 
Netzwerk angegriffen.
Ergänzend können die Systeme auch mittels *sonstigen physischen 
Angriffen* ... attackiert werden"

und zu Seitenkanälen:

"--durch Umgehung dieser Systeme durch einen direkten physischen Zugriff
 zu erlangen. Hierzu zählt z. B. der direkte Datenzugriff an einer 
nicht-passwortgeschützten Arbeitsstation nach Erlangung von 
unberechtigtem Zugang in die Gebäude und/oder Serverräume."

von Kaj G. (Firma: RUB) (bloody)


Lesenswert?

Fpga K. schrieb:
> Kaj G. schrieb:
>> Wie wärs wenn du mal bei einschlägigen Instituten anfragst, z.B. das
>> Fraunhofer?
>
> Eher nicht. Kommerziel beackert (nur?) Infineon in Augsburg das Thema in
> bezug auf Chipkarten.
Nein.
Wir haben auch Geräte die vom BSI zertifiziert werden müssen 
(Verschlüsselung, Wie schützen wir bestimmte Hardwarebausteine, 
Sicherstellen der Funktionsuntauglichkeit nach Manipulation, usw.), und 
die Gutachten dazu, welche Anforderungen bestehen, Bedrohungs Szenarien 
etc. pp. stammen vom Fraunhofer SIT.
https://de.wikipedia.org/wiki/Fraunhofer-Institut_f%C3%BCr_Sichere_Informationstechnologie
https://www.sit.fraunhofer.de/

Alternativ würde ich noch die Ruhr Universität Bochum vorschlagen.

von Fpgakuechle K. (Gast)


Lesenswert?

Arc N. schrieb:
> "Ein Beispiel ist ein Penetrationstest bei dem gezielt geprüft werden
> soll, ob es unautorisierten Dritten möglich ist, über das Internet auf
> Systeme innerhalb des LANs des Unternehmens zuzugreifen."
>
> Ob das jetzt auf "direktem" Weg bspw. mit einem Default-Passwort oder
> über einen Timing-Seitenkanal geht läuft aufs selbe hinaus: Zugriff ist
> möglich.

Nein das ist nicht das gleiche. In der definition steht deutlich "über 
das Internet  ... zugreifen". Also ohne "körperlichen" Zugriff auf das 
Gerät. Wobei man elektromagnetische Ab/Einstrahlung auch zu den 
"körperlichen" Zugriffsmöglichkeiten zählt.

Vielleicht kann man es auch so zusammenfassen:
-Pentest          -> Software hacking
-embedded devices -> hardware Hacking


Oder noch abstrakter so: beim Pentest "denkt" das System vor man wäre 
ein berechtigter User oder man benötigt für die Aktion keine besondere 
Rechte, während man bei embedded  hacking das system mit physischer 
"Gewalt" seinen Willen aufzwingt. Im zwischenmenschlichen Bereich wäre 
das der Unterschied zwischen "Betrug/Aufschwatzen/social engineering" 
und  "Gewaltsamer Raub". ;-)

MfG

PS:
Auch timing seitenkanal benötigt direkten Zugriff (auf Ein- und 
Ausgangs-"port/kanal") um wirklich die Rechendauer zu messen und nicht 
Paketlaufzeiten. Und die Laufzeit der Software ist leicht fixierbar 
(intervall timer zur Audgangsausgabe).
Um das auszuhebeln kann man die Stromaufnahme der CPU messen - und das 
geht nicht ohne physischen Zugang.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.