recog 2.3.14 → 2.3.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/.github/SECURITY.md +35 -0
  3. data/.github/workflows/ci.yml +26 -0
  4. data/.snyk +10 -0
  5. data/LICENSE +1 -1
  6. data/bin/recog_standardize +2 -2
  7. data/cpe-remap.yaml +55 -14
  8. data/identifiers/hw_device.txt +5 -4
  9. data/identifiers/hw_family.txt +12 -0
  10. data/identifiers/hw_product.txt +76 -6
  11. data/identifiers/os_architecture.txt +0 -10
  12. data/identifiers/os_device.txt +13 -31
  13. data/identifiers/os_family.txt +2 -95
  14. data/identifiers/os_product.txt +34 -117
  15. data/identifiers/service_family.txt +7 -36
  16. data/identifiers/service_product.txt +238 -92
  17. data/identifiers/vendor.txt +78 -193
  18. data/lib/recog/version.rb +1 -1
  19. data/requirements.txt +1 -1
  20. data/update_cpes.py +96 -48
  21. data/xml/dns_versionbind.xml +39 -16
  22. data/xml/favicons.xml +150 -17
  23. data/xml/ftp_banners.xml +21 -19
  24. data/xml/hp_pjl_id.xml +1 -1
  25. data/xml/html_title.xml +200 -23
  26. data/xml/http_cookies.xml +89 -1
  27. data/xml/http_servers.xml +144 -18
  28. data/xml/http_wwwauth.xml +28 -20
  29. data/xml/ldap_searchresult.xml +9 -6
  30. data/xml/mdns_device-info_txt.xml +308 -10
  31. data/xml/ntp_banners.xml +9 -1
  32. data/xml/operating_system.xml +1 -0
  33. data/xml/rtsp_servers.xml +7 -0
  34. data/xml/sip_banners.xml +344 -8
  35. data/xml/sip_user_agents.xml +320 -7
  36. data/xml/smb_native_lm.xml +32 -1
  37. data/xml/smb_native_os.xml +158 -33
  38. data/xml/smtp_banners.xml +7 -2
  39. data/xml/smtp_help.xml +2 -0
  40. data/xml/smtp_vrfy.xml +2 -1
  41. data/xml/snmp_sysdescr.xml +252 -86
  42. data/xml/ssh_banners.xml +118 -11
  43. data/xml/telnet_banners.xml +34 -9
  44. data/xml/tls_jarm.xml +139 -0
  45. data/xml/x509_issuers.xml +24 -5
  46. data/xml/x509_subjects.xml +97 -17
  47. metadata +6 -5
  48. data/identifiers/software_class.txt +0 -26
  49. data/identifiers/software_family.txt +0 -91
  50. data/identifiers/software_product.txt +0 -333
data/xml/http_wwwauth.xml CHANGED
@@ -2,6 +2,14 @@
2
2
  <fingerprints matches="http_header.wwwauth" protocol="http" database_type="service" preference="0.85">
3
3
  <!-- HTTP WWW-Authenticate headers are matched against these patterns to fingerprint HTTP servers. -->
4
4
 
5
+ <fingerprint pattern="^(?:Basic|Digest) realm=&quot;monit&quot;$">
6
+ <description>Minot</description>
7
+ <example>Basic realm="monit"</example>
8
+ <param pos="0" name="service.vendor" value="Tildeslash"/>
9
+ <param pos="0" name="service.product" value="Monit"/>
10
+ <param pos="0" name="service.cpe23" value="cpe:/a:tildeslash:monit:-"/>
11
+ </fingerprint>
12
+
5
13
  <fingerprint pattern="^(?:Basic|Digest) realm=&quot;access&quot;$">
6
14
  <description>Cisco IOS 11.x</description>
7
15
  <example>Basic realm="access"</example>
@@ -103,7 +111,7 @@
103
111
  <param pos="0" name="service.vendor" value="APC"/>
104
112
  <param pos="0" name="service.product" value="HTTP"/>
105
113
  <param pos="0" name="os.vendor" value="APC"/>
106
- <param pos="0" name="os.device" value="Power device"/>
114
+ <param pos="0" name="os.device" value="Power Device"/>
107
115
  </fingerprint>
108
116
 
109
117
  <fingerprint pattern="^(?:Basic|Digest) realm=&quot;ADSL\S* (?:Modem|Router|Modem/Router)&quot;.*$">
@@ -118,7 +126,7 @@
118
126
  <fingerprint pattern="^(?:Basic|Digest) realm=&quot;Broadband Router&quot;.*$">
119
127
  <description>Generic Broadband modems/routers</description>
120
128
  <example>Basic realm="Broadband Router"</example>
121
- <param pos="0" name="hw.device" value="Broadband router"/>
129
+ <param pos="0" name="hw.device" value="Broadband Router"/>
122
130
  </fingerprint>
123
131
 
124
132
  <fingerprint pattern="^(?:Basic|Digest) realm=&quot;DSL\S* (?:Modem|Router|Modem/Router)&quot;.*$">
@@ -164,7 +172,7 @@
164
172
  <example>Basic realm="camera"</example>
165
173
  <example>Basic realm="IPCamera Login"</example>
166
174
  <example>Basic realm="Mini Dome IP Camera"</example>
167
- <param pos="0" name="hw.device" value="Web cam"/>
175
+ <param pos="0" name="hw.device" value="IP Camera"/>
168
176
  </fingerprint>
169
177
 
170
178
  <fingerprint pattern="^(?:Basic|Digest) realm=&quot;(DCS-[^&quot;]+)&quot;.*$">
@@ -172,7 +180,7 @@
172
180
  <example hw.product="DCS-5222LB1">Basic realm="DCS-5222LB1"</example>
