Frage

Ist es richtig zu sagen, dass die .NET-Plattform sicherer, da die CLR schützt vor Pufferüberlaufangriffen ist?

Es Angenommen war ein Web-Browser in einem verwalteten O läuft (wie Cosmos , SharpOS oder Singularity ), wäre es technisch möglich sein, für einen Angreifer IL-Code in die App zu injizieren?

Habe ich über Angriffe sorgen, die in nicht verwalteten Anwendungen nicht möglich sind?

War es hilfreich?

Lösung

Für den größten Teil, sind Sie richtig. Anwendungen mit einem sicheren Typ-System (nicht nur .NET oder Java) nicht zulassen, dass die Anwendung dieser Beschränkungen zu verletzen.

Pufferüberläufe und viele andere Remote-Code-Exploits auftreten, da die Beschränkungen in diesen Sprachen und Runtimes keine Kontrolle bieten und das Programm nicht garantieren können nicht etwas tun, wie beliebigen Code im Speicher ausgeführt werden. Sichere Systeme den Code überprüfen, frei von diesen Effekten sein.

(Als Randbemerkung, kann C # noch unsichere Aktionen durchführen und setzte sich auf beliebigen Code auszuführen. Es ist nur recht umständlich und unwahrscheinlich, dass in einer realen Anwendung verwendet werden.)

Die Sicherheitslücken Sie in einem verwalteten Browser sehen würden wären, wenn es beliebiger Code geladen werden lassen, die CLR als sichere Umgebung. Während die CLR-Code erzeugt (das heißt die JIT'd Ihrer Anwendung) sicher sein wird, sind die Lader und Verifizierer sich in der Regel in einer niedrigeren Sprache geschrieben. Es ist schon ein paar (ich glaube, 2 für .NET?) Sicherheitslücken, wo eine in böswilliger Absicht gebildete Anordnung die tatsächlichen CLR zwingen könnte, beliebigen Code auszuführen. Diese sind jedoch relativ selten Probleme, und die Oberfläche ist weit weniger, als es sonst sein würde.

Also, ja, ein voll sicher, gelang Browser selbst würde Beute auf diese spezifischen Taten nicht fallen. Aber das bedeutet auch, würden Sie Ihre Plugins geschrieben haben müssen und in ähnlicher Weise ausgeführt (Flash?). Schließlich gibt es andere Sicherheitslücken, die ausgerichtet werden können, aber in der Regel werden sie weniger streng sein als Sie mit einer nicht verwalteten Anwendung finden würden. Cross-Site-Scripting, zum Beispiel, würde nach wie vor ein Problem. Aber zumindest würden Sie nicht haben Typ-Probleme „ein Dokument betrachten kann willkürlichen Code ausführen“.

Andere Tipps

Die CLR (und die JVM) Schutz gegen viele gemeinsame Angriffe, aber das beseitigt nicht alle Bedrohungen. Die CLR oder jede Bibliothek kann Fehler enthalten, die Exploits ermöglichen. Anwendungsfehler und Exploits zulassen. SQL-Injection ist ein Beispiel für einen Angriff, der wegen des Mangels an der Eingabevalidierung in der Anwendung möglich ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top