mirror of
https://github.com/adulau/pdns-qof.git
synced 2024-11-22 18:17:04 +00:00
proposal for an ABNF grammar
This commit is contained in:
parent
6acff38a33
commit
422cd1813b
2 changed files with 77 additions and 63 deletions
122
i-d/pdns-qof.txt
122
i-d/pdns-qof.txt
|
@ -73,14 +73,15 @@ Table of Contents
|
||||||
3.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . 4
|
3.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . 4
|
||||||
3.2. Example . . . . . . . . . . . . . . . . . . . . . . . . . . 4
|
3.2. Example . . . . . . . . . . . . . . . . . . . . . . . . . . 4
|
||||||
3.3. Mandatory Fields . . . . . . . . . . . . . . . . . . . . . 4
|
3.3. Mandatory Fields . . . . . . . . . . . . . . . . . . . . . 4
|
||||||
3.3.1. rrname . . . . . . . . . . . . . . . . . . . . . . . . 4
|
3.3.1. General remarks on mandatory fields . . . . . . . . . . 4
|
||||||
3.3.2. rrtype . . . . . . . . . . . . . . . . . . . . . . . . 4
|
3.3.2. rrname . . . . . . . . . . . . . . . . . . . . . . . . 4
|
||||||
3.3.3. rdata . . . . . . . . . . . . . . . . . . . . . . . . . 5
|
3.3.3. rrtype . . . . . . . . . . . . . . . . . . . . . . . . 4
|
||||||
3.3.4. time_first . . . . . . . . . . . . . . . . . . . . . . 5
|
3.3.4. rdata . . . . . . . . . . . . . . . . . . . . . . . . . 5
|
||||||
3.3.5. time_last . . . . . . . . . . . . . . . . . . . . . . . 5
|
3.3.5. time_first . . . . . . . . . . . . . . . . . . . . . . 5
|
||||||
|
3.3.6. time_last . . . . . . . . . . . . . . . . . . . . . . . 5
|
||||||
3.4. Optional Fields . . . . . . . . . . . . . . . . . . . . . . 5
|
3.4. Optional Fields . . . . . . . . . . . . . . . . . . . . . . 5
|
||||||
3.4.1. count . . . . . . . . . . . . . . . . . . . . . . . . . 5
|
3.4.1. count . . . . . . . . . . . . . . . . . . . . . . . . . 5
|
||||||
3.4.2. Bailiwick . . . . . . . . . . . . . . . . . . . . . . . 5
|
3.4.2. Bailiwick . . . . . . . . . . . . . . . . . . . . . . . 6
|
||||||
3.5. Additional Fields . . . . . . . . . . . . . . . . . . . . . 6
|
3.5. Additional Fields . . . . . . . . . . . . . . . . . . . . . 6
|
||||||
3.5.1. sensor_id . . . . . . . . . . . . . . . . . . . . . . . 6
|
3.5.1. sensor_id . . . . . . . . . . . . . . . . . . . . . . . 6
|
||||||
3.5.2. zone_time_first . . . . . . . . . . . . . . . . . . . . 6
|
3.5.2. zone_time_first . . . . . . . . . . . . . . . . . . . . 6
|
||||||
|
@ -88,7 +89,7 @@ Table of Contents
|
||||||
3.6. Additional Fields Registry . . . . . . . . . . . . . . . . 6
|
3.6. Additional Fields Registry . . . . . . . . . . . . . . . . 6
|
||||||
4. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 6
|
4. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 6
|
||||||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6
|
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6
|
||||||
6. Security Considerations . . . . . . . . . . . . . . . . . . . . 6
|
6. Security Considerations . . . . . . . . . . . . . . . . . . . . 7
|
||||||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 7
|
7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 7
|
||||||
7.1. Normative References . . . . . . . . . . . . . . . . . . . 7
|
7.1. Normative References . . . . . . . . . . . . . . . . . . . 7
|
||||||
7.2. References . . . . . . . . . . . . . . . . . . . . . . . . 7
|
7.2. References . . . . . . . . . . . . . . . . . . . . . . . . 7
|
||||||
|
@ -107,7 +108,6 @@ Table of Contents
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Dulaunoy, et al. Expires June 28, 2014 [Page 2]
|
Dulaunoy, et al. Expires June 28, 2014 [Page 2]
|
||||||
|
|
||||||
Internet-Draft Passive DNS - Common Output Format December 2013
|
Internet-Draft Passive DNS - Common Output Format December 2013
|
||||||
|
@ -197,14 +197,18 @@ Internet-Draft Passive DNS - Common Output Format December 2013
|
||||||
|
|
||||||
Implementation MUST support all the mandatory fields.
|
Implementation MUST support all the mandatory fields.
|
||||||
|
|
||||||
The tuple (rrname,rrtype,rdata) will always be unique within one
|
3.3.1. General remarks on mandatory fields
|
||||||
answer per server.
|
|
||||||
|
|
||||||
3.3.1. rrname
|
Uniqueness property: the tuple (rrname,rrtype,rdata) will always be
|
||||||
|
unique within one answer per server. While rrname and rrtype are
|
||||||
|
always individual JSON primitive types (strings, numbers, booleans or
|
||||||
|
null), rdata MAY be an array as defined in JSON [RFC4627]
|
||||||
|
|
||||||
|
3.3.2. rrname
|
||||||
|
|
||||||
This field returns the name of the queried resource.
|
This field returns the name of the queried resource.
|
||||||
|
|
||||||
3.3.2. rrtype
|
3.3.3. rrtype
|
||||||
|
|
||||||
This field returns the resource record type as seen by the passive
|
This field returns the resource record type as seen by the passive
|
||||||
DNS. The key is rrtype and the value is in the interpreted record
|
DNS. The key is rrtype and the value is in the interpreted record
|
||||||
|
@ -213,10 +217,6 @@ Internet-Draft Passive DNS - Common Output Format December 2013
|
||||||
3597 [RFC3597]. The resource record type can be any values as
|
3597 [RFC3597]. The resource record type can be any values as
|
||||||
described by IANA in the DNS parameters document in the section 'DNS
|
described by IANA in the DNS parameters document in the section 'DNS
|
||||||
Label types' (http://www.iana.org/assignments/dns-parameters).
|
Label types' (http://www.iana.org/assignments/dns-parameters).
|
||||||
Currently known and supported textual descriptions of rrtypes are: A,
|
|
||||||
AAAA, CNAME, PTR, SOA, TXT, DNAME, NS, SRV, RP, NAPTR, HINFO, A6. A
|
|
||||||
client MUST be able to understand these textual rtype values. In
|
|
||||||
addition, a client MUST be able to handle a decimal value (as
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -225,9 +225,13 @@ Dulaunoy, et al. Expires June 28, 2014 [Page 4]
|
||||||
Internet-Draft Passive DNS - Common Output Format December 2013
|
Internet-Draft Passive DNS - Common Output Format December 2013
|
||||||
|
|
||||||
|
|
||||||
|
Currently known and supported textual descriptions of rrtypes are: A,
|
||||||
|
AAAA, CNAME, PTR, SOA, TXT, DNAME, NS, SRV, RP, NAPTR, HINFO, A6. A
|
||||||
|
client MUST be able to understand these textual rtype values. In
|
||||||
|
addition, a client MUST be able to handle a decimal value (as
|
||||||
mentioned above) as answer.
|
mentioned above) as answer.
|
||||||
|
|
||||||
3.3.3. rdata
|
3.3.4. rdata
|
||||||
|
|
||||||
This field returns the data of the queried resource. In general,
|
This field returns the data of the queried resource. In general,
|
||||||
this is to be interpreted as string. Depending on the rtype, this
|
this is to be interpreted as string. Depending on the rtype, this
|
||||||
|
@ -238,14 +242,14 @@ Internet-Draft Passive DNS - Common Output Format December 2013
|
||||||
unknown DNS resource records, the server must follow the transparency
|
unknown DNS resource records, the server must follow the transparency
|
||||||
principle as described in RFC 3597 [RFC3597].
|
principle as described in RFC 3597 [RFC3597].
|
||||||
|
|
||||||
3.3.4. time_first
|
3.3.5. time_first
|
||||||
|
|
||||||
This field returns the first time that the record / unique tuple
|
This field returns the first time that the record / unique tuple
|
||||||
(rrname, rrtype, rdata) has been seen by the passive DNS. The date
|
(rrname, rrtype, rdata) has been seen by the passive DNS. The date
|
||||||
is expressed in seconds (decimal ASCII) since 1st of January 1970
|
is expressed in seconds (decimal ASCII) since 1st of January 1970
|
||||||
(Unix timestamp). The time zone MUST be UTC.
|
(Unix timestamp). The time zone MUST be UTC.
|
||||||
|
|
||||||
3.3.5. time_last
|
3.3.6. time_last
|
||||||
|
|
||||||
This field returns the last time that the unique tuple (rrname,
|
This field returns the last time that the unique tuple (rrname,
|
||||||
rrtype, rdata) record has been seen by the passive DNS. The date is
|
rrtype, rdata) record has been seen by the passive DNS. The date is
|
||||||
|
@ -266,10 +270,6 @@ Internet-Draft Passive DNS - Common Output Format December 2013
|
||||||
other type fields has been seen in the given time interval (between
|
other type fields has been seen in the given time interval (between
|
||||||
time_last and time_first). Decimal number.
|
time_last and time_first). Decimal number.
|
||||||
|
|
||||||
3.4.2. Bailiwick
|
|
||||||
|
|
||||||
The bailiwick is the best estimate of the apex of the zone where this
|
|
||||||
data is authoritative. String.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -281,6 +281,11 @@ Dulaunoy, et al. Expires June 28, 2014 [Page 5]
|
||||||
Internet-Draft Passive DNS - Common Output Format December 2013
|
Internet-Draft Passive DNS - Common Output Format December 2013
|
||||||
|
|
||||||
|
|
||||||
|
3.4.2. Bailiwick
|
||||||
|
|
||||||
|
The bailiwick is the best estimate of the apex of the zone where this
|
||||||
|
data is authoritative. String.
|
||||||
|
|
||||||
3.5. Additional Fields
|
3.5. Additional Fields
|
||||||
|
|
||||||
Implementations MAY support the following fields:
|
Implementations MAY support the following fields:
|
||||||
|
@ -323,12 +328,7 @@ Internet-Draft Passive DNS - Common Output Format December 2013
|
||||||
This memo includes no request to IANA.
|
This memo includes no request to IANA.
|
||||||
|
|
||||||
|
|
||||||
6. Security Considerations
|
|
||||||
|
|
||||||
In some cases, Passive DNS output might contain confidential
|
|
||||||
information and its access might be restricted. When a user is
|
|
||||||
querying multiple Passive DNS and aggregating the data, the
|
|
||||||
sensitivity of the data must be considered.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -337,6 +337,14 @@ Dulaunoy, et al. Expires June 28, 2014 [Page 6]
|
||||||
Internet-Draft Passive DNS - Common Output Format December 2013
|
Internet-Draft Passive DNS - Common Output Format December 2013
|
||||||
|
|
||||||
|
|
||||||
|
6. Security Considerations
|
||||||
|
|
||||||
|
In some cases, Passive DNS output might contain confidential
|
||||||
|
information and its access might be restricted. When a user is
|
||||||
|
querying multiple Passive DNS and aggregating the data, the
|
||||||
|
sensitivity of the data must be considered.
|
||||||
|
|
||||||
|
|
||||||
7. References
|
7. References
|
||||||
|
|
||||||
7.1. Normative References
|
7.1. Normative References
|
||||||
|
@ -377,14 +385,6 @@ Internet-Draft Passive DNS - Common Output Format December 2013
|
||||||
"Black ops 2008: It's the end of the cache as we know
|
"Black ops 2008: It's the end of the cache as we know
|
||||||
it.", 2008, <http://kurser.lobner.dk/dDist/DMK_BO2K8.pdf>.
|
it.", 2008, <http://kurser.lobner.dk/dDist/DMK_BO2K8.pdf>.
|
||||||
|
|
||||||
[DNSDB] "DNSDB API", 2013, <https://api.dnsdb.info/>.
|
|
||||||
|
|
||||||
[PDNSCERTAT]
|
|
||||||
"pDNS presentation at 4th Centr R&D workshop Frankfurt Jun
|
|
||||||
5th 2012", 2012, <http://www.centr.org/system/files/
|
|
||||||
agenda/attachment/rd4-papst-passive_dns.pdf>.
|
|
||||||
|
|
||||||
[PDNSCIRCL]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -393,6 +393,14 @@ Dulaunoy, et al. Expires June 28, 2014 [Page 7]
|
||||||
Internet-Draft Passive DNS - Common Output Format December 2013
|
Internet-Draft Passive DNS - Common Output Format December 2013
|
||||||
|
|
||||||
|
|
||||||
|
[DNSDB] "DNSDB API", 2013, <https://api.dnsdb.info/>.
|
||||||
|
|
||||||
|
[PDNSCERTAT]
|
||||||
|
"pDNS presentation at 4th Centr R&D workshop Frankfurt Jun
|
||||||
|
5th 2012", 2012, <http://www.centr.org/system/files/
|
||||||
|
agenda/attachment/rd4-papst-passive_dns.pdf>.
|
||||||
|
|
||||||
|
[PDNSCIRCL]
|
||||||
"CIRCL Passive DNS", 2012, <http://pdns.circl.lu/>.
|
"CIRCL Passive DNS", 2012, <http://pdns.circl.lu/>.
|
||||||
|
|
||||||
[PDNSCLIENT]
|
[PDNSCLIENT]
|
||||||
|
@ -425,17 +433,9 @@ Internet-Draft Passive DNS - Common Output Format December 2013
|
||||||
July 2003.
|
July 2003.
|
||||||
|
|
||||||
|
|
||||||
Authors' Addresses
|
|
||||||
|
|
||||||
Alexandre Dulaunoy
|
|
||||||
CIRCL
|
|
||||||
41, avenue de la gare
|
|
||||||
Luxembourg, L-1611
|
|
||||||
Luxembourg
|
|
||||||
|
|
||||||
Phone: (+352) 247 88444
|
|
||||||
Email: alexandre.dulaunoy@circl.lu
|
|
||||||
URI: http://www.circl.lu/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -449,6 +449,19 @@ Dulaunoy, et al. Expires June 28, 2014 [Page 8]
|
||||||
Internet-Draft Passive DNS - Common Output Format December 2013
|
Internet-Draft Passive DNS - Common Output Format December 2013
|
||||||
|
|
||||||
|
|
||||||
|
Authors' Addresses
|
||||||
|
|
||||||
|
Alexandre Dulaunoy
|
||||||
|
CIRCL
|
||||||
|
41, avenue de la gare
|
||||||
|
Luxembourg, L-1611
|
||||||
|
Luxembourg
|
||||||
|
|
||||||
|
Phone: (+352) 247 88444
|
||||||
|
Email: alexandre.dulaunoy@circl.lu
|
||||||
|
URI: http://www.circl.lu/
|
||||||
|
|
||||||
|
|
||||||
L. Aaron Kaplan
|
L. Aaron Kaplan
|
||||||
CERT.at
|
CERT.at
|
||||||
Karlsplatz 1/2/9
|
Karlsplatz 1/2/9
|
||||||
|
@ -468,7 +481,7 @@ Internet-Draft Passive DNS - Common Output Format December 2013
|
||||||
|
|
||||||
Phone:
|
Phone:
|
||||||
Email: paul@redbarn.org
|
Email: paul@redbarn.org
|
||||||
URI: /
|
URI: https://www.farsightsecurity.com/
|
||||||
|
|
||||||
|
|
||||||
Henry Stern
|
Henry Stern
|
||||||
|
@ -478,21 +491,8 @@ Internet-Draft Passive DNS - Common Output Format December 2013
|
||||||
Canada
|
Canada
|
||||||
|
|
||||||
Phone: +1 408 922 4555
|
Phone: +1 408 922 4555
|
||||||
Email: hestern@cisco.com
|
Email: stern@fsi.io
|
||||||
URI: http://www.cisco.com/security
|
URI: https://www.farsightsecurity.com/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -179,9 +179,23 @@ The document does not describe the protocol (e.g. <xref target="RFC3912">WHOIS</
|
||||||
... (separated by newline)...
|
... (separated by newline)...
|
||||||
]]></artwork></figure>
|
]]></artwork></figure>
|
||||||
</section>
|
</section>
|
||||||
|
<!--
|
||||||
|
<section title="ABNF grammar">
|
||||||
|
<figure><preamble>ABNF:</preamble><artwork><![CDATA[
|
||||||
|
answer = elements
|
||||||
|
elements = * ( element CR)
|
||||||
|
element = "{" keyvallist "}"
|
||||||
|
keyvallist = JSON object
|
||||||
|
CR = %x0D
|
||||||
|
]]></artwork></figure>
|
||||||
|
<t>Note that JSON Object is defined in <xref target="RFC4627">JSON</xref></t>.
|
||||||
|
</section>
|
||||||
|
-->
|
||||||
<section title="Mandatory Fields">
|
<section title="Mandatory Fields">
|
||||||
<t>Implementation MUST support all the mandatory fields.</t>
|
<t>Implementation MUST support all the mandatory fields.</t>
|
||||||
<t>The tuple (rrname,rrtype,rdata) will always be unique within one answer per server.</t>
|
<section title="General remarks on mandatory fields">
|
||||||
|
<t>Uniqueness property: the tuple (rrname,rrtype,rdata) will always be unique within one answer per server. While rrname and rrtype are always individual JSON primitive types (strings, numbers, booleans or null), rdata MAY be an array as defined in <xref target="RFC4627">JSON</xref></t>
|
||||||
|
</section>
|
||||||
<section title="rrname">
|
<section title="rrname">
|
||||||
<t>This field returns the name of the queried resource.</t>
|
<t>This field returns the name of the queried resource.</t>
|
||||||
</section>
|
</section>
|
||||||
|
|
Loading…
Reference in a new issue