Μετάβαση στο κύριο περιεχόμενο
OpenAI

Ασφαλής χρήση του Codex στην OpenAI

Μια ματιά στους ελέγχους, τα όρια και την τηλεμετρία που χρησιμοποιεί η OpenAI για τη διακυβέρνηση πρακτόρων κωδικοποίησης σε πραγματικές ροές εργασίας.

Φόρτωση…

Καθώς τα συστήματα ΤΝ γίνονται πιο ικανά, ενεργούν όλο και περισσότερο εκ μέρους των χρηστών. Οι πράκτορες προγραμματισμού μπορούν να ελέγχουν αυτόνομα αποθετήρια, να εκτελούν εντολές και να αλληλεπιδρούν με εργαλεία ανάπτυξης. Πρόκειται για εργασίες που προηγουμένως απαιτούσαν άμεση εκτέλεση από άνθρωπο.

Με το Codex, σχεδιάσαμε αυτές τις δυνατότητες μαζί με τους ελέγχους που χρειάζονται οι οργανισμοί για ασφαλή ανάπτυξη. Οι ομάδες ασφάλειας χρειάζονται τρόπους να διακυβερνούν τον τρόπο λειτουργίας των πρακτόρων: σε τι μπορούν να έχουν πρόσβαση, πότε απαιτείται ανθρώπινη έγκριση, με ποια συστήματα μπορούν να αλληλεπιδρούν και ποια τηλεμετρία υπάρχει για να εξηγεί τη συμπεριφορά τους.

Στην OpenAI, αναπτύσσουμε το Codex με μερικούς σαφείς στόχους: να κρατάμε τον πράκτορα μέσα σε ξεκάθαρα τεχνικά όρια, να επιτρέπουμε στους προγραμματιστές να κινούνται γρήγορα σε ενέργειες χαμηλού κινδύνου και να καθιστούμε ρητές τις ενέργειες υψηλότερου κινδύνου. Διατηρούμε επίσης τηλεμετρία εγγενή στον πράκτορα ώστε να μπορούμε να κατανοούμε και να ελέγχουμε τι έκανε ο πράκτορας. Στην πράξη, αυτό σημαίνει διαχειριζόμενη διαμόρφωση, περιορισμένη εκτέλεση, πολιτικές δικτύου και καταγραφές εγγενείς στον πράκτορα.

Έλεγχος του τρόπου λειτουργίας του Codex

Αναπτύσσουμε το Codex με μια απλή αρχή: να είναι παραγωγικό μέσα σε ένα οριοθετημένο περιβάλλον, οι καθημερινές ενέργειες χαμηλού κινδύνου να γίνονται χωρίς τριβές και οι ενέργειες υψηλότερου κινδύνου να σταματούν για έλεγχο.

Sandboxing και εγκρίσεις

Οι εγκρίσεις και το sandboxing λειτουργούν μαζί. Το sandbox ορίζει το τεχνικό όριο εκτέλεσης, συμπεριλαμβανομένου του πού μπορεί να γράφει το Codex, αν μπορεί να έχει πρόσβαση στο δίκτυο και ποιες διαδρομές παραμένουν προστατευμένες. Η πολιτική εγκρίσεων καθορίζει πότε το Codex πρέπει να ζητά άδεια για να εκτελέσει μια ενέργεια, όπως όταν χρειάζεται να κάνει κάτι εκτός sandbox. Οι χρήστες μπορούν να εγκρίνουν την ενέργεια μία φορά ή να εγκρίνουν αυτόν τον τύπο ενέργειας για τη συγκεκριμένη συνεδρία.

Για αιτήματα που υπερβαίνουν το όριο του sandbox, χρησιμοποιούμε τη Λειτουργία αυτόματου ελέγχου(ανοίγει σε νέο παράθυρο), μια δυνατότητα που, όταν είναι ενεργοποιημένη, εγκρίνει αυτόματα ορισμένα είδη αιτημάτων ώστε να μειώνεται η ανάγκη των χρηστών να σταματούν και να εγκρίνουν ενέργειες του Codex. Το Codex στέλνει τη σχεδιασμένη ενέργεια και το πρόσφατο θεματικό πλαίσιο στον υποπράκτορα αυτόματης έγκρισης, ο οποίος μπορεί να εγκρίνει αυτόματα ενέργειες χαμηλού ρίσκου —ή ενέργειες υψηλού ρίσκου με επαρκές επίπεδο εξουσιοδότησης χρήστη— αντί να διακόπτει τον χρήστη. Έτσι, το Codex συνεχίζει τη συνήθη εργασία, ενώ εξακολουθεί να σταματά σε ενέργειες υψηλότερου κινδύνου ή σε ενέργειες με ακούσιες συνέπειες.

TOML

1
# config.toml
2

3
# Turn on auto_review
4
approvals_reviewer = "auto_review"
5
# Add known development directories to the sandbox automatically
6
sandbox_workspace_write.writable_roots = ["~/development"]
7

8
# requirements.toml
9

10
# Require Codex to operate inside the sandbox
11
allowed_sandbox_modes = ["read-only", "workspace-write"]

