Korzystanie z Codex w OpenAI
Prezentujemy przegląd mechanizmów kontrolnych, ograniczeń i telemetrii stosowanych w OpenAI do nadzorowania agentów kodujących w rzeczywistych przepływach pracy.
Systemy AI stają się coraz bardziej zaawansowane i coraz częściej działają w imieniu użytkowników. Agenty kodujące mogą autonomicznie przeglądać repozytoria, uruchamiać polecenia i korzystać z narzędzi programistycznych; wcześniej takie zadania były realizowane przez ludzi.
W Codex wprowadziliśmy te możliwości wraz z mechanizmami kontroli niezbędnymi dla organizacji bezpiecznie wdrażających rozwiązania. Zespoły ds. bezpieczeństwa potrzebują mechanizmów nadzorujących działania agentów, które określają: do jakich zasobów mogą uzyskiwać dostęp, kiedy wymagane jest zatwierdzenie przez człowieka, z których systemów mogą korzystać i jaka telemetria jest dostępna, by wyjaśnić ich zachowanie.
W OpenAI wdrażamy Codex z kilkoma jasnymi celami: utrzymać agenta w jasnych granicach technicznych, umożliwić programistom szybkie działanie w przypadku czynności o niskim ryzyku oraz jasno wskazywać działania o wyższym ryzyku. Zachowujemy także telemetrię natywną dla agentów, co pozwala nam zrozumieć działania agenta i weryfikować je. W praktyce oznacza to korzystanie z funkcji zarządzania konfiguracją, ograniczania wykonywania, realizowania zasad sieciowych i rejestrowania zadań agentów.
Podczas wdrażania Codex kierujemy się prostą zasadą: system musi być wydajny w ograniczonym środowisku, codzienne działania o niskim ryzyku mają przebiegać bez zbędnych utrudnień, a działania o wyższym ryzyku powinny być wstrzymywane w celu weryfikacji.
Operacje związane z zatwierdzaniem działań i izolacją współpracują ze sobą. Izolacja definiuje techniczną granicę wykonywania, w tym to, gdzie Codex może zapisywać dane, czy może uzyskać dostęp do sieci i które ścieżki pozostają chronione. Zatwierdzenia określają, kiedy Codex musi poprosić o wykonanie działania, na przykład gdy wymagana jest operacja poza środowiskiem izolowanym. Użytkownicy mogą zatwierdzić działanie jednorazowo albo zatwierdzić ten typ działania dla danej sesji.
Dla żądań przekraczających granice środowiska izolowanego używamy trybu automatycznej weryfikacji(otwiera nowe okno). Po włączeniu tej funkcji automatycznie zatwierdza ona określone rodzaje żądań, co zapewnia, że Codex rzadziej wyświetla monity o zatwierdzanie działań. Codex wysyła zaplanowane działanie oraz ostatni kontekst do agenta podrzędnego zajmującego się automatycznym zatwierdzaniem, który może automatycznie zatwierdzać działania o niskim ryzyku lub działania o wysokim ryzyku przy wystarczającym poziomie autoryzacji użytkownika bez przerywania pracy użytkownika. W ten sposób Codexowi kontynuować realizację rutynowych zadań, zatrzymując się tylko przy działaniach o wyższym ryzyku lub operacjach, które mogą mieć niezamierzone konsekwencje.
Nie uruchamiamy Codex z otwartym, nieograniczonym wychodzącym dostępem do sieci. Nasza zarządzana zasada sieciowa dopuszcza komunikację ze znanymi lokalizacjami docelowymi, blokuje niedozwolone lokalizacje docelowe i wymaga zatwierdzenia w przypadku komunikacji z nieznanymi domenami. Dzięki temu Codex może realizować typowe, zaufane przepływy pracy bez całościowego dostępu do sieci.
Zarządzamy również sposobem uwierzytelniania Codex. Poświadczenia OAuth dla CLI i MCP są przechowywane w bezpiecznym systemowym magazynie kluczy, logowanie jest wymuszane przez ChatGPT, a dostęp jest powiązany z naszą korporacyjną przestrzenią roboczą ChatGPT. Dzięki temu korzystanie z Codex jest powiązane z kontrolami na poziomie przestrzeni roboczej, a zakres działań Codex jest dostępny do wglądu na platformie ChatGPT Compliance Logs Platform dla naszej korporacyjnej przestrzeni roboczej.
Reguły zapewniają, że Codex nie traktuje każdego polecenia powłoki jako jednakowo bezpiecznego. Typowe nieszkodliwe polecenia, których inżynierowie używają w codziennej pracy programistycznej, są dozwolone bez konieczności uzyskania zatwierdzenia poza środowiskiem odizolowanym, a określone niebezpieczne polecenia mogą być blokowane lub wymagać zatwierdzenia przez człowieka. W ten sposób Codex może szybko realizować zwykłe zadania inżynieryjne, a jednocześnie wymuszać weryfikację lub blokować wzorce, których nie chcemy uruchamiać poza środowiskiem odizolowanym.
Ten aspekt realizujemy przez połączenie wymagań zarządzanych w chmurze, zarządzanych preferencji macOS i lokalnych plików wymagań. Wymagania to mechanizmy kontroli egzekwowane przez administratora, których użytkownicy nie mogą obejść. Zarządzane preferencje macOS i lokalne pliki wymagań pozwalają nam utrzymać spójne fundamenty, a jednocześnie testować różne konfiguracje w odrębnych zespołach, grupach użytkowników lub środowiskach. Konfiguracje te obowiązują we wszystkich lokalnych interfejsach Codex, w tym w aplikacji komputerowej, CLI i rozszerzeniu IDE.
Kontrola to nie wszystko, ponieważ po wdrożeniu agentów zespoły ds. bezpieczeństwa potrzebują wglądu w działania agentów i ich przyczyny. Tradycyjne dzienniki bezpieczeństwa nadal są przydatne przy analizie działań wykonywanych przez Codex, ale informują głównie o tym, co się stało: uruchomiono proces, zmieniono plik, podjęto próbę połączenia sieciowego. Obrońcy nadal muszą ustalić, dlaczego Codex coś zrobił, albo jaki był zamiar użytkownika.
Codex może zapewnić zespołom ds. bezpieczeństwa znacznie szersze informacje. System ten obsługuje eksport dzienników OpenTelemetry dla różnych zdarzeń Codex, takich jak polecenia użytkownika, decyzje o zatwierdzaniu narzędzi, wyniki wykonania narzędzi, użycie serwera MCP oraz zdarzenia zezwolenia lub odmowy przez proxy sieciowe. Dzienniki aktywności Codex są również dostępne za pośrednictwem platformy OpenAI Compliance Platform dla klientów Enterprise i Edu.
W OpenAI używamy dzienników Codex razem z naszym agentem do triażu bezpieczeństwa opartym na AI. Gdy alert na punkcie końcowym informuje, że Codex zrobił coś nietypowego, narzędzie bezpieczeństwa w punkcie końcowym powiadamia o wystąpieniu podejrzanego zdarzenia. Dzienniki Codex pomagają następnie wyjaśnić dany zamiar użytkownika i agenta. Nasz agent AI zajmujący się triażem bezpieczeństwa wykorzystuje dzienniki Codex do przeanalizowania pierwotnego żądania, aktywności narzędzi, decyzji o zatwierdzeniu, wyników narzędzi oraz wszelkich istotnych decyzji lub blokad związanych z zasadami sieciowymi. Agent AI wykonujący triaż bezpieczeństwa przekazuje wyniki analizy naszemu zespołowi ds. bezpieczeństwa do weryfikacji, gdzie są one badane pod kątem oczekiwanych zachowań agenta, niegroźnych pomyłek i działań, które rzeczywiście wymagają reakcji.
Tę samą telemetrię wykorzystujemy również w działaniach operacyjnych. Dzienniki pozwalają nam zrozumieć, jak zmienia się wewnętrzne wdrożenie, które narzędzia i serwery MCP są używane, jak często odizolowane środowisko sieciowe blokuje lub prosi o potwierdzenie oraz które obszary wdrożenia nadal wymagają precyzyjnego dostosowania. Dzienniki OpenTelemetry można centralizować w SIEM i systemach rejestrowania zgodności.
W miarę integracji agentów kodujących, takich jak Codex, z przepływami pracy programistycznej, zespoły ds. bezpieczeństwa będą potrzebować narzędzi zaprojektowanych specjalnie do zarządzania takimi właśnie zmianami. Codex zapewnia mechanizmy kontroli potrzebne do bezpiecznego wdrożenia obejmujące zarządzanie konfiguracją, izolację oraz szczegółową telemetrię nastawioną na agentów. Te możliwości pozwalają zespołom ds. bezpieczeństwa wdrażać Codex z większą pewnością, równoważąc produktywność programistów z przejrzystością działań i kontrolą wymaganą w celu zapewnienia bezpieczeństwa przedsiębiorstwa. Więcej informacji na temat konfigurowania Codex można znaleźć tutaj(otwiera nowe okno), a na temat Compliance API tutaj(otwiera nowe okno).


