mihari 4.7.4 → 4.9.0
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.
- checksums.yaml +4 -4
- data/.rubocop.yml +4 -0
- data/README.md +0 -1
- data/lib/mihari/analyzers/rule.rb +0 -1
- data/lib/mihari/commands/search.rb +8 -2
- data/lib/mihari/commands/validator.rb +2 -1
- data/lib/mihari/schemas/analyzer.rb +0 -7
- data/lib/mihari/schemas/rule.rb +4 -4
- data/lib/mihari/structs/rule.rb +12 -28
- data/lib/mihari/version.rb +1 -1
- data/lib/mihari/web/public/index.html +1 -1
- data/lib/mihari/web/public/redoc-static.html +282 -246
- data/lib/mihari/web/public/static/css/{chunk-vendors.5013d549.css → chunk-vendors.380724be.css} +2 -2
- data/lib/mihari/web/public/static/fonts/fa-brands-400.86c7e1fa.woff2 +0 -0
- data/lib/mihari/web/public/static/fonts/{fa-brands-400.7fa789ab.ttf → fa-brands-400.f5defc2e.ttf} +0 -0
- data/lib/mihari/web/public/static/fonts/{fa-regular-400.da02cb7e.ttf → fa-regular-400.3edb9004.ttf} +0 -0
- data/lib/mihari/web/public/static/fonts/fa-regular-400.e0550912.woff2 +0 -0
- data/lib/mihari/web/public/static/fonts/fa-solid-900.64d5644d.woff2 +0 -0
- data/lib/mihari/web/public/static/fonts/{fa-solid-900.3a463ec3.ttf → fa-solid-900.f418d876.ttf} +0 -0
- data/lib/mihari/web/public/static/fonts/{fa-v4compatibility.924588dc.ttf → fa-v4compatibility.7e7e1dad.ttf} +0 -0
- data/lib/mihari/web/public/static/js/app.6413bf4f.js +2 -0
- data/lib/mihari/web/public/static/js/app.6413bf4f.js.map +1 -0
- data/lib/mihari/web/public/static/js/chunk-vendors.723e02cf.js +31 -0
- data/lib/mihari/web/public/static/js/chunk-vendors.723e02cf.js.map +1 -0
- data/lib/mihari.rb +0 -1
- data/mihari.gemspec +13 -13
- metadata +41 -41
- data/lib/mihari/analyzers/spyse.rb +0 -93
- data/lib/mihari/web/public/static/fonts/fa-brands-400.859fc388.woff2 +0 -0
- data/lib/mihari/web/public/static/fonts/fa-regular-400.2ffd018f.woff2 +0 -0
- data/lib/mihari/web/public/static/fonts/fa-solid-900.40ddefd7.woff2 +0 -0
- data/lib/mihari/web/public/static/js/app.524d9ed2.js +0 -2
- data/lib/mihari/web/public/static/js/app.524d9ed2.js.map +0 -1
- data/lib/mihari/web/public/static/js/chunk-vendors.64580a1f.js +0 -31
- data/lib/mihari/web/public/static/js/chunk-vendors.64580a1f.js.map +0 -1
data/lib/mihari.rb
CHANGED
@@ -235,7 +235,6 @@ require "mihari/analyzers/passivetotal"
|
|
235
235
|
require "mihari/analyzers/pulsedive"
|
236
236
|
require "mihari/analyzers/securitytrails"
|
237
237
|
require "mihari/analyzers/shodan"
|
238
|
-
require "mihari/analyzers/spyse"
|
239
238
|
require "mihari/analyzers/urlscan"
|
240
239
|
require "mihari/analyzers/virustotal_intelligence"
|
241
240
|
require "mihari/analyzers/virustotal"
|
data/mihari.gemspec
CHANGED
@@ -28,7 +28,7 @@ Gem::Specification.new do |spec|
|
|
28
28
|
spec.require_paths = ["lib"]
|
29
29
|
|
30
30
|
spec.add_development_dependency "bundler", "~> 2.3"
|
31
|
-
spec.add_development_dependency "coveralls_reborn", "~> 0.
|
31
|
+
spec.add_development_dependency "coveralls_reborn", "~> 0.25"
|
32
32
|
spec.add_development_dependency "fakefs", "~> 1.8"
|
33
33
|
spec.add_development_dependency "mysql2", "~> 0.5"
|
34
34
|
spec.add_development_dependency "overcommit", "~> 0.59"
|
@@ -39,14 +39,14 @@ Gem::Specification.new do |spec|
|
|
39
39
|
spec.add_development_dependency "rerun", "~> 0.13"
|
40
40
|
spec.add_development_dependency "rspec", "~> 3.11"
|
41
41
|
spec.add_development_dependency "simplecov-lcov", "~> 0.8.0"
|
42
|
-
spec.add_development_dependency "standard", "~> 1.
|
42
|
+
spec.add_development_dependency "standard", "~> 1.16"
|
43
43
|
spec.add_development_dependency "steep", "~> 1.1"
|
44
44
|
spec.add_development_dependency "timecop", "~> 0.9"
|
45
45
|
spec.add_development_dependency "vcr", "~> 6.1"
|
46
|
-
spec.add_development_dependency "webmock", "~> 3.
|
46
|
+
spec.add_development_dependency "webmock", "~> 3.18"
|
47
47
|
|
48
|
-
spec.add_dependency "activerecord", "7.0.
|
49
|
-
spec.add_dependency "addressable", "2.8.
|
48
|
+
spec.add_dependency "activerecord", "7.0.4"
|
49
|
+
spec.add_dependency "addressable", "2.8.1"
|
50
50
|
spec.add_dependency "awrence", "2.0.1"
|
51
51
|
spec.add_dependency "binaryedge", "0.1.0"
|
52
52
|
spec.add_dependency "censysx", "0.1.1"
|
@@ -55,10 +55,10 @@ Gem::Specification.new do |spec|
|
|
55
55
|
spec.add_dependency "dnstwister", "0.1.0"
|
56
56
|
spec.add_dependency "dotenv", "2.8.1"
|
57
57
|
spec.add_dependency "dry-configurable", "0.15.0"
|
58
|
-
spec.add_dependency "dry-container", "0.
|
59
|
-
spec.add_dependency "dry-files", "0.
|
58
|
+
spec.add_dependency "dry-container", "0.11.0"
|
59
|
+
spec.add_dependency "dry-files", "0.3.0"
|
60
60
|
spec.add_dependency "dry-initializer", "3.1.1"
|
61
|
-
spec.add_dependency "dry-schema", "1.
|
61
|
+
spec.add_dependency "dry-schema", "1.10.5"
|
62
62
|
spec.add_dependency "dry-struct", "1.4.0"
|
63
63
|
spec.add_dependency "dry-validation", "1.8.1"
|
64
64
|
spec.add_dependency "email_address", "0.2.4"
|
@@ -80,24 +80,24 @@ Gem::Specification.new do |spec|
|
|
80
80
|
spec.add_dependency "passive_circl", "0.1.0"
|
81
81
|
spec.add_dependency "passivetotalx", "0.1.1"
|
82
82
|
spec.add_dependency "plissken", "2.0.1"
|
83
|
-
spec.add_dependency "public_suffix", "
|
83
|
+
spec.add_dependency "public_suffix", "5.0.0"
|
84
84
|
spec.add_dependency "pulsedive", "0.1.5"
|
85
|
-
spec.add_dependency "puma", "5.6.
|
85
|
+
spec.add_dependency "puma", "5.6.5"
|
86
86
|
spec.add_dependency "rack", "2.2.4"
|
87
87
|
spec.add_dependency "rack-contrib", "2.3.0"
|
88
88
|
spec.add_dependency "rack-cors", "1.1.1"
|
89
89
|
spec.add_dependency "securitytrails", "1.0.0"
|
90
90
|
spec.add_dependency "semantic_logger", "4.11.0"
|
91
|
-
spec.add_dependency "sentry-ruby", "5.4.
|
91
|
+
spec.add_dependency "sentry-ruby", "5.4.2"
|
92
92
|
spec.add_dependency "shodanx", "0.2.1"
|
93
93
|
spec.add_dependency "slack-notifier", "2.4.0"
|
94
94
|
spec.add_dependency "spysex", "0.2.0"
|
95
|
-
spec.add_dependency "sqlite3", "1.
|
95
|
+
spec.add_dependency "sqlite3", "1.5.0"
|
96
96
|
spec.add_dependency "thor", "1.2.1"
|
97
97
|
spec.add_dependency "urlscan", "0.8.0"
|
98
98
|
spec.add_dependency "uuidtools", "2.2.0"
|
99
99
|
spec.add_dependency "virustotalx", "1.2.0"
|
100
100
|
spec.add_dependency "whois", "5.1.0"
|
101
|
-
spec.add_dependency "whois-parser", "
|
101
|
+
spec.add_dependency "whois-parser", "2.0.0"
|
102
102
|
spec.add_dependency "zoomeye-rb", "0.2.0"
|
103
103
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mihari
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Manabu Niseki
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-10-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0.
|
33
|
+
version: '0.25'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0.
|
40
|
+
version: '0.25'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: fakefs
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -184,14 +184,14 @@ dependencies:
|
|
184
184
|
requirements:
|
185
185
|
- - "~>"
|
186
186
|
- !ruby/object:Gem::Version
|
187
|
-
version: '1.
|
187
|
+
version: '1.16'
|
188
188
|
type: :development
|
189
189
|
prerelease: false
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
191
191
|
requirements:
|
192
192
|
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
|
-
version: '1.
|
194
|
+
version: '1.16'
|
195
195
|
- !ruby/object:Gem::Dependency
|
196
196
|
name: steep
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -240,42 +240,42 @@ dependencies:
|
|
240
240
|
requirements:
|
241
241
|
- - "~>"
|
242
242
|
- !ruby/object:Gem::Version
|
243
|
-
version: '3.
|
243
|
+
version: '3.18'
|
244
244
|
type: :development
|
245
245
|
prerelease: false
|
246
246
|
version_requirements: !ruby/object:Gem::Requirement
|
247
247
|
requirements:
|
248
248
|
- - "~>"
|
249
249
|
- !ruby/object:Gem::Version
|
250
|
-
version: '3.
|
250
|
+
version: '3.18'
|
251
251
|
- !ruby/object:Gem::Dependency
|
252
252
|
name: activerecord
|
253
253
|
requirement: !ruby/object:Gem::Requirement
|
254
254
|
requirements:
|
255
255
|
- - '='
|
256
256
|
- !ruby/object:Gem::Version
|
257
|
-
version: 7.0.
|
257
|
+
version: 7.0.4
|
258
258
|
type: :runtime
|
259
259
|
prerelease: false
|
260
260
|
version_requirements: !ruby/object:Gem::Requirement
|
261
261
|
requirements:
|
262
262
|
- - '='
|
263
263
|
- !ruby/object:Gem::Version
|
264
|
-
version: 7.0.
|
264
|
+
version: 7.0.4
|
265
265
|
- !ruby/object:Gem::Dependency
|
266
266
|
name: addressable
|
267
267
|
requirement: !ruby/object:Gem::Requirement
|
268
268
|
requirements:
|
269
269
|
- - '='
|
270
270
|
- !ruby/object:Gem::Version
|
271
|
-
version: 2.8.
|
271
|
+
version: 2.8.1
|
272
272
|
type: :runtime
|
273
273
|
prerelease: false
|
274
274
|
version_requirements: !ruby/object:Gem::Requirement
|
275
275
|
requirements:
|
276
276
|
- - '='
|
277
277
|
- !ruby/object:Gem::Version
|
278
|
-
version: 2.8.
|
278
|
+
version: 2.8.1
|
279
279
|
- !ruby/object:Gem::Dependency
|
280
280
|
name: awrence
|
281
281
|
requirement: !ruby/object:Gem::Requirement
|
@@ -394,28 +394,28 @@ dependencies:
|
|
394
394
|
requirements:
|
395
395
|
- - '='
|
396
396
|
- !ruby/object:Gem::Version
|
397
|
-
version: 0.
|
397
|
+
version: 0.11.0
|
398
398
|
type: :runtime
|
399
399
|
prerelease: false
|
400
400
|
version_requirements: !ruby/object:Gem::Requirement
|
401
401
|
requirements:
|
402
402
|
- - '='
|
403
403
|
- !ruby/object:Gem::Version
|
404
|
-
version: 0.
|
404
|
+
version: 0.11.0
|
405
405
|
- !ruby/object:Gem::Dependency
|
406
406
|
name: dry-files
|
407
407
|
requirement: !ruby/object:Gem::Requirement
|
408
408
|
requirements:
|
409
409
|
- - '='
|
410
410
|
- !ruby/object:Gem::Version
|
411
|
-
version: 0.
|
411
|
+
version: 0.3.0
|
412
412
|
type: :runtime
|
413
413
|
prerelease: false
|
414
414
|
version_requirements: !ruby/object:Gem::Requirement
|
415
415
|
requirements:
|
416
416
|
- - '='
|
417
417
|
- !ruby/object:Gem::Version
|
418
|
-
version: 0.
|
418
|
+
version: 0.3.0
|
419
419
|
- !ruby/object:Gem::Dependency
|
420
420
|
name: dry-initializer
|
421
421
|
requirement: !ruby/object:Gem::Requirement
|
@@ -436,14 +436,14 @@ dependencies:
|
|
436
436
|
requirements:
|
437
437
|
- - '='
|
438
438
|
- !ruby/object:Gem::Version
|
439
|
-
version: 1.
|
439
|
+
version: 1.10.5
|
440
440
|
type: :runtime
|
441
441
|
prerelease: false
|
442
442
|
version_requirements: !ruby/object:Gem::Requirement
|
443
443
|
requirements:
|
444
444
|
- - '='
|
445
445
|
- !ruby/object:Gem::Version
|
446
|
-
version: 1.
|
446
|
+
version: 1.10.5
|
447
447
|
- !ruby/object:Gem::Dependency
|
448
448
|
name: dry-struct
|
449
449
|
requirement: !ruby/object:Gem::Requirement
|
@@ -744,14 +744,14 @@ dependencies:
|
|
744
744
|
requirements:
|
745
745
|
- - '='
|
746
746
|
- !ruby/object:Gem::Version
|
747
|
-
version:
|
747
|
+
version: 5.0.0
|
748
748
|
type: :runtime
|
749
749
|
prerelease: false
|
750
750
|
version_requirements: !ruby/object:Gem::Requirement
|
751
751
|
requirements:
|
752
752
|
- - '='
|
753
753
|
- !ruby/object:Gem::Version
|
754
|
-
version:
|
754
|
+
version: 5.0.0
|
755
755
|
- !ruby/object:Gem::Dependency
|
756
756
|
name: pulsedive
|
757
757
|
requirement: !ruby/object:Gem::Requirement
|
@@ -772,14 +772,14 @@ dependencies:
|
|
772
772
|
requirements:
|
773
773
|
- - '='
|
774
774
|
- !ruby/object:Gem::Version
|
775
|
-
version: 5.6.
|
775
|
+
version: 5.6.5
|
776
776
|
type: :runtime
|
777
777
|
prerelease: false
|
778
778
|
version_requirements: !ruby/object:Gem::Requirement
|
779
779
|
requirements:
|
780
780
|
- - '='
|
781
781
|
- !ruby/object:Gem::Version
|
782
|
-
version: 5.6.
|
782
|
+
version: 5.6.5
|
783
783
|
- !ruby/object:Gem::Dependency
|
784
784
|
name: rack
|
785
785
|
requirement: !ruby/object:Gem::Requirement
|
@@ -856,14 +856,14 @@ dependencies:
|
|
856
856
|
requirements:
|
857
857
|
- - '='
|
858
858
|
- !ruby/object:Gem::Version
|
859
|
-
version: 5.4.
|
859
|
+
version: 5.4.2
|
860
860
|
type: :runtime
|
861
861
|
prerelease: false
|
862
862
|
version_requirements: !ruby/object:Gem::Requirement
|
863
863
|
requirements:
|
864
864
|
- - '='
|
865
865
|
- !ruby/object:Gem::Version
|
866
|
-
version: 5.4.
|
866
|
+
version: 5.4.2
|
867
867
|
- !ruby/object:Gem::Dependency
|
868
868
|
name: shodanx
|
869
869
|
requirement: !ruby/object:Gem::Requirement
|
@@ -912,14 +912,14 @@ dependencies:
|
|
912
912
|
requirements:
|
913
913
|
- - '='
|
914
914
|
- !ruby/object:Gem::Version
|
915
|
-
version: 1.
|
915
|
+
version: 1.5.0
|
916
916
|
type: :runtime
|
917
917
|
prerelease: false
|
918
918
|
version_requirements: !ruby/object:Gem::Requirement
|
919
919
|
requirements:
|
920
920
|
- - '='
|
921
921
|
- !ruby/object:Gem::Version
|
922
|
-
version: 1.
|
922
|
+
version: 1.5.0
|
923
923
|
- !ruby/object:Gem::Dependency
|
924
924
|
name: thor
|
925
925
|
requirement: !ruby/object:Gem::Requirement
|
@@ -996,14 +996,14 @@ dependencies:
|
|
996
996
|
requirements:
|
997
997
|
- - '='
|
998
998
|
- !ruby/object:Gem::Version
|
999
|
-
version:
|
999
|
+
version: 2.0.0
|
1000
1000
|
type: :runtime
|
1001
1001
|
prerelease: false
|
1002
1002
|
version_requirements: !ruby/object:Gem::Requirement
|
1003
1003
|
requirements:
|
1004
1004
|
- - '='
|
1005
1005
|
- !ruby/object:Gem::Version
|
1006
|
-
version:
|
1006
|
+
version: 2.0.0
|
1007
1007
|
- !ruby/object:Gem::Dependency
|
1008
1008
|
name: zoomeye-rb
|
1009
1009
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1033,6 +1033,7 @@ files:
|
|
1033
1033
|
- ".gitmodules"
|
1034
1034
|
- ".overcommit.yml"
|
1035
1035
|
- ".rspec"
|
1036
|
+
- ".rubocop.yml"
|
1036
1037
|
- ".standard.yml"
|
1037
1038
|
- Gemfile
|
1038
1039
|
- LICENSE
|
@@ -1073,7 +1074,6 @@ files:
|
|
1073
1074
|
- lib/mihari/analyzers/rule.rb
|
1074
1075
|
- lib/mihari/analyzers/securitytrails.rb
|
1075
1076
|
- lib/mihari/analyzers/shodan.rb
|
1076
|
-
- lib/mihari/analyzers/spyse.rb
|
1077
1077
|
- lib/mihari/analyzers/urlscan.rb
|
1078
1078
|
- lib/mihari/analyzers/virustotal.rb
|
1079
1079
|
- lib/mihari/analyzers/virustotal_intelligence.rb
|
@@ -1173,19 +1173,19 @@ files:
|
|
1173
1173
|
- lib/mihari/web/public/index.html
|
1174
1174
|
- lib/mihari/web/public/redoc-static.html
|
1175
1175
|
- lib/mihari/web/public/static/css/app.2a5d3d21.css
|
1176
|
-
- lib/mihari/web/public/static/css/chunk-vendors.
|
1176
|
+
- lib/mihari/web/public/static/css/chunk-vendors.380724be.css
|
1177
1177
|
- lib/mihari/web/public/static/favicon.ico
|
1178
|
-
- lib/mihari/web/public/static/fonts/fa-brands-400.
|
1179
|
-
- lib/mihari/web/public/static/fonts/fa-brands-400.
|
1180
|
-
- lib/mihari/web/public/static/fonts/fa-regular-400.
|
1181
|
-
- lib/mihari/web/public/static/fonts/fa-regular-400.
|
1182
|
-
- lib/mihari/web/public/static/fonts/fa-solid-900.
|
1183
|
-
- lib/mihari/web/public/static/fonts/fa-solid-900.
|
1184
|
-
- lib/mihari/web/public/static/fonts/fa-v4compatibility.
|
1185
|
-
- lib/mihari/web/public/static/js/app.
|
1186
|
-
- lib/mihari/web/public/static/js/app.
|
1187
|
-
- lib/mihari/web/public/static/js/chunk-vendors.
|
1188
|
-
- lib/mihari/web/public/static/js/chunk-vendors.
|
1178
|
+
- lib/mihari/web/public/static/fonts/fa-brands-400.86c7e1fa.woff2
|
1179
|
+
- lib/mihari/web/public/static/fonts/fa-brands-400.f5defc2e.ttf
|
1180
|
+
- lib/mihari/web/public/static/fonts/fa-regular-400.3edb9004.ttf
|
1181
|
+
- lib/mihari/web/public/static/fonts/fa-regular-400.e0550912.woff2
|
1182
|
+
- lib/mihari/web/public/static/fonts/fa-solid-900.64d5644d.woff2
|
1183
|
+
- lib/mihari/web/public/static/fonts/fa-solid-900.f418d876.ttf
|
1184
|
+
- lib/mihari/web/public/static/fonts/fa-v4compatibility.7e7e1dad.ttf
|
1185
|
+
- lib/mihari/web/public/static/js/app.6413bf4f.js
|
1186
|
+
- lib/mihari/web/public/static/js/app.6413bf4f.js.map
|
1187
|
+
- lib/mihari/web/public/static/js/chunk-vendors.723e02cf.js
|
1188
|
+
- lib/mihari/web/public/static/js/chunk-vendors.723e02cf.js.map
|
1189
1189
|
- mihari.gemspec
|
1190
1190
|
- renovate.json
|
1191
1191
|
- sig/lib/mihari.rbs
|
@@ -1,93 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "spyse"
|
4
|
-
|
5
|
-
module Mihari
|
6
|
-
module Analyzers
|
7
|
-
class Spyse < Base
|
8
|
-
param :query
|
9
|
-
|
10
|
-
option :type, default: proc { "domain" }
|
11
|
-
|
12
|
-
# @return [String, nil]
|
13
|
-
attr_reader :api_key
|
14
|
-
|
15
|
-
def initialize(*args, **kwargs)
|
16
|
-
super(*args, **kwargs)
|
17
|
-
|
18
|
-
@api_key = kwargs[:api_key] || Mihari.config.spyse_api_key
|
19
|
-
end
|
20
|
-
|
21
|
-
def artifacts
|
22
|
-
search || []
|
23
|
-
end
|
24
|
-
|
25
|
-
private
|
26
|
-
|
27
|
-
def search_params
|
28
|
-
@search_params ||= JSON.parse(query)
|
29
|
-
end
|
30
|
-
|
31
|
-
def configuration_keys
|
32
|
-
%w[spyse_api_key]
|
33
|
-
end
|
34
|
-
|
35
|
-
def api
|
36
|
-
@api ||= ::Spyse::API.new(api_key)
|
37
|
-
end
|
38
|
-
|
39
|
-
#
|
40
|
-
# Check whether a type is valid or not
|
41
|
-
#
|
42
|
-
# @return [Boolean]
|
43
|
-
#
|
44
|
-
def valid_type?
|
45
|
-
%w[ip domain cert].include? type
|
46
|
-
end
|
47
|
-
|
48
|
-
#
|
49
|
-
# Domain search
|
50
|
-
#
|
51
|
-
# @return [Array<Mihari::Artifact>]
|
52
|
-
#
|
53
|
-
def domain_search
|
54
|
-
res = api.domain.search(search_params, limit: 100)
|
55
|
-
items = res.dig("data", "items") || []
|
56
|
-
items.map do |item|
|
57
|
-
data = item["name"]
|
58
|
-
Artifact.new(data: data, source: source, metadata: item)
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
#
|
63
|
-
# IP search
|
64
|
-
#
|
65
|
-
# @return [Array<Mihari::Artifact>]
|
66
|
-
#
|
67
|
-
def ip_search
|
68
|
-
res = api.ip.search(search_params, limit: 100)
|
69
|
-
items = res.dig("data", "items") || []
|
70
|
-
items.map do |item|
|
71
|
-
data = item["ip"]
|
72
|
-
Artifact.new(data: data, source: source, metadata: item)
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
#
|
77
|
-
# IP/domain search
|
78
|
-
#
|
79
|
-
# @return [Array<Mihari::Artifact>]
|
80
|
-
#
|
81
|
-
def search
|
82
|
-
case type
|
83
|
-
when "domain"
|
84
|
-
domain_search
|
85
|
-
when "ip"
|
86
|
-
ip_search
|
87
|
-
else
|
88
|
-
raise InvalidInputError, "#{query}(type: #{type || "unknown"}) is not supported." unless valid_type?
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|
Binary file
|
Binary file
|
Binary file
|