Dnes si ukážeme, jak detekovat, že na cílovém systému dochází k balancování zátěže. Balancování síťového toku nebo přístupu k aplikaci děláme z výkonových důvodu, kdy počet přístupů uživatelů přesahuje technické možnosti HW/SW jednoho stroje. Případně dimenzujeme aplikaci na větší zátěž nebo se jedná o strategii vysoké dostupnosti. Zjednodušeně můžeme říci, že taková balancovaná aplikace je dostupná na více IP adresách.

K vyvažování zátěže může docházet na úrovni:

  • překladu doménové jména na IP adresu (DNS),
  • síťové vrstvy (TCP/IP load balancer),
  • aplikační vrstvy (HTTP load balancer).

K čemu je taková detekce?

Z hlediska testování bezpečnosti aplikací je detekce rozložení zátěže přes více prvků důležitá, protože objevená zranitelnost se může vyskytovat pouze na jednom stroji, který je součástí balancovaného systému. Pokud bychom opakovali test existence takové zranitelnosti, mohli bychom dojít k závěru, že systém zranitelný není.

Balancování DNS

Balancování na úrovni DNS si můžeme vyzkoušet DNS dotazem pomocí nástroje nslookup, například proti doméně google.com.

Z výpisu vidíme, že doménovému jménu google.com odpovídá více IP adres.
Vyzkoušíme si náš předpoklad jednoduchým ICMP echo dotazem, pomocí příkazu ping, a ověříme, který systém na doménové jméno odpovídá.

Dotaz zopakujeme a vidíme, že systém, který odpovídá, má jinou IP adresu.

Balancování na síťové vrstvě

Můžeme se podívat na jeden český webový portál. DNS nám při překladu nabídne opakovaně pouze jednu IP adresu.

Pokusíme se zjistit, jaké další IP atributy o systému prozradí nástroj hping3.

Z výpisu vidíme, že pro stejnou IP adresu máme rozdílná pole IP.id, která by se měla inkrementálně zvětšovat a určitě neklesat. Z výsledku můžeme tedy usuzovat, že portál využívá nějaký typ balancingu, ale nevíme přesně jaký a kolik prvků je k rozložení zátěže použito (minimálně dva).

Detekce HTTP load balanceru

Další metodou, jak ověřit, zda je webová aplikace balancovaná je test pomocí rozdílu vrácených HTTP hlaviček, parametrů a časových rozdílů. Mezi automatizované nástroje, které takové testy provádí jsou programy lbd a halberd. Vyzkoušíme si použití load balancing detektoru.

Závěr

Ukázali jsme si metody detekce systému využívající rozložení zátěže na úrovni DNS, IP a HTTP.

To je pro dnešek vše. Zvažujete-li cestu etického hackera od začátku, rád uvidím na hacking kurzech.