NFsec Logo

TLS – Wyciek informacji przez rozszerzenie Server Name Indication (SNI)

09/10/2017 (2 tygodnie temu) w Bezpieczeństwo Brak komentarzy.  (artykuł nr 640, ilość słów: 461)

M

oże się nam wydawać, że skoro używamy szyfrowanego połączenia TLS/SSL to tylko serwery DNS mogą zdradzać naszą aktywność w sieci. Nic bardziej mylnego. Powodem bardzo szybkiej identyfikacji odwiedzanych przez nas stron może być rozszerzenie TLS – SNI (ang. Server Name Indication) pozwalające na instalację wielu certyfikatów SSL na pojedynczym adresie IP (mogliśmy wcześniej się z nim spotkać przy analizie Cloudflare).

Skoro wiele certyfikatów może zostać osadzonych na pojedynczym adresie IP to podczas uścisku dłoni nasz klient musi wysłać informację z jakim hostem chce nawiązać połączenie (tak, jak nagłówek Host w komunikacji HTTP), aby dopasować certyfikat do dalszej komunikacji TLS. Właśnie ta część informacji jest przesyłana w niezaszyfrowanej formie i może być bardzo prosto przechwycona. Dla przykładu wykorzystamy narzędzie BetterCAP, które od wersji 1.6.1 potrafi ekstrahować informacje z SNI. Instalację przeprowadzimy na systemie Ubuntu 16.04 LTS:

apt install build-essential ruby-dev libpcap-dev
gem install bettercap

Po poprawnej instalacji możemy uruchomić program, jako sniffer (-X) przechwytujący lokalny ruch (-L):

root@darkstar:~# bettercap -XL --no-spoofing
 _          _   _
| |__   ___| |_| |_ ___ _ __ ___ __ _ _ __
| '_ \ / _ \ __| __/ _ \ '__/ __/ _` | '_ \
| |_) |  __/ |_| ||  __/ | | (_| (_| | |_) |
|_.__/ \___|\__|\__\___|_|  \___\__,_| .__/
                                     |_| v1.6.2
http://bettercap.org/

[I] Starting [ spoofing:✘ discovery:✔ sniffer:✔  tcp-proxy:✘ udp-proxy:✘
               http-proxy:✘ https-proxy:✘ sslstrip:✘ http-server:✘ dns-server:✘ ] ...

[I] [enp0s3] 10.0.2.15 : 08:00:27:BE:04:D7 / enp0s3 ( PCS Systemtechnik GmbH )
[I] [GATEWAY] 10.0.2.2 : 52:54:00:12:35:02 ( ??? )
[I] [DISCOVERY] Precomputing list of possible endpoints, 
     this could take a while depending on your subnet ...
[I] [DISCOVERY] Done in 2.9 ms
[I] [DISCOVERY] Targeting the whole subnet 10.0.2.0..10.0.2.255 ...
[I] Acquired 2 new targets :

  [NEW] 10.0.2.3 : 52:54:00:12:35:03 ( ??? )
  [NEW] 10.0.2.4 : 52:54:00:12:35:04 ( ??? )

[local > 172.217.21.46:https] [HTTPS] https://play.google.com/
[local > 37.187.104.217:https] [HTTPS] https://nfsec.pl/
[local > 212.77.98.9:https] [HTTPS] https://www.wp.pl/

Przechwycone strony pochodzą z poleceń typu: links https://[adres] – wydawanych w drugiej konsoli. Jeśli odwiedzanym adresem była strona nie korzystająca z SNI po stronie serwera to sniffer nie odnotowywał żadnej aktywności. Niestety my jako „zwykli” klienci nie jesteśmy w stanie przewidzieć, na jaką konfigurację serwera trafimy.

Więcej informacji: TLS, Server Name Indication and Why We Need to Encrypt It, Server Name Indication

Kategorie K a t e g o r i e : Bezpieczeństwo

Tagi T a g i : , , , , ,

Zostaw odpowiedź.

Musisz być zalogowany by móc komentować.