Staging wygląda jak system testowy, dopóki nie zauważysz skopiowanej bazy produkcyjnej, żywych poświadczeń poczty i klucza płatności w jego środowisku. W tym momencie etykieta na karcie przestaje mieć znaczenie, a prawdziwym pytaniem jest, do czego to wdrożenie może dotrzeć i kto może do niego dotrzeć. VPN przy przednich drzwiach nie odpowiada na to pytanie, bo ogranicza jedną drogę do systemu i nic nie mówi o tym, co system może robić na wyjściu. Zacznij od publiczności i pracuj na zewnątrz.

Zacznij od publiczności, nie od URL

Trzy publiczności dają trzy różne projekty. Prywatne środowisko inżynierskie potrzebuje tożsamości i trasy; test akceptacyjny klienta potrzebuje kont reprezentujących klientów; publiczna demonstracja potrzebuje celowego ujawnienia z własnymi zabezpieczeniami. Zapisanie publiczności najpierw zapobiega typowemu dryfowi, w którym URL podglądu po cichu staje się trwały. Wszystko inne w przeglądzie zależy od tej odpowiedzi.

Jeśli nikt nie potrafi nazwać publiczności, potraktuj to jako pierwsze ustalenie, a nie lukę w dokumentacji.

Przejdź przez przednie drzwi i powierzchnie za nimi

Rozwiąż nazwy, zanim zaufasz podanemu URL, a potem poproś wprost o ścieżki administracyjne.

dig +short staging.example.com
curl -sS -o /dev/null -w "%{http_code}\n" https://staging.example.com/
curl -sS -o /dev/null -w "%{http_code}\n" https://staging.example.com/admin

Dodatkowe rekordy często ujawniają adres bezpośredniego pochodzenia, który omija CDN lub wejście VPN, co czyni zamierzoną kontrolę opcjonalną. Przekierowanie mówi, gdzie aplikacja uważa, że mieszka, a nieoczekiwany schemat lub nazwa hosta zasługuje na dalsze sprawdzenie. Sondowanie prawdopodobnej trasy administracyjnej powinno dać odmowę, a nie stronę. Odpowiedź 200 na nieuwierzytelnionej ścieżce administracyjnej to ustalenie, którego szukał cały przegląd.

Sprawdź, co środowisko potrafi, a nie tylko co pokazuje

Strona wymagająca logowania nadal jest dostarczana z uprawnieniami backendu. Zapytaj, pod jaką tożsamością działa obciążenie, a potem przeczytaj przypisane do niej zasady.

aws sts get-caller-identity

To wywołanie raportuje konto i podmiot, których środowisko faktycznie używa, i to jest punkt wyjścia każdego kolejnego pytania o uprawnienia. Stamtąd sprawdź, czy tożsamość może wysyłać pocztę, przenosić pieniądze, czytać sekrety produkcyjne lub zapisywać dane produkcyjne. Zastąp współdzielone poświadczenia produkcyjne ograniczonymi tożsamościami staging i preferuj piaskownice dostawcy, tam gdzie istnieją. Konto testowe, które może obciążyć prawdziwą kartę, jest systemem produkcyjnym o innej nazwie hosta.

Utrzymaj granicę po zakończeniu przeglądu

Środowiska nie zabezpiecza jeden audyt; zabezpiecza je własność, która przetrwa zmiany personelu. Wyznacz, kto usuwa dostęp, resetuje dane testowe i wycofuje wdrożenie, i daj podglądowi termin ważności, który ktoś musi odnowić. Izolacja pomaga tylko tak długo, jak izolowana rzecz jest utrzymywana. Sprawdź ponownie te same ścieżki po następnym wydaniu, bo flaga funkcji albo nowa integracja to dokładnie sposób, w jaki odrzucona trasa staje się otwarta.

Zaakceptuj projekt z dozwolonym przepływem pracy i odrzuconym. Jeśli oba zachowują się zgodnie z dokumentacją, granica istnieje; jeśli przetestowano tylko szczęśliwą ścieżkę, to nadzieja.

Powiązane artykuły