Dziwny ruch na porcie 0/TCP

Data publikacji: 12/12/2011, TomaszG.

Port 0/TCP jest wg rejestru IANA portem zarezerwowanym. Oznacza to, że żadna usługa nie powinna korzystać z tego portu do komunikacji sieciowej. Gdy w dniu 13 listopada 2011 roku do sond systemu ARAKIS zaczęła napływać wzmożona liczba pakietów TCP kierowanych na port 0, zbudziło to nasze zainteresowanie. Próby połączeń na ten port były widziane zarówno przez honeypoty, jak i w sieci darknet. Znaczna większość pakietów zarejestrowanych w honeypotach był zniekształcona (szczegóły niżej). Ruch wrócił do normy z dniem 17.11.2011. Zarejestrowaliśmy jeszcze krótkotrwały wzrost 30.11-01.12.2011. Nasze obserwacje w tych okresach pokrywają się z danymi pochodzącymi z systemu DSHIELD, co świadczy o globalnym zasięgu tej anomalii.

Obserwacje w honeypotach

Poniżej znajduje się wykres liczby unikalnych adresów IP w pięciominutowym oknie czasowym, które próbowały łączyć się na port 0/TCP do honeypotów systemu ARAKIS:

ARAKIS_0TCP_HN

W okresie 13-17.11.2011 zostało zaobserwowanych przez honeypoty ok. 15 000 pakietów kierowanych na port 0/TCP. Znaczna większość z nich (ok. 14 200) miała w nagłówku ustawiony port źródłowy także 0. Same nagłówki TCP w większości były zniekształcone (np. niepoprawna długość nagłówka) lub nie miały sensu (np. w kontekście ustawionych flag). Poniżej statystyki błędów w nagłówkach TCP, oraz najczęstszych kombinacji flag:

packets | tcp error
==============================================
   1113 | bad hdr length 0 - too short, < 20
   1005 | bad hdr length 12 - too short, < 20
    941 | bad hdr length 8 - too short, < 20
    882 | bad hdr length 16 - too short, < 20
    832 | bad hdr length 4 - too short, < 20
