Спасылкі часовага спісу дазволеных IP: што насамрэч дазваляе грант
Спасылка, якая адкрывае порт фаервала, дазваляе адрас, а не чалавека. Вызначце абсяг, патрабуйце свядомага пацверджання і праверце паўтор, сканчэнне тэрміну і IPv6.
Ператвараць адзін клік у часовую правілу фаервала зручна, і гэта таксама будуе сістэму аўтарызацыі, якая вырашае, хто можа дасягнуць сэрвісу. Яна выдае адрас, а не чалавека, і гэтая розніца мае значэнне ў той момант, калі два чалавекі дзеляць адзін NAT. Акрэсліце абсяг гранта, пацвердзіце яго свядома і надайце сэнс сканчэнню тэрміну яшчэ да таго, як спасылка будзе створана. Рашэнне перад вамі — дзе паставіць мяжу, а не ці павінна яна існаваць наогул.
Вызначце, на якое пытанне адказвае грант
Пачніце з патрабавання. Калі названы чалавек павінен дасягнуць сэрвісу і праграма ўжо аўтэнтыфікуе гэтага чалавека, аўтэнтыфікаваны шлюз трымае ідэнтычнасць у пункце прымянення і зусім не патрабуе дапуску адрасу. Калі мэта — агент зборкі, адміністрацыйны порт пераходу або прылада, якая не можа ўдзельнічаць у ўваходзе карыстальніка, абмежаваны грант адрасу можа быць адзіным практычным кантролем.
Выбар дапуску адрасу для праграмы, звернутай да карыстальніка, пераносіць сапраўдную праблему аўтарызацыі ў іншае месца, і тады партал атрымлівае ў спадчыну віну за прабел, які ён ніколі не закрыў.
Абмяжуйце запыт на серверы
Браўзер не павінен выбіраць прызначэнне, порт або прэфікс. Партал вызначае сэрвіс з уласных запісаў і правярае права на доступ серверным тэстам, і гэта той самы прынцып, які кіраўніцтва OWASP па аўтарызацыі прымяняе да кожнага запыту. Вывядзенне адрасу таксама належыць да абароненай мяжы: калі зваротны проксі паведамляе адрас кліента, прымайце толькі наладжаны ланцуг проксі і яго дакументаваную апрацоўку загалоўкаў. Загаловак перанакіравання, які падае наведвальнік, — гэта сцвярджэнне пра паходжанне, а не доказ яго.
Затым праверце, што партал і сэрвіс бачаць адну і тую ж крыніцу. Раздвоенае тунеляванне, адзін праскок проксі і IPv4 супраць IPv6 могуць даць двум прызначэнням два розныя адрасы, таму грант, актываваны з аднаго шляху, можа не пакрыць наступны запыт.
Пакажыце грант перад усталяваннем
Адкрыццё спасылкі павінна паказваць прапанаваны сэрвіс, назіраемую крыніцу і працягласць, і пакуль нічога не змяняць. Гэты адзін крок ператварае спасылку з пошты з дзеяння ў прапанову і не дазваляе боту перагляду або сканеру пошты даць доступ, проста загрузіўшы яе.
Пацверджанне павінна быць запытам, які змяняе стан, са звычайнымі міжсайтовымі абаронамі і абаронамі паходжання. Токен павінен быць аднаразовым і спажывацца атамарна ў момант усталявання правілы, а запіс павінен фіксаваць уласніка, сэрвіс, адрас, ідэнтыфікатар гранта і тэрмін дзеяння, ніколі не журналюючы сыры токен.
Дастаўка токена заслугоўвае такой жа ўвагі, як і сама правіла. Пратэрмінаваная або ўжо выкарыстаная спасылка, якая ўсё яшчэ стварае правілу, — гэта другія дзверы, усталяваныя з тым жа ключом.
Адрас супольны нават тады, калі грант дзейнічае
Афісны NAT, NAT аператара і супольны выхад VPN кожны ставяць некалькі чалавек за адзін адрас. Дапусціць гэты адрас — значыць дапусціць усіх, хто за ім — наколькі гэта датычыць наступнай мяжы сэрвісу, — і пры гэтым нічога не даказваючы пра тое, хто трымае ўліковы запіс, якога чакае сэрвіс.
Выдаленне правілы таксама не з'яўляецца ўніверсальным адключэннем. Усталяваныя злучэнні, кэшаваныя токены праграм і доўгачасовыя сесіі могуць перажыць правілу на хвіліны або нашмат даўжэй, таму абраны тэрмін павінен адлюстроўваць тое, што сэрвіс робіць пасля дапуску, а не толькі як доўга існуе правіла.
Праверце чатыры выпадкі і абедзве сям'і адрасоў
Грант добры настолькі, наколькі ён вытрымлівае чатыры выпадкі: новы дазволены запыт, неўхвалены запытнік, паўтор той жа спасылкі і той жа запыт пасля сканчэння тэрміну.
Затым праверце кожную сям'ю асобна, бо адрас крыніцы, які назірае сэрвіс, можа адрознівацца паміж імі.
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
Карысны вынік — часовае рашэнне пра дапуск, якое можна аўдытаваць і якое знаходзіцца пад звычайнай аўтарызацыяй карыстальніка, а не пастаяннае адкрыццё з імем таго, хто націснуў першым.