ICT Security NetGuru Podnikové systémy Reseller Channel Link

Banner

KALENDÁŘ AKCÍ

<  Březen 2012  >
 Po  Út  St  Čt  Pá  So  Ne 
     1  2  3  4
  5  6  7  8  91011
12131415161718
19202122232425
262728293031 

SEMINÁŘ

Banner

PRODUKT TÝDNE

APCED_system

APC_AP7552

 

 

APC Basic Rack PDU , Vstup: 200V, 208V, 230V , Typ připojení vstupu: IEC-320 C20 , Délka přívodního kabelu: 10 stop ( 3.05 metrů ) , Výstup: 230V , Připojení výstupu: IEC 320 C13,IEC 320 C19

Zahrnuje: Instalační příručka, Skříňové instalační konzole, Sada pro montáž bez nářadí

ANTISPIT a jeho implementace do Asterisku PDF Tisk Email

Autor: Miroslav Vozňák a Filip Řezáč, FEI VŠB-TU Ostrava

ABSTRAKT

Jednou z velkých potencionálních hrozeb budoucnosti nejenom v IP telefonii je rozšíření nevyžádaných volání označovaných jako SPIT (Spam over Internet Telephony). Na začátku roku byl autory vyvinut automat generující volání, kde po přijetí volání je přehrán vložený hlasový záznam. Utočník může nastavit frekvenci i počet hovorů a útočit nejenom v rámci IP telefonie, ale i do PSTN sítí. Tento nástroj dostal název SPITFILE. Je řada způsobů, jak se bránit obtěžujícím voláním, nejefektivnější cestou je však udržování aktuálního blacklistu. V Asterisku není blacklist nic nového, zařazení čísla na blacklist je provedeno volaným účastníkem zadáním kódu, či přiřazením čísla volaného přímo přes CLI ústředny. Náš přístup spočívá v tom, že je založen na statistickém vyhodnocování záznamů o spojeních a funguje automaticky bez nutnosti participace volaného. Implementace byla provedena v aplikaci s názvem ANTISPIT.

Kategorie a téma výzkumu

C.2.0 [Computer-Communication Networks]: General – Open Systems Interconnection reference model (OSI), Security and protection.
C.2.3 [Computer-Communication Networks]: Network Operations – Network monitoring.

Klíčová slova

AntiSPIT, Asterisk, Security, SPIT, SPITFILE, VoIP

1. ÚVOD

Chceme zdůraznit, že SPIT není pouhou teoretickou hrozbu, ale již skutečným a velmi nebezpečným rizikem, a to nejenom v IP telefonii. Tento článek má sloužit jako příklad, jak snadno mohou být útoky typu SPIT realizovány a samozřejmě předkládá i účinný způsob, jak se proti takovému typu útoku bránit.

Během vývoje jsme kladli velký důraz na jednoduchost používání a generování SPIT útoků. Bylo to z toho důvodu, že většina dostupných nástrojů pro generování SPIT je založena na složitých algoritmech a postupech realizace. Naším cílem proto bylo navrhnout a poté implementovat aplikaci, která by poskytovala intuitivní ovládací menu. Aplikace SPITFILE, kterou jsme vyvinuli, je implementována v programovacím jazyce Python. Představuje účinný nástroj pro tvorbu telefonních hovorů obsahujících přednahranou zprávu. S jeho pomocí můžeme realizovat SPIT útoky nejenom na VoIP infrastrukturu, ale při určitých podmínkách také do klasické PSTN sítě.

Samozřejmě bylo také nutné navrhnout a vyvinout účinnou obranu proti našemu útoku i SPIT všeobecně. Vytvořili jsme proto model, který využívá možnosti využití blacklistu v IP PBX Asterisk a automatizuje blokování podezřelých hovorů. Náše aplikace je založena na hodnocení faktoru volání dle délky trvajícího hovoru a spolu s blacklist databází poskytuje dobrou ochranu proti SPIT útokům.

2. POUŽITÉ METODY

2.1 SPITFILE

K vytvoření SPIT útoku jsme využili SIP [1] - [3] a RTP [4], [5] paketový generátor Sipp [6]. Tato aplikace je open-source a je dostupná jak pro Windows, tak i pro Linux distribuce. Sipp pracuje s přednastavenými schématy ve formátu XML a přenosové vlastnosti se nastavují pomocí parametrů v příkazovém řádku.

Pro dynamickou práci s parametry zadávanými do Sipp a do XML jsme použili dvě metody. V té první je proměnným, které útočník zapsal do příslušných formulářů, přiřazen správný parametr a ten je odeslán na Sipp. Pro hodnoty, které byly staticky vložené v XML souboru, jsme vytvořili funkci pro vyhledávání a změnu dané hodnoty. Pro editaci a práci s XML soubory využíváme knihovnu xml.dom.minidom [7]. Naše aplikace s názvem SPITFILE implementuje grafické rozhraní pro Sipp a pracuje s přednastavenými XML schématy. Tím se stává simulace útoku SPIT mnohem jednodušší. SPITFILE jsme naprogramovali v jazyce Python [8] s použitím GUI knihovny WxPython [9] a vývojového prostředí WxGlade.

