Hallo zusammen,
in meiner Heimat fand heute eine Fortbildung für Lehrer statt. Einführung in das Programmieren mit Python.
Das Seminar war gut besucht, genau genommen voll.
Viele Informatiklehrer haben wohl keine Lust mehr verschiedene Sprachen zu besprechen. Java für OOP, Perl für irgendwas anderes...., usw.
Diese Einführung wurde von mir geleitet und ich glaube sogar BlackJack wäre heute mit mir zufrieden gewesen (bin neuerdings größenwahnsinnig:loool). Ich hatte meine künstlerische Natur gut im Griff und war mit Termini wirklich umsichtig.
Es gab eine seeeehr interessante Frage, die ich hier stellen will.
Python ist mächtig, so mächtig, dass SchülerInnen an den installierten Betriebssystemen erheblichen Schaden anrichten können. Man denke nur an das Modul os.
Die Frage tauchte auf, als die Teilnehmerin erzählte, was SchülerInnen für Schaden mit Pascal angerichtet hatten.
Aus dem Bauch kam eine Antwort, die sicherlich keine elegante Lösung darstellt, es war genau genommen ein kurzer Ausbruch meiner gezügelten künstlerischen Persönlichkeit
Kritische Module wie os löschen, umbenennen, verstecken o.ä.
Keine Ahnung, welche Nebenwirkungen hier entstehen.
Ausserdem, können die SchülerInnen ja bald kneissen, wie sie das wieder beheben, usw.
Ist natürlich auch nicht toll, wenn man dann auf das Modul eingehen möchte, es wieder herstellen muss usw.
Welche Möglichkeiten bzw. sinnvolle Alternativen seht ihr???
Liebe Grüße
rolgal_reloaded
EDIT (jens): Titel angepasst...
Python und Sicherheit an Schulen...
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
rolgal_reloaded hat geschrieben:Python ist mächtig, so mächtig, dass SchülerInnen an den installierten Betriebssystemen erheblichen Schaden anrichten können. Man denke nur an das Modul os.
Was ist mit dem Modul os. Es bietet Löschfunktionen, genau die gleichen wie auch das Betriebssystem mit befehlen wie rm bietet.
rolgal_reloaded hat geschrieben:Kritische Module wie os löschen, umbenennen, verstecken o.ä.
Keine Ahnung, welche Nebenwirkungen hier entstehen.
Ausserdem, können die SchülerInnen ja bald kneissen, wie sie das wieder beheben, usw.
os ist ein ziemlich essentielles Modul, also kannst du es nicht einfach umschrieben (außerdem ist es in C geschrieben und Teil des Interpreters). Du könntest bestenfalls Funktionen löschen und dann Python neu kompilieren, dabei hoffend, das du nichts in der Struktur kaputt gemacht hast.
rolgal_reloaded hat geschrieben:Welche Möglichkeiten bzw. sinnvolle Alternativen seht ihr???
- Ein vernünftiges OS einsetzen, in dem die Schüler nicht zu viel kaputt machen können. ACLs sind das Zauberwort.
- Darauf vertrauen, dass die Schüler nichts absichtlich kaputt machen. Wenn ja, dann kann dir Python nicht helfen - ein Tool wie rm umgeht dann alle deine Sicherheitsvorkehrungen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- User
- Beiträge: 312
- Registriert: Dienstag 24. Oktober 2006, 19:31
Hallo Leonidas,
ist es möglich die Rechte, die man als User hat zu umgehen? Z.b mit einem Skript das os verwendet.
Angeblich soll nämlich sowas in der Art passiert sein.
Damit kenne ich mich zu wenig aus, um das tatsächliche Bedrohungspotential beurteilen zu können.
Meine Idee habe ich eh selbst schon verworfen, sonst hätte ich ja nicht nach einer Alternative gefragt
Was sind ACLs?
Liebe Grüße
rolgal_reloaded
ist es möglich die Rechte, die man als User hat zu umgehen? Z.b mit einem Skript das os verwendet.
Angeblich soll nämlich sowas in der Art passiert sein.
Damit kenne ich mich zu wenig aus, um das tatsächliche Bedrohungspotential beurteilen zu können.
Meine Idee habe ich eh selbst schon verworfen, sonst hätte ich ja nicht nach einer Alternative gefragt
Was sind ACLs?
Liebe Grüße
rolgal_reloaded
Module aus Sicherheitsgründen entfernen zu wollen, ist am Ziel vorbeigeschossen. Mit unixoiden Systemen ist es ein leichtes, Python im Kontext eines unterpriveligierten Bentuzers laufen zu lassen und somit keine Systemdateien zu gefährden. Das sollte selbst mit Windows realisierbar sein.
Es ist kein Problem der Programmiersprache, die ja gerade für solche Dinge wie Dateizugriffe (positiv angewendet) gedacht ist.
Es ist kein Problem der Programmiersprache, die ja gerade für solche Dinge wie Dateizugriffe (positiv angewendet) gedacht ist.
-
- User
- Beiträge: 312
- Registriert: Dienstag 24. Oktober 2006, 19:31
Natürlich ist es kein Problem der Programmiersprache!
Es geht nur um die Frage inwieweit man Teile der Sprache beschränken kann?
Ob es hier überhaupt eine sinnvolle Möglichkeit gibt.
Meine "Idee" hatte ich ja nur wegen dem Gedanken: kann ich os nicht mehr importieren ist finito mit os.chmod z. Bsp. o.a.
Mich würde nebenbei auch noch interessieren, welche Gefahren überhaupt realistisch sind. Das ist natürlich schwer zu beatworten, weil es wohl auch sehr auf die Konfiguration des Netzwerkes ankommt. Die ist in keiner Schule gleich.
Liebe Grüße
rolgal_reloaded
Es geht nur um die Frage inwieweit man Teile der Sprache beschränken kann?
Ob es hier überhaupt eine sinnvolle Möglichkeit gibt.
Meine "Idee" hatte ich ja nur wegen dem Gedanken: kann ich os nicht mehr importieren ist finito mit os.chmod z. Bsp. o.a.
Mich würde nebenbei auch noch interessieren, welche Gefahren überhaupt realistisch sind. Das ist natürlich schwer zu beatworten, weil es wohl auch sehr auf die Konfiguration des Netzwerkes ankommt. Die ist in keiner Schule gleich.
Liebe Grüße
rolgal_reloaded
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Nein, nicht ohne Exploits zu verwenden. Aber das ist dann ein Problem des OS, wenn es geknackt werden kann, mit Python hat das nix zu tun. Python ist ein ganz normales, unprivilegiertes Userspace-Programm.rolgal_reloaded hat geschrieben:ist es möglich die Rechte, die man als User hat zu umgehen?
Nein, definitiv nicht. Das Modul os benutzt die API-Funktionen die dein OS bereitstellt. Denn du zum Beispiel os.remove('/etc/passwd') dann wird die entsprechende API Funktion des OS aufgerufen, die aber mit einem Fehler abbricht, weil du normalerweise als normaler User keine Schreibrechte auf /etc/passwd hast.rolgal_reloaded hat geschrieben:Z.b mit einem Skript das os verwendet.
Bitte um Details. Haben sie etwa einen Exploit in Pascal geschrieben, oder wie?rolgal_reloaded hat geschrieben:Angeblich soll nämlich sowas in der Art passiert sein.
Access Control Lists, die in Dateisystem sagen, welcher User was mit einer Datei machen kann.rolgal_reloaded hat geschrieben:Was sind ACLs?
Man kann eine Sprache mit Sandbox verwenden. Python hat keine, und 100% sichere Sandboxen gibt es sowieso nicht, nicht in Java, nicht in .NET.rolgal_reloaded hat geschrieben:Es geht nur um die Frage inwieweit man Teile der Sprache beschränken kann?
Was spricht dagegen einfach das Shelltool chmod zu verwenden? Oder dagegen ein anderes C-Modul zu importieren, welches chmod implementiert?rolgal_reloaded hat geschrieben:Meine "Idee" hatte ich ja nur wegen dem Gedanken: kann ich os nicht mehr importieren ist finito mit os.chmod z. Bsp. o.a.
Die Sicherheit muss vom System kommen, nicht von der Implementation der Programmiersprache. Dein System weiter absichern kannst du mit Ansätzen wie grsecurity, SELinux oder AppArmor
Wenn dein System sicher konfiguriert ist, dann ist Python keinerlei Problem. gcc ist da schon ein größeres Sicherheitsrisiko.rolgal_reloaded hat geschrieben:Mich würde nebenbei auch noch interessieren, welche Gefahren überhaupt realistisch sind. Das ist natürlich schwer zu beatworten, weil es wohl auch sehr auf die Konfiguration des Netzwerkes ankommt. Die ist in keiner Schule gleich.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Wenn die Kids genügend Kriminelle Energien besitzen hat man IMHO mit jeder Programmiersprache ein Problem (Naja, vielleicht mit smalltalk nicht... Keine Ahnung...)
Ein Problem sehe ich z.B. auch im Modul socket oder den normalen Sachen wir urllib... Damit könnte man Denial of Service versuchen oder einfach nur einen Portscan machen. Mit ftplib könnte man sich recht einfach ein Passwort Bruteforce Skript programmieren... Naja, es gibt da noch zig anderer möglichen Varianten...
Das ist, wie Leonidas schon sagte, allerdings kein Problem von Python an sich, sondern ehr, wie der Rechner konfiguriert ist
Haben die Kids überhaupt wenig Privilegien am Rechner? Wenn Windows eingesetzt wird und jeder als Admin angemeldet ist, dann kann er sowieso alles machen
Kann man z.B. USB-Sticks oder CD-ROM reinschieben? Dann könnten die Kids auch gleich fertige Script-Kiddy-Programme einschmuggeln
Ein Problem sehe ich z.B. auch im Modul socket oder den normalen Sachen wir urllib... Damit könnte man Denial of Service versuchen oder einfach nur einen Portscan machen. Mit ftplib könnte man sich recht einfach ein Passwort Bruteforce Skript programmieren... Naja, es gibt da noch zig anderer möglichen Varianten...
Das ist, wie Leonidas schon sagte, allerdings kein Problem von Python an sich, sondern ehr, wie der Rechner konfiguriert ist
Haben die Kids überhaupt wenig Privilegien am Rechner? Wenn Windows eingesetzt wird und jeder als Admin angemeldet ist, dann kann er sowieso alles machen
Kann man z.B. USB-Sticks oder CD-ROM reinschieben? Dann könnten die Kids auch gleich fertige Script-Kiddy-Programme einschmuggeln
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Wenn wir schon bei CD's und USB-Sticks sind: Vor allem sollten sich die Rechner nicht von selbigen booten lassen... Sonst koennte ja wer eine bootbare CD mitbringen, sein Lieblings-Betriebssystem (als root/admin) starten und den gesamten Rechner platt machen...
-
- User
- Beiträge: 312
- Registriert: Dienstag 24. Oktober 2006, 19:31
@rebeeca,
mir ist schon klar was du sagen willst. Nur stellt sich die Frage, ob man das Angebot an Vernichtungsmöglichkeiten ständig erweitern sollte.
Das Thema ist natürlich kein Grund zu dem Schluss zu kommen, Python nicht in der Schule zu verwenden!
Wenn es Möglichkeiten gegeben hätte, dass man sich wenigstens beim Programmieren im Unterricht auf das Eigentliche konzentrieren könnte, -- mal nicht auf jeden Tipper, Klick etc. aufpassen muss, wäre das natürlich eine feine Sache gewesen.
LG
rolgal_reloaded
mir ist schon klar was du sagen willst. Nur stellt sich die Frage, ob man das Angebot an Vernichtungsmöglichkeiten ständig erweitern sollte.
Das Thema ist natürlich kein Grund zu dem Schluss zu kommen, Python nicht in der Schule zu verwenden!
Wenn es Möglichkeiten gegeben hätte, dass man sich wenigstens beim Programmieren im Unterricht auf das Eigentliche konzentrieren könnte, -- mal nicht auf jeden Tipper, Klick etc. aufpassen muss, wäre das natürlich eine feine Sache gewesen.
LG
rolgal_reloaded
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Nun ja, aber rebeeca hat vollkommen recht... Was nützt dir ein Absolut sicheres Python, wenn das Kind schon beim booten in's Wasser gefallen ist???rolgal_reloaded hat geschrieben:mir ist schon klar was du sagen willst. Nur stellt sich die Frage, ob man das Angebot an Vernichtungsmöglichkeiten ständig erweitern sollte.
Ich meine wenn ein Schüler unbedingt etwas kaputt machen will, muss man halt alle Eventualitäten ausschalten. Was nutzt es da, das os.remove nicht mehr geht, wenn er das selbe auf Kommandozeile machen kann???
-
- User
- Beiträge: 312
- Registriert: Dienstag 24. Oktober 2006, 19:31
@jens
mir ist inzwischen schon klar, dass es keine sinnvollen Möglichkeiten gibt.
Das was ich oben sonst noch geschrieben habe ist vielleicht besser verständlich, wenn mann selbst Lehrer ist. Mit entsprechenden SchülerInnen
LG
rolgal_reloaded
mir ist inzwischen schon klar, dass es keine sinnvollen Möglichkeiten gibt.
Das was ich oben sonst noch geschrieben habe ist vielleicht besser verständlich, wenn mann selbst Lehrer ist. Mit entsprechenden SchülerInnen
LG
rolgal_reloaded
Man kann auch ohne installierte Programmierumgebung schon genug Mist auf den Rechnern bauen, wenn man will. Wenn die Schüler überhaupt erstmal soweit kommen, dass sie das urllib-Modul oder dergleichen verstehen und benutzen, ist das doch positiv!
Außerdem: Gibt es keine Ansage à la "Wer hier Faxen macht, kriegt 'ne schlechte Note oder fliegt aus dem Kurs oder wird vom SysAdmin persönlich durch die Katakomben der Schule gejagt?" Wenn es keine Regeln gibt und/oder die Kinder sich nicht daran halten, ist ein Programmierkurs ohnehin schon nicht angebracht.
Übrigens ist auch Verantwortung ein wichtiger Teil der Informatik, der natürlich auch vermittelt werden sollte.
Ich denke du machst dir viel zu viele Sorgen. Python ist eine wunderbare Programmiersprache und genau das, was ich mir in der Schule gewünscht hätte (und da gab es nicht einmal Informatik-Unterricht).
Außerdem: Gibt es keine Ansage à la "Wer hier Faxen macht, kriegt 'ne schlechte Note oder fliegt aus dem Kurs oder wird vom SysAdmin persönlich durch die Katakomben der Schule gejagt?" Wenn es keine Regeln gibt und/oder die Kinder sich nicht daran halten, ist ein Programmierkurs ohnehin schon nicht angebracht.
Übrigens ist auch Verantwortung ein wichtiger Teil der Informatik, der natürlich auch vermittelt werden sollte.
Ich denke du machst dir viel zu viele Sorgen. Python ist eine wunderbare Programmiersprache und genau das, was ich mir in der Schule gewünscht hätte (und da gab es nicht einmal Informatik-Unterricht).
Autsch! In Zukunft bitte "CDs", dankeRebecca hat geschrieben:Wenn wir schon bei CD's und USB-Sticks sind
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Das Problem besteht doch nicht nur an Schulen, sondern auch an Unis (und Informatik-Studenten haben potenziell viel mehr Wissen, dass sie kriminell anwenden koennen), bei Schulungen, in Firmen etc (und eigentlich immer, wenn man Internet-Anschluss hat). Und bei allem, was ich so kenne, wurden keine Einschraenkungen der Software vorgenommen so wie du dir das vorstellst, und die Systeme waren dennoch sicher.rolgal_reloaded hat geschrieben:mir ist inzwischen schon klar, dass es keine sinnvollen Möglichkeiten gibt. Das was ich oben sonst noch geschrieben habe ist vielleicht besser verständlich, wenn mann selbst Lehrer ist. Mit entsprechenden SchülerInnen
Das Betriebssystem regelt, wer was darf (unabhaengig von dem Programm, welches der Benutzer verwendet!), darum muss man sich um die Konfiguration seines Betrienssystems kuemmern. Dann ist es relativ egal, welche Programme man die User benutzen laesst. Und wenn man die Rechner nich total von der Aussenwelt abschottet (Internet, Datentreager), dann kann sich sowieso jeder eigene Programme installieren.
YOGi hat geschrieben:Autsch! In Zukunft bitte "CDs", danke
Asche auf mein Haupt. Und dass mir, wo ich mich doch sonst immer missplazierte Apostrophs aufrege...
einschließlich pythonRebecca hat geschrieben:dann kann sich sowieso jeder eigene Programme installieren.
Ne invoces expellere non possis
[url=xmpp://florian@florianheinle.de]xmpp:florian@florianheinle.de[/url]
[url=xmpp://florian@florianheinle.de]xmpp:florian@florianheinle.de[/url]
Müsste das nicht `Apostrophe` heissen? *duck*Rebecca hat geschrieben:YOGi hat geschrieben:Autsch! In Zukunft bitte "CDs", danke
Asche auf mein Haupt. Und dass mir, wo ich mich doch sonst immer missplazierte Apostrophs aufrege...
-
- User
- Beiträge: 312
- Registriert: Dienstag 24. Oktober 2006, 19:31
@alle
Nochmal: ich selber mache mir keine Sorgen. Eine Kursteilnehmerin hat etwas erzählt und eine Frage gestellt, die ich weitergeleitet habe, weil ich nicht wirklich eine gute Antwort hatte. Genau genommen keine.
Ich selbst hatte auch noch nie das Problem, dass größerer Schaden angerichtet wurde.
Vielleicht deshalb, weil die Vorstellung über das zu erwartende Strafmaß so furchterregend ist, dass sie es lieber gleich lassen.
Das ist durchaus vorstellbar, wenn man bei mir schon einen Aufsatz über 200 Worte schreiben muss, wenn man ein Taschentuch quer durch den Raum in den Papierkorb schmeisst.
Thema bezieht sich auf obige Tat und warum diese zu unterlassen ist.
Und die Person wird den Aufsatz solange verbessern bis er gut ist.
Was ich damit sagen möchte, yogi hat es auch angesprochen bzw. angedeutet, könnte es sein, dass auch mangelnde Erziehungsarbeit der betreffenden Kollegin zu extrem undisziplinierten Verhalten geführt hat und somit auch ein entsprechendes Verantwortungsgefühl gegenüber den Geräten etc. bzw. dem Schuleigentum, nicht entwickelt wurde.
rolgal_reloaded
Nochmal: ich selber mache mir keine Sorgen. Eine Kursteilnehmerin hat etwas erzählt und eine Frage gestellt, die ich weitergeleitet habe, weil ich nicht wirklich eine gute Antwort hatte. Genau genommen keine.
Ich selbst hatte auch noch nie das Problem, dass größerer Schaden angerichtet wurde.
Vielleicht deshalb, weil die Vorstellung über das zu erwartende Strafmaß so furchterregend ist, dass sie es lieber gleich lassen.
Das ist durchaus vorstellbar, wenn man bei mir schon einen Aufsatz über 200 Worte schreiben muss, wenn man ein Taschentuch quer durch den Raum in den Papierkorb schmeisst.
Thema bezieht sich auf obige Tat und warum diese zu unterlassen ist.
Und die Person wird den Aufsatz solange verbessern bis er gut ist.
Was ich damit sagen möchte, yogi hat es auch angesprochen bzw. angedeutet, könnte es sein, dass auch mangelnde Erziehungsarbeit der betreffenden Kollegin zu extrem undisziplinierten Verhalten geführt hat und somit auch ein entsprechendes Verantwortungsgefühl gegenüber den Geräten etc. bzw. dem Schuleigentum, nicht entwickelt wurde.
rolgal_reloaded
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Ich sage nichts mehr ohne meinen Duden...BlackJack hat geschrieben:Müsste das nicht `Apostrophe` heissen? *duck*
(Ist echt bloed: Wenn man bei google "mehrzahl" und "apostroph" eingibt, bekommt man alles ueber Mehrzahlbildung *mit* Apostroph, nicht uber Mehrzahlbildung *von* Apostroph...)
off-topic: Ein (nicht ernst gemeinter) Vorschlag für ein Usertreffen in Mainz im nächsten Jahr zum Johannisfest. Denn dann und dort verkauft das Gutenbergmuseum AblässeRebecca hat geschrieben:Ich sage nichts mehr ohne meinen Duden...
. Das könnten min. drei Viertel der Leute hier gebrauchen - und Du, Rebecca, noch am wenigsten ."ein Ablaß von sieben Jahren, sieben Monaten und sieben Tagen Sünden falscher Rechtschreibung und böswilliger Wortverdrehung".
Christian
edit: Ein vergessenes Wort nachgetragen ... glaube ich habe diesen Ablaß auch nötig.
Zuletzt geändert von CM am Mittwoch 8. November 2006, 16:33, insgesamt 1-mal geändert.
back2school:
bei uns ist in einem raum überall der pythoninterpreter installiert...den raum kann man schnell unnutzbar machen, indem man 'print "\b"*100000' eintippt, da ein windowsrechner darauf keine tastatureingabe mehr macht, und das starten der rechner (300mhz, virenverseucht, zu viele benutzer, windows2k) dauert mindestens 10min.
also man kann mit mehr als nur dem modul os anrichten (oder was wäre, wenn immer ein skript laufen würde, dass alle 5 sekunden einenn neuen druckauftrag gibt? oder die festplatte mit müll vollschreibt? 20 gb smileys dürften den betrieb auch stören....)
bei uns ist in einem raum überall der pythoninterpreter installiert...den raum kann man schnell unnutzbar machen, indem man 'print "\b"*100000' eintippt, da ein windowsrechner darauf keine tastatureingabe mehr macht, und das starten der rechner (300mhz, virenverseucht, zu viele benutzer, windows2k) dauert mindestens 10min.
also man kann mit mehr als nur dem modul os anrichten (oder was wäre, wenn immer ein skript laufen würde, dass alle 5 sekunden einenn neuen druckauftrag gibt? oder die festplatte mit müll vollschreibt? 20 gb smileys dürften den betrieb auch stören....)
http://www.cs.unm.edu/~dlchao/flake/doom/