173
181
  <example hw.product="DCS-2530L">Basic realm="DCS-2530L"</example>
174
182
  <param pos="0" name="hw.vendor" value="D-Link"/>
175
- <param pos="0" name="hw.device" value="Web cam"/>
183
+ <param pos="0" name="hw.device" value="IP Camera"/>
176
184
  <param pos="1" name="hw.product"/>
177
185
  </fingerprint>
178
186
 
@@ -203,11 +211,11 @@
203
211
  <param pos="0" name="service.product" value="SpeedTouch"/>
204
212
  <param pos="0" name="service.family" value="SpeedTouch"/>
205
213
  <param pos="0" name="os.vendor" value="Thomson"/>
206
- <param pos="0" name="os.device" value="Broadband router"/>
214
+ <param pos="0" name="os.device" value="Broadband Router"/>
207
215
  <param pos="0" name="os.family" value="SpeedTouch"/>
208
216
  <param pos="0" name="hw.vendor" value="Thomson"/>
209
217
  <param pos="0" name="hw.family" value="SpeedTouch"/>
210
- <param pos="0" name="hw.device" value="Broadband router"/>
218
+ <param pos="0" name="hw.device" value="Broadband Router"/>
211
219
  </fingerprint>
212
220
 
213
221
  <fingerprint pattern="^(?:Basic|Digest) realm=&quot;SpeedTouch \(([0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2})\)&quot;$">
@@ -217,12 +225,12 @@
217
225
  <param pos="0" name="service.product" value="SpeedTouch"/>
218
226
  <param pos="0" name="service.family" value="SpeedTouch"/>
219
227
  <param pos="0" name="os.vendor" value="Thomson"/>
220
- <param pos="0" name="os.device" value="Broadband router"/>
228
+ <param pos="0" name="os.device" value="Broadband Router"/>
221
229
  <param pos="0" name="os.family" value="SpeedTouch"/>
222
230
  <param pos="0" name="os.product" value="SpeedTouch"/>
223
231
  <param pos="0" name="hw.vendor" value="Thomson"/>
224
232
  <param pos="0" name="hw.family" value="SpeedTouch"/>
225
- <param pos="0" name="hw.device" value="Broadband router"/>
233
+ <param pos="0" name="hw.device" value="Broadband Router"/>
226
234
  <param pos="1" name="host.mac"/>
227
235
  </fingerprint>
228
236
 
@@ -237,12 +245,12 @@
237
245
  <param pos="0" name="service.product" value="SpeedTouch"/>
238
246
  <param pos="0" name="service.family" value="SpeedTouch"/>
239
247
  <param pos="0" name="os.vendor" value="Thomson"/>
240
- <param pos="0" name="os.device" value="Broadband router"/>
248
+ <param pos="0" name="os.device" value="Broadband Router"/>
241
249
  <param pos="0" name="os.family" value="SpeedTouch"/>
242
250
  <param pos="0" name="os.product" value="SpeedTouch"/>
243
251
  <param pos="0" name="hw.vendor" value="Thomson"/>
244
252
  <param pos="0" name="hw.family" value="SpeedTouch"/>
245
- <param pos="0" name="hw.device" value="Broadband router"/>
253
+ <param pos="0" name="hw.device" value="Broadband Router"/>
246
254
  <param pos="1" name="host.mac"/>
247
255
  </fingerprint>
248
256
 
@@ -252,11 +260,11 @@
252
260
  <param pos="0" name="service.product" value="SpeedTouch"/>
253
261
  <param pos="0" name="service.family" value="SpeedTouch"/>
254
262
  <param pos="0" name="os.vendor" value="Thomson"/>
255
- <param pos="0" name="os.device" value="Broadband router"/>
263
+ <param pos="0" name="os.device" value="Broadband Router"/>
256
264
  <param pos="0" name="os.family" value="SpeedTouch"/>
257
265
  <param pos="0" name="hw.vendor" value="Thomson"/>
258
266
  <param pos="0" name="hw.family" value="SpeedTouch"/>
259
- <param pos="0" name="hw.device" value="Broadband router"/>
267
+ <param pos="0" name="hw.device" value="Broadband Router"/>
260
268
  <param pos="1" name="os.product"/>
261
269
  <param pos="2" name="host.mac"/>
262
270
  </fingerprint>
@@ -266,7 +274,7 @@
266
274
  <example>Digest realm="Thomson Gateway"</example>
267
275
  <example>Basic realm="Thomson"</example>
268
276
  <param pos="0" name="hw.vendor" value="Thomson"/>
269
- <param pos="0" name="hw.device" value="Broadband router"/>
277
+ <param pos="0" name="hw.device" value="Broadband Router"/>
270
278
  </fingerprint>
271
279
 
272
280
  <fingerprint pattern="^(?:Basic|Digest) realm=&quot;(?:SmartAX )?(MT\d+[^ ]*)(?: ADSL Router)?&quot;$">
@@ -276,11 +284,11 @@
276
284
  <param pos="0" name="service.family" value="MT"/>
277
285
  <param pos="1" name="service.product"/>
278
286
  <param pos="0" name="os.vendor" value="Huawei"/>
279
- <param pos="0" name="os.device" value="Broadband router"/>
287
+ <param pos="0" name="os.device" value="Broadband Router"/>
280
288
  <param pos="0" name="os.family" value="MT"/>
281
289
  <param pos="1" name="os.product"/>
282
290
  <param pos="0" name="hw.vendor" value="Huawei"/>
283
- <param pos="0" name="hw.device" value="Broadband router"/>
291
+ <param pos="0" name="hw.device" value="Broadband Router"/>
284
292
  <param pos="0" name="hw.family" value="MT"/>
285
293
  <param pos="1" name="hw.product"/>