Ovládání aplikace je velmi intuitivní - požadované hodnoty jsou vloženy do příslušných formulářů a SPIT útok je zahájen stisknutím tlačítka odeslat. SPITFILE je k dispozici zatím pouze pro linuxové distribuce, ale verze pro Windows by měla být již brzy dokončena. Pro správné fungování aplikace SPITFILE je nejprve nutné nainstalovat do systému následující balíčky: Python ≥ v2.6, SIPP ≥ v2.1, Python-wxGTK ≥ v2.6. Naše aplikace může vytvářet dva typy útoků:

Direct mód

Generuje SPIT na IP telefon přímo v lokální síti bez použití VoIP PBX (některé IP telefony mohou odmítnout přímé volání, vyžadují přítomnost SIP Proxy - Proxy mód je pro tyto případy vhodnější). SPITFILE v režimu Direct je znázorněn na obrázku 1. Je nezbytné vyplnit povinné údaje, které se použijí při vytváření útoku.

Direct mód
Obr. 1. Direct mód

Proxy mód

Generuje SPIT přes PBX VoIP (SIP proxy) a v tomto případě může být cílem útoku jakákoliv komponenta, která je připojena k SIP Proxy. To teoreticky zahrnuje nejen IP telefony, ale i obyčejné koncové stanice a v podstatě celý telefonní svět. Stejně jako v Direct režimu, tak i v režimu Proxy (obr. 2) je nutné vyplnit povinné údaje potřebné k vytvoření SPIT útoku.

Proxy mód
Obr. 2. Proxy mód

Kromě toho je nutné získat uživatelský účet, protože před tím, než může být proveden úspěšný SPIT útok v Proxy módu, musí útočník provést SIP registraci na danou ústřednu. To je hlavní rozdíl mezi Direct a Proxy režimem. Útočník potřebuje získat platný účet na SIP Proxy. Existuje mnoho způsobů, jak získat uživatelské jméno a heslo, např. pomocí aplikace Cain a Abel nebo SIPcrack [10] - [13]. Obě aplikace poskytují nástroje pro skenování a prolomení Digest autentizace [14], která se používá v protokolu SIP. Koncept SPITFILE útoku (obr. 3) lze v podstatě popsat v několika krocích:

1) Útočník zadá parametry útoku do formulářů aplikace SPITFILE.
2) K několika zadaným proměnným se přiřadí parametry, zbytek proměnných je zapsán do XML souboru pro Sipp.
3) Aplikace vytvoří příkaz složený z parametrů a definovaných proměnných a posílá ho aplikaci Sipp ke zpracování.
4) Spustí se instance aplikace Sipp, která načítá XML soubor obsahující zbytek zadaných proměnných a vytváří SPIT útok podle zadaného scénáře.
5) Po ukončení spojení se Sipp rovněž automaticky ukončí, aplikace SPITFILE je však spuštěna a připravena pro další útok.

SPITFILE draft
Obr. 3. SPITFILE draft

2.2 AntiSPIT

A nyní vysvětlíme, jak se můžeme bránit proti takovému typu útoku. Existuje několik teoretických metod [15] [16], které popisují, jak VoIP zařízení proti SPIT útokům chránit. Každý může posoudit, do jaké míry jsou užitečné a vhodné pro praktickou implementaci.

Buddylist/ Whitelist

Tato metoda funguje tak, že každý uživatel telefonní služby má seznam ostatních uživatelů, a jeho účelem je, aby účastník, který na tomto listě není uveden, nemohl zavolat jako první. Problém vzniká, když si uvědomíme, že jako první nemohou volat ani účastníci, kteří sice nejsou na seznamu, ale jedná se o účastníky, se kterými bychom rádi hovořili, a kteří nepředstavují potenciální hrozbu. Tento problém lze řešit pomocí metody rozšíření seznamu přes tzv. „Web of trust,“ kde se účastník zaručí za svou důvěru několika ostatním, a ti ho poté mohou připsat do svého seznamu.

Blacklist

Tato metoda je opačná k metodě Whitelistu, protože tentokrát účastník spravuje seznam kontaktů, které generují SPIT, tyto kontakty nemají přistup na účastníkův telefon.

Statistical blacklist

Telefonní poskytovatelé provádějí analýzy založené na statistickém vyhodnocení provedených volání a podle nich vytvářejí seznamy případných spammerů. Pokud například volající inicializuje několik stovek různých hovorů v krátkých intervalech, je velmi pravděpodobné, že se jedná o SPIT.


Voice menu interaction

