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

From: Aron Schlesinger <as(at)doc.bsdgroup.de>
Date: Sat, 4 Aug 2007 05:41:43 GMT

as 2007-08-04 05:41:43 UTC

  FreeBSD ports repository

  Modified files:
    books/developers-handbook/secure chapter.sgml
  Log:
  Nach den FDP-Vorgaben formatiert.
  
  Revision Changes Path
  1.3 +343 -339 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.2
  retrieving revision 1.3
  diff -u -I$FreeBSDde.*$ -r1.2 -r1.3
  --- chapter.sgml 4 Aug 2007 03:05:20 -0000 1.2
  +++ chapter.sgml 4 Aug 2007 05:41:42 -0000 1.3
  @@ -26,9 +26,7 @@
           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>
  -
  + vermeiden.</para>
       </sect1>
   
       <sect1 id="secure-philosophy">
  @@ -44,17 +42,15 @@
           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,
  - zu vermeiden.
  - </para>
  + zu vermeiden.</para>
   
         <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,
  + sehr einfach ist Annahmen &uuml;ber die Gesundheit der
  + Umgebung zu machen. Anwendungen sollten Nutzereingaben (in
  + allen Formen) niemals trauen, ebenso, wie System-Ressourcen,
           Inter-Prozess-Kommunikation oder dem zeitlichen Ablauf von
           Ereignissen. &unix;-Prozesse arbeiten nicht synchron. Daher
  - sind logische Operationen selten atomar.
  - </para>
  + sind logische Operationen selten atomar.</para>
       </sect1>
   
       <sect1 id="secure-bufferov">
  @@ -81,9 +77,8 @@
   
           direkt durch Puffer-&Uuml;berl&auml;ufe in Software
           verursacht. Die bei weitem h&auml;ufigste Form eines
  - Puffer-&Uuml;berlauf-Angriffs basiert darauf den Stack zu
  - korrumpieren.
  - </para>
  + Puffer-&Uuml;berlauf-Angriffs basiert darauf den Stack
  + zu korrumpieren.</para>
   
         <indexterm><primary>Stack</primary></indexterm>
         <indexterm><primary>Arguments</primary></indexterm>
  @@ -108,12 +103,13 @@
           <indexterm><primary>Stack-Frame</primary></indexterm>
           <indexterm><primary>Stack-Pointer</primary></indexterm>
   
  - aktuelle Position der Spitze des Stacks enthält. Da sich
  - dieser Wert andauernd &auml;ndert, wenn neue Werte auf dem
  - Stack abgelegt werden, bieten viele Implementierungen einen
  - "Frame-Pointer", der nahe am Anfang des Stack-Frames liegt
  - und es so leichter macht lokale Variablen relativ dazu zu
  - adressieren. <xref linkend="COD"> Die R&uuml;cksprungadresse
  + aktuelle Position der Spitze des Stacks enth&auml;lt.
  + Da sich dieser Wert andauernd &auml;ndert, wenn neue Werte
  + auf dem Stack abgelegt werden, bieten viele Implementierungen
  + einen "Frame-Pointer", der nahe am Anfang des Stack-Frames
  + liegt und es so leichter macht lokale Variablen relativ dazu
  + zu adressieren. <xref linkend="COD">
  + Die R&uuml;cksprungadresse
   
           <indexterm><primary>Frame-Pointer</primary></indexterm>
           <indexterm>
  @@ -129,71 +125,83 @@
           indem er eine lokale Variable in einer Funktion
           &uuml;berlaufen l&auml;sst, die R&uuml;cksprungadresse der
           Funktion &uuml;berschreiben und dadurch beliebigen Code
  - ausf&uuml;hren kann.
  - </para>
  + ausf&uuml;hren kann.</para>
   
  - <para>Obwohl Stack-basierte Angriffe bei weitem die häufigsten
  - sind, ist es auch m&ouml;glich den Stack mit einem
  - Heap-basierten (malloc/free) Angriff zu &uuml;berschreiben.
  - </para>
  + <para>Obwohl Stack-basierte Angriffe bei weitem die
  + 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
  - gef&auml;hrlicher Funktionen.
  - </para>
  + gef&auml;hrlicher Funktionen.</para>
   
         <informaltable frame="none" pgwide="1">
           <tgroup cols="2">
             <tbody>
  - <row><entry><function>strcpy</function>(char *dest, const char
  - *src)</entry>
  - <entry><simpara>Kann den Puffer dest &uuml;berlaufen lassen</simpara></entry>
  - </row>
  -
  - <row><entry><function>strcat</function>(char *dest, const char
  - *src)</entry>
  - <entry><simpara>Kann den Puffer dest &uuml;berlaufen lassen</simpara></entry>
  - </row>
  -
  - <row><entry><function>getwd</function>(char *buf)</entry>
  - <entry><simpara>Kann den Puffer buf &uuml;berlaufen lassen</simpara></entry>
  - </row>
  -
  - <row><entry><function>gets</function>(char *s)</entry>
  - <entry><simpara>Kann den Puffer s &uuml;berlaufen lassen</simpara></entry>
  - </row>
  -
  - <row><entry><function>[vf]scanf</function>(const char *format,
  - ...)</entry>
  - <entry><simpara>Kann sein Argument &uuml;berlaufen lassen</simpara></entry>
  - </row>
  -
  - <row><entry><function>realpath</function>(char *path, char
  - resolved_path[])</entry>
  - <entry><simpara>Kann den Puffer path &uuml;berlaufen lassen</simpara></entry>
  - </row>
  -
  - <row><entry><function>[v]sprintf</function>(char *str, const char
  - *format, ...)</entry>
  - <entry><simpara>Kann den Puffer str &uuml;berlaufen lassen</simpara></entry>
  - </row>
  + <row>
  + <entry><function>strcpy</function>(char *dest,
  + const char *src)</entry>
  + <entry><simpara>Kann den Puffer dest &uuml;berlaufen
  + lassen</simpara></entry>
  + </row>
  +
  + <row>
  + <entry><function>strcat</function>(char *dest,
  + const char *src)</entry>
  + <entry><simpara>Kann den Puffer dest &uuml;berlaufen
  + lassen</simpara></entry>
  + </row>
  +
  + <row>
  + <entry><function>getwd</function>(char *buf)</entry>
  + <entry><simpara>Kann den Puffer buf &uuml;berlaufen
  + lassen</simpara></entry>
  + </row>
  +
  + <row>
  + <entry><function>gets</function>(char *s)</entry>
  + <entry><simpara>Kann den Puffer s &uuml;berlaufen
  + lassen</simpara></entry>
  + </row>
  +
  + <row>
  + <entry><function>[vf]scanf</function>(const char
  + *format, ...)</entry>
  + <entry><simpara>Kann sein Argument &uuml;berlaufen
  + lassen</simpara></entry>
  + </row>
  +
  + <row>
  + <entry><function>realpath</function>(char *path,
  + char resolved_path[])</entry>
  + <entry><simpara>Kann den Puffer path &uuml;berlaufen
  + lassen</simpara></entry>
  + </row>
  +
  + <row>
  + <entry><function>[v]sprintf</function>(char *str,
  + const char *format, ...)</entry>
  + <entry><simpara>Kann den Puffer str &uuml;berlaufen
  + lassen</simpara></entry>
  + </row>
             </tbody>
           </tgroup>
         </informaltable>
   
  - <sect2><title>Puffer-&Uuml;berlauf Beispiel</title>
  + <sect2>
  + <title>Puffer-&Uuml;berlauf Beispiel</title>
   
  - <para>Das folgende Quellcode-Beispiel enth&auml;lt einen
  - Puffer-&Uuml;berlauf, der darauf ausgelegt ist die
  - R&uuml;cksprungadresse zu &uuml;berschreiben und die
  - Anweisung direkt nach dem Funktionsaufruf zu
  - &uuml;berspringen. (Inspiriert durch
  - <xref linkend="Phrack">)
  - </para>
  + <para>Das folgende Quellcode-Beispiel enth&auml;lt einen
  + Puffer-&Uuml;berlauf, der darauf ausgelegt ist die
  + R&uuml;cksprungadresse zu &uuml;berschreiben und die
  + Anweisung direkt nach dem Funktionsaufruf zu
  + &uuml;berspringen. (Inspiriert durch

----------------------------------------------
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 Sat 04 Aug 2007 - 07:42:55 CEST

search this site