На канцеларијској LAN мрежи интерно име одговара одмах. У тренутку када је VPN укључен оно престаје да ради, апликација пријављује истек времена, а сам тунел без примедби преноси саобраћај. Оно што се променило јесте решавач, а тај решавач има своје мишљење о приватним адресама.

Заштита од ребиндинга постоји да заустави један одређени трик. Намерно објављено приватно име изгледа довољно слично да се одбрана активира.

Прочитајте одговор пре правила

Питајте име код решавача који VPN заиста дистрибуира, а не код оног који ваш преносни рачунар користи код куће. Упоредите одговор са записом који очекујете и забележите да ли је одговор празан, одбијен или пун јавних адреса које нико није планирао.

Симптоми се преклапају, па дијагнозу одређује облик одговора. NXDOMAIN је запис који недостаје, REFUSED је правило приступа, јавна адреса за интерно име је грешка правила или split-DNS-а, а исправна приватна адреса коју клијент не може да користи сасвим је други проблем. Одбијена веза или заглављен захтев сами по себи ништа не доказују, зато би прва наредба у таквим пријавама требало да буде упит, а не поновно покретање. Запишите одговор пре него што било шта промените.

Шта одбрана заиста зауставља

DNS ребиндинг ради тако што мења у шта се име разрешава након што му је клијент већ поверовао. Страница се учита са имена које контролише нападач, одговор се преокрене на приватну адресу, а прегледач је преварен да разговара са нечим на локалној мрежи са чим никада не би прихватио директну везу. Одбрана је одбити одговоре који показују у приватни простор када решавач никада није био позван да служи приватни простор имена. Та асиметрија је цео напад.

dnsmasq документује управо такво понашање, заједно са изузецима по домену. У свом приручнику описује rebind-domain-ok као начин да се именују домени који могу легитимно да враћају такве адресе. Читајте то као знак да је предвиђена исправка ограничена дозвола, а не глобални прекидач.

Ограничите изузетак на простор имена

Прво поправите простор имена, затим изузетак. Потврдите да име које не ради припада домену који организација контролише и да се запис намерно одржава. Неочекивана адреса која тек наликује познатом LAN опсегу заслужује сумњу, а не изузетак, зато проверите власника зоне пре него што напишете било какву дозволу.

# ask the resolver the VPN pushed, and show the full answer
dig +noall +answer db.corp.example @10.40.0.1
dig +short db.corp.example @10.40.0.1

# dnsmasq: what does the running configuration already allow?
grep -R 'rebind' /etc/dnsmasq.d /etc/dnsmasq.conf

Затим додајте најужу дозволу која покрива предвиђена имена: један домен или једну делегирану поддомену, у конфигурацији решавача који питају VPN клијенти. Искључивање заштите за свако име на том решавачу уклања одбрану за све њих одједном, укључујући имена која је никада нису требала.

Split DNS припада истој одлуци. Ако на приватни простор имена треба да одговара само интерни решавач, објавите га тамо и престаните да га цурите ка јавним решавачима, тако да изузетак покрива један пут уместо сваког пута.

Поново испробајте ресурс и одбрану

Питајте поново, затим се повежите са услугом и проверите шта клијент види. Исправан приватни одговор са радном сесијом значи да је изузетак ступио на снагу. Исправан одговор са заглављеном сесијом значи да је следећи сумњивац рута или идентитет услуге.

# the internal name and the public control should behave differently
dig +short db.corp.example @10.40.0.1
dig +short www.example.com @10.40.0.1

# and the service itself, with the certificate it presents
curl -sS -o /dev/null -w '%{http_code}\n' https://db.corp.example/health

Испробајте и јавно име кроз исти решавач. Заштита би и даље требало да се понаша исправно за имена изван изузетка, а ако та провера не успе, промена је била шира од предвиђене. Не дирајте проверу цертификата све време, јер име које се исправно разрешава и даље мора да одговара цертификату који услуга представља.

Запишите у пријаву одбијени одговор, домен, решавач и ко поседује правило. Управо тај запис претвара тајанствени интерни прекид у промену конфигурације коју неко може да прегледа.

Повезани чланци