Přeskočit na obsah

Session Border Controller

Z Wikipedie, otevřené encyklopedie

SBC (Session Border Controller) systém funguje jako SIP firewall oddělující privátní a veřejnou část VoIP sítí[1][2] a podstatně zvyšuje bezpečnost VoIP telefonie[3][4][5]. Někdy bývá taky označován jako hlasový firewall či VoIP firewall. Je velmi důležitý při ochraně proti VoIP podvodům. Důsledně ho používají všichni velcí telefonní operátoři (CETIN, O2, T-Mobile, Vodafone). Zdaleka ne vždy ho ale nasazují alternativní VoIP operátoři a ještě méně provozovatelé privátních VoIP ústředen (firemních SIP-PBX).

K dispozici jsou SBC systémy různých kapacit za velmi rozdílné ceny. Většinou mají podobu specifického VoIP zařízení a nabízí je řada výrobců, např.: Nokia, Oracle, Cisco, Alcatel, Awaya, AudioCodes, Genband, Sonus, Acme, Mediant, Edgewater, Frafos, Squire a Dinstar. Menší SBC systémy mohou být k dispozici i jako software, např.: OpenSBC, Hexan a Hixtel.

Základní vlastnosti

Hlavním účelem SBC systému je utajení struktury SIP technologie[1]. Klasická ústředna fungující jako SIP proxy předává v SIP signálech IP adresy volajícího i volaného SIP telefonu a taky všech SIP ústředen podílejících se na obsluze VoIP volání. Potenciální útočník může komunikací se SIP proxy zjistit IP adresy dalších SIP zařízení a pokusit se o jejich napadení. Může na ně posílat podvodné SIP žádosti a pokoušet se o VoIP podvody.

SIP ústředna a SIP telefony nechráněné SBC systémem[1]

SBC systém pracuje na principu SIP B2BUA (Back to Back User Agent) ústředny propojující veřejný a privátní segment VoIP sítí. Na každé straně SBC systému se v SIP signálech nevyskytují žádné IP adresy z jeho druhé strany. Totéž platí o hovorových RTP paketech, které SBC systém přeposílá mezi veřejným a privátním segmentem VoIP sítí. SBC systém proto bývá vřazen mezi datový firewall a SIP ústřednu. Potenciální útočníci tak nemohou komunikací s SBC systémem získat IP adresy dalších napadnutelných SIP zařízení.

SIP ústředna a SIP telefony chráněné SBC systémem[1]

Nasazení SBC systému je z hlediska ochrany proti VoIP podvodům důležité:

  • mezi dvojici SIP ústředen propojených SIP svazkem (mezi VoIP operátory, mezi operátorem a PBX nebo mezi dvěma PBX)
  • mezi SIP ústřednou a jí obsluhovanými SIP telefony (jsou-li SIP telefony na ústřednu napojeny přes veřejný internet)

SIP svazek realizující propojení přes veřejný internet má být SBC systémem chráněn na obou stranách.

Technický princip