286
294
  </fingerprint>
@@ -289,7 +297,7 @@
289
297
  <description>Huawei Home Gateway Routers</description>
290
298
  <example>Basic realm="HuaweiHomeGateway"</example>
291
299
  <param pos="0" name="hw.vendor" value="Huawei"/>
292
- <param pos="0" name="hw.device" value="Broadband router"/>
300
+ <param pos="0" name="hw.device" value="Broadband Router"/>
293
301
  <param pos="0" name="hw.product" value="Home Gateway"/>
294
302
  </fingerprint>
295
303
 
@@ -298,7 +306,7 @@
298
306
  <example>Basic realm="EchoLife Portal de Inicio"</example>
299
307
  <example>Basic realm="EchoLife Home Gateway"</example>
300
308
  <param pos="0" name="hw.vendor" value="Huawei"/>
301
- <param pos="0" name="hw.device" value="Broadband router"/>
309
+ <param pos="0" name="hw.device" value="Broadband Router"/>
302
310
  <param pos="0" name="hw.product" value="EchoLife Home Gateway"/>
303
311
  </fingerprint>
304
312
 
@@ -374,7 +382,7 @@
374
382
  <description>TP-LINK IP-Cameras</description>
375
383
  <example>Basic realm="TP-LINK IP-Camera"</example>
376
384
  <param pos="0" name="hw.vendor" value="TP-LINK"/>
377
- <param pos="0" name="hw.device" value="Web cam"/>
385
+ <param pos="0" name="hw.device" value="IP Camera"/>
378
386
  </fingerprint>
379
387
 
380
388
  <fingerprint pattern="(?i)^(?:Basic|Digest) .*realm=&quot;Broadcom Management Service&quot;.*$">
@@ -458,7 +466,7 @@
458
466
  <description>Ubee Cable Modems</description>
459
467
  <example>Digest qop="auth", realm="Ubee", nonce="1544738973"</example>
460
468
  <param pos="0" name="hw.vendor" value="Ubee"/>
461
- <param pos="0" name="hw.device" value="Broadband router"/>
469
+ <param pos="0" name="hw.device" value="Broadband Router"/>
462
470
  </fingerprint>
463
471
 
464
472
  <fingerprint pattern="^(?:Basic|Digest) realm=&quot;XDB&quot;$">
@@ -506,7 +514,7 @@
506
514
  <description>Steinsvik Orbit 351 IP Camera (Truen TCAM Rebrand)</description>
507
515
  <example hw.product="Orbit-351">Digest realm="Orbit-351", nonce="0000040dY892418598785d2a2304a74adf22f6098f2792", stale=FALSE</example>
508
516
  <param pos="0" name="hw.vendor" value="Steinsvik"/>
509
- <param pos="0" name="hw.device" value="Web cam"/>
517
+ <param pos="0" name="hw.device" value="IP Camera"/>
510
518
  <param pos="1" name="hw.product"/>
511
519
  <param pos="0" name="os.vendor" value="Steinsvik"/>
512
520
  <param pos="0" name="os.family" value="Linux"/>
@@ -382,7 +382,7 @@
382
382
  <!-- http://directory.fedoraproject.org/docs/389ds/FAQ/history.html -->
383
383
 
384
384
  <fingerprint pattern="(?i:vendorname1.\x04.Fedora Project0.\x04\rvendorversion1.\x04.Fedora-Directory/(\d\.\d[\w.]* B\d+\.\d+\.\d+))">
385
- <description>Fedora Project Fedora Directory Server</description>
385
+ <description>Fedora Project 389 Directory Server - Old Fedora branding</description>
386
386
  <example service.version="1.0.4 B2006.312.5450" _encoding="base64">
387
387
  dmVuZG9yTmFtZTEQBA5GZWRvcmEgUHJvamVjdDA3BA12ZW5kb3JWZXJzaW9uMSYEJEZlZG9yY
388
388
  S1EaXJlY3RvcnkvMS4wLjQgQjIwMDYuMzEyLjU0NTA=
@@ -391,20 +391,22 @@
391
391
  dmVuZG9yTmFtZTEQBA5GZWRvcmEgUHJvamVjdDA4BA12ZW5kb3JWZXJzaW9uMScEJUZlZG9yY
392
392
  S1EaXJlY3RvcnkvMS4wLjQgQjIwMDcuMzA0LjExMzgw
393
393
  </example>
394
- <param pos="0" name="service.vendor" value="Red Hat"/>
395
- <param pos="0" name="service.product" value="Fedora Directory Server"/>
394
+ <param pos="0" name="service.vendor" value="Fedora Project"/>
395
+ <param pos="0" name="service.product" value="389 Directory Server"/>
396
396
  <param pos="1" name="service.version"/>
397
+ <param pos="0" name="service.cpe23" value="cpe:/a:fedoraproject:389_directory_server:{service.version}"/>
397
398
  </fingerprint>
398
399
 
399
400
  <fingerprint pattern="(?i:vendorname1.\x04.389 Project0.\x04\rvendorversion1.\x04.389-Directory/(\d\.\d[\w.]* B\d+\.\d+\.\d+))">
400
- <description>389 Project 389 Directory Server</description>
401
+ <description>Fedora Project 389 Directory Server</description>
401
402
  <example service.version="1.2.11.25 B2013.325.19510" _encoding="base64">
402
403
  dmVuZG9yTmFtZTENBAszODkgUHJvamVjdDA5BA12ZW5kb3JWZXJzaW9uMSgEJjM4OS1EaXJlY
403
404
  3RvcnkvMS4yLjExLjI1IEIyMDEzLjMyNS4xOTUxMA==
404
405
  </example>
