BIND
Overview
BIND is an implementation of the Domain Name System (DNS) of the Internet. It performs both of the main DNS server roles, acting as an authoritative name server for domains, and acting as a recursive resolver in the network.
Related Built-in Rules
Benefit from SEKOIA.IO built-in rules and upgrade BIND with the following detection capabilities out-of-the-box.
SEKOIA.IO x BIND on ATT&CK Navigator
SEKOIA.IO Intelligence Feed
Detect threats based on indicators of compromise (IOCs) collected by SEKOIA's Threat and Detection Research team.
- Effort: elementary
Sliver DNS Beaconing
Detects suspicious DNS queries known from Sliver beaconing
- Effort: intermediate
Event Categories
The following table lists the data source offered by this integration.
Data Source | Description |
---|---|
DNS records |
BIND provides detailed logs on handled DNS queries |
Event Samples
Find below few samples of events and how they are normalized by SEKOIA.IO.
{
"message": "client @0x7f62b80115d0 192.168.101.70#55575 (docs.sekoia.io): query: docs.sekoia.io IN AAAA + (192.168.100.102)",
"source": {
"ip": "192.168.101.70",
"port": 55575,
"address": "192.168.101.70"
},
"dns": {
"question": {
"class": "IN",
"type": "AAAA",
"name": "docs.sekoia.io",
"top_level_domain": "io",
"subdomain": "docs",
"registered_domain": "sekoia.io"
},
"type": "query",
"header_flags": [
"RD"
]
},
"related": {
"ip": [
"192.168.101.70"
],
"hosts": [
"docs.sekoia.io"
]
}
}
{
"message": "client 192.168.101.70#55575 (docs.sekoia.io): query: docs.sekoia.io IN AAAA +TC (192.168.100.102)",
"source": {
"ip": "192.168.101.70",
"port": 55575,
"address": "192.168.101.70"
},
"dns": {
"question": {
"class": "IN",
"type": "AAAA",
"name": "docs.sekoia.io",
"top_level_domain": "io",
"subdomain": "docs",
"registered_domain": "sekoia.io"
},
"type": "query",
"header_flags": [
"RD",
"CD"
]
},
"network": {
"transport": "tcp"
},
"related": {
"ip": [
"192.168.101.70"
],
"hosts": [
"docs.sekoia.io"
]
}
}
{
"message": "client 192.168.103.66#42811 (ipv6.google.com): query: ipv6.google.com IN A +EDC (192.168.100.102)",
"source": {
"ip": "192.168.103.66",
"port": 42811,
"address": "192.168.103.66"
},
"dns": {
"question": {
"class": "IN",
"type": "A",
"name": "ipv6.google.com",
"top_level_domain": "com",
"subdomain": "ipv6",
"registered_domain": "google.com"
},
"type": "query",
"header_flags": [
"RD",
"CD"
]
},
"related": {
"ip": [
"192.168.103.66"
],
"hosts": [
"ipv6.google.com"
]
}
}
{
"message": "client @0x7f4f8003d9e0 192.168.101.61#38251 (global.vortex.data.trafficmanager.net): query: global.vortex.data.trafficmanager.net IN AAAA +E(0) (192.168.100.102)",
"source": {
"ip": "192.168.101.61",
"port": 38251,
"address": "192.168.101.61"
},
"dns": {
"question": {
"class": "IN",
"type": "AAAA",
"name": "global.vortex.data.trafficmanager.net",
"top_level_domain": "net",
"subdomain": "global.vortex.data",
"registered_domain": "trafficmanager.net"
},
"type": "query",
"header_flags": [
"RD"
]
},
"related": {
"ip": [
"192.168.101.61"
],
"hosts": [
"global.vortex.data.trafficmanager.net"
]
}
}
{
"message": "client 192.168.103.66#57980 (ipv6.google.com): query: ipv6.google.com IN AAAA - (192.168.100.102)",
"source": {
"ip": "192.168.103.66",
"port": 57980,
"address": "192.168.103.66"
},
"dns": {
"question": {
"class": "IN",
"type": "AAAA",
"name": "ipv6.google.com",
"top_level_domain": "com",
"subdomain": "ipv6",
"registered_domain": "google.com"
},
"type": "query",
"header_flags": []
},
"related": {
"ip": [
"192.168.103.66"
],
"hosts": [
"ipv6.google.com"
]
}
}
{
"message": "client 192.168.103.66#45041 (107.100.168.192.in-addr.arpa): query: 107.100.168.192.in-addr.arpa IN PTR +E (192.168.100.102)",
"source": {
"ip": "192.168.103.66",
"port": 45041,
"address": "192.168.103.66"
},
"dns": {
"question": {
"class": "IN",
"type": "PTR",
"name": "107.100.168.192.in-addr.arpa",
"top_level_domain": "in-addr.arpa",
"subdomain": "107.100.168",
"registered_domain": "192.in-addr.arpa"
},
"type": "query",
"header_flags": [
"RD"
]
},
"related": {
"ip": [
"192.168.103.66"
],
"hosts": [
"107.100.168.192.in-addr.arpa"
]
}
}
{
"message": "client 192.168.101.70#55575 (docs.sekoia.io): query: docs.sekoia.io IN AAAA +ET (192.168.100.102)",
"source": {
"ip": "192.168.101.70",
"port": 55575,
"address": "192.168.101.70"
},
"dns": {
"question": {
"class": "IN",
"type": "AAAA",
"name": "docs.sekoia.io",
"top_level_domain": "io",
"subdomain": "docs",
"registered_domain": "sekoia.io"
},
"type": "query",
"header_flags": [
"RD"
]
},
"network": {
"transport": "tcp"
},
"related": {
"ip": [
"192.168.101.70"
],
"hosts": [
"docs.sekoia.io"
]
}
}
Extracted Fields
The following table lists the fields that are extracted, normalized under the ECS format, analyzed and indexed by the parser. It should be noted that infered fields are not listed.
Name | Type | Description |
---|---|---|
dns.header_flags |
keyword |
Array of DNS header flags. |
dns.question.class |
keyword |
The class of records being queried. |
dns.question.name |
keyword |
The name being queried. |
dns.question.type |
keyword |
The type of record being queried. |
dns.type |
keyword |
The type of DNS event captured, query or answer. |
network.transport |
keyword |
Protocol Name corresponding to the field iana_number . |
source.ip |
ip |
IP address of the source. |
source.port |
long |
Port of the source. |
Configure
As of now, the main solution to collect BIND logs leverages the Rsyslog recipe. Please share your experiences with other recipes by editing this documentation.
Rsyslog
This Section shows how to configure BIND to forward its events to your rsyslog server. The reader is also invited to consult the Rsyslog Transport documentation to forward these logs to SEKOIA.IO.
First, you need to configure your BIND daemon to log queries and forward them to your rsyslog instance. If rsyslog and BIND are installed on the same box, you can simply add the following statement in your BIND’s main configuration file:
logging {
channel syslog_chan {
syslog daemon;
severity dynamic;
};
category default { syslog_chan; };
category queries { syslog_chan; };
category config { syslog_chan; };
category security { syslog_chan; };
};
You can find more informations on how to configure your BIND instance on its official website.