Klasická SIP proxy funguje tak, že v přijatém SIP signálu pouze doplní nebo smaže položky Route či Record-Route a přepošle ho bez dalších úprav dál. Všechny IP adresy původců SIP signálu tak zůstanou zachovány. Oproti tomu SBC systém (SIP B2BUA zařízení) po příjmu SIP signálu nahradí IP adresy původců přijatého SIP signálu svou vlastní IP adresou. Zároveň jako cílové IP dosadí adresy za ním ukryté chráněné SIP-PBX. Totéž platí i v opačném směru a podobně i pro hovorové RTP pakety. Současně je vhodné potlačit typické znaky (fingerprints) chráněné SIP ústředny. Alespoň případné názvy VoIP technologie v položce User-Agent i atributech "o" (původce relace) a "s" (jméno relace) uvnitř SDP (Session Description Protocol) části SIP signálu.

 private     Session Border Controller       public
   PBX              (SIP B2BUA)               VoIP
    |                    | |                    |  
    |      INVITE     F1 | |                    |
    |------------------->| |                    |
    |    100 Trying   F2 | |                    |
    |<-------------------| |       INVITE    F3 |                     Session Border Controller
    |                    | |------------------->|                            (SIP B2BUA)
    |                    | |    100 Trying   F4 |                        +-----------------+
    |                    | |<-------------------|                        |                 |
    |                    | |    180 Ringing  F5 |           SIP signals  |  +-----------+  |  SIP signals
    |   180 Ringing   F6 | |<-------------------|           <------------|->| signaling |<-|------------>
    |<-------------------| |                    |           private      |  +-----------+  |       public
    |                    | |       200 OK    F7 |           PBX          |        |        |         VoIP
    |      200 OK     F8 | |<-------------------|           system       |  +-----------+  |       system
    |<-------------------| |        ACK      F9 |           <------------|->|   media   |<-|------------>
    |        ACK     F10 | |------------------->|           RTP pakets   |  +-----------+  |   RTP pakets                
    |------------------->| |                    |                        |                 |
    |     RTP Stream     | |     RTP Stream     |                        +-----------------+
    |<==================>| |<==================>|
    |        BYE     F11 | |                    |
    |------------------->| |        BYE     F12 |
    |      200 OK    F13 | |------------------->|
    |<-------------------| |       200 OK   F14 |
    |                    | |<-------------------|
    |                    | |                    |

Příklad SIP signálu 200 OK odeslaného z privátní PBX (IP adresa 180.66.160.5) do SBC systému (IP adresa 217.101.29.108) a přeposlaného do veřejné VoIP ústředny (IP adresa 77.5.190.110), kde zdroj SIP signálu očekává RTP pakety na chráněném UDP portu 10610 a SBC systém je očekává na veřejném UDP portu 7530:

                                          private   -->   Session Border Controller   -->   public
                                            PBX              (SIP B2BUA)                     VoIP
                                                                  ||
SIP/2.0 200 OK                                                    ||  SIP/2.0 200 OK
Via: SIP/2.0/UDP 180.66.160.5:5060;branch=z9hG4bK5eae145d;rport   ||  Via: SIP/2.0/UDP 217.101.29.108:5060;branch=z9hG4bK5eae145d;rport
From: "505686611" <sip:505686611@180.66.160.5>;tag=as71c9dffd     ||  From: "505686611" <sip:505686611@217.101.29.108>;tag=as71c9dffd
To: "505639883" <sip:505639883@217.101.29.108>;tag=a09c02a09c04   ||  To: "505639883" <sip:505639883@77.5.190.110>;tag=a09c02a09c04
Call-ID: dvScftN8-RK4eMsuT-S5nYiZBO-8GQMJK1l-94Hv8n3w-t2cV        ||  Call-ID: b1a93daa-4d8f641a-0ce7e75a-800a048d
CSeq: 102 INVITE                                                  ||  CSeq: 102 INVITE
Server: Asterisk PBX 1.8.13.1                                     ||  Server: Hexan
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE        ||  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE
Supported: replaces, timer                                        ||  Supported: replaces, timer
Contact: <sip:505686611@180.66.160.5:5060>                        ||  Contact: <sip:505686611@217.101.29.108:5060>
Content-Type: application/sdp                                     ||  Content-Type: application/sdp
Content-Length: 232                                               ||  Content-Length: 217
                                                                  ||
v=0                                                               ||  v=0
o=root 1147220652 1147220652 IN IP4 180.66.160.5                  ||  o=Hexan 1147220652 1147220652 IN IP4 217.101.29.108
s=Asterisk PBX 1.8.13.1                                           ||  s=Hexan
c=IN IP4 180.66.160.5                                             ||  c=IN IP4 217.101.29.108
t=0 0                                                             ||  t=0 0
m=audio 10610 RTP/AVP 8 101                                       ||  m=audio 7530 RTP/AVP 8 101
a=rtpmap:8 PCMA/8000                                              ||  a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000                                 ||  a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16                                                   ||  a=fmtp:101 0-16
a=ptime:20                                                        ||  a=ptime:20
a=sendrecv                                                        ||  a=sendrecv