405
- <param pos="0" name="service.vendor" value="389 Project"/>
406
+ <param pos="0" name="service.vendor" value="Fedora Project"/>
406
407
  <param pos="0" name="service.product" value="389 Directory Server"/>
407
408
  <param pos="1" name="service.version"/>
409
+ <param pos="0" name="service.cpe23" value="cpe:/a:fedoraproject:389_directory_server:{service.version}"/>
408
410
  </fingerprint>
409
411
 
410
412
  <fingerprint pattern="(?im:vendorName1.\x04.CentOS0.\x04\rvendorVersion1.\x04.CentOS-Directory/(\d\.\d[\w.]* B\d+\.\d+\.\d+).\x04\v)">
@@ -441,8 +443,9 @@
441
443
  XJzaW9uMSgEJk5ldHNjYXBlLURpcmVjdG9yeS82LjExIEIyMDAyLjI4MS4wODUzMC8ECw==
442
444
  </example>
443
445
  <param pos="0" name="service.vendor" value="Netscape"/>
444
- <param pos="0" name="service.product" value="Netscape Directory Server"/>
446
+ <param pos="0" name="service.product" value="Directory Server"/>
445
447
  <param pos="1" name="service.version"/>
448
+ <param pos="0" name="service.cpe23" value="cpe:/a:netscape:directory_server:{service.version}"/>
446
449
  </fingerprint>
447
450
 
448
451
  <fingerprint pattern="(?im:IBM Lotus Software0.\x04\rvendorversion1.\x04.Release (\d+\.\d+[\w .]*)0.\x04.dominomajminversion)">
@@ -14,6 +14,16 @@
14
14
  version of OS X plus 4. E.g. osxvers=13 means OS X 10.9
15
15
  -->
16
16
 
17
+ <fingerprint pattern="^osxvers=20">
18
+ <description>OS X 11.0 (Big Sur)</description>
19
+ <example>osxvers=20</example>
20
+ <param pos="0" name="os.vendor" value="Apple"/>
21
+ <param pos="0" name="os.family" value="Mac OS X"/>
22
+ <param pos="0" name="os.product" value="Mac OS X"/>
23
+ <param pos="0" name="os.version" value="11.0"/>
24
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:11.0"/>
25
+ </fingerprint>
26
+
17
27
  <fingerprint pattern="^osxvers=19">
18
28
  <description>OS X 10.15 (Catalina)</description>
19
29
  <example>osxvers=19</example>
@@ -238,6 +248,46 @@
238
248
 
239
249
  <!-- MacBookPro - Reference for the following: https://support.apple.com/en-us/HT201300 -->
240
250
 
251
+ <fingerprint pattern="^model=MacBookPro17,1$">
252
+ <description>MacBook Pro (13-inch, M1, 2020)</description>
253
+ <example>model=MacBookPro17,1</example>
254
+ <param pos="0" name="os.vendor" value="Apple"/>
255
+ <param pos="0" name="os.family" value="Mac OS X"/>
256
+ <param pos="0" name="os.product" value="Mac OS X"/>
257
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:-"/>
258
+ <param pos="0" name="hw.vendor" value="Apple"/>
259
+ <param pos="0" name="hw.family" value="MacBook Pro"/>
260
+ <param pos="0" name="hw.product" value="MacBook Pro (13-inch, M1, 2020)"/>
261
+ <param pos="0" name="hw.device" value="Laptop"/>
262
+ </fingerprint>
263
+
264
+ <fingerprint pattern="^model=MacBookPro16,1$">
265
+ <description>MacBook Pro (16-inch, 2019)</description>
266
+ <example>model=MacBookPro16,1</example>
267
+ <param pos="0" name="os.vendor" value="Apple"/>
268
+ <param pos="0" name="os.family" value="Mac OS X"/>
269
+ <param pos="0" name="os.product" value="Mac OS X"/>
270
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:-"/>
271
+ <param pos="0" name="hw.vendor" value="Apple"/>
272
+ <param pos="0" name="hw.family" value="MacBook Pro"/>
273
+ <param pos="0" name="hw.product" value="MacBook Pro (16-inch, 2019)"/>
274
+ <param pos="0" name="hw.device" value="Laptop"/>
275
+ </fingerprint>
276
+
277
+ <fingerprint pattern="^model=MacBookPro16,[23]$">
278
+ <description>MacBook Pro (13-inch, 2020)</description>
279
+ <example>model=MacBookPro16,2</example>
280
+ <example>model=MacBookPro16,3</example>
281
+ <param pos="0" name="os.vendor" value="Apple"/>
282
+ <param pos="0" name="os.family" value="Mac OS X"/>
283
+ <param pos="0" name="os.product" value="Mac OS X"/>
284
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:-"/>
285
+ <param pos="0" name="hw.vendor" value="Apple"/>
286
+ <param pos="0" name="hw.family" value="MacBook Pro"/>
287
+ <param pos="0" name="hw.product" value="MacBook Pro (13-inch, 2020)"/>
288
+ <param pos="0" name="hw.device" value="Laptop"/>
289
+ </fingerprint>
290
+
241
291
  <fingerprint pattern="^model=MacBookPro15,4$">
242
292
  <description>MacBook Pro (13-inch, 2019, Two Thunderbolt 3 ports)</description>
243
293
  <example>model=MacBookPro15,4</example>
@@ -381,9 +431,10 @@
381
431
  <param pos="0" name="hw.device" value="Laptop"/>
382
432
  </fingerprint>
383
433
 
384
- <fingerprint pattern="^model=MacBookPro11,4$">
434
+ <fingerprint pattern="^model=MacBookPro11,[45]$">
385
435
  <description>MacBook Pro (Retina, 15-inch, Mid 2015)</description>
386
436
  <example>model=MacBookPro11,4</example>
