![]() |
Schutz vor BufferOverflows
Ich habe mich jetzt mal etwas schlau gemacht über BufferOverflows und wie sie funktionieren. Jetzt wollte ich mal fragen, wie es in Zukunft mit einem Schutz dagegen aussieht. Und zwar Software mäßig vom OS als auch hardwaremäßig. Ich habe mal gehört, dass die Prozessorhersteller da was amchen wollen. Was ist das und wie soll es funktionieren. Desweiteren, sind BufferOverflows auch in .NET möglich?
|
Re: Schutz vor BufferOverflows
Zitat:
.NET schützt den Programmierer dadurch, daß Datenbuffen und Executable Codes strikt in verschiedenen Bereichen mit verschiedenen Rechten liegen. So kann, wenn zu viele Daten eingelesen werden keine Programmcode überschrieben werden, da dieser eh woanders liegt (gilt nur für Managed Code). Ähnliches will auch Intel machen, wie genau, daß habe ich noch nicht gelesen - keine Zeit :mrgreen: ...:cat:... |
Re: Schutz vor BufferOverflows
Ich meine ja auch gehört zu haben, dass Intel da was in die CPU integrieren will, bin mir aber nicht mehr sich. Auch wüßte ich gerne, wie dass dann aussehen soll.
|
Re: Schutz vor BufferOverflows
So wie ich das verstanden hatte, geht es um ein Tag für Speicherseiten "NX" (No eXecute). Das soll dann bewirken, dass die Ausfürhung von Code in so getaggten Seiten verweigert wird. Somit lassen sich Code- und Datensegment schon auf niedriger Ebene unterscheiden und behandeln. Stack bekommt nen NX-Tag, und egal wie weit der überläuft, Code kann von dort nicht ausgeführt werden.
Berichtigt mich bitte, wenn ich hier Quatsch erzähle ;) gruss, dizzy |
Re: Schutz vor BufferOverflows
ich häng meine frage einfach hier dran: ich hab zwar gechecked, wie buffer overflows entstehen, aber nicht so ganz, wo die gefahr darin liegt. gehe ich recht in der annahme, dass der überschriebene programmcode dann anstatt dessen ausgeführt wird?
|
Re: Schutz vor BufferOverflows
.net sichert auf mehreren Ebenen.
In den Sprachen werden sichere und unsichere Operationen unterschieden. Unsichere Operationen sind erst mal verboten. Zweitens lauft alles auf einer interpretierten Zwischensprache wie bei Java. Dort lassen sich natuerlich alle Arten von Checks einbringen. Das NX-Bit bei CPUs bedeutet das zusatzlich zu den heute vorhandenen Bits read und write ein execute Bit eingerichtet wird. Code in einer Speicherseite ohne dieses Bit kann nicht ausgefuehrt werden. Entsprechend richtet das Betriebssystem dann den Stack entsprechend ein. Da Buffer-Overflows bei Puffern auf dem Stack ansetzen, sind dann die gewoehnlichen Angriffsmethoden mattgesetzt. |
Re: Schutz vor BufferOverflows
Zitat:
Weitere Details zur Ausnutzung des Bufferoverflows möchte ich an dieser Stelle aufgrund meiner Liebe zur Existenz der DP nicht weiter nennen oder von anderen genannt lesen. ...:cat:... |
Re: Schutz vor BufferOverflows
ok, dann hab ichs ja doch gechecked...
|
Re: Schutz vor BufferOverflows
Wegen diesem NX-Bit ne Frage:
Also Code wird nur noch ausgeführt wenn er so ein Bit hat, so weit hab ich das wohl richtig verstanden. Aber irgendwas fehlt mir da noch, sonst käme mir nämlich nicht der Gedanke warum jemand der einen Wurm schreibt diesem nicht einfach solche Bits verpasst. Oder braucht man dafür spezielle Rechte um solche Bits in seine Programme einzufügen? Oder geht das automatisch? Oder über Zertifikate und Blacklists? Das ist doch dann bestimmt mit Lizensierungsgebühren verbunden oder? Bis dann, S - tefano |
Re: Schutz vor BufferOverflows
Zitat:
...:cat:... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz