DNS Labeled Data Set

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..

Data Schema

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:

NameType
frame_timestring
unix_tstampbigint
frame_lenint
ip_dststring
ip_srcstring
dns_qry_namestring
dns_qry_classstring
dns_qry_typeint
dns_qry_rcodeint
dns_astring
dns_idstring

Interpreting dns_id

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 NameTransaction IDDescription
Brandon_DNS_domain_Test1008 (0x000003f0)[Normal] This super flow simulates normal DNS queries.
DNS_Tunnel_BE_11002 (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_21003 (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_11001 (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_21005 (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_31007 (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.

Data Location

Simulation DateTypeLocationSizeAdditional Comments
May 9, 2017Tarball of ingested data (parquet format)

Number of Rows associated to each Value of dns_id

Simulation DateTotal Recordsdns_id=1008dns_id=1002dns_id=1003dns_id=1001dns_id=1005dns_id=1007
5/9/2017391,364,387391,314,47716,31721,6664,1562,7435,028