Princip SIP B2BUA zároveň brání tomu, aby některé SIP signály (ACK, BYE, ...) byly posílány napřímo mezi SIP telefony (nikoli dle RFC3261, kap. 12.2). SBC systém tak má zajištěnu kontrolu nad celým průběhem VoIP hovoru. Zejména nad skutečným zahájením i ukončením hovoru, což je nezbytné pro případné určení ceny hovoru. Návrh vlastností SBC systému je specifikován v RFC5853.

Druhy SIP firewallu

Podle účelu lze Session Border Controllery rozdělit na systémy:

  • pro ochranu SIP svazku sloužících k napojení privátní tel. ústředny na VoIP operátora nebo ke vzájemnému propojení VoIP operátorů
  • pro ochranu SIP telefonů napojených na privátní tel. ústřednu nebo na ústřednu veřejného VoIP operátora
  • kombinované umožňující ochranu SIP svazků i SIP telefonů

Podle kapacity lze Session Border Controllery rozdělit na systémy:

  • pro SOHO (Small Office/Home Office) segment s kapacitou desítek hovorů
  • pro SMB (Small and Medium Business) či SME (Small and Medium Enterprise) segment s kapacitou stovek hovorů
  • pro Enerprise segment s kapacitou tisíců hovorů, užívané typicky velkými telefonními operátora
  • modulární či škálovatelné na kapacity různých segmentů

Podle funkčnosti lze Session Border Controllery rozdělit na systémy:

  • triviální, fungující pouze jako základní SIP B2BUA systém
  • kombinované, např. SBC systém s interním SIP antifraudem
  • komplexní, zajišťující celou řadu mnoha doplňkových VoIP funkcí

Doplňkové funkce

Session Border Controller je optimální místo pro realizaci telefonních funkcí, které by zbytečně zatěžovaly nebo komplikovaly provoz chráněné SIP ústředny.

Ochrana proti DoS útokům

SBC může sloužit k ochraně proti různým druhům DoS, DDoS nebo TDoS (Telephony Denial of Service) útoků. Ochranu proti datovým DoS i DDoS útokům by měl zajistit už datový firewall umístěný mezi SBC a veřejným internetem nebo jiný systém specializovaný na tyto druhy ochrany. Na SBC by logicky měla zbýt ochrana proti TDoS útokům. SBC má o rozpoznaném útoku informovat svého provozovatele.

Kontrola správnosti signalizace

SBC může kontrolovat skladbu SIP signálů (přítomnost povinných SIP položek i SDP atributů), obsah SIP signálů (úplnost i přípustnost hodnot) a správnou sekvenci SIP signálů (ACK po OK, OK po BYE, ...). Příjem chybných SIP signálů může být projevem TDoS (Telephony Denial of Service) útoku. Chybné či nelogické SIP signály se nemají dostat na vstup chráněné ústředny, protože by ji mohly uvádět do nedefinovaných stavů. SBC má o chybách signalizace informovat svého provozovatele.

Zvýšení spolehlivosti signalizace

SBC může dublovat SIP signály odesílané ze své privátní strany do veřejného internetu. V obráceném směru může SBC naopak filtrovat opakující se SIP signály přicházející z veřejného internetu a do chráněné ústředny odesílat pouze jednu jejich kopii. Vícenásobné odesílání SIP signálů běžně používají některé SIP ústředny.

Vytváření CDR a LOG záznamů

SBC může vytvářet vlastní CDR (Call Detail Record) záznamy za příchozích i odchozích volání. Ty mohou buď sloužit k tarifikaci nebo ke kontrole či záloze CDR záznamů vytvářených chráněnou ústřednou. Dále má SBC vytvářet LOG záznamy o přenosu SIP signalizace i stavech hovorů a usnadnit technikům analýzu problémů VoIP telefonie.

Kontrola telefonních podvodů

SBC je ideální místo ke komplexní kontrole různých druhů VoIP podvodů. Buď může zajišťovat analýzu CDR záznamů (generovaných SBC) nebo analýzu SIP žádostí INVITE (přenášených SBC). V jednom HW zařízení mohou být společně provozovány SW typu SBC systém i SIP antifraud a může průběžně detekovat i blokovat pokusy o telefonní podvody. Mimo jiné může SBC vytvářet statistiku cílů zahraničních hovorů i statistiku zájmu o zahraniční hovory v závislosti na denní době a obojí lze následně využít při odhalování pokusů o VoIP podvody. SBC má o detekovaném pokusu o podvod informovat svého provozovatele.

