as 2007-08-06 00:31:10 UTC
FreeBSD ports repository
Modified files:
books/developers-handbook/secure chapter.sgml
Log:
Kapitel 3 von ds@ gegengelesen.
Revision Changes Path
1.5 +26 -26 de-docproj/books/developers-handbook/secure/chapter.sgml
Index: chapter.sgml
===================================================================
RCS file: /home/cvs/de-docproj/books/developers-handbook/secure/chapter.sgml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -I$FreeBSDde.*$ -r1.4 -r1.5
--- chapter.sgml 4 Aug 2007 20:58:16 -0000 1.4
+++ chapter.sgml 6 Aug 2007 00:31:10 -0000 1.5
@@ -23,7 +23,7 @@
<title>Zusammenfassung</title>
<para>Dieses Kapitel beschreibt einige Sicherheitsprobleme,
- die &unix;-Programmierer seit Jahrzehnten quälen und
+ die &unix;-Programmierer seit Jahrzehnten quälen, und
inzwischen verfügbare Werkzeuge, die Programmierern
helfen, Sicherheitslücken in ihrem Quelltext zu
vermeiden.</para>
@@ -38,7 +38,7 @@
<quote>geringsten Privilegien</quote> ausgeführt
werden, sodass kein Prozess mit mehr als dem absoluten
Minimum an Zugriffsrechten arbeitet, die er zum
- erfüllen seiner Aufgabe benötigt. Wo es
+ Erfüllen seiner Aufgabe benötigt. Wo es
möglich ist, sollte Quelltext, der bereits
überprüft wurde, wiederverwendet werden, um
häufige Fehler, die andere schon korrigiert haben,
@@ -47,7 +47,7 @@
<para>Eine der Stolperfallen der &unix;-Umgebung ist, dass es
sehr einfach ist Annahmen über die Gesundheit der
Umgebung zu machen. Anwendungen sollten Nutzereingaben (in
- allen Formen) niemals trauen, ebenso, wie System-Ressourcen,
+ allen Formen) niemals trauen, genausowenig wie System-Ressourcen,
Inter-Prozess-Kommunikation oder dem zeitlichen Ablauf von
Ereignissen. &unix;-Prozesse arbeiten nicht synchron. Daher
sind logische Operationen selten atomar.</para>
@@ -56,7 +56,7 @@
<sect1 id="secure-bufferov">
<title>Puffer-Überläufe</title>
- <para>Puffer-Überläufe gibt es schön seit den
+ <para>Puffer-Überläufe gibt es schon seit den
Anfängen der Von-Neuman-Architektur <xref linkend="COD">.
<indexterm><primary>Puffer-Überlauf</primary></indexterm>
@@ -68,7 +68,7 @@
<indexterm><primary>Morris Internetwurm</primary></indexterm>
funktioniert der gleiche grundlegende Angriff noch heute. Von
- den 17 CERT Sicherheitshinweisen im Jahr 1999, wurden zehn
+ den 17 CERT Sicherheitshinweisen im Jahr 1999 wurden zehn
<indexterm>
<primary>CERT</primary>
@@ -95,9 +95,9 @@
<secondary>Stack-Pointer</secondary>
</indexterm>
- aufruft, wird ein neuer "Stack-Frame" erzeugt. Dieser
+ aufruft wird ein neuer "Stack-Frame" erzeugt. Dieser
besteht aus den Argumenten, die der Funktion übergeben
- wurden und einer dynamischen Speichermenge für lokale
+ wurden, und einer dynamischen Speichermenge für lokale
Variablen. Der "Stack-Pointer" ist ein Register, das die
<indexterm><primary>Stack-Frame</primary></indexterm>
@@ -128,14 +128,14 @@
ausführen kann.</para>
<para>Obwohl Stack-basierte Angriffe bei weitem die
- häufigsten sind, ist es auch möglich den Stack
+ Häufigsten sind, ist es auch möglich den Stack
mit einem Heap-basierten (malloc/free) Angriff zu
überschreiben.</para>
<para>Die C-Programmiersprache führt keine automatischen
Bereichsprüfungen bei Arrays oder Zeigern durch, wie
viele andere Sprachen das tun. Außerdem enthält
- die C-Standardbibliothek eine Hand voll sehr
+ die C-Standardbibliothek eine handvoll sehr
gefährlicher Funktionen.</para>
<informaltable frame="none" pgwide="1">
@@ -234,7 +234,7 @@
</sect2>
<sect2>
- <title>Puffer Überläufe vermeiden</title>
+ <title>Puffer-Überläufe vermeiden</title>
<para>Die offensichtlichste Lösung, um
Stack-Überläufe zu vermeiden, ist bei Operationen
@@ -252,8 +252,8 @@
<secondary>strncat</secondary>
</indexterm>
- Diese Funktionen akzeptieren einen Parameteri length. Dieser
- Wert sollte nicht größer sein, als die Länge
+ Diese Funktionen akzeptieren einen Parameter length. Dieser
+ Wert sollte nicht größer sein als die Länge
des Zielpuffers. Die Funktionen kopieren dann bis zu
`length' Bytes von der Quelle zum Ziel. Allerdings gibt es
auch einige Probleme. Keine der Funktionen garantiert, dass
@@ -279,12 +279,12 @@
<indexterm><primary>OpenBSD</primary></indexterm>
kopieren von Speicherbereichen implementiert, die dieses
- Problem umgeht. Die Funtkionen <function>strlcpy</function>
+ Problem umgeht. Die Funktionen <function>strlcpy</function>
und <function>strlcat</function> garantieren, dass das Ziel
immer NUL-terminiert wird, wenn das Argument length ungleich
null ist. Für weitere Informationen über diese
Funktionen lesen Sie bitte <xref linkend="OpenBSD">. Die
- OpenBSD Anweisungen <function>strlcpy</function> und
+ OpenBSD-Anweisungen <function>strlcpy</function> und
<function>strlcat</function> sind seit Version 3.3 auch in
FreeBSD verfügbar.</para>
@@ -307,9 +307,9 @@
<secondary>Compiler-basiert</secondary>
</indexterm>
- <para>Unglücklicherweise gibt es immernoch sehr viel
+ <para>Unglücklicherweise gibt es immer noch sehr viel
Quelltext, der allgemein verwendet wird und blind Speicher
- umherkopiert ohne eine der begrenzenden Funktionen zu
+ umherkopiert, ohne eine der begrenzenden Funktionen zu
verwenden, die wir gerade besprochen haben.
Glücklicherweise gibt es eine weitere Lösung.
Es gibt einige Compiler-Erweiterungen und Bibliotheken,
@@ -375,7 +375,7 @@
</indexterm>
<para>Compiler-basierte Mechanismen sind bei Software,
- die nur im Binärformat vertrieben wird und die somit
+ die nur im Binärformat vertrieben wird, und die somit
nicht neu kompiliert werden kann völlig nutzlos.
Für diesen Fall gibt es einige Bibliotheken, welche
die unsicheren Funktionen der C-Bibliothek
@@ -413,7 +413,7 @@
IDs, die diesem zugeordnet sind. Deshalb müssen Sie
sehr vorsichtig mit den Zugriffsrechten sein, die Ihr Prozess
zu jedem Zeitpunkt besitzt. Speziell heißt das alle
- seteuid-Anwendungen sollten ihr Privilegien abgeben, sobald
+ seteuid-Anwendungen sollten ihre Privilegien abgeben, sobald
sie diese nicht mehr benötigen.</para>
<indexterm>
@@ -428,13 +428,13 @@
<para>Die reale Benutzer-ID kann nur von einem
Superuser-Prozess geändert werden. Das Programm
<application>login</application> setzt sie, wenn sich ein
- Benutzer am System anmeldet und sie wird nur selten
+ Benutzer am System anmeldet, und sie wird nur selten
geändert.</para>
<para>Die effektive Benutzer-ID wird von der Funktion
<function>exec()</function> gesetzt, wenn das seteuid-Bit
eines Programmes gesetzt ist. Eine Anwendung kann
- <function>seteuid()</function> zu jeder Zeit aufrufen um die
+ <function>seteuid()</function> zu jeder Zeit aufrufen, um die
effektive Benutzer-ID entweder auf die reale Benutzer-ID oder
die gespeicherte set-user-ID zu setzen. Wenn die Funktion
<function>exec()</function> die effektive Benutzer-ID setzt,
@@ -498,13 +498,13 @@
<function>suser()</function> fehlschlagen. Allerdings
wurden einige Aufrufe von <function>suser()</function>
abgeändert, um die neue
- <function>suser_xxx()</function> Schnittstelle zu nutzen.
+ <function>suser_xxx()</function>-Schnittstelle zu nutzen.
Diese Funktion ist dafür verantwortlich festzustellen,
ob bestimmte Superuser-Rechte einem eingesperrten Prozess
zur Verfügung stehen.</para>
<para>Ein Superuser-Prozess innerhalb einer Jail darf
- Folgendes:</para>
+ folgendes:</para>
<itemizedlist>
<listitem>
@@ -546,10 +546,10 @@
</itemizedlist>
<para><function>Jail</function>s sind ein mächtiges
- Werkzeug um Anwendungen in einer sicheren Umgebung
+ Werkzeug, um Anwendungen in einer sicheren Umgebung
auszuführen, aber sie haben auch ihre Nachteile.
Derzeit wurden IPC-Mechanismen noch nicht an
- <function>suser_xxx</function> angepasst, sodass Anwendungen,
+ <function>suser_xxx</function> angepasst, sodass Anwendungen
wie MySQL nicht innerhalb einer Jail ausgeführt werden
können. Superuser-Zugriff hat in einer Jail nur eine
sehr eingeschränkte Bedeutung, aber man kann nicht genau
@@ -605,7 +605,7 @@
<para>Perl bietet eine wirklich coole Funktion, den sogenannten
"Taint"-Modus, der verwendet werden kann, um zu verhindern,
dass Skripten Daten, die von außerhalb des Programmes
- stammen auf unsichere Art und Weise verwendet werden. Dieser
+ stammen, auf unsichere Art und Weise verwendet werden. Dieser
Modus überprüft Kommandozeilenargumente,
Umgebungsvariablen, Lokalisierungsinformationen, die
----------------------------------------------
Diff block truncated. (Max lines = 200)
----------------------------------------------
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-cvs-doc" in the body of the message
Received on Mon 06 Aug 2007 - 02:32:32 CEST