Nie tylko SIP: ataki na VoIP z użyciem H.323

Data publikacji: 08/12/2010, TomaszG.

W ostatnim wpisie na naszym blogu pisaliśmy o atakach na telefonię IP. Skupiliśmy się na protokole SIP. VoIP jednakże to nie tylko wyżej wspomniany protokół. Innym, starszym niż SIP ale pomimo tego dalej popularnym standardem jest H.323. Niedawno skanowania, które miały na celu poszukiwanie urządzeń potrafiących obsługiwać połączenia w tejże technologii, zostały zarejestrowane przez system wczesnego ostrzegania przed zagrożeniami w sieci ARAKIS. Dzisiaj podamy trochę informacji o tych obserwacjach.

Przepływy widziane były na porcie 1720/TCP, który jest standardowym portem do tego typu połączeń. Zmasowane połączenia rozpoczęły się nad ranem 23. listopada i trwały „jedynie” 8 godzin. Były widziane na niewielu sondach, dodatkowo incydent ten nie powtórzył się. Najprawdopodobniej więc skanowany był zakres polskiej przestrzeni Internetu „wyrywkowo”, a nie kompleksowo. Mimo to wytworzyły się dwa klastry opisujące ten incydent.

ARAKIS-1720tcp-scan

Poniżej jeden z dwóch nowych klastrów opisujących ten ruch oraz wytworzona automatycznie na jego podstawie sygnatura w formacie Snort.

NEW-CLUSTER-1720-scan

Wzrost zainteresowania portem 1720 odnotował także serwis Internet Storm Center instytutu SANS. Miał on miejsce 18. listopada, oraz 23-24 listopada (źródło: http://isc.sans.edu/port.html?port=1720)

ISC-SANS-1720-scan

Atakujący po nawiązaniu sesji TCP komunikował się używając Q.931. Jest to protokół warstwy trzeciej wykorzystywany często do nawiązywania, utrzymywania i kończenia połączeń telefonicznych ISDN (tzw. connection control protocol). W tym wypadku jednakże użyty był w połączeniu z protokołem TCP – w tym celu wykorzystany został TPKT, który kapsułkuje serwisy ISO w modelu TCP (tzw. ISO Transport Service on top of the TCP).

Protokół Q.931 był użyty do nawiązania połączenia (typ komunikatu: SETUP), które charakteryzowało się następującymi danymi:

  • numer telefonu, do którego próbowano się dodzwonić (called party number): 00000442073479999
  • wiadomość, która miała się wyświetlić (display): test00
  • brak było danych numeru dzwoniącego (calling party number)

Zagnieżdżając się dalej w dekodowaniu kolejnych warstw dochodzimy do nagłówka protokołu H.225.0, który należy do znanej rodziny protokołów H.323 wykorzystywanej do przesyłania w czasie rzeczywistym głosu i obrazu. H.225.0 użyty jest do nawiązania połączenia (metoda CS: Call Signaling). Honeypot systemu ARAKIS ze względu na to, że jest nisko-interaktywny, nie wszedł w dalszą interakcję z atakującym.

TPKT, Version: 3, Length: 155
    Version: 3
    Reserved: 0
    Length: 155
Q.931
    Protocol discriminator: Q.931
    Call reference value length: 2
    Call reference flag: Message sent from originating side
    Call reference value: 000F
    Message type: SETUP (0x05)
    Bearer capability
        Information element: Bearer capability
        Length: 3
        1... .... = Extension indicator: last octet
        .00. .... = Coding standard: ITU-T standardized coding (0x00)
        ...0 1000 = Information transfer capability: Unrestricted digital information (0x08)
        1... .... = Extension indicator: last octet
        .10. .... = Transfer mode: Packet mode (0x02)
        ...0 0000 = Information transfer rate: Packet mode (0x00)
        1... .... = Extension indicator: last octet
        .01. .... = Layer identification: Layer 1 identifier (0x01)
        ...0 0101 = User information layer 1 protocol: Recommendation H.221 and H.242 (0x05)
    Display  'test00'
        Information element: Display
        Length: 5
        Display information: test00
    Called party number: '00000442073479999'
        Information element: Called party number
        Length: 18
        .... 0001 = Numbering plan: E.164 ISDN/telephony numbering (0x01)
        .000 .... = Number type: Unknown (0x00)
        1... .... = Extension indicator: last octet
        Called party number digits: 00000442073479999
        E.164 Called party number digits: 00000442073479999
    User-user
        Information element: User-user
        Length: 111
        Protocol discriminator: X.208 and X.209 coded user information
H.225.0 CS
    H323-UserInformation
        h323-uu-pdu
            h323-message-body: setup (0)
                setup
                    protocolIdentifier: 0.0.8.2250.0.4 (Version 4)
                    sourceInfo
                        vendor
                            vendor
                                t35CountryCode: Albania (1)
                                t35Extension: 0
                                manufacturerCode: 71
                            H.221 Manufacturer: Unknown (0x01000047)
                            productId: ABCDEFGH
                            versionId: v1.0.0
                        terminal
                        ..0. .... mc: False
                        ...0 .... undefinedNode: False
                    destinationAddress: 1 item
                        Item 0
                            AliasAddress: dialedDigits (0)
                                dialedDigits: 12345
                    destCallSignalAddress: ipAddress (0)
                        ipAddress
                            ip: 193.x.x.212 (193.x.x.212)
                            port: 1720
                    0... .... activeMC: False
                    conferenceID: e2e2e2e2-e2e2-e1e1-e1e1-e0e0e0e0f0ef
                    conferenceGoal: create (0)
                        create: NULL
                    callType: pointToPoint (0)
                        pointToPoint: NULL
                    sourceCallSignalAddress: ipAddress (0)
                        ipAddress
                            ip: 64.x.x.66 (64.x.x.66)
                            port: 46039
                    callIdentifier
                        guid: 6f6f6833-3233-632d-b3ef-7d09d42d002e
                    fastStart: 0 items
                    0... .... mediaWaitForConnect: False
                    0... .... canOverlapSend: False
                    0... .... multipleCalls: False
                    0... .... maintainConnection: False
                    presentationIndicator: presentationAllowed (0)
                        presentationAllowed: NULL
                    screeningIndicator: userProvidedNotScreened (0)
            1... .... h245Tunneling: True

Tego typu skanowanie miało zapewne na celu pozyskanie adresów IP potrafiących obsłużyć tego typu żądanie. Każdy adres IP został przeskanowany tylko jeden raz (atak nie został powtórzony). Z korelacji obserwacji naszych oraz dokonanych przez ISC SANS wynika, że wzmożone skanowanie portu 1720/TCP miało charakter globalny (odnotowane zostało nie tylko w polskiej przestrzeni Internetu). Jest to kolejny dowód na to, że ataków na VoIP pojawia się coraz więcej i są coraz bardziej zróżnicowane.