An IXIA BreakingPoint box was used to simulate both normal and attack (DNS tunnelling) DNS traffic. The resulting pcaps were obtained and fields relevant to Apache Spot (incubating) were injested. The attacks can be differentiated from the normal activity due to codes that were inserted into the Transaction ID field (upon ingestion: ‘dns_id’) which identifies either the fact that the traffic was normal or identifies the specific DNS tunneling activity being used. We provide the schema for the injested pcap data as well as the location and specifications the ingested data within Amazon-S3. Information is also provided for how to interpret the dns_id field..
The schema for this data includes one field (‘dns_id’) in addition to what is usually used for DNS data in Apache Spot (incubating). The schema is as follows:
Name | Type |
---|---|
frame_time | string |
unix_tstamp | bigint |
frame_len | int |
ip_dst | string |
ip_src | string |
dns_qry_name | string |
dns_qry_class | string |
dns_qry_type | int |
dns_qry_rcode | int |
dns_a | string |
dns_id | string |
The value of dns_id indicates that either the data row was taken from a packet capture of simulated normal DNS traffic, or from a packet capture of a particular type of simulated DNS tunnelling.
Within BreakingPoint, Transaction IDs are represented as a decimal number. However, tshark dissects the transaction ID in its hexadecimal representation (the format contained within parenthesis in the table below).
Within Apache Spot (incubating), only responses from DNS servers are ingested since the response packet contains the query made by the client and the response from the server in the same packet.
Super Flow Name | Transaction ID | Description |
---|---|---|
Brandon_DNS_domain_Test | 1008 (0x000003f0) | [Normal] This super flow simulates normal DNS queries. |
DNS_Tunnel_BE_1 | 1002 (0x000003ea) | [Attack] This super flow simulates a message being tunneled over DNS via the query name field (url's are random strings), with a ip address response (drawn from a file of randomly generated IPs) being sent via the DNS answer field. |
DNS_Tunnel_BE_2 | 1003 (0x000003eb}) | [Attack] This super flow simulates a message being tunneled over DNS via the query name field (url's random strings), with a response being given as no such url found. |
TCP_DNS_Tunnel_BE_1 | 1001 (0x000003e9) | [Attack] This super Flow simulates tunneling random noise using TCP over DNS. The payload is generated by a Markov Dictionary and encoded in the DNS requests (responses) by using hex0x20Hack encoding. |
TCP_DNS_Tunnel_BE_2 | 1005 (0x000003ed) | [Attack] This super Flow simulates tunneling random noise using TCP over DNS. The payload is generated by a Markov Dictionary and encoded in the DNS requests (responses) by using Base16Alpha encoding. |
TCP_DNS_Tunnel_BE_3 | 1007 (0x000003ef) | [Attack] This super Flow simulates tunneling random noise using TCP over DNS. The payload is generated by a Markov Dictionary and encoded in the DNS requests (responses) by using Base63 encoding. |
Simulation Date | Type | Location | Size | Additional Comments |
---|---|---|---|---|
May 9, 2017 | Tarball of ingested data (parquet format) |
Simulation Date | Total Records | dns_id=1008 | dns_id=1002 | dns_id=1003 | dns_id=1001 | dns_id=1005 | dns_id=1007 |
---|---|---|---|---|---|---|---|
5/9/2017 | 391,364,387 | 391,314,477 | 16,317 | 21,666 | 4,156 | 2,743 | 5,028 |