Accueil › Forums › Programmation WIMS › Programmation dans le langage wims › Exécution sécurisée de code
Mots-clés : chroot, docker, programmation
- Ce sujet contient 7 réponses, 4 participants et a été mis à jour pour la dernière fois par
jm.evers, le il y a 2 années et 3 mois.
-
AuteurMessages
-
-
3 septembre 2017 à 22:52 #3948
Ce message est pour information, et pour founir un peu de contexte au message qui suivra.
Avec Judicaël Courant, prof en classes prépa au Lycée de la Martinière
à Lyon, nous avons fait la semaine dernière un sprint pour implanter
une nouvelle primitive dans WIMS permettant d’exécuter, depuis un
exercice OEF quelconque, du code arbitraire de manière sûre dans un bac à sable
isolé. Xiao avait développé dans les années 2000 une commande
similaire ch..root; celle ci a des soucis de portabilité et
n’est donc pas activée dans WIMS. En gros on reprend le flambeau
avec les technologies actuelles (docker, …).Notre cas d’utilisation est la création d’exercices WIMS pour
l’informatique, où les étudiants doivent écrire des programmes et être
évalués dessus. En l’occurence c’est pour le moment pour la première
année d’université et les classes préparatoires respectivement.Voici la description proposée de cette primitive:
secure_exec <dir> <cmd>
Transfère dans un bac à sable le contenu du sous-répertoire
<dir> du répertoire de session de l’étudiant, et y exécute la
commande <cmd>.EXEMPLE:
\text{output = wims(exec secure_exec « tmp » « python fichier.py »)}
Dans la pratique, l’exécution est déportée sur un service web distant.
L’utilisation de secure_exec nécessite donc de déployer un tel service
web. Notre déploiement actuel, hébergée sur le cloud de l’université
Paris Sud, utilise docker pour l’isolation. Le code dans son état
actuel (expérimental) est sur:https://gitlri.lri.fr/nthiery/wims-info/tree/master/secure_exec
Au total, il s’agit de quelques lignes côté client (=serveur wims) et
2-3 pages — configuration comprise — côté service web. Il
faudra rajouter en sus la documentation.Nous rajouterons des précisions ici lorsque ce projet aura maturé; j’espère dans quelques jours/semaines. D’ici là, nous sommes preneurs de commentaires et suggestions, sur la syntaxe, l’implantation ou des usages potientiels.
-
4 septembre 2017 à 12:09 #3954
Juste une précision sur le système « ch..root » de Xiao Gang : Celui-ci est toujours actif sur le serveur « wims.unice.fr », ainsi que au moins sur le serveur de Joke Evers si je ne me trompe pas.
Olivier Bado-Faustin / Université Nice Sophia Antipolis
-
4 septembre 2017 à 20:19 #3957
Oui, mais je ne pense pas qu’il soit suffisant pour permettre l’exécution de programmes par n’importe qui.
Les modules d’informatique qu’avait fait Xiao demandaient autre chose.
Bernadette
-
5 septembre 2017 à 09:45 #3960
Les modules d’informatique qu’avait fait Xiao demandaient autre chose.
En effet : il me semble que ce qu’avait mis en place Xiao Gang pour sécuriser son serveur (en plus de chroot), c’était son systeme « sysmask »
les sources sont toujours ici :
sourceforge.net/projects/sysmaskEt la doc ici : wims.unice.fr/sysmask/doc
-
Cette réponse a été modifiée le il y a 2 années et 3 mois par
Olivier.
-
Cette réponse a été modifiée le il y a 2 années et 3 mois par
Olivier.
Olivier Bado-Faustin / Université Nice Sophia Antipolis
-
Cette réponse a été modifiée le il y a 2 années et 3 mois par
-
5 septembre 2017 à 09:55 #3962
Notez également que grace à l’Internet Web archive, on retrouve le module WIMS qui permettait aux potentiels hackers de tenter de contrer son systeme de sécurité.
http://web.archive.org/web/20080601200544/http://wims.unice.fr/wims/wims.cgi?module=adm/unice/challengeEt il est toujours resté inviolé.
Aujourd’hui Wims.unice.fr est installé sur un autre serveur sans sysmask, c’est pourquoi le module challenge ne s’y trouve plus.
-
Cette réponse a été modifiée le il y a 2 années et 3 mois par
Olivier.
Olivier Bado-Faustin / Université Nice Sophia Antipolis
-
Cette réponse a été modifiée le il y a 2 années et 3 mois par
-
-
4 septembre 2017 à 22:54 #3958
-
5 septembre 2017 à 12:56 #3965
But an exercise on wims can be done by anybody ! not uniquely by our students !
-
5 septembre 2017 à 14:08 #3966
it was a small joke…
but that’s why you can’t make exercises using perl,python,C,lisp,haskell,ruby etc.etc. in a wims chroot : because they are not installed…however in servers -without the extra security of a chroot- one can try to escape to the « real system » ,when exploiting some « new_and_unknown_to_wims_security_flaw » in the aux. software needed by wims.
-
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.