437
+ <example>model=MacBookPro11,5</example>
387
438
  <param pos="0" name="os.vendor" value="Apple"/>
388
439
  <param pos="0" name="os.family" value="Mac OS X"/>
389
440
  <param pos="0" name="os.product" value="Mac OS X"/>
@@ -472,6 +523,19 @@
472
523
  <param pos="0" name="hw.device" value="Laptop"/>
473
524
  </fingerprint>
474
525
 
526
+ <fingerprint pattern="^model=MacBookPro9,1$">
527
+ <description>MacBook Pro (15-inch, Mid 2012)</description>
528
+ <example>model=MacBookPro9,1</example>
529
+ <param pos="0" name="os.vendor" value="Apple"/>
530
+ <param pos="0" name="os.family" value="Mac OS X"/>
531
+ <param pos="0" name="os.product" value="Mac OS X"/>
532
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:-"/>
533
+ <param pos="0" name="hw.vendor" value="Apple"/>
534
+ <param pos="0" name="hw.family" value="MacBook Pro"/>
535
+ <param pos="0" name="hw.product" value="MacBook Pro (15-inch, Mid 2012)"/>
536
+ <param pos="0" name="hw.device" value="Laptop"/>
537
+ </fingerprint>
538
+
475
539
  <fingerprint pattern="^model=MacBookPro8,3$">
476
540
  <description>MacBook Pro (17-inch, Late 2011)</description>
477
541
  <example>model=MacBookPro8,3</example>
@@ -671,6 +735,32 @@
671
735
 
672
736
  <!-- MacBookAir - Reference for the following: https://support.apple.com/en-us/HT201862 -->
673
737
 
738
+ <fingerprint pattern="^model=MacBookAir10,1$">
739
+ <description>MacBook Air (M1, 2020)</description>
740
+ <example>model=MacBookAir10,1</example>
741
+ <param pos="0" name="os.vendor" value="Apple"/>
742
+ <param pos="0" name="os.family" value="Mac OS X"/>
743
+ <param pos="0" name="os.product" value="Mac OS X"/>
744
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:-"/>
745
+ <param pos="0" name="hw.vendor" value="Apple"/>
746
+ <param pos="0" name="hw.family" value="MacBook"/>
747
+ <param pos="0" name="hw.product" value="MacBook Air (M1, 2020)"/>
748
+ <param pos="0" name="hw.device" value="Laptop"/>
749
+ </fingerprint>
750
+
751
+ <fingerprint pattern="^model=MacBookAir9,1$">
752
+ <description>MacBook Air (Retina, 13-inch, 2020)</description>
753
+ <example>model=MacBookAir9,1</example>
754
+ <param pos="0" name="os.vendor" value="Apple"/>
755
+ <param pos="0" name="os.family" value="Mac OS X"/>
756
+ <param pos="0" name="os.product" value="Mac OS X"/>
757
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:-"/>
758
+ <param pos="0" name="hw.vendor" value="Apple"/>
759
+ <param pos="0" name="hw.family" value="MacBook"/>
760
+ <param pos="0" name="hw.product" value="MacBook Air (Retina, 13-inch, 2020)"/>
761
+ <param pos="0" name="hw.device" value="Laptop"/>
762
+ </fingerprint>
763
+
674
764
  <fingerprint pattern="^model=MacBookAir8,2$">
675
765
  <description>MacBook Air (Retina, 13-inch, 2019)</description>
676
766
  <example>model=MacBookAir8,2</example>
@@ -842,6 +932,19 @@
842
932
 
843
933
  <!-- MacMini - Reference for the following: https://support.apple.com/en-us/HT201894 -->
844
934
 
935
+ <fingerprint pattern="^model=Macmini9,1$">
936
+ <description>Mac mini (M1, 2020)</description>
937
+ <example>model=Macmini9,1</example>
938
+ <param pos="0" name="os.vendor" value="Apple"/>
939
+ <param pos="0" name="os.family" value="Mac OS X"/>
940
+ <param pos="0" name="os.product" value="Mac OS X"/>
941
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:-"/>
942
+ <param pos="0" name="hw.vendor" value="Apple"/>
943
+ <param pos="0" name="hw.family" value="Mac mini"/>
944
+ <param pos="0" name="hw.product" value="Mac mini (M1, 2020)"/>
945
+ <param pos="0" name="hw.device" value="Desktop"/>
946
+ </fingerprint>
947
+
845
948
  <fingerprint pattern="^model=Macmini8,1$">
846
949
  <description>Mac mini (Late 2018)</description>
847
950
  <example>model=Macmini8,1</example>
@@ -1122,6 +1225,19 @@
1122
1225
 
1123
1226
  <!-- iMAC - Reference for the following: https://support.apple.com/en-us/HT201634 -->
1124
1227
 
1228
+ <fingerprint pattern="^model=iMac20,1$">
1229
+ <description>iMac (Retina 5K, 27-inch, 2020)</description>
1230
+ <example>model=iMac20,1</example>
1231
+ <param pos="0" name="os.vendor" value="Apple"/>
1232
+ <param pos="0" name="os.family" value="Mac OS X"/>
1233
+ <param pos="0" name="os.product" value="Mac OS X"/>
1234
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:-"/>
1235
+ <param pos="0" name="hw.vendor" value="Apple"/>
1236
+ <param pos="0" name="hw.family" value="iMac"/>
1237
+ <param pos="0" name="hw.product" value="iMac (Retina 5K, 27-inch, 2020)"/>
1238
+ <param pos="0" name="hw.device" value="Desktop"/>
1239
+ </fingerprint>
1240
+
1125
1241
  <fingerprint pattern="^model=iMac19,1$">
