Yhden napsautuksen muuttaminen tilapäiseksi palomuurisäännöksi on kätevää, ja se rakentaa samalla valtuutusjärjestelmän, joka päättää, kuka saa saavuttaa palvelun. Se myöntää osoitteen eikä henkilöä, ja tällä erolla on merkitystä sinä hetkenä, kun kaksi ihmistä jakaa saman NATin. Rajaa myönnytyksen laajuus, vahvista se tietoisesti ja anna vanhenemiselle merkitys ennen kuin linkki rakennetaan. Edessäsi oleva päätös on siitä, mihin raja asetetaan, ei siitä, pitäisikö sellaista olla.

Päätä, mihin kysymykseen myönnytys vastaa

Aloita vaatimuksesta. Jos nimetyn henkilön on saavutettava palvelu ja sovellus todentaa jo tämän henkilön, todennettu yhdyskäytävä pitää identiteetin valvontapisteessä eikä tarvitse lainkaan osoitteen hyväksymistä. Jos kohde on koontipalvelinagentti, hallinnollinen hyppyportti tai laite, joka ei voi osallistua käyttäjän kirjautumiseen, rajattu osoitemyönnytys voi olla ainoa käytännöllinen hallintakeino.

Osoitteen hyväksymisen valitseminen käyttäjille suunnatulle sovellukselle siirtää varsinaisen valtuutusongelman muualle, ja silloin portaali perii syyn aukosta, jota se ei koskaan sulkenut.

Rajaa pyyntö palvelimella

Selain ei saa valita kohdetta, porttia eikä etuliitettä. Portaali selvittää palvelun omista tietueistaan ja tarkistaa oikeuden palvelinpuolen testillä, mikä on sama periaate, jota OWASPin valtuutusohje soveltaa jokaiseen pyyntöön. Osoitteen johtaminen kuuluu myös suojatulle rajalle: kun käänteinen välityspalvelin ilmoittaa asiakkaan osoitteen, hyväksy vain määritetty välityspalvelinketju ja sen dokumentoitu otsakkeiden käsittely. Vierailijan toimittama edelleenohjausotsake on väite alkuperästä, ei todiste siitä.

Tarkista sitten, että portaali ja palvelu näkevät saman lähteen. Jaettu tunnelointi, yksi välityspalvelushyppy ja IPv4 vastaan IPv6 voivat antaa kahdelle kohteelle kaksi eri osoitetta, joten yhdeltä polulta aktivoitu myönnytys ei välttämättä kata seuraavaa pyyntöä.

Näytä myönnytys ennen sen asentamista

Linkin avaamisen pitäisi näyttää ehdotettu palvelu, havaittu lähde ja kesto eikä vielä muuttaa mitään. Tämä yksi vaihe muuttaa sähköpostitse tulleen linkin toiminnasta ehdotukseksi, ja se estää esikatselubottia tai postin skannaajaa myöntämästä pääsyä pelkästään noutamalla sen.

Vahvistuksen pitäisi olla tilaa muuttava pyyntö tavanomaisine sivustojen välisten ja alkuperän vastaisine suojineen. Tunnuksen pitäisi olla kertakäyttöinen ja kulua atomisesti sillä hetkellä, kun sääntö asennetaan, ja tietueen pitäisi tallentaa omistaja, palvelu, osoite, myönnytyksen tunniste ja vanheneminen koskaan kirjaamatta raakaa tunnusta.

Tunnuksen toimittaminen ansaitsee saman huolen kuin itse sääntö. Vanhentunut tai jo kulutettu linkki, joka silti tuottaa säännön, on toinen ovi, johon on asennettu sama avain.

Osoite on jaettu myös silloin, kun myönnytys on voimassa

Toimiston NAT, operaattorin NAT ja jaettu VPN-uloskäynti asettavat kukin useita ihmisiä yhden osoitteen taakse. Tämän osoitteen hyväksyminen hyväksyy kaikki sen takana olevat — siltä osin kuin on kyse palvelun seuraavasta rajasta —, todistamatta kuitenkaan mitään siitä, kuka pitää hallussaan tiliä, jota palvelu odottaa.

Säännön poistaminen ei sekään ole yleinen katkaisu. Muodostetut yhteydet, välimuistiin tallennetut sovellustunnukset ja pitkäikäiset istunnot voivat elää säännön ohi minuutteja tai paljon kauemmin, joten valitsemasi elinikä kannattaa heijastaa sitä, mitä palvelu tekee hyväksynnän jälkeen, eikä vain sitä, kuinka kauan sääntö on olemassa.

Testaa neljä tapausta ja molemmat osoiteperheet

Myönnytys on vain niin hyvä kuin ne neljä tapausta, jotka se kestää: uusi sallittu pyyntö, hyväksymätön pyytäjä, saman linkin toisto ja sama pyyntö vanhenemisen jälkeen.

Testaa sitten kumpikin perhe erikseen, koska palvelun havaitsema lähdeosoite voi vaihdella niiden välillä.

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

Hyödyllinen lopputulos on tilapäinen, auditoitava hyväksymispäätös tavallisen käyttäjävaltuutuksen alla sen sijaan, että syntyisi pysyvä avaus, joka kantaa ensimmäisenä napsauttaneen nimeä.

Aiheeseen liittyvät artikkelit