Kontrola kvality VoIP telefonie

SBC může zjišťovat různé kvalitativní parametry VoIP telefonie, např. úspěšnost volání (poměr počtu hovorů ku počtu volání), vhodnost kapacity SIP svazku (míru obsazení svazku), ztrátovost hlasových RTP paketů (průměrnou a/nebo maximální), jitter hlasových RTP paketů (průměrný a/nebo maximální), odhad MOS (Mean opinion score) hovoru, statistiku důvodů odmítnutí hovorů, statistiku chyb v SIP signalizaci, statistiku chyb telefonujících (překročení časových limitů), ... apod. SBC má o snížení kvality provozu informovat svého provozovatele.

Nahrávání telefonních hovorů

SBC může zajišťovat nahrávání hovorů za zadané volající a/nebo volané telefonní číslo nebo i všech VoIP hovorů. Může tak realizovat povinnosti VoIP operátorů (na žádost policie nebo soudů), povinnosti makléřů (zákonná evidence pokynů) nebo interní potřeby podnikatelů (rozbor činností call centra).

Konverze kodeků a signálů

SBC může sloužit k převodu hlasového kodeku použitého v RTP streamu (PCMA, PCMU, G.729, G.722, G.723, ADPCM, iLBC, GSM, ...) nebo k převodu délky RTP paketů. Samozřejmě v souladu s obsahem SDP částí přijatých i odeslaných SIP signálů INVITE, RINGING, SESSION PROGRESS a OK. Konverze kodeků je ale poněkud náročná na výkon. Podobně může SBC sloužit ke konverzi metod přenosu DTMF značek (inband, telephone-event, SIP INFO) nebo ke konverzi metod faxování (inband, T.38, fax2mail).

Šifrování signalizace a hovorů

SBC může dodatečně šifrovat a dešifrovat SIP signály (zabezpečením pomocí TLS nebo DTLS či IPsec protokolu, resp. převodem mezi SIP a SIP security). Podobně může SBC dodatečně šifrovat a dešifrovat RTP pakety (převodem mezi RTP a SRTP nebo ZRTP protokolem). V obou případech musí být obě strany osazeny stejným či kompatibilním SBC systémem. Případně musí být SBC systém při šifrování a dešifrování kompatibilní se vzdálenou SIP ústřednou nebo SIP telefonem.

Přídavné hlasové funkce

SBC může zajišťovat přehrání úvodní hlásky (představení a uvítání, informace o nahrávání hovoru, ...), přehrání vyčkávací hlásky (hudba místo vyzvánění, informace o čekání ve frontě, ...), přehrání speciální hlásky (informace o zrušení či změně tel. čísla, o nedostupnosti čí přesměrování účastníka, ...). SBC také může poskytovat hlasové informace o stavu tel. spojení (hledání volaného, přesměrování hovoru, obsazení volaného, důvody odmítnutí hovoru, chybné číslo volaného, ...) a nahradit tak standardní telefonní tóny přívětivější i úplnější informací. SBC rovněž může realizovat funkce menšího IVR automatu (pro obchodní dotazy stiskněte 1, pro technické dotazy stiskněte 2, pro jiné dotazy ...) a roztřídit tak volání na vhodná pracoviště.

Související články

Externí odkazy

  1. a b c d HAVRILA, Patrik. Bezpečnost SIP PBX. dspace.cvut.cz [online]. Dostupné online. 
  2. ŠIMOVIČ, Róbert. Kolokované nasazení Asterisk PBX a Kamailio SIP Proxy ve funkci SBC. dspace.vsb.cz [online]. Dostupné online. 
  3. VOZŇÁK, Miroslav. Bezpečnost VoIP telefonie. ip-telefon.cz [online]. Dostupné online. 
  4. VANĚK, Tomáš. Bezpečnost provozu VoIP. www.ip-telefon.cz [online]. Dostupné online. 
  5. NOVOTNÝ, František. Bezpečnost VoIP protokolů. www.vutbr.cz [online]. Dostupné online.