Packets | Flags
========================================================
    180 | 0x12 (SYN, ACK)
    171 | 0x00 (<none>)
    139 | 0x02 (SYN)
    103 | 0x82 (SYN, CWR)
     94 | 0x14 (RST, ACK)
     92 | 0x04 (RST)
     81 | 0x54 (RST, ACK, ECN)
     78 | 0xf5 (FIN, RST, ACK, URG, ECN, CWR)
     73 | 0xc2 (SYN, ECN, CWR)
     73 | 0x62 (SYN, URG, ECN)
     71 | 0x29 (FIN, PSH, URG)
     70 | 0xf2 (SYN, ACK, URG, ECN, CWR)
     70 | 0x40 (ECN)
     70 | 0x2c (RST, PSH, URG)
     61 | 0xba (SYN, PSH, ACK, URG, CWR)
     61 | 0x4a (SYN, PSH, ECN)
     61 | 0x24 (RST, URG)
     60 | 0x22 (SYN, URG)
     59 | 0xe2 (SYN, URG, ECN, CWR)
     59 | 0x74 (RST, ACK, URG, ECN)
     59 | 0x31 (FIN, ACK, URG)
     58 | 0xd2 (SYN, ACK, ECN, CWR)
     58 | 0x52 (SYN, ACK, ECN)
     57 | 0xa7 (FIN, SYN, RST, URG, CWR)
     57 | 0x9d (FIN, RST, PSH, ACK, CWR)
     57 | 0x0a (SYN, PSH)
     56 | 0x86 (SYN, RST, CWR)
     56 | 0x80 (CWR)
     56 | 0x0d (FIN, RST, PSH)
     54 | 0xbe (SYN, RST, PSH, ACK, URG, CWR)
     54 | 0x94 (RST, ACK, CWR)
     53 | 0xe8 (PSH, URG, ECN, CWR)
     53 | 0xd0 (ACK, ECN, CWR)
     53 | 0xc7 (FIN, SYN, RST, ECN, CWR)
     53 | 0x7a (SYN, PSH, ACK, URG, ECN)
     52 | 0x03 (FIN, SYN)
     51 | 0xb8 (PSH, ACK, URG, CWR)
     51 | 0x58 (PSH, ACK, ECN)
     51 | 0x42 (SYN, ECN)
     51 | 0x32 (SYN, ACK, URG)
     51 | 0x2f (FIN, SYN, RST, PSH, URG)
     50 | 0x11 (FIN, ACK)
     49 | 0xf9 (FIN, PSH, ACK, URG, ECN, CWR)
     49 | 0xca (SYN, PSH, ECN, CWR)
     49 | 0x92 (SYN, ACK, CWR)
     49 | 0x55 (FIN, RST, ACK, ECN)
     49 | 0x10 (ACK)
     48 | 0x4f (FIN, SYN, RST, PSH, ECN)
     48 | 0x49 (FIN, PSH, ECN)
     47 | 0x72 (SYN, ACK, URG, ECN)
     47 | 0x6c (RST, PSH, URG, ECN)
     47 | 0x39 (FIN, PSH, ACK, URG)
     47 | 0x0c (RST, PSH)
     46 | 0xb9 (FIN, PSH, ACK, URG, CWR)
     46 | 0xb5 (FIN, RST, ACK, URG, CWR)
     46 | 0xad (FIN, RST, PSH, URG, CWR)
     46 | 0xa6 (SYN, RST, URG, CWR)
     45 | 0xec (RST, PSH, URG, ECN, CWR)
     45 | 0xdc (RST, PSH, ACK, ECN, CWR)
     45 | 0x6a (SYN, PSH, URG, ECN)
     45 | 0x5c (RST, PSH, ACK, ECN)
     45 | 0x41 (FIN, ECN)
     44 | 0xea (SYN, PSH, URG, ECN, CWR)
     44 | 0xd8 (PSH, ACK, ECN, CWR)
     44 | 0xc3 (FIN, SYN, ECN, CWR)
     44 | 0x38 (PSH, ACK, URG)
     43 | 0xcb (FIN, SYN, PSH, ECN, CWR)
     43 | 0x88 (PSH, CWR)
     43 | 0x69 (FIN, PSH, URG, ECN)
     43 | 0x64 (RST, URG, ECN)
     42 | 0xe5 (FIN, RST, URG, ECN, CWR)
     42 | 0xc6 (SYN, RST, ECN, CWR)
     42 | 0x75 (FIN, RST, ACK, URG, ECN)
     42 | 0x37 (FIN, SYN, RST, ACK, URG)
     41 | 0xff (FIN, SYN, RST, PSH, ACK, URG, ECN, CWR)
     41 | 0xed (FIN, RST, PSH, URG, ECN, CWR)
     41 | 0xc0 (ECN, CWR)
     41 | 0xb4 (RST, ACK, URG, CWR)
     41 | 0xaa (SYN, PSH, URG, CWR)
     41 | 0x7d (FIN, RST, PSH, ACK, URG, ECN)
     41 | 0x7c (RST, PSH, ACK, URG, ECN)
     41 | 0x70 (ACK, URG, ECN)
     41 | 0x34 (RST, ACK, URG)
     41 | 0x26 (SYN, RST, URG)
     41 | 0x1e (SYN, RST, PSH, ACK)
     40 | 0xfb (FIN, SYN, PSH, ACK, URG, ECN, CWR)
     40 | 0xeb (FIN, SYN, PSH, URG, ECN, CWR)
     40 | 0xd1 (FIN, ACK, ECN, CWR)
     40 | 0x84 (RST, CWR)
     39 | 0xce (SYN, RST, PSH, ECN, CWR)
     39 | 0xc1 (FIN, ECN, CWR)
     39 | 0xbd (FIN, RST, PSH, ACK, URG, CWR)
     39 | 0xbb (FIN, SYN, PSH, ACK, URG, CWR)
     39 | 0xa2 (SYN, URG, CWR)
     39 | 0x44 (RST, ECN)
     38 | 0xe9 (FIN, PSH, URG, ECN, CWR)
     38 | 0xda (SYN, PSH, ACK, ECN, CWR)
     38 | 0x81 (FIN, CWR)
     37 | 0xdd (FIN, RST, PSH, ACK, ECN, CWR)
     37 | 0xd4 (RST, ACK, ECN, CWR)
     37 | 0xac (RST, PSH, URG, CWR)
     37 | 0x8e (SYN, RST, PSH, CWR)
     37 | 0x5a (SYN, PSH, ACK, ECN)
     37 | 0x45 (FIN, RST, ECN)
     37 | 0x1c (RST, PSH, ACK)
     37 | 0x19 (FIN, PSH, ACK)
     36 | 0xf8 (PSH, ACK, URG, ECN, CWR)
     36 | 0xdb (FIN, SYN, PSH, ACK, ECN, CWR)
     36 | 0xcd (FIN, RST, PSH, ECN, CWR)
     36 | 0xc8 (PSH, ECN, CWR)
     36 | 0x9f (FIN, SYN, RST, PSH, ACK, CWR)
     36 | 0x9a (SYN, PSH, ACK, CWR)
     36 | 0x56 (SYN, RST, ACK, ECN)
     36 | 0x3c (RST, PSH, ACK, URG)
     36 | 0x05 (FIN, RST)
     35 | 0x8a (SYN, PSH, CWR)
     35 | 0x68 (PSH, URG, ECN)
     35 | 0x66 (SYN, RST, URG, ECN)
     35 | 0x53 (FIN, SYN, ACK, ECN)
     35 | 0x33 (FIN, SYN, ACK, URG)
     35 | 0x30 (ACK, URG)
     35 | 0x09 (FIN, PSH)
     34 | 0xfc (RST, PSH, ACK, URG, ECN, CWR)
     34 | 0x95 (FIN, RST, ACK, CWR)
     34 | 0x4b (FIN, SYN, PSH, ECN)
     34 | 0x08 (PSH)
     33 | 0xfd (FIN, RST, PSH, ACK, URG, ECN, CWR)
     33 | 0xa0 (URG, CWR)
     33 | 0x96 (SYN, RST, ACK, CWR)
     33 | 0x4d (FIN, RST, PSH, ECN)
     33 | 0x47 (FIN, SYN, RST, ECN)
     32 | 0x4e (SYN, RST, PSH, ECN)
     32 | 0x4c (RST, PSH, ECN)
     32 | 0x43 (FIN, SYN, ECN)
     32 | 0x3e (SYN, RST, PSH, ACK, URG)
     32 | 0x3d (FIN, RST, PSH, ACK, URG)
     32 | 0x36 (SYN, RST, ACK, URG)
     32 | 0x20 (URG)
     31 | 0xfe (SYN, RST, PSH, ACK, URG, ECN, CWR)
     31 | 0xf4 (RST, ACK, URG, ECN, CWR)
     31 | 0xe4 (RST, URG, ECN, CWR)
     31 | 0xc5 (FIN, RST, ECN, CWR)
     31 | 0x9b (FIN, SYN, PSH, ACK, CWR)
     31 | 0x99 (FIN, PSH, ACK, CWR)
     31 | 0x98 (PSH, ACK, CWR)
     31 | 0x61 (FIN, URG, ECN)
     31 | 0x35 (FIN, RST, ACK, URG)
     31 | 0x2d (FIN, RST, PSH, URG)
     31 | 0x18 (PSH, ACK)
     30 | 0xee (SYN, RST, PSH, URG, ECN, CWR)
     30 | 0x8c (RST, PSH, CWR)
     30 | 0x89 (FIN, PSH, CWR)
     30 | 0x6d (FIN, RST, PSH, URG, ECN)
     30 | 0x6b (FIN, SYN, PSH, URG, ECN)
     30 | 0x17 (FIN, SYN, RST, ACK)
     30 | 0x15 (FIN, RST, ACK)
     30 | 0x13 (FIN, SYN, ACK)
     29 | 0xde (SYN, RST, PSH, ACK, ECN, CWR)
     29 | 0xbf (FIN, SYN, RST, PSH, ACK, URG, CWR)
     29 | 0xb0 (ACK, URG, CWR)
     29 | 0xaf (FIN, SYN, RST, PSH, URG, CWR)
     29 | 0x73 (FIN, SYN, ACK, URG, ECN)
     29 | 0x67 (FIN, SYN, RST, URG, ECN)
     29 | 0x3a (SYN, PSH, ACK, URG)
     29 | 0x1f (FIN, SYN, RST, PSH, ACK)
     28 | 0xcf (FIN, SYN, RST, PSH, ECN, CWR)
     28 | 0xa1 (FIN, URG, CWR)
     28 | 0x93 (FIN, SYN, ACK, CWR)
     28 | 0x79 (FIN, PSH, ACK, URG, ECN)
     28 | 0x77 (FIN, SYN, RST, ACK, URG, ECN)
     28 | 0x51 (FIN, ACK, ECN)
     28 | 0x0e (SYN, RST, PSH)
     28 | 0x06 (SYN, RST)
     27 | 0xef (FIN, SYN, RST, PSH, URG, ECN, CWR)
     27 | 0xe0 (URG, ECN, CWR)
     27 | 0xb7 (FIN, SYN, RST, ACK, URG, CWR)
     27 | 0xa9 (FIN, PSH, URG, CWR)
     27 | 0xa8 (PSH, URG, CWR)
     27 | 0xa5 (FIN, RST, URG, CWR)
     27 | 0x8f (FIN, SYN, RST, PSH, CWR)
     27 | 0x87 (FIN, SYN, RST, CWR)
     27 | 0x83 (FIN, SYN, CWR)
     27 | 0x78 (PSH, ACK, URG, ECN)
     27 | 0x65 (FIN, RST, URG, ECN)
     27 | 0x48 (PSH, ECN)
     27 | 0x25 (FIN, RST, URG)
     26 | 0xe1 (FIN, URG, ECN, CWR)
     26 | 0xc9 (FIN, PSH, ECN, CWR)
     26 | 0xb3 (FIN, SYN, ACK, URG, CWR)
     26 | 0xb2 (SYN, ACK, URG, CWR)
     26 | 0x97 (FIN, SYN, RST, ACK, CWR)
     26 | 0x85 (FIN, RST, CWR)
     26 | 0x63 (FIN, SYN, URG, ECN)
     26 | 0x5f (FIN, SYN, RST, PSH, ACK, ECN)
     26 | 0x2b (FIN, SYN, PSH, URG)
     26 | 0x01 (FIN)
     25 | 0xf7 (FIN, SYN, RST, ACK, URG, ECN, CWR)
     25 | 0xd9 (FIN, PSH, ACK, ECN, CWR)
     25 | 0xc4 (RST, ECN, CWR)
     25 | 0xa3 (FIN, SYN, URG, CWR)
     25 | 0x57 (FIN, SYN, RST, ACK, ECN)
     24 | 0xf6 (SYN, RST, ACK, URG, ECN, CWR)
     24 | 0x21 (FIN, URG)
     23 | 0xf1 (FIN, ACK, URG, ECN, CWR)
     23 | 0xd3 (FIN, SYN, ACK, ECN, CWR)
     23 | 0x59 (FIN, PSH, ACK, ECN)
     23 | 0x2a (SYN, PSH, URG)
     23 | 0x1d (FIN, RST, PSH, ACK)
     22 | 0xfa (SYN, PSH, ACK, URG, ECN, CWR)
     22 | 0xf0 (ACK, URG, ECN, CWR)
     22 | 0xe3 (FIN, SYN, URG, ECN, CWR)
     22 | 0x7f (FIN, SYN, RST, PSH, ACK, URG, ECN)
     22 | 0x71 (FIN, ACK, URG, ECN)
     22 | 0x6f (FIN, SYN, RST, PSH, URG, ECN)
     22 | 0x5e (SYN, RST, PSH, ACK, ECN)
     22 | 0x50 (ACK, ECN)
     21 | 0x9e (SYN, RST, PSH, ACK, CWR)
     21 | 0x90 (ACK, CWR)
     21 | 0x76 (SYN, RST, ACK, URG, ECN)
     20 | 0xdf (FIN, SYN, RST, PSH, ACK, ECN, CWR)
     20 | 0xab (FIN, SYN, PSH, URG, CWR)
     20 | 0x5b (FIN, SYN, PSH, ACK, ECN)
     20 | 0x0f (FIN, SYN, RST, PSH)
     19 | 0xe7 (FIN, SYN, RST, URG, ECN, CWR)
     19 | 0x5d (FIN, RST, PSH, ACK, ECN)
     19 | 0x46 (SYN, RST, ECN)
     19 | 0x3b (FIN, SYN, PSH, ACK, URG)
     19 | 0x1a (SYN, PSH, ACK)
     18 | 0xe6 (SYN, RST, URG, ECN, CWR)
     18 | 0xd7 (FIN, SYN, RST, ACK, ECN, CWR)
     18 | 0x9c (RST, PSH, ACK, CWR)
     18 | 0x23 (FIN, SYN, URG)
     17 | 0xd6 (SYN, RST, ACK, ECN, CWR)
     17 | 0xd5 (FIN, RST, ACK, ECN, CWR)
     17 | 0xcc (RST, PSH, ECN, CWR)
     17 | 0x6e (SYN, RST, PSH, URG, ECN)
     17 | 0x16 (SYN, RST, ACK)
     16 | 0xa4 (RST, URG, CWR)
     16 | 0x91 (FIN, ACK, CWR)
     16 | 0x60 (URG, ECN)
     16 | 0x2e (SYN, RST, PSH, URG)
     16 | 0x28 (PSH, URG)
     16 | 0x07 (FIN, SYN, RST)
     15 | 0xf3 (FIN, SYN, ACK, URG, ECN, CWR)
     14 | 0xbc (RST, PSH, ACK, URG, CWR)
     14 | 0x7e (SYN, RST, PSH, ACK, URG, ECN)
     14 | 0x3f (FIN, SYN, RST, PSH, ACK, URG)
     14 | 0x1b (FIN, SYN, PSH, ACK)
     13 | 0xb6 (SYN, RST, ACK, URG, CWR)
     13 | 0xb1 (FIN, ACK, URG, CWR)
     13 | 0xae (SYN, RST, PSH, URG, CWR)
     12 | 0x8b (FIN, SYN, PSH, CWR)
     12 | 0x0b (FIN, SYN, PSH)
      9 | 0x8d (FIN, RST, PSH, CWR)
      9 | 0x7b (FIN, SYN, PSH, ACK, URG, ECN)
      7 | 0x27 (FIN, SYN, RST, URG)

