recog 2.3.23 → 3.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (116) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +25 -16
  4. data/Rakefile +2 -9
  5. data/lib/recog/db_manager.rb +1 -1
  6. data/lib/recog/version.rb +1 -1
  7. data/{bin → recog/bin}/recog_match +0 -1
  8. data/{xml → recog/xml}/apache_modules.xml +0 -0
  9. data/{xml → recog/xml}/apache_os.xml +0 -0
  10. data/{xml → recog/xml}/architecture.xml +0 -0
  11. data/{xml → recog/xml}/dhcp_vendor_class.xml +9 -9
  12. data/{xml → recog/xml}/dns_versionbind.xml +0 -0
  13. data/{xml → recog/xml}/favicons.xml +63 -1
  14. data/{xml → recog/xml}/fingerprints.xsd +0 -0
  15. data/{xml → recog/xml}/ftp_banners.xml +0 -0
  16. data/{xml → recog/xml}/h323_callresp.xml +0 -0
  17. data/{xml → recog/xml}/hp_pjl_id.xml +0 -0
  18. data/{xml → recog/xml}/html_title.xml +47 -0
  19. data/{xml → recog/xml}/http_cookies.xml +19 -0
  20. data/{xml → recog/xml}/http_servers.xml +74 -1
  21. data/{xml → recog/xml}/http_wwwauth.xml +13 -0
  22. data/{xml → recog/xml}/imap_banners.xml +0 -0
  23. data/{xml → recog/xml}/ldap_searchresult.xml +0 -0
  24. data/{xml → recog/xml}/mdns_device-info_txt.xml +0 -0
  25. data/{xml → recog/xml}/mdns_workstation_txt.xml +0 -0
  26. data/{xml → recog/xml}/mysql_banners.xml +0 -0
  27. data/{xml → recog/xml}/mysql_error.xml +0 -0
  28. data/{xml → recog/xml}/nntp_banners.xml +0 -0
  29. data/{xml → recog/xml}/ntp_banners.xml +0 -0
  30. data/{xml → recog/xml}/operating_system.xml +0 -0
  31. data/{xml → recog/xml}/pop_banners.xml +0 -0
  32. data/{xml → recog/xml}/rsh_resp.xml +0 -0
  33. data/{xml → recog/xml}/rtsp_servers.xml +0 -0
  34. data/{xml → recog/xml}/sip_banners.xml +0 -0
  35. data/{xml → recog/xml}/sip_user_agents.xml +0 -0
  36. data/{xml → recog/xml}/smb_native_lm.xml +0 -0
  37. data/{xml → recog/xml}/smb_native_os.xml +0 -0
  38. data/{xml → recog/xml}/smtp_banners.xml +0 -0
  39. data/{xml → recog/xml}/smtp_debug.xml +0 -0
  40. data/{xml → recog/xml}/smtp_ehlo.xml +0 -0
  41. data/{xml → recog/xml}/smtp_expn.xml +0 -0
  42. data/{xml → recog/xml}/smtp_help.xml +0 -0
  43. data/{xml → recog/xml}/smtp_mailfrom.xml +0 -0
  44. data/{xml → recog/xml}/smtp_noop.xml +0 -0
  45. data/{xml → recog/xml}/smtp_quit.xml +0 -0
  46. data/{xml → recog/xml}/smtp_rcptto.xml +0 -0
  47. data/{xml → recog/xml}/smtp_rset.xml +0 -0
  48. data/{xml → recog/xml}/smtp_turn.xml +0 -0
  49. data/{xml → recog/xml}/smtp_vrfy.xml +0 -0
  50. data/{xml → recog/xml}/snmp_sysdescr.xml +21 -6
  51. data/{xml → recog/xml}/snmp_sysobjid.xml +11 -0
  52. data/{xml → recog/xml}/ssh_banners.xml +0 -0
  53. data/{xml → recog/xml}/telnet_banners.xml +34 -1
  54. data/{xml → recog/xml}/tls_jarm.xml +8 -0
  55. data/{xml → recog/xml}/x11_banners.xml +0 -0
  56. data/{xml → recog/xml}/x509_issuers.xml +13 -2
  57. data/{xml → recog/xml}/x509_subjects.xml +0 -0
  58. data/recog.gemspec +9 -5
  59. data/spec/spec_helper.rb +4 -0
  60. metadata +56 -145
  61. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -37
  62. data/.github/ISSUE_TEMPLATE/feature_request.md +0 -17
  63. data/.github/ISSUE_TEMPLATE/fingerprint_request.md +0 -27
  64. data/.github/PULL_REQUEST_TEMPLATE +0 -24
  65. data/.github/SECURITY.md +0 -35
  66. data/.github/dependabot.yml +0 -8
  67. data/.github/workflows/ci.yml +0 -26
  68. data/.github/workflows/verify.yml +0 -89
  69. data/.gitignore +0 -23
  70. data/.rspec +0 -3
  71. data/.ruby-gemset +0 -1
  72. data/.ruby-version +0 -1
  73. data/.snyk +0 -10
  74. data/.travis.yml +0 -25
  75. data/.vscode/bin/monitor-recog-fingerprints.sh +0 -54
  76. data/.vscode/extensions.json +0 -5
  77. data/.vscode/settings.json +0 -8
  78. data/.vscode/tasks.json +0 -77
  79. data/CONTRIBUTING.md +0 -278
  80. data/bin/recog_cleanup +0 -16
  81. data/bin/recog_export +0 -81
  82. data/bin/recog_standardize +0 -163
  83. data/bin/recog_verify +0 -98
  84. data/cpe-remap.yaml +0 -374
  85. data/features/data/failing_banners_fingerprints.xml +0 -20
  86. data/features/data/matching_banners_fingerprints.xml +0 -23
  87. data/features/data/multiple_banners_fingerprints.xml +0 -32
  88. data/features/data/no_tests.xml +0 -3
  89. data/features/data/sample_banner.txt +0 -2
  90. data/features/data/schema_failure.xml +0 -4
  91. data/features/data/successful_tests.xml +0 -18
  92. data/features/data/tests_with_failures.xml +0 -26
  93. data/features/data/tests_with_warnings.xml +0 -17
  94. data/features/match.feature +0 -36
  95. data/features/support/aruba.rb +0 -3
  96. data/features/support/env.rb +0 -6
  97. data/features/support/hooks.rb +0 -9
  98. data/features/verify.feature +0 -112
  99. data/identifiers/README.md +0 -70
  100. data/identifiers/fields.txt +0 -105
  101. data/identifiers/hw_device.txt +0 -86
  102. data/identifiers/hw_family.txt +0 -121
  103. data/identifiers/hw_product.txt +0 -463
  104. data/identifiers/os_architecture.txt +0 -10
  105. data/identifiers/os_device.txt +0 -77
  106. data/identifiers/os_family.txt +0 -235
  107. data/identifiers/os_product.txt +0 -357
  108. data/identifiers/service_family.txt +0 -249
  109. data/identifiers/service_product.txt +0 -778
  110. data/identifiers/vendor.txt +0 -859
  111. data/misc/convert_mysql_err +0 -61
  112. data/misc/order.xsl +0 -17
  113. data/requirements.txt +0 -2
  114. data/spec/lib/fingerprint_self_test_spec.rb +0 -175
  115. data/tools/dev/hooks/pre-commit +0 -21
  116. data/update_cpes.py +0 -343