Předtím, než je volající skutečně spojen s volaným účastníkem, je volající přesměrován do hlasového menu, kde je vyzván k zadání číselného kódu (např. 123 *). Teprve po zadání tohoto kódu je hovor směrován zpět k volajícímu. Tato ochrana je účinná proti volajícím robotům (relativně, jelikož robot může využívat metody pro rozpoznávání řeči).

Greylist

Jedná se o modifikovaný Blacklist (Whitelist), kdy se po prvním zavolání volajícímu ozve pouze tón obsazené linky, ale volanému telefon zvonit nebude. Pokud se volající poté znovu rozhodne účastníka zavolat, hovor se již spojí. Vzniká tak větší možnost, že volající je skutečně osoba a ne SPIT automat.

Navzdory metodám obrany uvedeným v předchozí části jsme se snažili navrhnout a vytvořit vlastní model aplikace, založené na blacklistu, který poskytuje účinnou obranu proti SPIT.

Aplikace s pracovním názvem AntiSPIT slouží jako nástroj pro analýzu a zpracování vstupních dat v podobě CDR záznamů, které jsou generovány každým typem ústředny. My jsme si pro implementaci vybrali velice rozšířené SIP open-source SW PBX řešení Asterisk. Výstupem této aplikace by měly být příkazy zadávané přes CLI Asterisku, určené pro zápis či mazání záznamů do Blacklist databáze zmíněné ústředny.

Celý koncept poté funguje jako účinný nástroj pro detekci a ochranu proti SPIT útokům. V zásadě je námi navržená metoda založena na principu chování volaného účastníka, kdy po opětovném vyzvednutí hovoru SPIT charakteru tento účastník ukončí hovor podstatně v kratším časovém intervalu než první hovor. Tento koncept je uveden na obrázku 4.

V tomto případě pak můžeme sledovat délky hovorů reprezentované v CDR záznamech a při hovoru kratším, než určitý interval (duration), se zdroji daného volání přidělí status podezřelého volajícího a bude vytvořen záznam s hodnotícím faktorem podezření (rating). V případě opakovaného podezřelého chování bude jeho hodnota inkrementována.
 
ANTISPIT concept

Obr. 4. AntiSPIT concept

Záznam bude tvořit identifikátor volajícího (S_CallID), číslo volaného (R_CallID) a hodnotící faktor podezření (rating): budou uvedeny v tabulce nazvané – Suspicious Calls Table (dále jen SCT). Klíčové je nastavení limitní hodnoty hodnotácáho faktoru (max. rating), po jejim dosažení bude záznam z SCT převeden do Blacklist tabulky. Danému volajícímu bude po určitou dobu odepřeno iniciovat hovory na ústřednu. Blacklist tabulka obsahuje identifikátor volajícího (S_CallID), číslo volaného (R_CallID) a čas zablokování (time). Po vypršení doby zablokování bude v záznamu snížena hodnota hodnotícího faktoru podezření o hodnotu 1 a ten bude navrácen do SCT.

Pokud však bude záznam opětovně vykazovat podezřelé chování a překročí limitní hodnotu (max. rating), tak bude znovu navrácen do Blacklist tabulky, nyní již ale s delší dobou zablokování. V tom okamžiku, kdy je záznam převeden do Blacklist tabulky, je pro PBX Asterisk CLI vygenerován příkaz database put blacklist 1. Po uplynutí doby zablokování, kdy je záznam navrácen do SCT, je do CLI PBX Asterisk zapsán příkaz database del blacklist .
 
Volajícím, kteří mají vytvořený záznam v SCT, je možné hodnoty hodnotícího faktor podezření také snížit a případně je z SCT plně vyřadit. Jakmile bude volající iniciovat hovor delší než určitý nastavený interval a bude mít zároveň záznam v SCT, bude mu odečtena známka podezření o hodnotu 1. Pokud volající záznam v SCT nemá, jedná se o ověřeného účastníka, stejně tak, pokud bude hodnota známky podezření rovna 0.

AntiSPIT je vytvořen jako software využívající LAMP, což znamená zkratku pro Linux, Apache web server, MySQL databázový systém a PHP programovací jazyk. Aplikace je vytvořena jako webový front-end, pomocí kterého se také ovládá - umožňuje nastavit klíčové parametry, jako interval délky volání (duration), limit max. známky (max. rating), čas zablokování (time) a také spravovat SCT a Blacklist tabulku. Aplikace obsahuje i webový instalátor, pomocí kterého lze nástroj jednoduše implementovat na jakoukoliv Asterisk ústřednu.

3. VÝSLEDKY

pokračování článku naleznete na stránkách NETGURU 2.11. nebo se můžete zúčastnit konference Open-source řešení v sítích 29.10. v Karviné - http://ors.slu.cz

IP telefonie

Joomla Templates and Joomla Extensions by JoomlaVision.Com
 

Přidat komentář


Bezpečnostní kód
Obnovit