Jeżeli poza nagłówkiem pakiet TCP zawierał jeszcze dane (tzw. payload), to zawsze występował w nim ciąg heksadecymalny A0027D78 (zazwyczaj ciąg ten występował sam lub poprzedzony był ciągiem różnej długości składającym się z zer oraz ewentualnie losowych liczb heksadecymalnych – wyrażenie regularne opisujący ten ciąg, to [0-9A-F]*0*A0027D78). Poniżej statystyki widzianego payloadu (TOP 10):

Packets | Payload (hex)
====================================================
    640 | 00000000A0027D78
    615 | 0000000000000000A0027D78
    602 | A0027D78
    534 | 000000000000000000000000A0027D78
     26 | DB19F91B000000000000000000000000A0027D78
      7 | ED8DDA5E000000000000000000000000A0027D78
      7 | CE537D46000000000000000000000000A0027D78
      7 | C9A7340E000000000000000000000000A0027D78
      6 | F080F25D000000000000000000000000A0027D78
      6 | F02FD77C000000000000000000000000A0027D78
(...)

W charakterystyce ruchu można zauważyć, że ciąg 000000000000000000000000A0027D78 występuje zawsze, tylko nieraz jest przesunięty do początku pakietu (na tyle, że pole „dane” jest puste, zawiera jedynie 4 bajty A0027D78, lub ciąg zer jest krótszy niż 12 bajtów), ewentualnie przesunięcie ma miejsce w prawo (wtedy ciąg zer jest poprzedzony losowymi bajtami). Losowe bajty wpływają na zniekształcenie nagłówka TCP, w tym „dziwne” ustawienie flag. Poniżej przykład pakietu, którego ciąg przesunięty jest w sposób zniekształcający pole „opcje” (zaznaczone) oraz flagi nagłówka TCP.