Πρόσβαση στο δίκτυο

Δεν εκτελούμε το Codex με ανεξέλεγκτη εξερχόμενη πρόσβαση. Η διαχειριζόμενη πολιτική δικτύου μας επιτρέπει αναμενόμενους προορισμούς, αποκλείει προορισμούς στους οποίους δεν θέλουμε να φτάνει το Codex και απαιτεί έγκριση για άγνωστους τομείς. Αυτό επιτρέπει στο Codex να ολοκληρώνει συνήθεις, γνωστά ασφαλείς ροές εργασίας χωρίς να του παρέχει ευρεία πρόσβαση στο δίκτυο.

TOML

1
# requirements.toml
2

3
# Ensure web fetch only comes from OpenAI's cache
4
allowed_web_search_modes = ["cached"]
5

6
[experimental_network]
7
# Turn on Network Proxy
8
enabled = true
9
# Allow Codex to interact with localhost
10
allow_local_binding = true
11
# Block all requests to this domain
12
denied_domains = ["pastebin.com"]
13
# Auto-allow requests to these domains
14
allowed_domains = ["login.microsoftonline.com", "*.openai.com"]

Ταυτότητα και στοιχεία σύνδεσης

Διαχειριζόμαστε επίσης τον τρόπο με τον οποίο το Codex πραγματοποιεί έλεγχο ταυτότητας. Τα στοιχεία σύνδεσης OAuth για CLI και MCP αποθηκεύονται στο ασφαλές keyring του λειτουργικού συστήματος, η σύνδεση επιβάλλεται μέσω του ChatGPT και η πρόσβαση είναι συνδεδεμένη με τον εταιρικό χώρο εργασίας του ChatGPT. Αυτό διατηρεί τη χρήση του Codex συνδεδεμένη με τους ελέγχους σε επίπεδο χώρου εργασίας και καθιστά τη δραστηριότητα του Codex διαθέσιμη στην πλατφόρμα ChatGPT Compliance Logs για τον εταιρικό μας χώρο εργασίας.

TOML

1
# config.toml
2

3
# Store CLI Auth Creds in OS Keychain
4
cli_auth_credentials_store = "keyring"
5
# Store MCP Creds in OS Keychain
6
mcp_oauth_credentials_store = "keyring"
7
# Require Auth via ChatGPT
8
forced_login_method = "chatgpt"
9
# Require Auth to Specific ChatGPT Workspace
10
forced_chatgpt_workspace_id = "<workspace-uuid>"

Κανόνες

Χρησιμοποιούμε κανόνες ώστε το Codex να μη θεωρεί κάθε εντολή shell εξίσου ασφαλή. Συνήθεις αβλαβείς εντολές που χρησιμοποιούν οι μηχανικοί στην καθημερινή ανάπτυξη επιτρέπονται χωρίς έγκριση εκτός sandbox, ενώ συγκεκριμένες επικίνδυνες εντολές μπορούν να αποκλείονται ή να απαιτούν έγκριση. Αυτό επιτρέπει στο Codex να κινείται γρήγορα σε συνηθισμένες εργασίες μηχανικής, ενώ εξακολουθεί να επιβάλλει έλεγχο ή να αποκλείει μοτίβα που δεν θέλουμε να εκτελούνται εκτός sandbox.

Starlark

1
# default.rules
2

3
prefix_rule(
4
pattern = ["gh", "pr", ["view", "list"]],
5
decision = "allow",
6
justification = "Allows read-only GitHub PR inspection via gh CLI.",
7
)
8
prefix_rule(
9
pattern = ["kubectl", ["get", "describe", "logs"]],
10
decision = "allow",
11
justification = "Allows Kubernetes resource inspection for debugging.",
12
)

Διαχειριζόμενες διαμορφώσεις

Εφαρμόζουμε αυτή τη στάση μέσω ενός συνδυασμού απαιτήσεων που διαχειρίζονται από το cloud, διαχειριζόμενων προτιμήσεων macOS και τοπικών αρχείων απαιτήσεων. Οι απαιτήσεις είναι έλεγχοι που επιβάλλονται από διαχειριστές και τους οποίους οι χρήστες δεν μπορούν να παρακάμψουν. Οι διαχειριζόμενες προτιμήσεις macOS και τα τοπικά αρχεία απαιτήσεων μάς επιτρέπουν να διατηρούμε μια συνεπή βάση, ενώ παράλληλα δοκιμάζουμε διαφορετικές διαμορφώσεις ανά ομάδα, ομάδα χρηστών ή περιβάλλον. Αυτές οι διαμορφώσεις εφαρμόζονται σε όλες τις τοπικές επιφάνειες του Codex, συμπεριλαμβανομένης της εφαρμογής επιφάνειας εργασίας, του CLI και της επέκτασης IDE.

Τηλεμετρία εγγενής στον πράκτορα και ίχνη ελέγχου