1126
1242
  <description>iMac (Retina 5K, 27-inch, 2019)</description>
1127
1243
  <example>model=iMac19,1</example>
@@ -1369,8 +1485,21 @@
1369
1485
  <param pos="0" name="hw.device" value="Desktop"/>
1370
1486
  </fingerprint>
1371
1487
 
1488
+ <fingerprint pattern="^model=iMac11,1$">
1489
+ <description>iMac 10 (27-inch, Late 2009)</description>
1490
+ <example>model=iMac11,1</example>
1491
+ <param pos="0" name="os.vendor" value="Apple"/>
1492
+ <param pos="0" name="os.family" value="Mac OS X"/>
1493
+ <param pos="0" name="os.product" value="Mac OS X"/>
1494
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:-"/>
1495
+ <param pos="0" name="hw.vendor" value="Apple"/>
1496
+ <param pos="0" name="hw.family" value="iMac"/>
1497
+ <param pos="0" name="hw.product" value="iMac (27-inch, Late 2009)"/>
1498
+ <param pos="0" name="hw.device" value="Desktop"/>
1499
+ </fingerprint>
1500
+
1372
1501
  <fingerprint pattern="^model=iMac10,1$">
1373
- <description>iMac (27-inch, Late 2009)</description>
1502
+ <description>iMac 11 (27-inch, Late 2009)</description>
1374
1503
  <example>model=iMac10,1</example>
1375
1504
  <param pos="0" name="os.vendor" value="Apple"/>
1376
1505
  <param pos="0" name="os.family" value="Mac OS X"/>
@@ -1395,10 +1524,50 @@
1395
1524
  <param pos="0" name="hw.device" value="Desktop"/>
1396
1525
  </fingerprint>
1397
1526
 
1527
+ <fingerprint pattern="^model=iMac8,1$">
1528
+ <description>iMac (20/24-inch, Early 2008)</description>
1529
+ <example>model=iMac8,1</example>
1530
+ <param pos="0" name="os.vendor" value="Apple"/>
1531
+ <param pos="0" name="os.family" value="Mac OS X"/>
1532
+ <param pos="0" name="os.product" value="Mac OS X"/>
1533
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:-"/>
1534
+ <param pos="0" name="hw.vendor" value="Apple"/>
1535
+ <param pos="0" name="hw.family" value="iMac"/>
1536
+ <param pos="0" name="hw.product" value="iMac (20/24-inch, Early 2008)"/>
1537
+ <param pos="0" name="hw.device" value="Desktop"/>
1538
+ </fingerprint>
1539
+
1398
1540
  <!-- iPad Pro - Reference for the following: https://www.theiphonewiki.com/ -->
1399
1541
 
1542
+ <fingerprint pattern="^model=J42[01]AP$">
1543
+ <description>iPad Pro (12.9-inch, 4th generation)</description>
1544
+ <example>model=J420AP</example>
1545
+ <example>model=J421AP</example>
1546
+ <param pos="0" name="os.vendor" value="Apple"/>
1547
+ <param pos="0" name="os.family" value="iOS"/>
1548
+ <param pos="0" name="os.product" value="iOS"/>
1549
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
1550
+ <param pos="0" name="hw.vendor" value="Apple"/>
1551
+ <param pos="0" name="hw.family" value="iPad Pro"/>
1552
+ <param pos="0" name="hw.product" value="iPad Pro (12.9-inch, 4th generation)"/>
1553
+ <param pos="0" name="hw.device" value="Tablet"/>
1554
+ </fingerprint>
1555
+
1556
+ <fingerprint pattern="^model=J41[78]AP$">
1557
+ <description>iPad Pro (11-inch, 2nd generation)</description>
1558
+ <example>model=J417AP</example>
1559
+ <param pos="0" name="os.vendor" value="Apple"/>
1560
+ <param pos="0" name="os.family" value="iOS"/>
1561
+ <param pos="0" name="os.product" value="iOS"/>
1562
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
1563
+ <param pos="0" name="hw.vendor" value="Apple"/>
1564
+ <param pos="0" name="hw.family" value="iPad Pro"/>
1565
+ <param pos="0" name="hw.product" value="iPad Pro (11-inch, 2nd generation)"/>
1566
+ <param pos="0" name="hw.device" value="Tablet"/>
1567
+ </fingerprint>
1568
+
1400
1569
  <fingerprint pattern="^model=J32[01]x?AP$">
1401
- <description>iPad Pro (12.9-inch)</description>
1570
+ <description>iPad Pro (12.9-inch, 3rd generation)</description>
1402
1571
  <example>model=J320AP</example>
1403
1572
  <example>model=J321xAP</example>
1404
1573
  <param pos="0" name="os.vendor" value="Apple"/>
@@ -1407,7 +1576,7 @@
1407
1576
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
1408
1577
  <param pos="0" name="hw.vendor" value="Apple"/>
1409
1578
  <param pos="0" name="hw.family" value="iPad Pro"/>
1410
- <param pos="0" name="hw.product" value="iPad Pro (12.9-inch)"/>
1579
+ <param pos="0" name="hw.product" value="iPad Pro (12.9-inch, 3rd generation)"/>
1411
1580
  <param pos="0" name="hw.device" value="Tablet"/>
1412
1581
  </fingerprint>
1413
1582
 
@@ -1428,6 +1597,7 @@
1428
1597
  <fingerprint pattern="^model=J20[78]AP$">
1429
1598
  <description>iPad Pro (10.5-inch)</description>
1430
1599
  <example>model=J207AP</example>
1600
+ <example>model=J208AP</example>
1431
1601
  <param pos="0" name="os.vendor" value="Apple"/>
1432
1602
  <param pos="0" name="os.family" value="iOS"/>
