Sicherheit

Was ist Softwaresicherheit??

Was ist Softwaresicherheit??
Softwaresicherheit ist der Aufbau sicherer Software mit inhärenter Abwehr, damit sie bei böswilligen Angriffen weiterhin zur Zufriedenheit der Benutzer und Eigentümer der Software funktioniert. Dieser Artikel erklärt die Bedrohungen und Lösungen aus einer allgemeinen Sicht. Auch Standardvokabular in der Informationssicherheit wird erklärt. Sie sollten über Computer- und Internetkenntnisse verfügen, um diesen Artikel zu verstehen; Sie sollten auch eine Computersprache studiert haben, z.G., Perl, C, C++, PHP usw.

Gesichert sind Informationen und Softwarepakete (Anwendungen und Dokumente). Information ist jede Nachricht, die für jeden nützlich ist. „Information“ ist ein vages Wort. Der Kontext, in dem es verwendet wird, gibt seine Bedeutung. Es kann Nachrichten, Vorlesung, Tutorial (oder Lektion) oder Lösung bedeuten. Ein Softwarepaket ist normalerweise eine Lösung für ein Problem oder verwandte Probleme. In der Vergangenheit wurden alle nicht gesprochenen Informationen auf Papier geschrieben. Heute kann die Software als Teilmenge von Informationen betrachtet werden.

Die Software kann sich auf einem Computer befinden oder von einem Computer zum anderen übertragen werden. Dateien, Daten, E-Mails, aufgezeichnete Sprache, aufgezeichnete Videos, Programme und Anwendungen befinden sich auf einem Computer. Während er sich in einem Computer befindet, kann er beschädigt werden. Während des Transports kann es immer noch beschädigt sein.

Jedes Gerät mit Prozessor und Speicher ist ein Computer. In diesem Artikel wird also ein Taschenrechner, ein Smartphone oder ein Tablet (z.G., iPad) ist ein Computer. Jedes dieser Geräte und ihre Netzwerkübertragungsmedien verfügen über Software oder Software auf der Übertragung, die geschützt werden sollte.

Privilegien

Ein Benutzer kann die Berechtigung erhalten, eine Datei auf einem Computer auszuführen. Ein Benutzer kann die Berechtigung erhalten, den Code einer Datei auf einem Computer zu lesen. Ein Benutzer kann das Recht erhalten, den Code einer Datei auf einem Computer zu ändern (zu schreiben). Ein Benutzer kann eine, zwei oder alle drei dieser Privilegien erhalten. Es gibt andere Privilegien für ein Betriebssystem oder eine Datenbank. Benutzer haben unterschiedliche Mengen oder Ebenen von Berechtigungen in einem System.

Bedrohungen

Grundlagen von Softwarebedrohungen

Um Software zu schützen, müssen Sie ihre Bedrohungen kennen. Die Software muss vor dem Zugriff Unbefugter auf ihre Daten geschützt werden. Es muss vor rechtswidriger Nutzung geschützt werden (z.B. um Schaden zuzufügen). Die Software sollte vor der Weitergabe an Konkurrenten geschützt werden. Die Software sollte nicht beschädigt sein. Die Software sollte nicht unbeabsichtigt gelöscht werden. Die Software sollte nicht gestört werden. Die Software sollte keine Änderungen aufweisen, die nicht erforderlich sind. Daten (Software) sollten nicht ohne triftigen Grund eingesehen werden, insbesondere nicht durch Unbefugte. Die Software sollte nicht kopiert (raubkopiert) werden.

Eine oder mehrere dieser Basen, die zu einer bestimmten Art klassischer Bedrohung führen.

Klassen von Softwarebedrohungen

Spoofing-Angriff

Dies ist die Situation, in der eine Person (oder ein Programm) eine andere Person (oder ein Programm) bei einer Softwareaktivität erfolgreich vertritt. Dies geschieht mit falschen Daten, um sich einen Vorteil zu verschaffen, der illegal ist.

Zurückweisung

Dies ist die Situation, in der jemand etwas falsch macht und sich weigert, nicht derjenige zu sein, der es getan hat. Die Person kann die Unterschrift einer anderen Person verwenden, um das Falsche zu tun.

Datenleck