Ο έλεγχος είναι μόνο η μισή δουλειά. Μόλις αναπτυχθούν οι πράκτορες, οι ομάδες ασφάλειας χρειάζονται ορατότητα στο τι κάνουν αυτοί οι πράκτορες και γιατί. Τα παραδοσιακά αρχεία καταγραφής ασφάλειας εξακολουθούν να είναι χρήσιμα όταν εξετάζονται ενέργειες που έκανε το Codex, αλλά κυρίως απαντούν στο τι συνέβη: ξεκίνησε μια διεργασία, άλλαξε ένα αρχείο, επιχειρήθηκε μια σύνδεση δικτύου. Οι αμυνόμενοι εξακολουθούν να πρέπει να καταλάβουν γιατί το Codex έκανε κάτι ή ποια ήταν η πρόθεση του χρήστη.

Το Codex μπορεί να δώσει στις ομάδες ασφάλειας μια πιο προσαρμοσμένη στους πράκτορες εικόνα. Το Codex υποστηρίζει εξαγωγή αρχείων καταγραφής OpenTelemetry για διάφορα συμβάντα του Codex, όπως προτροπές χρηστών, αποφάσεις έγκρισης εργαλείων, αποτελέσματα εκτέλεσης εργαλείων, χρήση διακομιστή MCP και συμβάντα έγκρισης ή απόρριψης από μεσολαβητή δικτύου. Τα αρχεία καταγραφής δραστηριότητας του Codex είναι επίσης διαθέσιμα μέσω της πλατφόρμας συμμόρφωσης OpenAI για πελάτες Enterprise και Edu.

TOML

1
# config.toml
2

3
[otel]
4
log_user_prompt = true
5
environment = "prod"
6

7
[otel.exporter.otlp-http]
8
endpoint = "http://localhost:14318/v1/logs"
9
protocol = "binary"

Στην OpenAI, χρησιμοποιούμε τα αρχεία καταγραφής του Codex μαζί με τον πράκτορα διαλογής ασφάλειας με υποστήριξη TN. Όταν μια ειδοποίηση τελικού σημείου λέει ότι το Codex έκανε κάτι ασυνήθιστο, το εργαλείο ασφάλειας τελικού σημείου μάς ενημερώνει ότι συνέβη ένα ύποπτο συμβάν. Στη συνέχεια, τα αρχεία καταγραφής του Codex βοηθούν να εξηγηθεί η πρόθεση του χρήστη και του πράκτορα στο σχετικό πλαίσιο. Ο πράκτορας διαλογής ασφάλειας TN χρησιμοποιεί τα αρχεία καταγραφής του Codex για να εξετάσει το αρχικό αίτημα, τη δραστηριότητα εργαλείων, τις αποφάσεις έγκρισης, τα αποτελέσματα εργαλείων και κάθε σχετική απόφαση ή αποκλεισμό πολιτικής δικτύου. Ο πράκτορας διαλογής ασφάλειας TN παρουσιάζει την ανάλυσή του στην ομάδα ασφάλειάς μας για έλεγχο, ώστε να διακρίνεται η αναμενόμενη συμπεριφορά του πράκτορα από αβλαβή λάθη και από δραστηριότητα που πράγματι δικαιολογεί κλιμάκωση.

Χρησιμοποιούμε επίσης την ίδια τηλεμετρία και επιχειρησιακά. Χρησιμοποιούμε αυτά τα αρχεία καταγραφής για να κατανοούμε πώς αλλάζει η εσωτερική υιοθέτηση, ποια εργαλεία και διακομιστές MCP χρησιμοποιούνται, πόσο συχνά το sandbox δικτύου αποκλείει ή ζητά έγκριση και πού η διάθεση χρειάζεται ακόμη ρύθμιση. Αυτά τα αρχεία καταγραφής OpenTelemetry μπορούν να συγκεντρώνονται κεντρικά σε συστήματα SIEM και καταγραφής συμμόρφωσης.

Μελλοντικά σχέδια

Καθώς πράκτορες προγραμματισμού όπως το Codex ενσωματώνονται στις ροές εργασίας ανάπτυξης, οι ομάδες ασφάλειας χρειάζονται εργαλεία ειδικά σχεδιασμένα για τη διαχείριση αυτής της μετάβασης. Το Codex παρέχει τις επιφάνειες ελέγχου, τη διαχείριση διαμόρφωσης, το sandboxing και τη λεπτομερή τηλεμετρία προσαρμοσμένη στους πράκτορες που απαιτούνται για να διασφαλιστεί η ασφαλής υιοθέτηση. Με αυτές τις δυνατότητες σε ισχύ, οι ομάδες ασφάλειας μπορούν να ενεργοποιούν το Codex με μεγαλύτερη σιγουριά, εξισορροπώντας την παραγωγικότητα των προγραμματιστών με την ορατότητα και τον έλεγχο που απαιτούνται για την εταιρική ασφάλεια. Περισσότερες πληροφορίες για τη διαμόρφωση του Codex μπορείτε να βρείτε εδώ(ανοίγει σε νέο παράθυρο), και για το API συμμόρφωσης εδώ(ανοίγει σε νέο παράθυρο).

Συντάκτης

OpenAI