Тэставае асяроддзе выглядае як тэставая сістэма, пакуль вы не заўважыце скапіяваную прадакшн-базу даных, жывы паштовы ўліковы запіс і плацежны ключ у яго асяроддзі. У гэты момант этыкетка на ўкладцы перастае мець значэнне, і сапраўднае пытанне ў тым, чаго гэтае разгортванне можа дасягнуць і хто можа дасягнуць яго. VPN на ўваходных дзвярах не адказвае на гэтае пытанне, бо абмяжоўвае адзін шлях у сістэму і нічога не кажа пра тое, што сістэма можа рабіць на выхадзе. Пачніце з аўдыторыі і рухайцеся вонкі.

Пачніце з аўдыторыі, а не з URL

Тры аўдыторыі даюць тры розныя праекты. Прыватнае інжынернае асяроддзе патрабуе ідэнтычнасці і маршруту; тэст прыёмкі кліента патрабуе ўліковых запісаў, якія прадстаўляюць кліентаў; публічная дэманстрацыя патрабуе наўмыснага раскрыцця з уласнымі сродкамі кантролю. Запіс аўдыторыі перш за ўсё прадухіляе звычайны дрыфт, калі URL папярэдняга прагляду ціха робіцца пастаянным. Усё астатняе ў аглядзе залежыць ад гэтага адказу.

Калі ніхто не можа назваць аўдыторыю, лічыце гэта першай знаходкай, а не прабелам у дакументацыі.

Прайдзіце праз уваходныя дзверы і паверхні за імі

Вызначыце імёны, перш чым давяраць дадзенаму вам URL, затым запытайце адміністрацыйныя шляхі напрамую.

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

Дадатковыя запісы часта выяўляюць адрас прамога паходжання, які абыходзіць CDN або ўваход VPN, што робіць прызначаны кантроль неабавязковым. Перанакіраванне кажа вам, дзе праграма, на яе думку, жыве, а нечаканая схема або імя хоста заслугоўвае дадатковай праверкі. Спроба верагоднага адмін-маршруту павінна даць адмову, а не старонку. Адказ 200 на неаўтэнтыфікаваным адміністрацыйным шляху — гэта знаходка, якую шукаў увесь агляд.

Праверце, што асяроддзе можа рабіць, а не толькі што яно паказвае

Старонка, якая патрабуе ўваходу, усё роўна пастаўляецца з паўнамоцтвамі бэкэнда. Спытайце, пад якой ідэнтычнасцю працуе нагрузка, затым прачытайце палітыкі, прывязаныя да яе.

aws sts get-caller-identity

Гэты выклік паведамляе пра ўліковы запіс і прынцыпал, які асяроддзе фактычна выкарыстоўвае, што з’яўляецца адпраўной кропкай для кожнага далейшага пытання аб дазволах. Адтуль праверце, ці можа ідэнтычнасць адпраўляць пошту, перамяшчаць грошы, чытаць прадакшн-сакрэты або запісваць прадакшн-даныя. Замяніце агульныя прадакшн-уліковыя даныя на абмежаваныя тэставыя ідэнтычнасці і аддавайце перавагу пастаўшчыцкім пясочніцам, дзе яны ёсць. Тэставы ўліковы запіс, які можа спагнаць сродак з рэальнай карты, — гэта прадакшн-сістэма з іншым імем хоста.

Захавайце мяжу пасля завяршэння агляду

Асяроддзе не абараняецца адным аўдытам; яно абараняецца ўласнасцю, якая перажывае змены супрацоўнікаў. Прызначце, хто здымае доступ, скідае тэставыя даныя і выводзіць разгортванне з эксплуатацыі, і дайце папярэдняму прагляду тэрмін дзеяння, які нехта павінен прадоўжыць. Ізаляцыя дапамагае толькі пакуль ізаляванае падтрымліваецца. Пераправерце тыя ж шляхі пасля наступнага рэлізу, бо сцяг функцыі або новая інтэграцыя — гэта менавіта тое, як забаронены маршрут робіцца адчыненым.

Прыміце праект з дазволеным працоўным патокам і адмоўленым. Калі абодва паводзяць сябе як дакументавана, мяжа існуе; калі тэставаўся толькі шчаслівы шлях, гэта надзея.

Падобныя артыкулы