Gibt es Software ohne Sicherheitslücken?

6 Antworten

Nicht wirklich. In jedem komplexen System wird es Fälle geben, die nicht richtig bedacht sind.

Das schließt auch Hardware auf denen die Software ja laufen muss ein, auch dort kann es Sicherheitslücken geben.

Es geht viel darum, Risiken zu erkennen und sie zu minimieren. Man schafft Regeln, die darauf angepasst sind wie gut Informationen geschützt werden müssen.

Woher ich das weiß:Berufserfahrung – Software Entwickler

Nein. Software wird ja auch weiterentwickelt und da durch gibt es neue Sicherheitslücken. Davon ab steht Software heute selten für sich alleine. Sie läuft auf einen Betriebssystem, hat etliche Abhängigkeiten von Frameworks über Module und Bibliotheken.

In den meisten Projekten sind schon Millionen über Millionen Zeilen an Code ausgeführt wurden, bevor deine erste selbstgeschriebene Zeile ausgeführt wird.

Natürlich gibt es auch organisatorische Probleme. Wir haben nicht wirklich einen roten Faden, wie man Software entwickelt. Es gibt vermutlich tausende von Sprachen, für jedes Problem zig verschiedene Bibliotheken, wenn nicht mehr, Best Practices ändern sich täglich, wir haben verschiedene Programmierparadigmen und an vielen Sachen wie Tests und co. wird gespart.

Wobei ich sagen muss, die Sachen die man als normaler Benutzer mitkriegt sind echt noch harmlos. Projektspezifische Software im B2B Bereich ist noch tausendfach schlimmer. Software für hunderttausende Euro oder gar Millionen, mit einer Bedienerfreundlichkeit und Optik von Windows 3.1. Einer grottigen Performance und massive Ausfälle bei jedem Update. Und von Datenschutz und Sicherheit brauch man gar nicht anfangen.

Geht aber auch nicht anders, sonst kann man kein Preis ausrufen, mit dem man konkurrenzfähig ist.

Und wie Regierungen und Geheimdienste das besser machen? Die werfen mehr Geld drauf. Bei denen ist die Sicherheit und der Datenschutz eben einer der Hauptfeatures der Software, da geht es genau darum, sicher Daten zu übertragen. Die probieren nicht Geld zu machen mit einer Web 2.0 Plattform, die nach was aussieht und jedem Nutzer leicht den Zugang ermöglichen soll.

Ob man nun Zweifaktor erzwingt, nur bestimmte Geräte zulässt, ggf. gar nicht im Internet ist und erst einmal über einen VPN oder ähnliches in ein anderes Netz muss usw.

Woher ich das weiß:Berufserfahrung – Softwareentwickler/Projektleiter seit 2012

toomuchmoon5 
Beitragsersteller
 12.05.2025, 07:57

Okay wie findest du Linux Mint weil die haben ja fast kein Geld im Gegensatz zu Microsoft und es soll sicherer sein also Windows 11.

Kann das sein?

apachy  12.05.2025, 08:26
@toomuchmoon5

Habe ich noch nie genutzt, ergo kann ich dir dazu keine wirklich fundierte Meinung geben. Mein Rechner auf der Arbeit läuft mit Windows 11, meiner Zuhause mit Windows 10.

Zum einen bin ich auf Software angewiesen, die es nur für Windows gibt, zum anderen ist mir Linux auch zu viel Gefummel. Hunderte oder tausende von Distributionen, die alle ein wenig anders funktionieren, teilweise mit verschiedenen Packagemanagern, Fenstermanagern usw.

Ich habe weder Lust noch Zeit mich bei der regelmäßigen Benutzung mit sowas rumzuärgern. Linux nutze ich dann eher für Sachen wie dem Raspberry Pi, in Docker Containern usw. Sprich Sachen, die man einmal einrichtet und dann erst einmal nicht anfasst.

Geld macht Microsoft übrigens auch nicht mehr so groß mit Windows. Damit machen die keine 10%. Microsoft ist eher Cloud und Microsoft 365.

Selbst Xbox, Co-Pilot oder sogar LinkedIn sind fast gleich auf mit Windows.

Nein.
Genauso wie es niemals Software ohne Fehler geben wird.

THEORETISCH ist es zwar möglich, Eine Software ohne Sicherheitslücken und Bugs zu entwickeln, wenn man lange genug (unendlich lange?) beides sucht und behebt und eine sehr aufwändige Test-Strategie fährt. Du weißt allerdings nie, ob Du nun das letzte Problem behoben oder dadurch ein neues Problem aufgemacht hast. Theoretisch ist es zwar irgendwann möglich, nur weißt Du niemals, ob Du es nun erreicht hast, oder nicht.
Außerdem darf man gleichzeitig nichts, was irgendwie damit im Zusammenhang steht (inkl. Hardware, Betriebssysteme, externe Schnittstellen, etc.) irgendwie verändern, denn das könnte wieder Sicherheitslücken und Bugs verursachen.
Und dann entdeckt irgendwer eine Sicherheitslücke wie Meltdown oder Spectre in der CPU selber, dagegen können die Entwickler nichts tun. Und wenn die CPU-Hersteller Patches veröffentlicht haben, dann können sie zwar die Lücke schließen, aber die könnten wieder neue Probleme auf machen.
Und egal was Du tust, sobald ein Angreifer Zugriff auf den Computer hat, kann er auch den RAM, Cache, etc. manipulieren und auch da sind die Softwareentwickler effektiv raus.

In der Realität ist es also unmöglich, weil sich immer irgendwas ändert und die Entwickler hinter der Software auch weiter daran arbeiten wollen/müssen.