Eine Datenschutzverletzung liegt vor, wenn sichere oder private Informationen absichtlich oder unabsichtlich an eine nicht vertrauenswürdige Umgebung weitergegeben werden.

Denial-of-Service-Angriff

Ein Software-Computernetzwerk verfügt über Software, die auf den Computern des Netzwerks ausgeführt wird. Jeder Benutzer verwendet normalerweise seinen Computer vor sich und fordert normalerweise Dienste von anderen Computern im Netzwerk an. Ein krimineller Benutzer kann beschließen, einen Server mit überflüssigen Anfragen zu überfluten. Ein Server hat eine begrenzte Anzahl von Anfragen, die er in einer Dauer bearbeiten kann. Bei diesem Überflutungsschema können legitime Benutzer den Server nicht so oft verwenden, wie sie sollten, da der Server damit beschäftigt ist, auf die Anfragen des Kriminellen zu antworten. Dies überlastet den Server und unterbricht die Dienste des Servers vorübergehend oder auf unbestimmte Zeit. Dabei verlangsamt der Host (Server) den Betrieb für legitime Benutzer, während der Täter sein Unwesen treibt, das unentdeckt bleibt, weil die legitimen Benutzer, die auf den Dienst warten, nicht wissen konnten, was bei ihm los war der Kellner. Den guten Benutzern wird der Dienst verweigert, während der Angriff weitergeht.

Privilege-Eskalation

Unterschiedliche Benutzer eines Betriebssystems oder einer Anwendung haben unterschiedliche Berechtigungen. Einige Benutzer haben also mehr Wert als andere vom System. Das Ausnutzen eines Softwarefehlers oder einer Konfigurationsaufsicht, um erhöhten Zugriff auf Ressourcen oder nicht autorisierte Informationen zu erhalten, ist Privilege Escalation.

Die oben genannten Klassifizierungsschemata können verwendet werden, um einen Computervirus und Würmer zu verursachen.

Eines oder mehrere der oben genannten Klassifizierungsschemata können für Softwareangriffe verwendet werden, darunter: Diebstahl geistigen Eigentums, Datenbankkorruption, Identitätsdiebstahl, Sabotage und Informationserpressung. Wenn eine Person eines oder mehrere der Schemata verwendet, um eine Website destruktiv zu verändern, so dass die Kunden der Website das Vertrauen verlieren, ist das Sabotage. Informationserpressung ist der Diebstahl des Computers eines Unternehmens oder der fälschliche Erhalt von geheimen Informationen über das Unternehmen. Der gestohlene Computer kann geheime Informationen enthalten. Dies kann zu Ransomware führen, bei der der Dieb eine Zahlung als Gegenleistung für das gestohlene Eigentum oder die gestohlenen Informationen verlangen würde.

Privatsphäre

Wenn etwas für dich sensibel oder von Natur aus besonders ist, dann ist das für dich privat. Dies gilt auch für eine Personengruppe. Eine Person muss sich selektiv ausdrücken. Um eine solche Selektivität zu erreichen, muss das Individuum sich selbst planen oder Informationen über sich selbst einplanen; das ist privatsphäre. Eine Gruppe von Menschen muss sich selektiv ausdrücken. Um eine solche Selektivität zu erreichen, muss die Gruppe sich selbst planen oder Informationen über sich selbst einplanen; das ist privatsphäre. Ein Individuum muss sich selektiv schützen. Um einen solchen selektiven Schutz zu erreichen, muss sich die Person selektiv schützen oder Informationen über sich selbst schützen; das heißt, Privatsphäre. Eine Gruppe von Menschen muss sich selektiv schützen. Um einen solchen selektiven Schutz zu erreichen, muss sich die Gruppe selektiv schützen oder Informationen über sich selbst schützen; das heißt, Privatsphäre.

Identifizierung und Authentifizierung

Wenn Sie in ein fremdes Land reisen, erreichen Sie einen Hafen dieses Landes. Am Hafen werden Sie von einem Polizisten aufgefordert, sich auszuweisen. Sie werden Ihren Reisepass vorlegen. Der Polizist kennt Ihr Alter (ab Geburtsdatum), Ihr Geschlecht und Ihren Beruf aus dem Pass und sieht Sie (Ihr Gesicht) an; das ist identifikation. Der Polizist vergleicht Ihr wahres Gesicht und das Foto im Pass. Er wird auch Ihr Alter anhand des Passes schätzen, um zu wissen, ob Sie es sind.