ARAKIS_0TCP_PCAP

Może to oznaczać, że bajty powyżej nagłówka IP nie są protokołem TCP (pomimo tego, że w nagłówku IP w polu „protocol” ustawiona jest wartość 0x06). Jeżeli tak, to albo ktoś „testował” jakiś swój protokół warstwy czwartej, albo testowane były zachowania różnych stosów TCP/IP na zniekształcone w odpowiedni sposób dane.

Źródłem skanowań w 84% były adresy należące do chińskich ISP (głównie pochodzące z jednego systemu autonomicznego AS4134). Na drugim miejscu pojawiła się Kanada (6%) a na trzecim USA (2%). Należy jednak zaznaczyć, że źródłowe adresy IP mogą być zespoofowane. Próby nawiązania połączenia TCP na port 0 zazwyczaj nie powinny spotkać się z odpowiedzią (tak też było w przypadku naszych honeypotów). Jeżeli osoby odpowiedzialne za wypuszczenie takiego ruchu do Internetu wiedziały o tym, to nie oczekiwały żadnych pakietów zwrotnych od docelowego adresu IP, więc adres źródłowy mógł zostać sfałszowany. Poniżej statystyki związane ze źródłami anomalnego ruchu:

ARAKIS_0TCP_CC

packets | CC
==============
  12461 | CN
    962 | CA
    329 | US
    273 | GB
    182 | PL
    142 | DE
    126 | CL
     58 | FI
     51 | RU
     36 | TR
     31 | NL
     29 | PH
     18 | SV
     17 | PE
     16 | AU

