-
Notifications
You must be signed in to change notification settings - Fork 419
/
url.yml
218 lines (190 loc) · 7.15 KB
/
url.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
# Licensed to Elasticsearch B.V. under one or more contributor
# license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright
# ownership. Elasticsearch B.V. licenses this file to you under
# the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
---
- name: url
title: URL
short: Fields that let you store URLs in various forms.
description: >
URL fields provide support for complete or partial URLs, and supports the
breaking down into scheme, domain, path, and so on.
type: group
reusable:
top_level: true
expected:
- at: threat.indicator
as: url
- at: threat.enrichments.indicator
as: url
fields:
- name: original
level: extended
type: wildcard
short: Unmodified original url as seen in the event source.
description: >
Unmodified original url as seen in the event source.
Note that in network monitoring, the observed URL may be a full URL,
whereas in access logs, the URL is often just represented as a path.
This field is meant to represent the URL as it was observed, complete
or not.
example: >
https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch
multi_fields:
- type: match_only_text
name: text
otel:
- relation: match
- name: full
level: extended
type: wildcard
short: Full unparsed URL.
description: >
If full URLs are important to your use case, they should be stored in
`url.full`, whether this field is reconstructed or present in the
event source.
example: https://www.elastic.co:443/search?q=elasticsearch#top
multi_fields:
- type: match_only_text
name: text
otel:
- relation: match
- name: scheme
level: extended
type: keyword
short: Scheme of the url.
description: >
Scheme of the request, such as "https".
Note: The `:` is not part of the scheme.
example: https
otel:
- relation: match
- name: domain
level: extended
type: keyword
short: Domain of the url.
description: >
Domain of the url, such as "www.elastic.co".
In some cases a URL may refer to an IP and/or port directly, without a
domain name. In this case, the IP address would go to the `domain` field.
If the URL contains a literal IPv6 address enclosed by `[` and `]` (IETF RFC 2732),
the `[` and `]` characters should also be captured in the `domain` field.
example: www.elastic.co
otel:
- relation: match
- name: registered_domain
level: extended
type: keyword
short: The highest registered url domain, stripped of the subdomain.
description: >
The highest registered url domain, stripped of the subdomain.
For example, the registered domain for "foo.example.com" is "example.com".
This value can be determined precisely with a list like the public
suffix list (http://publicsuffix.org). Trying to approximate this by
simply taking the last two labels will not work well for TLDs such as "co.uk".
example: example.com
otel:
- relation: match
- name: top_level_domain
level: extended
type: keyword
short: The effective top level domain (com, org, net, co.uk).
description: >
The effective top level domain (eTLD), also known as the domain suffix,
is the last part of the domain name.
For example, the top level domain for example.com is "com".
This value can be determined precisely with a list like the public
suffix list (http://publicsuffix.org). Trying to approximate this by
simply taking the last label will not work well for effective TLDs such as "co.uk".
example: co.uk
otel:
- relation: match
- name: subdomain
level: extended
type: keyword
short: The subdomain of the domain.
description: >
The subdomain portion of a fully qualified domain name includes all of the names except
the host name under the registered_domain. In a partially qualified domain, or if the
the qualification level of the full name cannot be determined, subdomain contains all of
the names below the registered domain.
For example the subdomain portion of "www.east.mydomain.co.uk" is "east".
If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com",
the subdomain field should contain "sub2.sub1", with no trailing period.
example: east
otel:
- relation: match
- name: port
format: string
level: extended
type: long
description: >
Port of the request, such as 443.
example: 443
otel:
- relation: match
- name: path
level: extended
type: wildcard
description: >
Path of the request, such as "/search".
otel:
- relation: match
- name: query
level: extended
type: keyword
short: Query string of the request.
description: >
The query field describes the query string of the request,
such as "q=elasticsearch".
The `?` is excluded from the query string. If a URL contains
no `?`, there is no query field. If there is a `?` but no query,
the query field exists with an empty string. The `exists`
query can be used to differentiate between the two cases.
otel:
- relation: match
- name: extension
level: extended
type: keyword
short: File extension from the request url, excluding the leading dot.
description: >
The field contains the file extension from the original request url,
excluding the leading dot.
The file extension is only set if it exists, as not every url has a file extension.
The leading period must not be included. For example, the value must be "png", not ".png".
Note that when the file name has multiple extensions (example.tar.gz),
only the last one should be captured ("gz", not "tar.gz").
example: png
otel:
- relation: match
- name: fragment
level: extended
type: keyword
short: Portion of the url after the `#`.
description: >
Portion of the url after the `#`, such as "top".
The `#` is not part of the fragment.
otel:
- relation: match
- name: username
level: extended
type: keyword
description: >
Username of the request.
- name: password
level: extended
type: keyword
description: >
Password of the request.