Und wie schützt die US Regierung / US Geheimdienst ihre Daten

Kommt drauf an, von welchen Daten Du redest.
Staaten arbeiten nicht anders als Firmen, entscheidend ist, wie viel es kostet und ob man diese Kosten in Kauf nehmen will.

Sobald es aber um besonders sensible Daten geht (ggf. sicherheitsrelevant, vom Militär, etc.), dann gibt es nur einen effektiven Schutz: Totale Abschottung.
Das heißt: Eigener Computer, kein Internet, keine externen Geräte anschließen, ggf. eigene Stromversorgung, nur ausgewählte Personen haben Zugriff, Sicherheitsschläuse, Wachpersonal, etc.
Wer das Maximum an Sicherheit will, wird um sowas nicht herum kommen.

Das machen alle, für die das Risiko hoch genug ist, dass sich dieser Aufwand und diese hohen Kosten auch lohnen, sowohl Staaten, als auch Firmen.

grundsätzlich gibt es Software, von denen du mathematisch beweisen kannst, dass die fehlerfrei sind. Das ist sehr aufwändig, aber nicht unmöglich.

Jedoch bedeutet selbst das nicht, dass diese Software sicher ist, da sie ja in einer Umgebung ausgeführt wird die selbst wieder Software ist. Selbst wenn du Software direkt auf Hardware laufen lässt, kann die Hardware Sicherheitsprobleme haben.

Wenn du Daten sicher speichern möchtest: das ist unmöglich. Auch Daten der US Regierung würden schon veröffentlicht.

Wenn du heute Daten mit aktuellen Methoden verschlüsselst, kann möglicherweise zudem ein Computer in 25 Jahren so leistungsfähig sein, dass er die Verschlüsselung knackt. Auch Quantensichere Algorithmen sind hier keine Garantie (und die sind auch noch nicht alle genug um alle Fehler und Möglichkeiten für Fehler zu kennen).

Was geht: Daten ausreichend gut sichern. Besser ist aber immer: Daten nicht speichern.

Ergänzung: ich hab noch ein schönes Beispiel: deine Bankomatkarte. Der Chip der Karte ist in Wirklichkeit ein kleiner Computer, auf dem ein Programm läuft, das zur Prüfung der Karte verwendet wird. Das Programm kennt ein Geheimnis, deshalb gibt dir der Bankomat Geld. Diese Geheimnis kennt nur das Programm auf dieser einen Karte, nicht einmal die Bank selbst. Es gibt auch keine zweite Karte mit dem selben Geheimnis

Das Programm ist so gut und sicher auf dem Chip gespeichert, selbst wenn du den Chip zerlegst oder Atomschicht für Atomschicht abschleifst: du kommst nicht an das Geheimnis.

Diese Software wurde gehackt (und inzwischen repariert, war vor ein paar Jahren).

Wie: der kleine Chip braucht Strom. Ganz wenig aber doch. Wenn er mit einer 1 rechnet ein ganz klein wenig mehr als wenn er mit einer 0 rechnet. Wenn man mit sehr guten Messgeräten den Stromverbrauch beobachtet hat während der Chip im Bankomat mit dem Geheimnis gerechnet hat, und man ganz viele dieser Chips verglichen hat, dann ist man auf das Geheimnis gekommen.

Aufwand war viel zu hoch um das für die Praxis relevant zu machen, aber es war möglich.

Nichts ist sicher!

Gibt es Software ohne Sicherheitslücken?

Man kann zwar durch formale Verifikation die Abwesenheit von Sicherheitslücken beweisen, aber diese Beweise halten nur, solange das zugrundeliegende Modell korrekt ist. Seitenkanäle, die vom Modell nicht berücksichtigt werden, könnten zum Beispiel für Angriffe genutzt werden. Außerdem ist das Problem der Skalierbarkeit von formaler Verifikation noch nicht vollständig gelöst.

Kann es sein das irgendwann alle geschlossen sind und es 100% sicher ist?

Natürlich kann ich dir ein 2 Zeilen "Hello World" Programm schreiben, das frei von Sicherheitslücken ist. In der Praxis ist Software aber sehr komplex und wird ständig weiterentwickelt. Da Menschen (oder LLMs, die von Menschen lernen) nun mal Fehler machen, wird es immer Bugs und Sicherheitslücken geben.

Und wie schützt die US Regierung / US Geheimdienst ihre Daten besser als gutefrage.net oder youtube? Was machen die anders?

Youtube ist ein schlechtes Beispiel. Der Dienst gehört Google, und die tun sehr viel für die Sicherheit.

Aber grundsätzlich werden in sicherheitskritischen Bereichen einfach mehr bzw. bessere "gute" Hacker angestellt, die Sicherheitslücken vor den "bösen" Hackern finden sollen, sodass sie behoben werden können.

Im Militärbereich dürften die Risikoanalysen auch ganz anders aussehen als im B2C Bereich. Dort dürfte z.B. kaum die Bequemlichkeit der Nutzer höher priorisiert werden als Sicherheit.

Woher ich das weiß:Hobby – Ich interessiere mich für Hacking, Pentesting und CTF

LooseGravel  29.04.2025, 19:28

Viel Zustimmung, mit einer Kleinigkeit. Selbst das "hello world" Programm kann unsicher sein und ich konnte es wahrscheinlich so manipulieren, dass es "hello Putin" raus schreibt. Du könntest dann den Code signieren, ich die Signatur Routine attackieren usw. Am Schluss haben wir ausreichend Komplexität im hello world, dass das restliche von dir beschriebene sich hier gilt.