1433
1603
  <param pos="0" name="os.product" value="iOS"/>
@@ -1451,10 +1621,38 @@
1451
1621
  <param pos="0" name="hw.device" value="Tablet"/>
1452
1622
  </fingerprint>
1453
1623
 
1624
+ <fingerprint pattern="^model=J12[01]AP$">
1625
+ <description>iPad Pro (12.9-inch, 2nd generation)</description>
1626
+ <example>model=J120AP</example>
1627
+ <example>model=J121AP</example>
1628
+ <param pos="0" name="os.vendor" value="Apple"/>
1629
+ <param pos="0" name="os.family" value="iOS"/>
1630
+ <param pos="0" name="os.product" value="iOS"/>
1631
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
1632
+ <param pos="0" name="hw.vendor" value="Apple"/>
1633
+ <param pos="0" name="hw.family" value="iPad Pro"/>
1634
+ <param pos="0" name="hw.product" value="iPad Pro (12.9-inch, 2nd generation)"/>
1635
+ <param pos="0" name="hw.device" value="Tablet"/>
1636
+ </fingerprint>
1637
+
1638
+ <fingerprint pattern="^model=J9[89]aAP$">
1639
+ <description>iPad Pro (12.9-inch)</description>
1640
+ <example>model=J98aAP</example>
1641
+ <example>model=J99aAP</example>
1642
+ <param pos="0" name="os.vendor" value="Apple"/>
1643
+ <param pos="0" name="os.family" value="iOS"/>
1644
+ <param pos="0" name="os.product" value="iOS"/>
1645
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
1646
+ <param pos="0" name="hw.vendor" value="Apple"/>
1647
+ <param pos="0" name="hw.family" value="iPad Pro"/>
1648
+ <param pos="0" name="hw.product" value="iPad Pro (12.9-inch)"/>
1649
+ <param pos="0" name="hw.device" value="Tablet"/>
1650
+ </fingerprint>
1651
+
1454
1652
  <!-- iPad -->
1455
1653
 
1456
1654
  <fingerprint pattern="^model=J7[12]bAP$">
1457
- <description>iPad 6th generation)</description>
1655
+ <description>iPad (6th generation)</description>
1458
1656
  <example>model=J72bAP</example>
1459
1657
  <example>model=J71bAP</example>
1460
1658
  <param pos="0" name="os.vendor" value="Apple"/>
@@ -1619,9 +1817,10 @@
1619
1817
 
1620
1818
  <!-- Apple TV -->
1621
1819
 
1622
- <fingerprint pattern="^model=J105aAP$">
1820
+ <fingerprint pattern="^model=(?:J105aAP|AppleTV6,2)$">
1623
1821
  <description>Apple TV 4K</description>
1624
1822
  <example>model=J105aAP</example>
1823
+ <example>model=AppleTV6,2</example>
1625
1824
  <param pos="0" name="os.vendor" value="Apple"/>
1626
1825
  <param pos="0" name="os.family" value="tvOS"/>
1627
1826
  <param pos="0" name="os.product" value="tvOS"/>
@@ -1632,9 +1831,10 @@
1632
1831
  <param pos="0" name="hw.device" value="Media Server"/>
1633
1832
  </fingerprint>
1634
1833
 
1635
- <fingerprint pattern="^model=J42dAP$">
1834
+ <fingerprint pattern="^model=(?:J42dAP|AppleTV5,3)$">
1636
1835
  <description>Apple TV (4th generation)</description>
1637
1836
  <example>model=J42dAP</example>
1837
+ <example>model=AppleTV5,3</example>
1638
1838
  <param pos="0" name="os.vendor" value="Apple"/>
1639
1839
  <param pos="0" name="os.family" value="tvOS"/>
1640
1840
  <param pos="0" name="os.product" value="tvOS"/>
@@ -1645,11 +1845,13 @@
1645
1845
  <param pos="0" name="hw.device" value="Media Server"/>
1646
1846
  </fingerprint>
1647
1847
 
1648
- <fingerprint pattern="^model=J33[Ii]?AP$">
1848
+ <fingerprint pattern="^model=(?:J33[Ii]?AP|AppleTV3,[21])$">
1649
1849
  <description>Apple TV (3rd generation)</description>
1650
1850
  <example>model=J33IAP</example>
1651
1851
  <example>model=J33iAP</example>
1652
1852
  <example>model=J33AP</example>
1853
+ <example>model=AppleTV3,2</example>
1854
+ <example>model=AppleTV3,1</example>
1653
1855
  <param pos="0" name="os.vendor" value="Apple"/>
1654
1856
  <param pos="0" name="os.family" value="tvOS"/>
1655
1857
  <param pos="0" name="os.product" value="tvOS"/>
@@ -1660,9 +1862,10 @@
1660
1862
  <param pos="0" name="hw.device" value="Media Server"/>
1661
1863
  </fingerprint>
1662
1864
 
1663
- <fingerprint pattern="^model=K66AP$">
1865
+ <fingerprint pattern="^model=(?:K66AP|AppleTV2,1)$">
1664
1866
  <description>Apple TV (2nd generation)</description>
1665
1867
  <example>model=K66AP</example>
1868
+ <example>model=AppleTV2,1</example>
1666
1869
  <param pos="0" name="os.vendor" value="Apple"/>
1667
1870
  <param pos="0" name="os.family" value="tvOS"/>
1668
1871
  <param pos="0" name="os.product" value="tvOS"/>
@@ -1673,7 +1876,102 @@
1673
1876
  <param pos="0" name="hw.device" value="Media Server"/>
1674
1877
  </fingerprint>
1675
1878
 