@@ -1,20 +0,0 @@
1
- <?xml version="1.0"?>
2
- <fingerprints>
3
- <fingerprint pattern="^=\(.\*.\)=-\.:\. \(\( Welcome to PureFTPd (\d+\..+) \)\) \.:\.-=\(.\*.\)=-$">
4
- <example>=(&lt;*&gt;)=-.:. (( Welcome to PureFTPd 1.1.0 )) .:.-=(&lt;*&gt;)=-</example>
5
- <description>Older Pure-FTPd versions</description>
6
- <param pos="0" name="service.family" value="Pure-FTPd"/>
7
- <param pos="0" name="service.product" value="Pure-FTPd"/>
8
- <param pos="1" name="service.version"/>
9
- </fingerprint>
10
- <fingerprint pattern="^(\S+) FTP Server \(Solaris (\S+)\) ready\.?$" flags="REG_ICASE">
11
- <description>SunOS/Solaris</description>
12
- <example>example.com FTP server (Solaris 5.7) ready.</example>
13
- <param pos="0" name="os.vendor" value="Sun"/>
14
- <param pos="0" name="os.family" value="Solaris"/>
15
- <param pos="0" name="os.product" value="Solaris"/>
16
- <param pos="0" name="os.device" value="General"/>
17
- <param pos="1" name="host.name"/>
18
- <param pos="2" name="os.version"/>
19
- </fingerprint>
20
- </fingerprints>
@@ -1,23 +0,0 @@
1
- <?xml version="1.0"?>
2
- <fingerprints protocol="ftp" database_type="service">
3
- <fingerprint pattern="^-{10} Welcome to Pure-FTPd (.*)-{10}$">
4
- <example>---------- Welcome to Pure-FTPd ----------</example>
5
- <description>Pure-FTPd
6
- Config data can be zero or more of: [privsep] [TLS]
7
- </description>
8
- <param pos="1" name="pureftpd.config"/>
9
- <param pos="0" name="service.family" value="Pure-FTPd"/>
10
- <param pos="0" name="service.product" value="Pure-FTPd"/>
11
- <param pos="0" name="service.protocol" value="ftp"/>
12
- </fingerprint>
13
- <fingerprint pattern="^(\S+) FTP Server \(SunOS (\S+)\) ready\.?$" flags="REG_ICASE">
14
- <description>SunOS/Solaris</description>
15
- <example>example.com FTP server (SunOS 5.7) ready.</example>
16
- <param pos="0" name="os.vendor" value="Sun"/>
17
- <param pos="0" name="os.family" value="Solaris"/>
18
- <param pos="0" name="os.product" value="Solaris"/>
19
- <param pos="0" name="os.device" value="General"/>
20
- <param pos="1" name="host.name"/>
21
- <param pos="2" name="os.version"/>
22
- </fingerprint>
23
- </fingerprints>
@@ -1,32 +0,0 @@
1
- <?xml version="1.0"?>
2
- <fingerprints>
3
- <fingerprint pattern="FTP">
4
- <example>---- FTP Stuff ----</example>
5
- <example>FTP server</example>
6
- <description>Generic FTP,
7
- Checks for the existence of the word FTP in the line
8
- </description>
9
- <!-- Asserting nothing -->
10
- </fingerprint>
11
- <fingerprint pattern="^-{10} Welcome to Pure-FTPd (.*)-{10}$">
12
- <example>---------- Welcome to Pure-FTPd ----------</example>
13
- <description>Pure-FTPd
14
- Config data can be zero or more of: [privsep] [TLS]
15
- </description>
16
- <param pos="1" name="pureftpd.config"/>
17
- <param pos="0" name="service.family" value="Pure-FTPd"/>
18
- <param pos="0" name="service.product" value="Pure-FTPd"/>
19
- <param pos="0" name="service.protocol" value="ftp"/>
20
- </fingerprint>
21
- <fingerprint pattern="^(\S+) FTP Server \(SunOS (\S+)\) ready\.?$" flags="REG_ICASE">
22
- <description>SunOS/Solaris</description>
23
- <example>example.com FTP server (SunOS 5.7) ready.</example>
24
- <param pos="0" name="service.protocol" value="ftp"/>
25
- <param pos="0" name="os.vendor" value="Sun"/>
26
- <param pos="0" name="os.family" value="Solaris"/>
27
- <param pos="0" name="os.product" value="Solaris"/>
28
- <param pos="0" name="os.device" value="General"/>
29
- <param pos="1" name="host.name"/>
30
- <param pos="2" name="os.version"/>
31
- </fingerprint>
32
- </fingerprints>
@@ -1,3 +0,0 @@
1
- <?xml version="1.0"?>
2
- <fingerprints>
3
- </fingerprints>
@@ -1,2 +0,0 @@
1
- ---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
2
- polaris FTP server (SunOS 5.8) ready.
@@ -1,4 +0,0 @@
1
- <?xml version="1.0"?>
2
- <fingerprints>
3
- <fingerprint name="foo"/>
4
- </fingerprints>
@@ -1,18 +0,0 @@
1
- <?xml version="1.0"?>
2
- <fingerprints>
3
- <fingerprint pattern="^Cisco-SIPGateway/IOS-([\d\.x]+)$">
4
- <description>Cisco SIPGateway</description>
5
- <example os.version="12.x">Cisco-SIPGateway/IOS-12.x</example>
6
- <param pos="0" name="os.vendor" value="Cisco"/>
7
- <param pos="0" name="os.product" value="IOS"/>
8
- <param pos="1" name="os.version"/>
9
- </fingerprint>
10
- <fingerprint pattern="^bar ([\d.]+)$">
11
- <description>bar test</description>
12
- <example os.version="1.0" >bar 1.0</example>
13
- <example os.version="2.0" >bar 2.0</example>
14
- <example os.version="2.1" >bar 2.1</example>
15
- <param pos="1" name="os.version" />
16
- <param pos="0" name="os.name" value="Bar" />
17
- </fingerprint>
18
- </fingerprints>
@@ -1,26 +0,0 @@
1
- <?xml version="1.0"?>
2
- <fingerprints>
3
- <fingerprint pattern="^foo$">
4
- <description>foo test</description>
5
- <!-- Fail: doesn't match -->
6
- <example>bar</example>
7
- </fingerprint>
8
- <fingerprint pattern="^This matches$">
9
- <!-- Warn: no name -->
10
- <!-- Fail: doesn't match -->
11
- <example>This almost matches</example>
12
- </fingerprint>
13
- <fingerprint pattern="^(\S+) ([\d.]+)$">
14
- <description>bar test</description>
15
- <!-- Fail: expected os.version doesn't match the capture group -->
16
- <example os.version="5.0" >bar 1.0</example>
17
- <param pos="2" name="os.version" />
18
- <param pos="1" name="os.name" value="Bar" />
19
- </fingerprint>
20
- <fingerprint pattern="^(\S+) ([\d.]+)$">
21
- <description>example with untested parameter</description>
22
- <!-- Fail: missing example test os.version parameter -->
23
- <example>bar 1.0</example>
24
- <param pos="1" name="os.version" />
25
- </fingerprint>
26
- </fingerprints>
@@ -1,17 +0,0 @@
1
- <?xml version="1.0"?>
2
- <fingerprints>
3
- <fingerprint pattern="^-{10} Welcome to Pure-FTPd (.*)-{10}$">
4
- <example pureftpd.config="">---------- Welcome to Pure-FTPd ----------</example>
5
- <description>Pure-FTPd</description>
6
- <param pos="1" name="pureftpd.config"/>
7
- <param pos="0" name="service.family" value="Pure-FTPd"/>
8
- <param pos="0" name="service.product" value="Pure-FTPd"/>
9
- </fingerprint>
10
- <fingerprint pattern="^-{10} Welcome to Pure-FTPd (.*)-{10}$">
11
- <!-- should warn with no examples -->
12
- <description>Pure-FTPd</description>
13
- <param pos="1" name="pureftpd.config"/>
14
- <param pos="0" name="service.family" value="Pure-FTPd"/>
15
- <param pos="0" name="service.product" value="Pure-FTPd"/>
16
- </fingerprint>
17
- </fingerprints>
@@ -1,36 +0,0 @@
1
- Feature: Match
2
- @no-clobber
3
- Scenario: Finds matches
4
- When I run `recog_match matching_banners_fingerprints.xml sample_banner.txt`
5
- Then it should pass with:
6
- """
7
- MATCH: {"matched"=>"Pure-FTPd Config data can be zero or more of: [privsep] [TLS]", "pureftpd.config"=>"[privsep] [TLS] ", "service.family"=>"Pure-FTPd", "service.product"=>"Pure-FTPd", "service.protocol"=>"ftp", "fingerprint_db"=>"matching_banners_fingerprints", "data"=>"---------- Welcome to Pure-FTPd [privsep] [TLS] ----------"}
8
- MATCH: {"matched"=>"SunOS/Solaris", "os.vendor"=>"Sun", "os.family"=>"Solaris", "os.product"=>"Solaris", "os.device"=>"General", "host.name"=>"polaris", "os.version"=>"5.8", "service.protocol"=>"ftp", "fingerprint_db"=>"matching_banners_fingerprints", "data"=>"polaris FTP server (SunOS 5.8) ready."}
9
- """
10
-
11
- @no-clobber
12
- Scenario: Fails at finding matches
13
- When I run `recog_match failing_banners_fingerprints.xml sample_banner.txt`
14
- Then it should pass with:
15
- """
16
- FAIL: ---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
17
- FAIL: polaris FTP server (SunOS 5.8) ready
18
- """
19
-
20
- @no-clobber
21
- Scenario: Finds multiple matches
22
- When I run `recog_match multiple_banners_fingerprints.xml sample_banner.txt --multi-match`
23
- Then it should pass with:
24
- """
25
- MATCHES: {"matched"=>"Generic FTP, Checks for the existence of the word FTP in the line", "service.protocol"=>"", "fingerprint_db"=>"multiple_banners_fingerprints", "data"=>"---------- Welcome to Pure-FTPd [privsep] [TLS] ----------"},{"matched"=>"Pure-FTPd Config data can be zero or more of: [privsep] [TLS]", "pureftpd.config"=>"[privsep] [TLS] ", "service.family"=>"Pure-FTPd", "service.product"=>"Pure-FTPd", "service.protocol"=>"ftp", "fingerprint_db"=>"multiple_banners_fingerprints", "data"=>"---------- Welcome to Pure-FTPd [privsep] [TLS] ----------"}
26
- MATCHES: {"matched"=>"Generic FTP, Checks for the existence of the word FTP in the line", "service.protocol"=>"", "fingerprint_db"=>"multiple_banners_fingerprints", "data"=>"polaris FTP server (SunOS 5.8) ready."},{"matched"=>"SunOS/Solaris", "service.protocol"=>"ftp", "os.vendor"=>"Sun", "os.family"=>"Solaris", "os.product"=>"Solaris", "os.device"=>"General", "host.name"=>"polaris", "os.version"=>"5.8", "fingerprint_db"=>"multiple_banners_fingerprints", "data"=>"polaris FTP server (SunOS 5.8) ready."}
27
- """
28
-
29
- @no-clobber
30
- Scenario: Finds first matches using no-multi-match flag
31
- When I run `recog_match multiple_banners_fingerprints.xml sample_banner.txt --no-multi-match`
32
- Then it should pass with:
33
- """
34
- MATCH: {"matched"=>"Generic FTP, Checks for the existence of the word FTP in the line", "service.protocol"=>"", "fingerprint_db"=>"multiple_banners_fingerprints", "data"=>"---------- Welcome to Pure-FTPd [privsep] [TLS] ----------"}
35
- MATCH: {"matched"=>"Generic FTP, Checks for the existence of the word FTP in the line", "service.protocol"=>"", "fingerprint_db"=>"multiple_banners_fingerprints", "data"=>"polaris FTP server (SunOS 5.8) ready."}
36
- """
@@ -1,3 +0,0 @@
1
- Aruba.configure do |config|
2
- config.working_directory = 'features/data'
3
- end
@@ -1,6 +0,0 @@
1
- require 'aruba/cucumber'
2
-
3
- Before do
4
- @dirs = ["features/data"]
5
- @aruba_timeout_seconds = 30
6
- end
@@ -1,9 +0,0 @@
1
- require "cucumber/platform"
2
-
3
- Before "@requires-ruby-platform-java" do
4
- skip_this_scenario unless Cucumber::JRUBY
5
- end
6
-
7
- Before "@unsupported-on-platform-java" do
8
- skip_this_scenario if Cucumber::JRUBY
9
- end
@@ -1,112 +0,0 @@
1
- Feature: Verify
2
- @no-clobber
3
- Scenario: No tests
4
- When I run `recog_verify no_tests.xml`
5
- Then it should pass with exactly:
6
- """
7
- no_tests.xml: SUMMARY: Test completed with 0 successful, 0 warnings, and 0 failures
8
- """
9
-
10
- @no-clobber
11
- Scenario: Successful tests
12
- When I run `recog_verify successful_tests.xml`
13
- Then it should pass with exactly:
14
- """
15
- successful_tests.xml: SUMMARY: Test completed with 4 successful, 0 warnings, and 0 failures
16
- """
17
-
18
- @no-clobber
19
- Scenario: Tests with warnings, warnings disabled
20
- When I run `recog_verify --no-warnings tests_with_warnings.xml`
21
- Then it should pass with exactly:
22
- """
23
- tests_with_warnings.xml: SUMMARY: Test completed with 1 successful, 0 warnings, and 0 failures
24
- """
25
-
26
- # These tests vary due to line numbering issues in Nokogiri, so there are different versions
27
- # of the same test depending on the ruby runtime. Nokogiri uses libxml under CRuby, and a custom
28
- # java-based parser under JRuby. The Java-based parser only approximates line numbers, which are
29
- # typically off if XML prolog or comments are present.
30
- #
31
- # See https://github.com/sparklemotion/nokogiri/issues/2380
32
- @no-clobber
33
- @unsupported-on-platform-java
34
- Scenario: Tests with warnings, warnings enabled (CRuby)
35
- When I run `recog_verify tests_with_warnings.xml`
36
- Then it should fail with:
37
- """
38
- tests_with_warnings.xml:10: WARN: 'Pure-FTPd' has no test cases
39
- tests_with_warnings.xml: SUMMARY: Test completed with 1 successful, 1 warnings, and 0 failures
40
- """
41
- And the exit status should be 1
42
-
43
- # JRuby 9.2.20.1 and 9.3.3.0 differ in how they parse XML, where the latter is more close to libxml
44
- # and Nokogiri. We use a regex test to match results from both versions.
45
- @no-clobber
46
- @requires-ruby-platform-java
47
- Scenario: Tests with warnings, warnings enabled (JRuby)
48
- When I run `recog_verify tests_with_warnings.xml`
49
- Then it should fail with regex:
50
- """
51
- tests_with_warnings.xml:\d+: WARN: 'Pure-FTPd' has no test cases
52
- tests_with_warnings.xml: SUMMARY: Test completed with 1 successful, 1 warnings, and 0 failures
53
- """
54
- And the exit status should be 1
55
-
56
- @no-clobber
57
- @unsupported-on-platform-java
58
- Scenario: Tests with failures (CRuby)
59
- When I run `recog_verify tests_with_failures.xml`
60
- Then it should fail with:
61
- """
62
- tests_with_failures.xml:3: FAIL: 'foo test' failed to match "bar" with (?-mix:^foo$)'
63
- tests_with_failures.xml:8: FAIL: '' failed to match "This almost matches" with (?-mix:^This matches$)'
64
- tests_with_failures.xml:13: FAIL: 'bar test's os.name is a non-zero pos but specifies a value of 'Bar'
65
- tests_with_failures.xml:13: FAIL: 'bar test' failed to find expected capture group os.version '5.0'. Result was 1.0
66
- tests_with_failures.xml:20: FAIL: 'example with untested parameter' is missing an example that checks for parameter 'os.version' which is derived from a capture group
67
- tests_with_failures.xml: SUMMARY: Test completed with 1 successful, 0 warnings, and 5 failures
68
- """
69
- And the exit status should be 5
70
-
71
- # JRuby 9.2.20.1 and 9.3.3.0 differ in how they parse XML, where the latter is more close to libxml
72
- # and Nokogiri. We use a regex test to match results from both versions.
73
- @no-clobber
74
- @requires-ruby-platform-java
75
- Scenario: Tests with failures (JRuby)
76
- When I run `recog_verify tests_with_failures.xml`
77
- Then it should fail with regex:
78
- """
79
- tests_with_failures.xml:\d+: FAIL: 'foo test' failed to match "bar" with \(\?-mix:\^foo\$\)'
80
- tests_with_failures.xml:\d+: FAIL: '' failed to match "This almost matches" with \(\?-mix:\^This matches\$\)'
81
- tests_with_failures.xml:\d+: FAIL: 'bar test's os\.name is a non-zero pos but specifies a value of 'Bar'
82
- tests_with_failures.xml:\d+: FAIL: 'bar test' failed to find expected capture group os\.version '5\.0'. Result was 1\.0
83
- tests_with_failures.xml:\d+: FAIL: 'example with untested parameter' is missing an example that checks for parameter 'os\.version' which is derived from a capture group
84
- tests_with_failures.xml: SUMMARY: Test completed with 1 successful, 0 warnings, and 5 failures
85
- """
86
- And the exit status should be 5
87
-
88
- @no-clobber
89
- @unsupported-on-platform-java
90
- Scenario: recog_verify produces XML errors from the XSD with a malformed XML document (CRuby)
91
- When I run `recog_verify --schema-location ../../xml/fingerprints.xsd schema_failure.xml`
92
- Then it should fail with:
93
- """
94
- schema_failure.xml:3: FAIL: 3:0: ERROR: Element 'fingerprint', attribute 'name': The attribute 'name' is not allowed.
95
- schema_failure.xml:3: FAIL: 3:0: ERROR: Element 'fingerprint': The attribute 'pattern' is required but missing.
96
- schema_failure.xml:3: FAIL: 3:0: ERROR: Element 'fingerprint': Missing child element(s). Expected is ( description ).
97
- schema_failure.xml: SUMMARY: Test completed with 0 successful, 0 warnings, and 3 failures
98
- """
99
- And the exit status should be 3
100
-
101
- @no-clobber
102
- @requires-ruby-platform-java
103
- Scenario: recog_verify produces XML errors from the XSD with a malformed XML document (JRuby)
104
- When I run `recog_verify --schema_location ../../xml/fingerprints.xsd schema_failure.xml`
105
- Then it should fail with:
106
- """
107
- schema_failure.xml:-1: FAIL: -1:-1: ERROR: cvc-complex-type.3.2.2: Attribute 'name' is not allowed to appear in element 'fingerprint'.
108
- schema_failure.xml:-1: FAIL: -1:-1: ERROR: cvc-complex-type.4: Attribute 'pattern' must appear on element 'fingerprint'.
109
- schema_failure.xml:-1: FAIL: -1:-1: ERROR: cvc-complex-type.2.4.b: The content of element 'fingerprint' is not complete. One of '{description}' is expected.
110
- schema_failure.xml: SUMMARY: Test completed with 0 successful, 0 warnings, and 3 failures
111
- """
112
- And the exit status should be 3
@@ -1,70 +0,0 @@
1
- # Recog: Identifiers
2
-
3
- This directory contains lists of standard identifiers for mapping Recog matches.
4
- The goal is define a standard set of constants to represent known software,
5
- hardware, vendors, and categories.
6
-
7
- This is currently incomplete and will be updated as standardization work moves
8
- forward.
9
-
10
- Fingerprints should use these identifiers whenever possible; if a different name
11
- or syntax for a given identifier is preferred, this should be implemented in the
12
- application through a mapping function.
13
-
14
- ## Lists
15
-
16
- ### Fields
17
-
18
- `fields.txt` defines the various fields (`os.vendor`, etc.) used to assert
19
- information about a match.
20
-
21
- ### Vendors
22
-
23
- `vendor.txt` defines known vendor names, covering services, operating systems,
24
- and hardware.
25
-
26
- ### Operating Systems
27
-
28
- `os_architecture.txt` defines known CPU types.
29
-
30
- `os_product.txt` defines known operating system names.
31
-
32
- `os_family.txt` defines known operating system families.
33
-
34
- `os_device.txt` defines known types of devices by function or purpose.
35
-
36
- ### Hardware
37
-
38
- `hw_product.txt` defines known hardware product names.
39
-
40
- `hw_family.txt` defines known hardware product families.
41
-
42
- `hw_device.txt` defines known types of devices by function or purpose (overlaps
43
- with `os_device.txt`).
44
-
45
- ### Services
46
-
47
- `service_product.txt` defines known service product names.
48
-
49
- `service_family.txt` defines known service product families.
50
-
51
- ### Software
52
-
53
- `software_product.txt` defines known software product names.
54
-
55
- `software_family.txt` defines known software product families.
56
-
57
- `software_class.txt` defines known types of software by function or purpose.
58
-
59
- ## Pending Work
60
-
61
- * All existing fingerprints should be correlated against these lists to
62
- identify mismatches and updated accordingly.
63
-
64
- * All net new identifiers from the existing fingerprints should be merged into
65
- these lists.
66
-
67
- * All fingerprint assertions should be enumerated, documented, and standardized
68
- where possible (`host.mac`, etc).
69
-
70
- * Hardware identifiers should be enumerated, consolidated, and standardized.
@@ -1,105 +0,0 @@
1
- agilent.serial
2
- apache.info
3
- apache.variant
4
- apache.variant.version
5
- aptinex.model
6
- chromecast.capabilities
7
- chromecast.generation
8
- cisco.imc_model
9
- cisco.model
10
- cookie
11
- dell.service_tag
12
- digi.serial_number
13
- extron.model
14
- host.domain
15
- host.ip
16
- host.mac
17
- host.mac_eui64
18
- host.mac_local
19
- host.name
20
- host.time
21
- hw.certainty
22
- hw.cpe23
23
- hw.device
24
- hw.family
25
- hw.model
26
- hw.product
27
- hw.serial_number
28
- hw.series
29
- hw.vendor
30
- hw.version
31
- imail.eval
32
- jetty.info
33
- junction.cookie
34
- junction.name
35
- lantronix.serial_number
36
- lenovo.machine_model
37
- lenovo.machine_type
38
- linux.kernel.version
39
- loadbalancer.poolname
40
- mdaemon.unregistered
41
- mercur.os.info
42
- metainfo.version
43
- metainfo.version.version
44
- ms.nttp.version
45
- notes.build.version
46
- ntmail.id
47
- openssh.comment
48
- openssh.cvepatch
49
- os.arch
50
- os.build
51
- os.certainty
52
- os.cpe23
53
- os.device
54
- os.edition
55
- os.family
56
- os.model
57
- os.product
58
- os.rev
59
- os.vendor
60
- os.version
61
- os.version.version
62
- os.version.version.version
63
- postfix.os.info
64
- postoffice.build
65
- postoffice.id
66
- procurve.model
67
- proftpd.server.name
68
- pureftpd.config
69
- python.version
70
- qpopper.version
71
- securetransport.build
72
- sendmail.config.version
73
- sendmail.hpux.phne.version
74
- sendmail.vendor.version
75
- service.certainty
76
- service.component.cpe23
77
- service.component.family
78
- service.component.product
79
- service.component.vendor
80
- service.component.version
81
- service.cpe23
82
- service.device
83
- service.edition
84
- service.family
85
- service.node
86
- service.product
87
- service.protocol
88
- service.vendor
89
- service.version
90
- service.version.version
91
- service.version.version.version
92
- service.version.version.version.version
93
- siemens.model
94
- snmp.fpmib.oid.1
95
- snmp.fpmib.oid.2
96
- system.time
97
- system.time.format
98
- system.time.micros
99
- system.time.millis
100
- tandberg.model
101
- thttpd.mx-patch
102
- tomcat.info
103
- unify.model
104
- wd2go.device_id
105
- zmailer.ident
@@ -1,86 +0,0 @@
1
- ADSL Modem
2
- AV Receiver
3
- Access Control
4
- Alarm Panel
5
- Appliance
6
- Audio Encoder
7
- Broadband Router
8
- Building Automation
9
- Cable Modem
10
- Check Scanner
11
- DOCSIS Cable Modem
12
- DSL Modem
13
- DVR
14
- Data Terminal
15
- Desktop
16
- Device
17
- Device Hub
18
- Device Server
19
- Display Controller
20
- Environment Control
21
- Ethernet Adapter
22
- Firewall
23
- HMI Controller
24
- Handheld Scanner
25
- Hypervisor
26
- IP Camera
27
- IPS
28
- IPTV
29
- Industrial Control
30
- JTAG Adapter
31
- KVM
32
- Laptop
33
- Light Bulb
34
- Lights Out Management
35
- Media Player
36
- Media Receiver
37
- Media Server
38
- Mobile Phone
39
- Monitoring
40
- Multifunction Device
41
- NAS
42
- Network Appliance
43
- Network Audio
44
- Network Management Device
45
- PLC
46
- Power Device
47
- Power Meter
48
- Power Relay
49
- Powerline
50
- Print Server
51
- Printer
52
- Relay Controller
53
- Router
54
- SD-WAN Appliance
55
- SIP Device
56
- SIP Gateway
57
- Scanner
58
- Security Appliance
59
- Sensor
60
- Smart TV
61
- Storage
62
- Storage Appliance
63
- Support Appliance
64
- Switch
65
- Tablet
66
- Tape Library
67
- Telecom
68
- Test Instrument
69
- Thin Client
70
- UPS
71
- VPN
72
- Video Conference
73
- Video Conferencing
74
- Video Decoder
75
- Video Encoder
76
- VoIP
77
- VoIP Gateway
78
- VoIP Server
79
- VoIP Switch
80
- Voice Appliance
81
- WAP
82
- WLAN Repeater
83
- Web Cam
84
- Whiteboard
85
- Wireless Controller
86
- Wireless Presenter