Provizoraj ligiloj de IP-permeslistoj: kion la permeso vere allasas
Ligilo, kiu malfermas fajroŝirmilan pordon, allasas adreson, ne personon. Difinu la amplekson, postulu konscian konfirmon kaj testu ripeton, eksvalidiĝon kaj IPv6.
Transformi unu klakon en provizoran fajroŝirmilan regulon estas oportuna, kaj ĝi ankaŭ konstruas aŭtorizan sistemon, kiu decidas, kiu rajtas atingi servon. Ĝi eldonas adreson, ne personon, kaj tiu diferenco gravas en la momento, kiam du homoj kunhavas unu NAT. Limigu la permeson, konfirmu ĝin konscie kaj donu signifon al la eksvalidiĝo antaŭ ol la ligilo estas konstruita. La decido antaŭ vi estas, kie meti la limon, ne ĉu ĝi entute ekzistu.
Decidu, al kiu demando la permeso respondas
Komencu de la postulo. Se nomita persono devas atingi la servon kaj la aplikaĵo jam aŭtentikigas tiun personon, aŭtentikigita enirejo tenas la identecon ĉe la plenum-punkto kaj tute ne bezonas adresan allason. Se la celo estas konstru-aganto, administra saltpordo aŭ aparato, kiu ne povas partopreni en uzanta ensaluto, limigita adresa permeso eble estas la sola praktika kontrolo.
Elekti adresan allason por aplikaĵo fronte al uzantoj translokas la veran aŭtorizan problemon aliloken, kaj tiam la portalo heredas la kulpon pri manko, kiun ĝi neniam fermis.
Limigu la peton sur la servilo
La retumilo ne rajtas elekti la celon, la pordon aŭ la prefikson. La portalo solvas la servon el siaj propraj rikordoj kaj kontrolas la rajton per testado sur la servila flanko, kio estas la sama principo, kiun la aŭtorizaj gvidlinioj de OWASP aplikas al ĉiu peto. Ankaŭ la derivado de la adreso apartenas al la protektita limo: kiam inversa prokurilo raportas la klientan adreson, akceptu nur la agorditan prokurilan ĉenon kaj ĝian dokumentitan traktadon de kaplinioj. Kaplinio de plusendado, kiun provizas vizitanto, estas aserto pri deveno, ne pruvo pri ĝi.
Poste kontrolu, ĉu la portalo kaj la servo vidas la saman fonton. Dividita tunelado, unu prokurila salto kaj IPv4 kontraŭ IPv6 povas doni al du celoj du malsamajn adresojn, do permeso aktivigita per unu vojo eble ne kovras la sekvan peton.
Montru la permeson antaŭ ol instali ĝin
Malfermi ligilon devus montri la proponitan servon, la observitan fonton kaj la daŭron, kaj ankoraŭ ŝanĝi nenion. Tiu unu paŝo igas la retpoŝtan ligilon ago fariĝi propono, kaj ĝi malhelpas antaŭrigardan boton aŭ poŝtan skanilon doni aliron nur per ties elŝuto.
La konfirmo devus esti statoŝanĝa peto kun la kutimaj kontraŭkruŝtadaj kaj kontraŭdevenaj defendoj. La ĵetono devus esti unu-uza kaj atomike konsumita en la momento, kiam la regulo estas instalita, kaj la rikordo devus kapti la posedanton, servon, adreson, permesan identigilon kaj eksvalidiĝon sen iam ajn registri la krudan ĵetonon.
La liverado de la ĵetono meritas la saman zorgon kiel la regulo mem. Eksvalidiĝinta aŭ jam konsumita ligilo, kiu ankoraŭ produktas regulon, estas dua pordo ekipita per la sama ŝlosilo.
La adreso estas kunhava eĉ dum la permeso vivas
Oficeja NAT, provizanta NAT kaj kunhava VPN-eliro ĉiu metas plurajn homojn malantaŭ unu adreso. Allasi tiun adreson allasas ĉiujn malantaŭ ĝi — tiom, kiom temas la sekvan limon de la servo —, dum ĝi pruvas nenion pri tio, kiu tenas la konton, kiun la servo atendas.
Forigi la regulon ankaŭ ne estas universala malkonekto. Starigitaj konektoj, kaŝmemoraj aplikaĵaj ĵetonoj kaj longdaŭraj sesioj povas postvivi la regulon per minutoj aŭ multe pli longe, do la vivdaŭro, kiun vi elektas, devus speguli, kion la servo faras post la allaso, ne nur kiom longe la regulo ekzistas.
Testu kvar kazojn kaj ambaŭ adresajn familiojn
Permeso estas nur tiom bona, kiom la kvar kazoj, kiujn ĝi postvivas: nova permesita peto, neaprobita petanto, ripeto de la sama ligilo kaj la sama peto post eksvalidiĝo.
Poste testu ĉiun familion aparte, ĉar la fonta adreso, kiun la servo observas, povas malsami inter ili.
dig +short A service.example.com
dig +short AAAA service.example.com
curl -4 -sS -o /dev/null -w "%{http_code}\n" https://service.example.com
curl -6 -sS -o /dev/null -w "%{http_code}\n" https://service.example.com
La utila rezulto estas provizora, auditinda allasa decido sub la ordinara uzanta aŭtorizado, anstataŭ konstanta malfermo portanta la nomon de tiu, kiu klakis unue.