ARAKIS_0TCP_ASN

Packets | AS
=================
  10582 | 4134
    983 | 4812
    962 | 32613
    565 | 4837
    273 | 29550
    209 | 4808
    142 | 8972
    133 | 21788
    122 | 9308
    115 | 33182
     76 | 6429
(...)

 

Z prawie 12,5 tysiąca pakietów pochodzących z Chin prawie 9 tysięcy zostało wysłanych z jednego adresu IP: 118.122.188.27. Ten jeden IP odpowiada aż za 70% ruchu z adresów chińskich i prawie 60% całości!

Position| flows | Source IP address | AS      | CC | AS Name
========|=======|===================|=========|====|=======================================================================
     1  | 8777  | 118.122.188.27    | 4134    | CN | CHINANET-BACKBONE No.31,Jin-rong Street
     2  | 1017  | 121.14.5.100      | 4134    | CN | CHINANET-BACKBONE No.31,Jin-rong Street
     3  | 962   | 184.107.227.10    | 32613   | CA | IWEB-AS - iWeb Technologies Inc.
     4  | 631   | 124.74.192.107    | 4812    | CN | CHINANET-SH-AP China Telecom (Group)
     5  | 462   | 221.194.128.145   | 4837    | CN | CHINA169-BACKBONE CNCGROUP China169 Backbone