Sie anzusehen und Ihr Alter, Geschlecht und Beruf mit Ihnen in Verbindung zu bringen, ist Identifikation. Die Überprüfung, ob Ihr wahres Gesicht und Ihr Foto identisch sind, und die Einschätzung, ob Ihre Präsentation Ihrem Alter entspricht, ist eine Authentifizierung. Identifikation bedeutet, eine Person oder etwas bestimmten Attributen zuzuordnen. Die Angabe einer Identität ist auch eine Identifizierung. Authentifizierung ist der Akt des Beweisens, dass die Identität (Identifikation) wahr ist. Mit anderen Worten, Authentifizierung ist der Akt des Beweisens einer Behauptung assert.

In der Computertechnik ist die gebräuchlichste Art der Authentifizierung die Verwendung eines Passworts. Ein Server zum Beispiel hat viele Benutzer. Beim Login geben Sie Ihre Identität (identifizieren Sie sich) mit Ihrem Benutzernamen an. Sie weisen Ihre Identität mit Ihrem Passwort nach. Dein Passwort soll nur dir bekannt sein. Die Authentifizierung kann weiter gehen; indem du dir eine Frage stellst, wie „In welcher Stadt oder Stadt bist du geboren??”

Sicherheitsziele

Die Sicherheitsziele für Informationen sind Vertraulichkeit, Integrität und Verfügbarkeit. Diese drei Funktionen sind als CIA-Triade bekannt: C für Vertraulichkeit, I für Integrität und A für Verfügbarkeit.

Vertraulichkeit

Die Informationen dürfen nicht an unbefugte Personen oder unbefugte Einheiten oder unbefugte Prozesse weitergegeben werden; dies ist Informationsgeheimnis in der Informationssicherheit (sowie Softwaresicherheit). Der Diebstahl von Passwörtern oder das Versenden sensibler E-Mails an eine falsche Person ist eine Gefährdung der Vertraulichkeit. Vertraulichkeit ist eine Komponente der Privatsphäre, die Informationen vor unbefugten Personen, unbefugten Einheiten oder unbefugten Prozessen schützt protects.

Integrität

Informationen oder Daten haben einen Lebenszyklus. Mit anderen Worten, Informationen oder Daten haben eine Startzeit und eine Endzeit.  In einigen Fällen müssen die Informationen (oder Daten) nach dem Ende des Lebenszyklus (gesetzlich) gelöscht werden. Integrität besteht aus zwei Merkmalen, nämlich: 1) der Aufrechterhaltung und Sicherstellung der Richtigkeit der Informationen (oder Daten) über den gesamten Lebenszyklus und 2) der Vollständigkeit der Informationen (oder Daten) über den gesamten Lebenszyklus. Informationen (oder Daten) dürfen also nicht unbefugt oder unentdeckt reduziert oder verändert werden.

Verfügbarkeit

Damit ein Computersystem seinen Zweck erfüllen kann, müssen Informationen (oder Daten) bei Bedarf verfügbar sein. Das bedeutet, dass das Computersystem und seine Übertragungsmedien korrekt funktionieren müssen. Die Verfügbarkeit kann durch System-Upgrades, Hardware-Ausfälle und Stromausfälle beeinträchtigt werden. Die Verfügbarkeit kann auch durch Denial-of-Service-Angriffe kompromittiert werden.

Nichtabstreitbarkeit

Wenn jemand Ihre Identität und Ihre Unterschrift verwendet, um einen Vertrag zu unterzeichnen, den er nie erfüllt hat, liegt die Nichtabstreitbarkeit vor, wenn Sie vor Gericht nicht erfolgreich bestreiten können, dass Sie den Vertrag nicht unterzeichnet haben.

Bei Vertragsende muss der Leistungserbringer die Leistung angeboten haben; die zahlende Partei muss die Zahlung geleistet haben.

Um zu verstehen, wie die Unbestreitbarkeit auf die digitale Kommunikation anwendbar ist, müssen Sie zunächst die Bedeutung von Schlüssel und die Bedeutung der digitalen Signatur kennen. Ein Schlüssel ist ein Stück Code. Eine digitale Signatur ist ein Algorithmus, der einen Schlüssel verwendet, um einen anderen Code zu erzeugen, der mit einer schriftlichen Signatur des Absenders verglichen wird.

