Telefon ze Skype’a na numer stacjonarny jest znacznie tańszy niż w przypadku tradycyjnej telefonii. Niestety, jego dodatkowe, nieudokumentowane możliwości budzą coraz większy niepokój w świecie IT Security.
Latem 2003 r. świat rozmów głosowych przez internet zrewolucjonizował
Skype – komunikator internetowy zorientowany
na komunikacje Voice over IP. Napisany przez zespół,
który stworzył jeden z pierwszych programów P2P – Kazaa,
stanowił przełom w dziedzinie oprogramowania \”VoIP dla każdego\”,
radząc sobie z problemem filtrowania pakietów i firewalami.
Skype zdobywa popularność ze względu na doskonała jakość
dźwięku oraz niskie ceny.
Wyszła igła z worka
Z zaprezentowanej na konferencji Black Hat na przełomie lutego
i marca 2006 r. prezentacji\”Silver Needle in the Skype\” (w wolnym
tłumaczeniu: Srebrna Igła w Skype) przygotowanej przez dwóch
francuskich informatyków wyłania się bardzo niepokojscy wizerunek
komunikatora Skype. Aplikacja ta, a raczej metody i protokoły jakich
używa mogą stanowić realne zagrożenie dla bezpieczeństwa i kontroli
nad przepływem danych w sieciach korporacyjnych.
Przeprowadzona przez Philippe Biondi i Fabrice Desclaux analiza
pokazała, że protokół Skype\’a jest bardzo skomplikowany i ma szereg
dodatkowych cech, o których nikt głośno nie mówi. Skype nie
korzysta ze znanych, otwartych i ustandaryzowanych protokołów
VoIP, jak chociażby SIP czy H.323. Szyfrowanie pakietów Skype\’a
jest dwupoziomowe – najpierw każdy pakiet jest szyfrowany
algorytmem AES, z kluczem wymienianym miedzy węzłami Skype\’a
za pomocą RSA. Ten etap zapewnia poufność transmisji i zapobiega
(teoretycznie) jej przechwytywaniu przez osoby trzecie.
Drugi raz pakiety są szyfrowane za pomocą algorytmu RC4, z kluczem opartym
m.in. o adresy IP. Na tym etapie transmisja Skype\’a jest maskowana
przed wykryciem przez firewalle. Dzięki użyciu RC4 w każdym pakiecie tylko
kilka pierwszych bajtów jest stałych, a cała reszta wygląda jak dane losowe.
Poza tym Skype stosuje kilka innych technik omijania firewalli. Tak jak
wiele aplikacji P2P, korzysta ze zmieniających się portów UDP, a jeśli to
nie działa, próbuje łączyć się na port 80/tcp (port do komunikacji WWW),
który zwykle jest odblokowany.
Badania Francuzów ujawniły także, że sam kod aplikacji Skype\’a jest wielokrotnie
szyfrowany i trudny do analizowania za pomocą technik reengineringu,
takich jak deasemblacja i debugowanie.
W najbardziej pesymistycznych wizjach, snutych przez specjalistów od
bezpieczeństwa sieciowego, aplikacja Skype\’a jawi się jako potencjalny trojan
wszech czasów. Protokół Skype\’a umożliwia bowiem zastosowanie
programu jako zdalnego skanera sieci wewnętrznych, czyli tego, czego najbardziej
boi się każdy administrator i przed czym maja chronić firewalle.
Cała ta tajemniczość i \”dodatkowe właściwości\” zaszyte w protokole
Skype\’a sprawiają, że coraz więcej wątpliwości zaczyna budzić stosowanie
tego komunikatora w rozwiązaniach komercyjnych telefonii IP w sieciach
korporacyjnych.
Sposoby blokowania Skype\’a
zBlokowanie Skype\’a jest sporym wyzwaniem dla administratorów sieci.
Program może wejść do swojej sieci P2P przez dowolny inny, podłączony
do tej sieci host, co bardzo utrudnia filtrowanie po adresach IP. Nie korzysta
z żadnych stałych portów. Również sama struktura pakietów protokołu
Skype\’a do niedawna wydawała się zbyt mało jednoznaczna, by można
było je skutecznie blokować na warstwie siódmej.
Okazuje się jednak, że
autorzy Skype\’a popełnili kilka błędów, na przykład w systemie szyfrowania
RC4 zastosowali ten sam ciąg kluczowy do zaszyfrowania dwóch fragmentów
pakietu. Dzięki własnościom XOR, jak i każdego innego szyfru strumieniowego,
umożliwia to łatwe \”zdjęcie ciągu kluczowego\”. Technika ta może
być wykorzystana przez systemy IDS/IPS do wykrywania ruchu Skype\’a.
Projekty open-source związane z iptables, które zwykle przodowały w różnych nowinkach technicznych związanych z filtrowaniem P2P (np. IPP2P), nadal
nie radzą sobie zbyt dobrze z filtrowaniem protokołu Skype\’a.
Inny związany z iptables projekt l7-filter oferuje co prawda regułki do filtrowania połączeń
Skype-to-Skype (rozmowa po sieci) i SkypeOut (rozmowa miedzy komputerem
a tradycyjna siecią telefoniczna), jednak proponowane regułki są dalekie
od doskonałości i mogą wyłapywać też ruch niezwiązany ze Skype\’em.
Francuzom udało się usystematyzować stałe elementy w pakietach Skype\’a,
co pozwoliło im na przygotowanie regułki dla linuksowego firewalla iptables
(dostępnego praktycznie w każdej dystrybucji Linuksa), blokującej
ruch tej aplikacji po UDP:
iptables -I FORWARD -p udp -m length -length 39 -m u32 -u32 \'27&0x8f=7\' -32 \'31=0x527c4833\' -j DROP
Ponieważ jednak Skype komunikuje się również za pomocą protokołu
TCP, konieczne jest blokowanie wszystkich adresów IP, które są wbudowane
w program. Jest ich naprawdę dużo i lista ta w każdej chwili
może się zmienić, dlatego zamiast sztywnego filtra trzeba stosować
wyrażenia regularne. Blokowanie po adresach IP sprawdza się zwłaszcza
w przypadku proxy i gdy stosowane jest już na firewallu wejściowym
do sieci LAN (brzegowym). Skype nie mogąc połączyć się tradycyjnie
wykorzystuje z serwer proxy, co więcej, robi to automatycznie,
pobierając konfiguracje proxy z ustawień Internet Explorera (w tym,
jeśli istnieje, hasło do proxy). Każdy komputer, który będzie miał zainstalowanego
MSIE i będzie mógł łączyć się z internetem, będzie równie
ż mógł korzystać ze Skype\’a.
Z drugiej strony umożliwia to zablokowanie Skype\’a, korzystając z pewnej
stałej cechy jego połączeń. W trybie proxy program zawsze korzysta z metody
CONNECT, służącej zwykle do otwierania połączeń SSL przez proxy. Skype
zawsze otwiera połączenia CONNECT na adresy IP swoich kontaktów w sieci
P2P – nigdy na nazwy domenowe. Pozwala to na skuteczne wyłapanie połączeń
Skype\’a, ponieważ taki sposób połączenia praktycznie nigdy nie wystąpi
w pozostałych \”legalnych\” zastosowaniach, czyli połączeniach do serwerów
SSL, które prawie zawsze identyfikowane są przez nazwę.
Metoda nadaje się do zastosowania praktycznie w każdym firewallu lub
serwerze proxy, który pozwala na ograniczenie dostępu do metody CONNECT
na adresy IP. Z łatwością można to zrobić w Squidzie, korzystając
z wyrażeń regularnych.
Przykładowa lista ACL dla Squida (zawarta w pliku squid.conf) może
wyglądać następująco:
# Blokowanie Skype
acl numeric_IPs urlpath_regex ^[0-9]+\.[0-9]+\.[0-9] +\.[0-9]+
acl connect method CONNECT
# Aktywacja listy Blokowanie Skype
http_access deny connect numeric_IPs all
Druga strona medalu
Zanim zaczniemy w panice blokować w sieciach ruch Skype\’a, trzeba się
zastanowić, czy rzeczywiście stanowi on tak duże zagrożenie, zwłaszcza
w sieciach osiedlowych i innych, które nie zawierają cennych i poufnych
danych. Skype może stanowić poważna dziurę bezpieczeństwa, chociażby
przez wspomniana wcześniej możliwość skanowania od wewnątrz sieci,
w której działa. Ale tak naprawdę nie ujawniono jeszcze przypadku, kiedy ta
teoria została zamieniona w praktykę. Niezaprzeczalne jest natomiast jedno:
Skype jest jak do tej pory jedyna bezpłatna aplikacja umożliwiająca rozmowy
przez internet przy zachowaniu parametrów zwykłej rozmowy telefonicznej.
Owszem, inne komunikatory (np. Tlen) również maja opcje rozmów
głosowych, ale ich jakość dźwięku i stabilność połączenia nie może się
równać ze Skype\’em.
Możliwe, że główny \”problem ze Skype\’em\” tkwi właśnie w tym, że jest
darmowy. Po co płacic za komercyjne rozwiązania, skoro można mieć to samo
bezpłatnie lub, jeśli ktoś potrzebuje łączyć się do zwykłej sieci telefonicznej,
za niewielka opłata w porównaniu do innych rozwiązań. Czyżby demonizowanie Skype\’a
było mało elegancka próba pozbycia się konkurencyjnego, darmowego rozwiązania, którego
jedynym problemem jest to, że jest dość specyficznie zrealizowane? Czy cała
ta nagonka nie ma po prostu na celu zastraszenia użytkowników i skłonienia
ich do korzystania z innych, płatnych rozwiązań VoIP?
Zanim zdecydujemy się na wyeliminowanie możliwości korzystania ze
Skype\’a w naszej sieci (jeśli w ogóle nam się uda – jak widać program potrafi
świetnie radzić sobie ze wszelkimi zabezpieczeniami i blokadami) zastanówmy
się ile na tym zyskamy, a ile stracimy.
Aplikacja Skype\’a wrogiem publicznym nr 1?
Zespół naukowców z Uniwersytetu w Cambridge ujawnił lukę w programie
Skype, która umożliwia przeprowadzenie ataku typu DoS i przejęcie
kontroli nad docelowym komputerem użytkownika.
Jak wyjaśnia jeden z badaczy, ułatwieniem dla hakera może być duży ruch
w sieci, generowany przez system Voice over IP (VoIP), na którym opiera
się m.in. program Skype.
Dotychczasowe ataki typu DoS mogły zostać skutecznie zablokowane, dzięki
możliwości zlokalizowania zarówno zainfekowanych komputerów, jak
i zwiększonej ilości poleceń płynących w sieci. Duży przepływ informacji
w systemie VoIP umożliwia jednak hakerowi skuteczne zamaskowanie
swojej działalności.
(Źródło: http://www.securitywortal.pl)
Wraz z rozpoczęciem roku akademickiego Francuskie Uniwersytety zabroni
ły studentom używania programu Skype. Decyzja związana jest
z błędami w bezpieczeństwie tego popularnego komunikatora. Obecnie
również CNRS (National Center for Sciences and Research) zabronił używania
Skype\’a na wszystkich swoich komputerach.
(Źródło: http://Komunikatory.org)
Program Skype wzbudził szereg zastrzeżeń w amerykańskiej agencji NSA
(ang. National Security Agency). NSA nie narzeka bynajmniej na techniczną stronę podsłuchiwania Skype\’a, co nie wróży dobrze tej aplikacji,
której producenci chwalą się stosowaniem silnych szyfrów (których nikt
nie widział). Największym problemem dla NSA jest kwestia legalności podsłuchów. Obowiązujące prawo w tym zakresie (FISA), powstałe prawie trzydzieści
lat temu, zostało napisane z myślą o tradycyjnych sieciach telefonicznych
i nie uwzględnia istnienia globalnego internetu ani telefonii opartej
o protokół IP.
(Źródło: http://security.computerworld.pl)