1676
- <!-- iPad Pro - Reference for the following: https://www.theiphonewiki.com/ -->
1879
+ <!-- iPhones - Reference for the following: https://www.theiphonewiki.com/wiki/Category:Devices
1880
+ and http://phonedb.net/ -->
1881
+
1882
+ <fingerprint pattern="^model=D79AP$">
1883
+ <description>iPhone SE (2020)</description>
1884
+ <example>model=D79AP</example>
1885
+ <param pos="0" name="os.vendor" value="Apple"/>
1886
+ <param pos="0" name="os.family" value="iOS"/>
1887
+ <param pos="0" name="os.product" value="iOS"/>
1888
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
1889
+ <param pos="0" name="hw.vendor" value="Apple"/>
1890
+ <param pos="0" name="hw.family" value="iPhone"/>
1891
+ <param pos="0" name="hw.product" value="iPhone SE (2020)"/>
1892
+ <param pos="0" name="hw.device" value="Mobile Phone"/>
1893
+ </fingerprint>
1894
+
1895
+ <fingerprint pattern="^model=D54pAP$">
1896
+ <description>iPhone 12 Pro Max 5G</description>
1897
+ <example>model=D54pAP</example>
1898
+ <param pos="0" name="os.vendor" value="Apple"/>
1899
+ <param pos="0" name="os.family" value="iOS"/>
1900
+ <param pos="0" name="os.product" value="iOS"/>
1901
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
1902
+ <param pos="0" name="hw.vendor" value="Apple"/>
1903
+ <param pos="0" name="hw.family" value="iPhone"/>
1904
+ <param pos="0" name="hw.product" value="iPhone 12 Pro Max 5G"/>
1905
+ <param pos="0" name="hw.device" value="Mobile Phone"/>
1906
+ </fingerprint>
1907
+
1908
+ <fingerprint pattern="^model=D53pAP$">
1909
+ <description>iPhone 12 Pro 5G</description>
1910
+ <example>model=D53pAP</example>
1911
+ <param pos="0" name="os.vendor" value="Apple"/>
1912
+ <param pos="0" name="os.family" value="iOS"/>
1913
+ <param pos="0" name="os.product" value="iOS"/>
1914
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
1915
+ <param pos="0" name="hw.vendor" value="Apple"/>
1916
+ <param pos="0" name="hw.family" value="iPhone"/>
1917
+ <param pos="0" name="hw.product" value="iPhone 12 Pro 5G"/>
1918
+ <param pos="0" name="hw.device" value="Mobile Phone"/>
1919
+ </fingerprint>
1920
+
1921
+ <fingerprint pattern="^model=D53gAP$">
1922
+ <description>iPhone 12 5G</description>
1923
+ <example>model=D53gAP</example>
1924
+ <param pos="0" name="os.vendor" value="Apple"/>
1925
+ <param pos="0" name="os.family" value="iOS"/>
1926
+ <param pos="0" name="os.product" value="iOS"/>
1927
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
1928
+ <param pos="0" name="hw.vendor" value="Apple"/>
1929
+ <param pos="0" name="hw.family" value="iPhone"/>
1930
+ <param pos="0" name="hw.product" value="iPhone 12 5G"/>
1931
+ <param pos="0" name="hw.device" value="Mobile Phone"/>
1932
+ </fingerprint>
1933
+
1934
+ <fingerprint pattern="^model=D52g?AP$">
1935
+ <description>iPhone 12 Mini 5G</description>
1936
+ <example>model=D52gAP</example>
1937
+ <example>model=D52AP</example>
1938
+ <param pos="0" name="os.vendor" value="Apple"/>
1939
+ <param pos="0" name="os.family" value="iOS"/>
1940
+ <param pos="0" name="os.product" value="iOS"/>
1941
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
1942
+ <param pos="0" name="hw.vendor" value="Apple"/>
1943
+ <param pos="0" name="hw.family" value="iPhone"/>
1944
+ <param pos="0" name="hw.product" value="iPhone 12 Mini 5G"/>
1945
+ <param pos="0" name="hw.device" value="Mobile Phone"/>
1946
+ </fingerprint>
1947
+
1948
+ <fingerprint pattern="^model=D431p?AP$">
1949
+ <description>iPhone 11 Pro Max</description>
1950
+ <example>model=D431pAP</example>
1951
+ <example>model=D431AP</example>
1952
+ <param pos="0" name="os.vendor" value="Apple"/>
1953
+ <param pos="0" name="os.family" value="iOS"/>
1954
+ <param pos="0" name="os.product" value="iOS"/>
1955
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
1956
+ <param pos="0" name="hw.vendor" value="Apple"/>
1957
+ <param pos="0" name="hw.family" value="iPhone"/>
1958
+ <param pos="0" name="hw.product" value="iPhone 11 Pro Max"/>
1959
+ <param pos="0" name="hw.device" value="Mobile Phone"/>
1960
+ </fingerprint>
1961
+
1962
+ <fingerprint pattern="^model=D421p?AP$">
1963
+ <description>iPhone 11 Pro</description>
1964
+ <example>model=D421pAP</example>
1965
+ <example>model=D421AP</example>
1966
+ <param pos="0" name="os.vendor" value="Apple"/>
1967
+ <param pos="0" name="os.family" value="iOS"/>
1968
+ <param pos="0" name="os.product" value="iOS"/>
1969
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
1970
+ <param pos="0" name="hw.vendor" value="Apple"/>
1971
+ <param pos="0" name="hw.family" value="iPhone"/>
1972
+ <param pos="0" name="hw.product" value="iPhone 11 Pro"/>
1973
+ <param pos="0" name="hw.device" value="Mobile Phone"/>
1974
+ </fingerprint>
1677
1975
 
1678
1976
  <fingerprint pattern="^model=D331p?AP$">
1679
1977
  <description>iPhone XS Max</description>