ARAKIS_0TCP_TOP5_IP

Przypatrując się bliżej adresowi 118.122.188.27 wychodzi, że ok. 40% pakietów wysłanych z tego IP zawierała w polu „dane” TCP fragment opisanego wyżej ciągu bajtów. Poniżej statystyka tychże danych:

 IP Address: 118.122.188.27
  Count | Payload
========|=========================================
    657 | 00000000a0027d78
    595 | a0027d78
    569 | 0000000000000000a0027d78
    529 | 000000000000000000000000a0027d78
     26 | db19f91b000000000000000000000000a0027d78
     21 | 993e3363000000000000000000000000a0027d78
     20 | 3bd6444d000000000000000000000000a0027d78
     14 | fe33a35c000000000000000000000000a0027d78
     14 | bd830163000000000000000000000000a0027d78
     12 | 8c38ea52000000000000000000000000a0027d78
(...)

Przypatrując się kolejnemu adresowi – 121.14.5.100 – wychodzi, że aż ok. 94% pakietów wysłanych z tego IP zawierała w polu „dane” TCP fragment ciągu bajtów. Poniżej statystyka tychże danych:

 IP Address: 121.14.5.100
  Count | Payload
=====================================================
    186 | 00000000a0027d78
    152 | 000000000000000000000000a0027d78
    144 | a0027d78
    141 | 0000000000000000a0027d78
      8 | 0e22d238000000000000000000000000a0027d78
      7 | ce537d46000000000000000000000000a0027d78
      6 | dee3e973000000000000000000000000a0027d78
      6 | b1b68e15000000000000000000000000a0027d78
      6 | 60174438000000000000000000000000a0027d78
      5 | f4297504000000000000000000000000a0027d78
