Bevorzugte Programmiersprachen für Exploits

Bevorzugte Programmiersprachen für Exploits

Marc Ruef
von Marc Ruef
Lesezeit: 7 Minuten

Gemeinhin wird unter einem Exploit ein Stück Software verstanden, das für die automatisierte oder semi-automatisierte Ausnutzung einer Sicherheitslücke genutzt werden kann. Im einfachsten Fall wird beispielsweise die IP-Adresse des Zielsystems angegeben und auf diesem durch die angegangene Sicherheitslücke erweiterte Rechte erlangt.

Durch eine statistische Auswertung aktueller Standalone-Exploits sollten Rückschlüsse auf bevorzugte Programmiersprachen gezogen werden. Hierzu wurden die ersten 9’500 Exploits, welche auf der populären Webseite milw0rm.com veröffentlicht wurden (der vermeintliche Tod von str0ke war zum Glück nur ein Hoax), untersucht.

Häufigkeit von Programmiersprachen bei Exploits

Obenstehende Grafik zeigt die Verteilung der Popularität der einzelnen Programmiersprachen auf. Hierbei ist zu sehen, dass in ANSI C geschriebene Exploits mit 33.66% den ersten Platz belegen. Dicht gefolgt mit 30.01% von in Perl umgesetzten Exploits. Die Popularität dieser klassischen Sprachen ist noch immer – gerade im Security-Bereich – anhaltend. Viele klassische Exploits wurden damit umgesetzt und damit das Verständnis für diese Sprache fest verankert.

Auf Platz drei folgt mit 14.23% – also schon ein bisschen abgeschlagen – die eigentlich eher unerwartete Sprache PHP. Sie wird vorzugsweise im Webbereich eingesetzt und geniesst keinen sonderlich guten Ruf. Immerwieder wird ihr von vermeintlichen “Experten” angedichtet, per se zu Sicherheitslücken zu neigen. Die dann doch überdurchschnittlich hohe Popularität im Exploiting-Bereich dürfte mitunter auf die Einfachheit der Sprache dank der Vielzahl bereitgestellter Funktionen zurückzuführen sein.

Pos Sprache Auftreten Grösse Ø LOC Total
1. ANSI C 33.66% 7’009 Bytes 206’449
2. Perl 30.01% 4’324 Bytes 97’485
3. PHP 14.23% 7’576 Bytes 80’053
4. C++ 7.55% 3’067 Bytes 20’051
5. Phyton 5.35% 3’691 Bytes 10’215
6. HTML 4.24% 3’825 Bytes 11’386
7. Shell 1.75% 2’221 Bytes 2’929
8. Java 1.56% 2’276 Bytes 3’208
9. Ruby 0.88% 4’403 Bytes 2’649
10. Pascal 0.52% 4’525 Bytes 226
11. Assembler 0.20% 1’834 Bytes 464
12. Lisp 0.05% 1’130 Bytes 57

Abgesehen von HTML als Seitenbeschreibungssprache scheint die restliche Wahl der Programmiersprachen effektiv den Vorlieben der jeweiligen Entwickler zu unterliegen. So ist absehbar, dass Ruby auf Grund seiner Eleganz mittelfristig in die Top 5 kommen wird. Ruby ist sowieso ein Sonderfall, da seit MetaSploit 3.0 sowohl der Core als auch die Exploit-Module in dieser Sprache geschrieben werden und damit einem breiten Publikum die Vorteile im Exploiting-Bereich nähergebracht wurde. In einem Blog-Beitrag des Projekts wird es gar als die bis dato umfassendste Ruby-Entwicklung bezeichnet:

After all, msf is far and away the biggest ruby project on the planet. HD has done an excellent job with the new module format to reduce that initial overhead (…)

Sprachen wie Java, LISP und Pascal scheinen sich hingegen wegen ihrer Schwerfälligkeit oder den veralteten Konzepten nicht für Entwicklungen auf diesem Gebiet anzubieten. Die Seitenbeschreibungssprache HTML ist dann auch ein Sonderfall, denn ihr Auftreten ist wohl einzig und allein auf die in Webbrowsern gefundenen Schwachstellen zurückzuführen. Das Umsetzen anderweitiger Exploits in HTML ist dann eben doch eine eher unpopuläre Ausnahme.

Über den Autor

Marc Ruef

Marc Ruef ist seit Ende der 1990er Jahre im Cybersecurity-Bereich aktiv. Er hat vor allem im deutschsprachigen Raum aufgrund der Vielzahl durch ihn veröffentlichten Fachpublikationen und Bücher – dazu gehört besonders Die Kunst des Penetration Testing – Bekanntheit erlangt. Er ist Dozent an verschiedenen Fakultäten, darunter ETH, HWZ, HSLU und IKF. (ORCID 0000-0002-1328-6357)

Links

Haben Sie Interesse an einem Penetration Test?

Unsere Spezialisten kontaktieren Sie gern!

×
Konkrete Kritik an CVSS4

Konkrete Kritik an CVSS4

Marc Ruef

scip Cybersecurity Forecast

scip Cybersecurity Forecast

Marc Ruef

Voice Authentisierung

Voice Authentisierung

Marc Ruef

Bug-Bounty

Bug-Bounty

Marc Ruef

Sie wollen mehr?

Weitere Artikel im Archiv

Sie brauchen Unterstützung bei einem solchen Projekt?

Unsere Spezialisten kontaktieren Sie gern!

Sie wollen mehr?

Weitere Artikel im Archiv