cvs commit: de-docproj/books/developers-handbook/secure chapter.sgml

From: Aron Schlesinger <as(at)doc.bsdgroup.de>
Date: Mon, 6 Aug 2007 00:31:10 GMT

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&auml;len und
  + die &unix;-Programmierer seit Jahrzehnten qu&auml;len, und
           inzwischen verf&uuml;gbare Werkzeuge, die Programmierern
           helfen, Sicherheitsl&uuml;cken in ihrem Quelltext zu
           vermeiden.</para>
  @@ -38,7 +38,7 @@
           <quote>geringsten Privilegien</quote> ausgef&uuml;hrt
           werden, sodass kein Prozess mit mehr als dem absoluten
           Minimum an Zugriffsrechten arbeitet, die er zum
  - erf&uuml;llen seiner Aufgabe ben&ouml;tigt. Wo es
  + Erf&uuml;llen seiner Aufgabe ben&ouml;tigt. Wo es
           m&ouml;glich ist, sollte Quelltext, der bereits
           &uuml;berpr&uuml;ft wurde, wiederverwendet werden, um
           h&auml;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 &uuml;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-&Uuml;berl&auml;ufe</title>
   
  - <para>Puffer-&Uuml;berl&auml;ufe gibt es sch&ouml;n seit den
  + <para>Puffer-&Uuml;berl&auml;ufe gibt es schon seit den
           Anf&auml;ngen der Von-Neuman-Architektur <xref linkend="COD">.
   
           <indexterm><primary>Puffer-&Uuml;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 &uuml;bergeben
  - wurden und einer dynamischen Speichermenge f&uuml;r lokale
  + wurden, und einer dynamischen Speichermenge f&uuml;r lokale
           Variablen. Der "Stack-Pointer" ist ein Register, das die
   
           <indexterm><primary>Stack-Frame</primary></indexterm>
  @@ -128,14 +128,14 @@
           ausf&uuml;hren kann.</para>
   
         <para>Obwohl Stack-basierte Angriffe bei weitem die
  - h&auml;ufigsten sind, ist es auch m&ouml;glich den Stack
  + H&auml;ufigsten sind, ist es auch m&ouml;glich den Stack
           mit einem Heap-basierten (malloc/free) Angriff zu
           &uuml;berschreiben.</para>
   
         <para>Die C-Programmiersprache f&uuml;hrt keine automatischen
           Bereichspr&uuml;fungen bei Arrays oder Zeigern durch, wie
           viele andere Sprachen das tun. Au&szlig;erdem enth&auml;lt
  - die C-Standardbibliothek eine Hand voll sehr
  + die C-Standardbibliothek eine handvoll sehr
           gef&auml;hrlicher Funktionen.</para>
   
         <informaltable frame="none" pgwide="1">
  @@ -234,7 +234,7 @@
         </sect2>
   
         <sect2>
  - <title>Puffer &Uuml;berl&auml;ufe vermeiden</title>
  + <title>Puffer-&Uuml;berl&auml;ufe vermeiden</title>
   
           <para>Die offensichtlichste L&ouml;sung, um
             Stack-&Uuml;berl&auml;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&ouml;&szlig;er sein, als die L&auml;nge
  + Diese Funktionen akzeptieren einen Parameter length. Dieser
  + Wert sollte nicht gr&ouml;&szlig;er sein als die L&auml;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&uuml;r weitere Informationen &uuml;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&uuml;gbar.</para>
   
  @@ -307,9 +307,9 @@
               <secondary>Compiler-basiert</secondary>
             </indexterm>
   
  - <para>Ungl&uuml;cklicherweise gibt es immernoch sehr viel
  + <para>Ungl&uuml;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&uuml;cklicherweise gibt es eine weitere L&ouml;sung.
               Es gibt einige Compiler-Erweiterungen und Bibliotheken,
  @@ -375,7 +375,7 @@
             </indexterm>
   
             <para>Compiler-basierte Mechanismen sind bei Software,
  - die nur im Bin&auml;rformat vertrieben wird und die somit
  + die nur im Bin&auml;rformat vertrieben wird, und die somit
               nicht neu kompiliert werden kann v&ouml;llig nutzlos.
               F&uuml;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&uuml;ssen Sie
           sehr vorsichtig mit den Zugriffsrechten sein, die Ihr Prozess
           zu jedem Zeitpunkt besitzt. Speziell hei&szlig;t das alle
  - seteuid-Anwendungen sollten ihr Privilegien abgeben, sobald
  + seteuid-Anwendungen sollten ihre Privilegien abgeben, sobald
           sie diese nicht mehr ben&ouml;tigen.</para>
   
         <indexterm>
  @@ -428,13 +428,13 @@
         <para>Die reale Benutzer-ID kann nur von einem
           Superuser-Prozess ge&auml;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&auml;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&auml;ndert, um die neue
  - <function>suser_xxx()</function> Schnittstelle zu nutzen.
  + <function>suser_xxx()</function>-Schnittstelle zu nutzen.
             Diese Funktion ist daf&uuml;r verantwortlich festzustellen,
             ob bestimmte Superuser-Rechte einem eingesperrten Prozess
             zur Verf&uuml;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&auml;chtiges
  - Werkzeug um Anwendungen in einer sicheren Umgebung
  + Werkzeug, um Anwendungen in einer sicheren Umgebung
             auszuf&uuml;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&uuml;hrt werden
             k&ouml;nnen. Superuser-Zugriff hat in einer Jail nur eine
             sehr eingeschr&auml;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&szlig;erhalb des Programmes
  - stammen auf unsichere Art und Weise verwendet werden. Dieser
  + stammen, auf unsichere Art und Weise verwendet werden. Dieser
           Modus &uuml;berpr&uuml;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

search this site