"Sicheres" Programmieren

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

“Sicheres” Programmieren
Hi,
also ich fände es gut wenn in der Vorlesung oder in den Übungen genauer auf “Sicheres Programmieren” eingegangen wird, also z.b warum man nicht strcpy sondern strncpy nutzen sollte, usw.

Schliesslich ist das ja doch einer der Gründe warum so viele Viren und Co im Umlauf sind, da viele nicht wissen WIE man (einigermaßen) sicher programmiert, oder wo die Sicherheitslücken einen nur so anspringen :smiley:

Ich will jetzt keinen Kurs oder Vorlesung übers “Hacken”, sondern nur etwas mehr Genauigkeit wo Sicherheitslöcher liegen oder wo welche erzeugt werden.

Schlechtes Beispiel:

char buffer[...];
gets(buffer); // autsch, anspring und umreiß!

oder noch eins

char buffer[...];
strcpy(buffer, my_user_input); // autsch, anspring und umreiß!

oder, oder oder …

gibt genügend so zeug wo man evtl doch durch “vernünftige”/sichere alternativen ersetzen sollte.


also in der übung wurde bei uns auf einige dieser fälle hingewiesen …


das sollte in der ersten Uebung besprochen worden sein wenn ich mich nicht taeusche, ausserdem werdet ihr in Form von Punkteabzug immer wieder dran erinnert :wink:


ok, dann ists ja gut, wollte es nur nochmal gesagt haben :wink:


Es gibt ausserdem irgendwann im Semester wahrscheinlich noch eine Uebung in der man mal vorfuehrt wie ein Pufferueberlauf in einem solchen Programm ausgenutzt werden kann, zumindest war das in den bisherigen Jahren so.


In der 10. Uebung erklaeren wir den Stackaufbau ausfuehrlich. Und danach gibt’s ein
Kapitel „UNIX, C und Sicherheit“.
Wir haben das aus 2 Gruenden weiter nach hinten geschoben:

  1. je mehr Erfahrung man schon hat, desto mehr blickt man auch die Zusammenhaenge -
    z. B. versteht man dann auch auf Anhieb, weshalb ein wesentlicher Teil des Problems
    vermieden wird, wenn man die executable-Rechte auf den Pages des Stacks wegnimmt
    • so der Prozessor das erlaubt
      (auch auf die Gefahr, dass man bis dahin schon einiges an mist programmiert hat -
      wenn einem das dann bewusst wird, ist das ja auch ein positiver Effekt)
  2. momentan will ich die Zeit lieber nutzen, um den Stoff, den man fuer die Bearbeitung
    der Aufgaben braucht durchzubekommen. Gegen Ende haben wir dann Luft.

voellig klar, das ist ein ganz wichtiges Thema.
Aber deshalb muss man vor allem die konzeptionellen Zusammenhaenge erklaeren und weniger
die paar konkreten Phaenome, an denen sie auffallen (die koennen nur Beispiele sein).

Aber schau’ dir ruhig mal die Folien der U10 vom letzten jahr an - ich nehm’ gerne Anregungen auf, wenn
da noch was dazu soll.


wir haben bis jetzt nur die fork-Bombe kennengelernt :smiley:


du meinst wenn dann die geklonten mäuse die schachtel wegfressen?
scnr

ok, werd mir mal die U10 folien ansehen, vielleicht hab ich ja anregungen :wink:


lass die mäuse auf dem zombie-klon-friedhof wo sie hingehören ^^ :smiley:


Mal ganz prinzipiell: was soll denn die Diskussion mitlerweile bewirken?
Meiner Meinung nach ist das ganze Thema Off-Topic gewandert.
Ich hoffe einfach mal, dass die Mods das ganz aehnlich sehen.
Zum Thema moechte ich einfach mal sagen, dass das sichere programmieren mit der Zeit kommt. Ohne Erfahrung gibt es kein “tolles” Programm.


Naja, die Mäusezombies kennen halt die Leute aus der Juk-Übung am Montag.
:-þ


tja da gabs ganze Famlientragoedien


immerhin gibts nen guten init der alle klon-maus-zombie-waisen adoptiert :wink: (hmm könnte natürlich sein das init dann eine Armee der Klonmäuse aufbaut :wink: das sollten wir mal überwachen, nicht das uns ein Angriff der Klonmäusezombies bevorsteht :D)


ach, gute alte offtopic diskussion, endlich bist du wieder da… :wink:
is doch egal ob ein thema mal bissl abdriftet, ich find das sollte man nich so eng sehen, vor allem nich als mod und da dann dauernd rumpfuschen.