@ AndréBorie a raison. Les compilateurs et la configuration correspondante ne seront pas bien contrôlés pour les problèmes de sécurité, donc de manière générale, vous ne devriez pas compiler de code non fiable.
Le risque est qu'un débordement de tampon ou un certain type de vulnérabilité d'exécution de bibliothèque soit exploité, et le l'attaquant accède au compte utilisateur (espérons-le non root
!) qui a exécuté le compilateur. Même un piratage non root
est sérieux dans la plupart des cas. Cela pourrait être développé dans une question distincte.
Créer une VM est une bonne solution, pour contenir tous les exploits potentiels afin qu'ils ne puissent pas nuire au reste de votre application.
C'est mieux pour avoir un modèle de VM Linux, vous pouvez le lancer selon vos besoins avec un environnement de compilateur clean slate.
Idéalement, vous le jetteriez après chaque utilisation, mais cela peut ne pas être strictement nécessaire. Si vous isolez suffisamment bien la machine virtuelle et nettoyez correctement les données de réponse de la machine virtuelle, ce que vous devriez faire de toute façon; alors le pire qu'un hack puisse faire est DoS ou créer de faux temps de compilation. Ce ne sont pas des problèmes graves en soi; au moins pas aussi grave que d'accéder au reste de votre application.
Cependant, la réinitialisation de la VM après chaque utilisation (c'est-à-dire au lieu de quotidiennement) fournit un environnement globalement plus stable et peut améliorer la sécurité dans certains bords cas.
Certains systèmes d'exploitation proposent des conteneurs comme alternative aux VM. C'est peut-être une approche plus légère, mais les mêmes principes s'appliquent.