RKI Hack / Wieso gibt es immer wieder Hacks?


30.07.2024, 09:42

et tu Windoze resp. Crowdstrike... lol

https://youtu.be/Y5wGWIAPnbc

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet
Aber na klar ohne diese schlimmen Performance Einbußen, die Java mitbringt...

"Schlimm"? Eigentlich sind die Performance-Einbußen sehr gering, wenn es um Sicherheit geht. Was die JVM in manchen Situationen langsam (und undeterministisch) macht, ist die Garbage Collection. Und dafür gibt es nun mal kein Wundermittel. Besonders im Embedded-Bereich, wo es auf jedes Byte und jede Mikrosekunde ankommt, sind GC-Sprachen ein Problem.

Die gepriesene Alternative ist eben ein Ansatz wie bei Rust, wo man versucht, alles zur Compilezeit zu erschlagen. Der Preis dafür ist eine komplexe Sprache, die einfache Dinge mitunter ausgesprochen mühsam macht.

Das gute alte Ada und modernes(!) C++ können einen Großteil dieser Probleme auch sehr gut vermeiden, wenn auch nicht 100% ausschließen, und erlauben trotzdem recht bequemes Entwickeln. Diese Sprachen gelten aber nicht als "sexy". Leider rennt die Branche ständig dem nächsten glitzernden Ding hinterher.


LUKEars 
Beitragsersteller
 29.07.2024, 09:33

was kann denn bei C++ noch schiefgehen, wenn man z. B. konsequent Iterator-s verwendet?

0
jo135  29.07.2024, 09:37
@LUKEars
wenn man z. B. konsequent Iterator-s verwendet

"Konsequent verwenden" ist halt eine Konvention und wird nicht von der Sprache erzwungen. In einer Software mit ein paar 10k oder gar 100k LOC wird das schwierig zu überwachen, aber manche Sauereien können auch in winzigen Programmen übersehen werden.

Auch in topmodernem C++ 23 kann ich immer noch oldschool C schreiben und munter in beliebige Adressen reinschreiben (oder das zumindest versuchen). Dann kann ich nur hoffen, dass mir ein statischer Codechecker solche Sauereien erkennt.

In Ada ist die Sprache selbst strenger, d.h. da ich kann das zwar alles tun, aber nur über strikt definierte Sprachmittel die auch ausschließbar sind.

2
jo135  29.07.2024, 09:41
@LUKEars

Außerdem sind in C++ immer noch viele Situationen schlicht undefiniert. Du machst etwas falsch und das Resultat ist durch die Sprache nicht definiert, d.h. es kann alles mögliche passieren und wir können nur aufs Betriebssystem und/oder die MMU hoffen (sofern vorhanden).

Das ist eigentlich der wesentliche Faktor hier.

2

Theoretisch ist jedes Problem in der IT-Sicherheit gelöst.

Das Problem ist nicht, dass uns irgendwelches Wissen fehlt.

In der Realität bekommen wir es trotzdem nicht hin.

Hier die Erklärung:

https://youtu.be/BreKdM7CKnY?t=70