Skip to main content

0004 — Ο CBotBuilder εκτελείται στον διακομιστή web σε κοντέινερ sandbox

Πλαίσιο​

Το κτίριο cBot ενός χρήστη σημαίνει την εκτέλεση αναξιόπιστης MSBuild — αυθαίρετος κώδικας κατά το χρόνο κατασκευής (στόχοι, γεννήτριες πηγής, σενάρια επαναφοράς). Χρειάζεται την υποδοχή Docker για να ενεργοποιήσει ένα κοντέινερ SDK. Κόμβοι εκτελούν κοντέινερ διαπραγμάτευσης και δεν πρέπει επίσης να κατέχουν προνόμια κατασκευής.

Απόφαση​

Ο CBotBuilder εκτελείται στον διακομιστή web (ο οποίος ήδη έχει την υποδοχή Docker), μέσα σε ένα κοντέινερ SDK που πετάγεται με:

  • έναν κατάλογο /work που συνδέεται (μόνο οι είσοδοι/έξοδοι κατασκευής, όχι το σύστημα αρχείων κεντρικού υπολογιστή);
  • έναν κοινόχρηστο όγκο app-nuget-cache για απόδοση επαναφοράς;
  • χωρίς πρόσβαση δικτύου κεντρικού υπολογιστή πέρα από αυτό που χρειάζεται επαναφορά.

Έτσι αναξιόπιστη MSBuild δεν μπορεί να φτάσει στο σύστημα αρχείων του κεντρικού υπολογιστή ή το δίκτυο. Εκτέλεση/κοντέινερ backtest, από την αντίθεση, εκτέλεση σε κόμβους που επιλέγουν από το NodeScheduler.

Συνέπειες​

  • Προνόμιο κατασκευής (υποδοχή Docker) περιορίζεται στον διακομιστή web. οι κόμβοι εκτελούν μόνο επιτρεπόμενες εικόνες διαπραγμάτευσης.
  • Κάθε δημιουργία απομονώνεται σε ένα διαθέσιμο κοντέινερ — ένα κακόβουλο κτίριο δεν μπορεί να παραμείνει ή να ξεφύγει.
  • Ο διακομιστής web πρέπει να έχει μια υποδοχή Docker διαθέσιμη. αυτό είναι ένα απαίτημα ανάπτυξης, όχι προαιρετικό.