(...)

Trzeci z kolei adres – 184.107.227.10 – zawierał niepuste pole „dane” w przypaku 55% pakietów. Poniżej statystyka:

 IP Address: 184.107.227.10
  Count | Payload
====================================================
    110 | 0000000000000000a0027d78
     97 | a0027d78
     93 | 00000000a0027d78
     82 | 000000000000000000000000a0027d78
      5 | fdfb6217000000000000000000000000a0027d78
      5 | be603378000000000000000000000000a0027d78
      5 | 0d3dd30d000000000000000000000000a0027d78
      4 | 651deb39000000000000000000000000a0027d78
      4 | 058f2f79000000000000000000000000a0027d78
      3 | d9a11468000000000000000000000000a0027d78
(...)

Poniżej przedstawiamy regułę dla systemu Snort dopasowującą charakterystyczny ciąg bajtów. Ponieważ opisany wyżej ruch jest mocno osobliwy, nie wykluczamy, że może się także pojawić na innych portach. Dlatego przedstawiamy postać najbardziej ogólną:

alert tcp any any -> any any (msg:"Suspicious 0/TCP payload"; content:"|a0 02 7d 78|"; sid: 120003; rev: 1;)

Obserwacje w sieciach darknet

Darknet, zwany także „network telescope„, to sieć złożona z dużej liczby adresów IP należących do operatorów, ale nie przydzielonych żadnemu podmiotowi, w związku z czym nie powinno być żadnego legalnego ruchu do nich. Od honeynetu różni się głównie znacznie większą ilością obserwowanych adresów IP, oraz brakiem interakcji z nawiązującym połączenie. Darknet służy do obserwacji wielkoskalowych anomalii występujących w Internecie.

Wzrost ruchu na porcie 0/TCP był widziany przez ARAKIS-owy darknet zarówno w kontekście połączeń nawiązywanych z tego portu, jak i kierowanych na ten port. Poniżej wykresy liczby połączeń na port 0/TCP oraz z tego portu:

ARAKIS_0TCP_DN-dst

ARAKIS_0TCP_DN-src

Obserwacje innych systemów

Wzmożona aktywność sieciowa na porcie 0/TCP została także odnotowana w systemie DSHIELD. System ten czerpie dane z logów systemów firewall uczestników projektu.

DSHIELD_ISC_SANS_0-TCP

Aktualny wykres aktywności ruchu na tym porcie można śledzić w serwisie ISC SANS.

Stan obecny

W dniach 30.11-01.12.2011 zarówno w sieciach honeynet jak i darknet zarejestrowano kolejną „falę” ruchu kierowanego na port 0/TCP, jednakże w chwili obecnej nie obserwujemy aktywności na tym porcie. Podobny stan prezentuje wykres z systemu DSHIELD (patrz wyżej). Poniżej wykresy przedstawiające aktualny stan:

Honeynet

Honeynet_NOW_ARAKIS_0-TCP

Darknet – port docelowy

DARKNETd_NOW_ARAKIS_0-TCP

Darknet – port źródłowy

DARKNETs_NOW_ARAKIS_0-TCP

Podsumowanie

Nie mamy pewności co do przyczyny ani celu generowania anomalnego ruchu na port 0/TCP. Z jednej strony mogła być to zwykła pomyłka, błąd lub jakaś forma projektu badawczego, a z drugiej mogły być to testy zachowania stosów TCP/IP na zniekształcone pakiety TCP. Ponieważ honeypoty jak i większość „normalnych” usług bądź systemów nie generują odpowiedzi na tego typu ruch, nie wiadomo czy źródłowe adresy IP nie były sfałszowane (brak jakiejkolwiek interakcji). Obecnie ruch na porcie 0/TCP jest znikomy i nie wyróżnia się od tzw. „szumu tła”.