Opinberar SaaS-síður geta verið opnar öllum á meðan stjórnunaraðgerðirnar bak við þær hafna öllum utan VPN. Kerfið sem gerir það mögulegt er hvorki faldur valmynd né sérstök innskráningarsíða; það er athugun á netleiðinni sem skilaði beiðninni. Ef sönnunargögnin um fangið eru röng læsir athugunin annaðhvort raunverulegum stjórnendum út eða hleypir inn hverjum sem getur slegið inn haus. Byrjaðu á því sem uppruninn fær í raun.

Hvað uppruninn fær í raun eftir göngin

Þegar vafri nær opinberu síðunni í gegnum VPN sem flytur einnig internetumferð þýðir hliðið tenginguna áður en hún fer út. SaaS sér opinbert útgangsfang hliðsins, venjulega eitt fang eða lítið bil, og sér aldrei göngufang fartölvunnar. Þess vegna mistekst að setja 10.90.0.42 á lista yfir leyfð fang, og þess vegna mistekst að setja allt RFC 1918 enn háværara: hið síðara hleypir inn hverju einkaneti sem getur náð til þín. Eina fangið sem er þess virði að setja skilyrði á er það sem samtökin þín eiga í raun við útganginn.

curl -s https://ifconfig.me
dig +short admin.example.com

Skipt göng brjóta þessa forsendu hljóðlega. Ef VPN flytur aðeins einkaskrifstofuleiðir fer beiðnin á opinbera stjórnunarhýsilsnafnið út um staðbundna þjónustuveituna og uppruninn sér íbúðarfang. Tengingartákn VPN sannar ekkert um þessa tilteknu áfangastað, svo prófaðu áfangastaðinn en ekki göngin.

Stoppaðu og lagfærðu leiðsögnina áður en þú skrifar nokkra stefnu ef útgangsfangið er breytilegt eftir notendum. Skilyrði sem passar aðeins við suma stjórnendur er verra en ekkert skilyrði, því það felur vandamálið þar til atvik verður.

Treystu aðeins proxyinu sem endurskrifar fangið

Flestar opinberar síður eru bak við CDN eða öfugt proxy, svo sökkulfang upprunans tilheyrir því framenda en ekki gestinum. Framendinn sendir venjulega upprunalega fangið áfram í haus, og þeim haus stjórnar árásarmaður nema uppruninn samþykki hann aðeins frá þekktum proxyum. Skilgreindu listann yfir traustar uppsprettur skýrt og gerðu upprunann óaðgengilegan frá öllum öðrum stað. Án þess síðari helmings fer árásarmaður fram hjá proxyinu og sendir hausinn beint.

set_real_ip_from 192.0.2.0/24;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
curl -H 'X-Forwarded-For: 198.51.100.27' https://origin.example.com/admin

Sama röksemd á við PROXY-samskiptaregluna: hún er aðeins traust þegar hlustandinn er bundinn við tengi sem proxyið nær til og ekkert annað nær til. Skortur á fangssamhengi verður að láta hina vernduðu athugun mistakast í stað þess að falla í sjálfgefið leyfi. Haus sem vantar er ekki sönnun fyrir traustri leið.

Festu skilyrðið við hverja verndaða aðgerð

Setja athugunina á heimildarmörkin sem hver vernduð aðgerð fer í gegnum, ekki á síðuna sem teiknar valmyndina. Leiðarhópar, millihugbúnaður eða stefnulag virka öll; afrit fyrir hvern handfara ekki, því handfarinn sem einhver bætir við næsta fjórðung hefur það ekki.

user = requireAuthenticatedSession()
requirePermission(user, "admin")
requireVpnEgress(verifiedClientAddress(request))
performProtectedOperation(user, request)

Sama mörk verða að ná yfir JSON API, útflutning, undirrituð niðurhalsslóð og WebSocket-handtakið, þar sem ekkert þeirra þarf að biðja um HTML-síðuna fyrst. Niðurhalstengill sem búinn var til meðan VPN var í gangi helst gildur eftir á nema niðurhalsendapunkturinn athugi aftur. Langlíf lotur þurfa líka endurmatsskilyrði, annars verður ein auðkennd beiðni varanleg undantekning. Sjálfgefin synjun er eina stillingin sem lifir starfsmannaveltu.

Deildar skyndiminnur eru hin leiðin fram hjá athuguninni. Skyndiminni sem þegar geymir verndað svar getur afhent það án þess að hafa samband við upprunann, svo merktu stjórnunarsvör sem einkasvör og haltu þeim utan deildrar geymslu. Ef skyndiminni verður að afhenda þau verður aðgangsathugunin að keyra fyrir afhendinguna, sem venjulega þýðir að það getur alls ekki verið deilt skyndiminni.

Prófaðu framhjáleiðirnar sem þú lokaðir rétt í þessu

Æfðu fylkið en ekki hamingjusömu leiðina: stjórnandi í gegnum VPN, sami stjórnandi án þess, ekki stjórnandi í gegnum það, og fölsuð fangshaus. Bættu við beiðni beint á upprunann og beiðni með skyndiminni svari, því þessar tvær fara alveg fram hjá framendanum.

curl -sI https://admin.example.com/export.csv
curl -s -H 'X-Forwarded-For: 198.51.100.27' https://origin.example.com/admin
curl -s https://admin.example.com/api/me -o /dev/null -w '%{http_code}\n'

Hver beiðni ætti að skila þeirri stöðu sem stefnan lofar, og skráin ætti að skrá hvaða fangssönnunargögn voru notuð. Náðu yfir IPv6 sérstaklega, því tvíþættur uppruni getur séð aðra uppsprettufjölskyldu en þá sem þú prófaðir. Haltu venjulegum viðskiptavinaraðgerðum gangandi utan VPN, annars verður breytingunni rift við fyrstu kvörtun viðskiptavinar. Skrifaðu væntanlegt niðurstöðu hverrar línu áður en þú keyrir hana, svo óvænt framhjáhlaup sé sýnilegt.

Útgangsfangið sannar leyfilega netleið, ekki manneskju og ekki stýrt tæki. Haltu því sem einu skilyrði við hlið auðkenningar og heimildar, og stjórnsvæðið helst þröngt án þess að gera alla vöruna að þjónustu eingöngu fyrir VPN. Sú aðskilnaður er hönnunin, ekki takmörkun á henni.

Tengdir greinar