In der digitalen Sicherheit wird die Unbestreitbarkeit durch eine digitale Signatur gewährleistet (nicht unbedingt garantiert). In der Softwaresicherheit (oder Informationssicherheit) hat die Nichtabstreitbarkeit mit der Datenintegrität zu tun. Auch die Datenverschlüsselung (von der Sie vielleicht gehört haben) in Kombination mit der digitalen Signatur trägt zur Vertraulichkeit bei.

Die Sicherheitsziele für Informationen sind Vertraulichkeit, Integrität und Verfügbarkeit. Die Nichtabstreitbarkeit ist jedoch ein weiteres Merkmal, das Sie beim Umgang mit Informationssicherheit (oder Softwaresicherheit) berücksichtigen müssen.

Reaktionen auf Drohungen

Auf Bedrohungen kann auf eine oder mehrere der folgenden drei Arten reagiert werden:

- Reduzierung/Mitigation: Dies ist die Implementierung von Sicherheitsvorkehrungen und Gegenmaßnahmen, um Schwachstellen zu beseitigen oder Bedrohungen zu blockieren.

- Abtretung/Übertragung: Dadurch wird die Gefahr einer anderen Instanz, wie z. B. einer Versicherungsgesellschaft oder eines Outsourcing-Unternehmens, abgewälzt.

- Akzeptanz: Hier wird bewertet, ob die Kosten der Gegenmaßnahme die möglichen Verlustkosten aufgrund der Bedrohung überwiegen.

Zugangskontrolle

In der Informationssicherheit, zu der Softwaresicherheit gehört, ist die Zugriffssteuerung ein Mechanismus, der sicherstellt, dass nur berechtigte Benutzer mit ihren unterschiedlichen verdienten Berechtigungen auf geschützte Ressourcen in einem bestimmten System zugreifen können.

Aktuelle Lösung für Informationssicherheit

Die aktuelle und beliebte Methode für Informationssicherheit ist die Durchsetzung der Zugriffskontrolle. Dazu gehören Maßnahmen wie die Validierung von Eingaben in eine Anwendung, die Installation von Antivirenprogrammen, die Verwendung einer Firewall für ein lokales Netzwerk und die Verwendung von Transport Layer Security.

Wenn Sie bei einer Bewerbung ein Datum als Eingabe erwarten, der Benutzer aber eine Zahl eingibt, muss eine solche Eingabe abgelehnt werden. Das ist Eingabevalidierung.

Ein auf Ihrem Computer installierter Virenschutz verhindert, dass Viren Dateien auf Ihrem Computer beschädigen. Dies hilft bei der Verfügbarkeit von Software.

Es können Regeln erstellt werden, um den ein- und ausgehenden Datenverkehr eines lokalen Netzwerks zu überwachen und zu steuern, um das Netzwerk zu schützen. Wenn solche Regeln als Software implementiert werden, im lokalen Netzwerk, ist das eine Firewall.

Transport Layer Security (TLS) ist ein Sicherheitsprotokoll, das entwickelt wurde, um den Datenschutz und die Datensicherheit bei Übertragungen über das Internet zu erleichtern. Dies beinhaltet die Verschlüsselung der Kommunikation zwischen sendendem Host und empfangendem Host.

Die Durchführung von Informationssicherheit durch Durchsetzung der Zugriffskontrolle wird als Sicherheitssoftware bezeichnet, die sich von Softwaresicherheit unterscheidet, wie unten erläutert. Beide Ansätze haben das gleiche Ziel, sind aber unterschiedlich.

Richtige Softwaresicherheit

Anwendungen, wie sie heute geschrieben werden, weisen viele Softwareschwachstellen auf, die Programmierer in den letzten 20 Jahren immer mehr erkannt haben. Die meisten Angriffe werden durchgeführt, indem diese Schwachstellen ausgenutzt werden, anstatt die Zugriffskontrolle zu überwinden oder zu umgehen.

Ein Puffer ist wie ein Array, aber ohne eine auferlegte Länge. Wenn ein Programmierer in einen Puffer schreibt, ist es möglich, unbewusst über dessen Länge hinaus zu schreiben. Diese Schwachstelle ist ein Pufferüberlauf.

Software hat heute mit Sicherheitsauswirkungen – einschließlich Implementierungsfehlern wie Pufferüberläufen und Konstruktionsfehlern wie inkonsistenter Fehlerbehandlung – Fehler gemacht. Das sind Schwachstellen.

Sie haben vielleicht schon von Computersprachen-Cheats wie PHP-Cheats, Perl-Cheats und C++-Cheats gehört. Das sind Schwachstellen.

Softwaresicherheit überwindet im Gegensatz zu Sicherheitssoftware diese Schwachstellen, indem sie defensiven Code schreibt, bei dem die Schwachstellen verhindert würden. Während die Anwendung verwendet wird und weitere Schwachstellen entdeckt werden, sollten Entwickler (Programmierer) defensiv nach Wegen suchen, die Schwachstellen neu zu codieren.

Die Bedrohung, Denial-of-Service-Attacke, kann nicht durch eine Zugangskontrolle gestoppt werden, denn dafür muss der Täter bereits Zugriff auf den Host (Server) haben. Es kann gestoppt werden, indem einige interne Software hinzugefügt wird, die überwacht, was Benutzer im Host tun.

Softwaresicherheit ist ein robustes Design von innen, das Softwareangriffe erschwert. Die Software sollte sich selbst schützen und im Grenzfall keine Schwachstellen aufweisen. Auf diese Weise wird der Betrieb eines sicheren Netzwerks einfacher und kostengünstiger.

Softwaresicherheit entwickelt defensiven Code aus der Anwendung heraus, während Sicherheitssoftware die Zugriffskontrolle durchsetzt (entwickelt). Manchmal überschneiden sich diese beiden Probleme, aber oft nicht.

Softwaresicherheit ist bereits ziemlich weit entwickelt, obwohl sie noch entwickelt wird, ist sie noch nicht so entwickelt wie Sicherheitssoftware. Böse Hacker erreichen ihre Ziele eher, indem sie Schwachstellen in Software ausnutzen, als indem sie Sicherheitssoftware überwinden oder umgehen. Es ist zu hoffen, dass Informationssicherheit in Zukunft mehr Softwaresicherheit als Sicherheitssoftware sein wird. Im Moment müssen sowohl Softwaresicherheit als auch Sicherheitssoftware laufen.

Softwaresicherheit wird nicht wirklich effektiv sein, wenn am Ende der Softwareentwicklung keine strengen Tests durchgeführt werden.

Programmierer müssen darin geschult werden, defensive Codeprogrammierung durchzuführen. Benutzer müssen auch darin geschult werden, Anwendungen defensiv zu verwenden.

Bei der Softwaresicherheit muss der Entwickler sicherstellen, dass der Benutzer nicht mehr Privilegien erhält, als er verdient deserve.

Fazit

Softwaresicherheit ist das Entwerfen von Anwendungen mit defensiver Codierung gegen Schwachstellen, um Softwareangriffe zu erschweren. Sicherheitssoftware hingegen ist die Produktion von Software, die die Zugangskontrolle durchsetzt. Softwaresicherheit wird noch entwickelt, ist aber für die Informationssicherheit vielversprechender als Sicherheitssoftware. Es wird bereits verwendet und erfreut sich wachsender Beliebtheit. In Zukunft wird beides benötigt, aber bei Software braucht es mehr Sicherheit.

Kostenlose und Open-Source-Spiele-Engines für die Entwicklung von Linux-Spielen
Dieser Artikel behandelt eine Liste von kostenlosen und Open-Source-Spiele-Engines, die für die Entwicklung von 2D- und 3D-Spielen unter Linux verwend...
Shadow of the Tomb Raider für Linux Tutorial
Shadow of the Tomb Raider ist die zwölfte Erweiterung der Tomb Raider-Reihe – ein Action-Adventure-Franchise von Eidos Montrealdos. Das Spiel wurde vo...
So steigern Sie die FPS unter Linux?
FPS steht für Bilder pro Sekunde. Die Aufgabe von FPS besteht darin, die Bildrate bei Videowiedergaben oder Spielleistungen zu messen. In einfachen Wo...