mihari 3.11.0 → 3.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +0 -1
  3. data/lib/mihari/analyzers/base.rb +1 -1
  4. data/lib/mihari/analyzers/feed.rb +39 -0
  5. data/lib/mihari/analyzers/rule.rb +1 -0
  6. data/lib/mihari/cli/analyzer.rb +2 -0
  7. data/lib/mihari/commands/feed.rb +26 -0
  8. data/lib/mihari/database.rb +4 -4
  9. data/lib/mihari/enrichers/ipinfo.rb +2 -0
  10. data/lib/mihari/errors.rb +4 -0
  11. data/lib/mihari/feed/parser.rb +34 -0
  12. data/lib/mihari/feed/reader.rb +113 -0
  13. data/lib/mihari/mixins/autonomous_system.rb +2 -0
  14. data/lib/mihari/mixins/configuration.rb +2 -2
  15. data/lib/mihari/mixins/disallowed_data_value.rb +2 -0
  16. data/lib/mihari/mixins/rule.rb +2 -0
  17. data/lib/mihari/models/alert.rb +4 -5
  18. data/lib/mihari/models/artifact.rb +2 -3
  19. data/lib/mihari/models/dns.rb +2 -2
  20. data/lib/mihari/schemas/rule.rb +12 -1
  21. data/lib/mihari/status.rb +2 -2
  22. data/lib/mihari/structs/alert.rb +3 -1
  23. data/lib/mihari/structs/censys.rb +2 -0
  24. data/lib/mihari/structs/greynoise.rb +2 -0
  25. data/lib/mihari/structs/ipinfo.rb +2 -0
  26. data/lib/mihari/structs/onyphe.rb +2 -0
  27. data/lib/mihari/structs/shodan.rb +2 -0
  28. data/lib/mihari/structs/urlscan.rb +2 -0
  29. data/lib/mihari/structs/virustotal_intelligence.rb +2 -0
  30. data/lib/mihari/types.rb +6 -0
  31. data/lib/mihari/version.rb +1 -1
  32. data/lib/mihari/web/api.rb +2 -0
  33. data/lib/mihari/web/entities/artifact.rb +2 -2
  34. data/lib/mihari/web/entities/whois.rb +1 -1
  35. data/lib/mihari/web/public/index.html +1 -1
  36. data/lib/mihari/web/public/redoc-static.html +181 -183
  37. data/lib/mihari/web/public/static/js/app.5dc97aae.js +21 -0
  38. data/lib/mihari/web/public/static/js/app.5dc97aae.js.map +1 -0
  39. data/lib/mihari/web/public/static/js/app.f2b8890f.js +21 -0
  40. data/lib/mihari/web/public/static/js/app.f2b8890f.js.map +1 -0
  41. data/lib/mihari.rb +1 -0
  42. data/mihari.gemspec +17 -17
  43. data/sig/lib/mihari/analyzers/feed.rbs +23 -0
  44. data/sig/lib/mihari/cli/analyzer.rbs +4 -0
  45. data/sig/lib/mihari/commands/feed.rbs +7 -0
  46. data/sig/lib/mihari/feed/parser.rbs +11 -0
  47. data/sig/lib/mihari/feed/reader.rbs +56 -0
  48. data/sig/lib/mihari/structs/alert.rbs +1 -1
  49. data/sig/lib/mihari/types.rbs +4 -0
  50. metadata +90 -78
data/lib/mihari.rb CHANGED
@@ -150,6 +150,7 @@ require "mihari/analyzers/circl"
150
150
  require "mihari/analyzers/crtsh"
151
151
  require "mihari/analyzers/dnpedia"
152
152
  require "mihari/analyzers/dnstwister"
153
+ require "mihari/analyzers/feed"
153
154
  require "mihari/analyzers/greynoise"
154
155
  require "mihari/analyzers/onyphe"
155
156
  require "mihari/analyzers/otx"
data/mihari.gemspec CHANGED
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
25
25
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
26
26
  spec.require_paths = ["lib"]
27
27
 
28
- spec.add_development_dependency "bundler", "~> 2.2"
28
+ spec.add_development_dependency "bundler", "~> 2.3"
29
29
  spec.add_development_dependency "coveralls_reborn", "~> 0.23"
30
30
  spec.add_development_dependency "fakefs", "~> 1.4"
31
31
  spec.add_development_dependency "mysql2", "~> 0.5"
@@ -42,8 +42,7 @@ Gem::Specification.new do |spec|
42
42
  spec.add_development_dependency "vcr", "~> 6.0"
43
43
  spec.add_development_dependency "webmock", "~> 3.14"
44
44
 
45
- spec.add_dependency "activerecord", "~> 6.1"
46
- spec.add_dependency "activerecord-filter", "~> 6.1"
45
+ spec.add_dependency "activerecord", "7.0.0"
47
46
  spec.add_dependency "addressable", "~> 2.8"
48
47
  spec.add_dependency "awrence", "~> 1.2"
49
48
  spec.add_dependency "binaryedge", "~> 0.1"
@@ -54,20 +53,21 @@ Gem::Specification.new do |spec|
54
53
  spec.add_dependency "dnpedia", "~> 0.1"
55
54
  spec.add_dependency "dnstwister", "~> 0.1"
56
55
  spec.add_dependency "dotenv", "~> 2.7"
57
- spec.add_dependency "dry-configurable", "~> 0.13"
58
- spec.add_dependency "dry-container", "~> 0.9"
59
- spec.add_dependency "dry-files", "~> 0.1"
60
- spec.add_dependency "dry-initializer", "~> 3.0"
61
- spec.add_dependency "dry-struct", "~> 1.4"
62
- spec.add_dependency "dry-validation", "~> 1.7"
56
+ spec.add_dependency "dry-configurable", "0.13.0"
57
+ spec.add_dependency "dry-container", "0.9.0"
58
+ spec.add_dependency "dry-files", "0.1.0"
59
+ spec.add_dependency "dry-initializer", "3.0.4"
60
+ spec.add_dependency "dry-struct", "1.4.0"
61
+ spec.add_dependency "dry-validation", "1.7.0"
63
62
  spec.add_dependency "email_address", "~> 0.2"
64
- spec.add_dependency "grape", "~> 1.6"
65
- spec.add_dependency "grape-entity", "~> 0.10"
66
- spec.add_dependency "grape-swagger", "~> 1.4"
67
- spec.add_dependency "grape-swagger-entity", "~> 0.5"
63
+ spec.add_dependency "grape", "1.6.2"
64
+ spec.add_dependency "grape-entity", "0.10.1"
65
+ spec.add_dependency "grape-swagger", "1.4.2"
66
+ spec.add_dependency "grape-swagger-entity", "0.5.1"
68
67
  spec.add_dependency "greynoise", "~> 0.1"
69
68
  spec.add_dependency "hachi", "~> 1.0"
70
69
  spec.add_dependency "http", "~> 5.0"
70
+ spec.add_dependency "jr-cli", "~> 0.5"
71
71
  spec.add_dependency "launchy", "~> 2.5"
72
72
  spec.add_dependency "mem", "~> 0.1"
73
73
  spec.add_dependency "memist", "~> 2.0"
@@ -82,9 +82,9 @@ Gem::Specification.new do |spec|
82
82
  spec.add_dependency "plissken", "~> 1.4"
83
83
  spec.add_dependency "public_suffix", "~> 4.0"
84
84
  spec.add_dependency "pulsedive", "~> 0.1"
85
- spec.add_dependency "puma", "~> 5.5"
86
- spec.add_dependency "rack", "~> 2.2"
87
- spec.add_dependency "rack-contrib", "~> 2.3"
85
+ spec.add_dependency "puma", "5.5.2"
86
+ spec.add_dependency "rack", "2.2.3"
87
+ spec.add_dependency "rack-contrib", "2.3.0"
88
88
  spec.add_dependency "rack-cors", "~> 1.1"
89
89
  spec.add_dependency "safe_shell", "~> 1.1"
90
90
  spec.add_dependency "securitytrails", "~> 1.0"
@@ -92,7 +92,7 @@ Gem::Specification.new do |spec|
92
92
  spec.add_dependency "slack-notifier", "~> 2.4"
93
93
  spec.add_dependency "spysex", "~> 0.2"
94
94
  spec.add_dependency "sqlite3", "~> 1.4"
95
- spec.add_dependency "thor", "~> 1.1"
95
+ spec.add_dependency "thor", "1.1.0"
96
96
  spec.add_dependency "thread_safe", "~> 0.3"
97
97
  spec.add_dependency "urlscan", "~> 0.8"
98
98
  spec.add_dependency "uuidtools", "~> 2.2"
@@ -0,0 +1,23 @@
1
+ module Mihari
2
+ module Analyzers
3
+ class Feed < Base
4
+ attr_reader query: String
5
+ attr_reader title: String
6
+ attr_reader description: String
7
+ attr_reader tags: Array[String]
8
+
9
+ attr_reader http_request_headers: Hash[(String | Symbol), untyped]
10
+ attr_reader http_request_method: String
11
+ attr_reader http_request_payload_type: String?
12
+ attr_reader http_request_payload: Hash[(String | Symbol), untyped]
13
+
14
+ attr_reader selector: String
15
+
16
+ def artifacts: () -> (Array[String] | Array[Mihari::Artifact])
17
+
18
+ private
19
+
20
+ def data: () -> Array[Hash]
21
+ end
22
+ end
23
+ end
@@ -13,6 +13,10 @@ module Mihari
13
13
 
14
14
  include Mihari::Commands::DNSTwister
15
15
 
16
+ include Mihari::Commands::Feed
17
+
18
+ include Mihari::Commands::GreyNoise
19
+
16
20
  include Mihari::Commands::JSON
17
21
 
18
22
  include Mihari::Commands::Onyphe
@@ -0,0 +1,7 @@
1
+ module Mihari
2
+ module Commands
3
+ module Feed
4
+ def self.included: (untyped thor) -> untyped
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,11 @@
1
+ module Mihari
2
+ module Feed
3
+ class Parser
4
+ attr_reader data: Array[Hash] | Array[Array[String]]
5
+
6
+ def initialize: (Array[Hash] | Array[Array[String]] data) -> void
7
+
8
+ def parse: (String selector) -> Array[String]
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,56 @@
1
+ module Mihari
2
+ class FeedReader
3
+ attr_reader uri: URI
4
+
5
+ attr_reader http_request_headers: Hash[(String | Symbol), untyped]
6
+
7
+ attr_reader http_request_method: String
8
+
9
+ attr_reader http_request_payload_type: String?
10
+
11
+ attr_reader http_request_payload: Hash[(String | Symbol), untyped]
12
+
13
+ def initialize: (
14
+ String url,
15
+ ?http_request_headers: Hash[(String | Symbol), untyped]] http_request_headers,
16
+ ?http_request_method: ::String http_request_method,
17
+ ?http_request_payload_type: String? http_request_payload_type,
18
+ ?http_request_payload: Hash[(String | Symbol), untyped] http_request_payload
19
+ ) -> void
20
+
21
+ def read: () -> Array[Hash]
22
+
23
+ def get: () -> Array[Hash]
24
+
25
+ def post: () -> Array[Hash]
26
+
27
+ #
28
+ # Convert text as JSON
29
+ #
30
+ # @param [String] text
31
+ #
32
+ # @return [Array<Hash>]
33
+ #
34
+ def convert_as_json: (String text) -> Array[Hash]
35
+
36
+ #
37
+ # Convert text as CSV
38
+ #
39
+ # @param [String] text
40
+ #
41
+ # @return [Array<Hash>]
42
+ #
43
+ def convert_as_csv: (String text) -> Array[Hash]
44
+
45
+ def https_options: () -> ({ use_ssl: ::TrueClass } | ::Hash[untyped, untyped])
46
+
47
+ #
48
+ # Make a HTTP request
49
+ #
50
+ # @param [Net::HTTPRequest] req
51
+ #
52
+ # @return [Array<Hash>]
53
+ #
54
+ def request: (Net::HTTPRequest req) -> Array[Hash]
55
+ end
56
+ end
@@ -13,7 +13,7 @@ module Mihari
13
13
  attr_reader dns_record: String?
14
14
  attr_reader reverse_dns_name: String?
15
15
 
16
- def has_valid_artifact_filters: () -> bool
16
+ def valid_artifact_filters?: () -> bool
17
17
  end
18
18
 
19
19
  class SearchFilterWithPagination
@@ -13,5 +13,9 @@ module Mihari
13
13
  DataTypes: Array[String]
14
14
 
15
15
  AnalyzerTypes: Array[String]
16
+
17
+ FeedHttpRequestMethods: Array[String]
18
+
19
+ FeedHttpRequestPayloadTypes: Array[String]
16
20
  end
17
21
  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: 3.11.0
4
+ version: 3.12.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: 2021-12-04 00:00:00.000000000 Z
11
+ date: 2022-01-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.2'
19
+ version: '2.3'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '2.2'
26
+ version: '2.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: coveralls_reborn
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -238,30 +238,16 @@ dependencies:
238
238
  name: activerecord
239
239
  requirement: !ruby/object:Gem::Requirement
240
240
  requirements:
241
- - - "~>"
242
- - !ruby/object:Gem::Version
243
- version: '6.1'
244
- type: :runtime
245
- prerelease: false
246
- version_requirements: !ruby/object:Gem::Requirement
247
- requirements:
248
- - - "~>"
249
- - !ruby/object:Gem::Version
250
- version: '6.1'
251
- - !ruby/object:Gem::Dependency
252
- name: activerecord-filter
253
- requirement: !ruby/object:Gem::Requirement
254
- requirements:
255
- - - "~>"
241
+ - - '='
256
242
  - !ruby/object:Gem::Version
257
- version: '6.1'
243
+ version: 7.0.0
258
244
  type: :runtime
259
245
  prerelease: false
260
246
  version_requirements: !ruby/object:Gem::Requirement
261
247
  requirements:
262
- - - "~>"
248
+ - - '='
263
249
  - !ruby/object:Gem::Version
264
- version: '6.1'
250
+ version: 7.0.0
265
251
  - !ruby/object:Gem::Dependency
266
252
  name: addressable
267
253
  requirement: !ruby/object:Gem::Requirement
@@ -406,86 +392,86 @@ dependencies:
406
392
  name: dry-configurable
407
393
  requirement: !ruby/object:Gem::Requirement
408
394
  requirements:
409
- - - "~>"
395
+ - - '='
410
396
  - !ruby/object:Gem::Version
411
- version: '0.13'
397
+ version: 0.13.0
412
398
  type: :runtime
413
399
  prerelease: false
414
400
  version_requirements: !ruby/object:Gem::Requirement
415
401
  requirements:
416
- - - "~>"
402
+ - - '='
417
403
  - !ruby/object:Gem::Version
418
- version: '0.13'
404
+ version: 0.13.0
419
405
  - !ruby/object:Gem::Dependency
420
406
  name: dry-container
421
407
  requirement: !ruby/object:Gem::Requirement
422
408
  requirements:
423
- - - "~>"
409
+ - - '='
424
410
  - !ruby/object:Gem::Version
425
- version: '0.9'
411
+ version: 0.9.0
426
412
  type: :runtime
427
413
  prerelease: false
428
414
  version_requirements: !ruby/object:Gem::Requirement
429
415
  requirements:
430
- - - "~>"
416
+ - - '='
431
417
  - !ruby/object:Gem::Version
432
- version: '0.9'
418
+ version: 0.9.0
433
419
  - !ruby/object:Gem::Dependency
434
420
  name: dry-files
435
421
  requirement: !ruby/object:Gem::Requirement
436
422
  requirements:
437
- - - "~>"
423
+ - - '='
438
424
  - !ruby/object:Gem::Version
439
- version: '0.1'
425
+ version: 0.1.0
440
426
  type: :runtime
441
427
  prerelease: false
442
428
  version_requirements: !ruby/object:Gem::Requirement
443
429
  requirements:
444
- - - "~>"
430
+ - - '='
445
431
  - !ruby/object:Gem::Version
446
- version: '0.1'
432
+ version: 0.1.0
447
433
  - !ruby/object:Gem::Dependency
448
434
  name: dry-initializer
449
435
  requirement: !ruby/object:Gem::Requirement
450
436
  requirements:
451
- - - "~>"
437
+ - - '='
452
438
  - !ruby/object:Gem::Version
453
- version: '3.0'
439
+ version: 3.0.4
454
440
  type: :runtime
455
441
  prerelease: false
456
442
  version_requirements: !ruby/object:Gem::Requirement
457
443
  requirements:
458
- - - "~>"
444
+ - - '='
459
445
  - !ruby/object:Gem::Version
460
- version: '3.0'
446
+ version: 3.0.4
461
447
  - !ruby/object:Gem::Dependency
462
448
  name: dry-struct
463
449
  requirement: !ruby/object:Gem::Requirement
464
450
  requirements:
465
- - - "~>"
451
+ - - '='
466
452
  - !ruby/object:Gem::Version
467
- version: '1.4'
453
+ version: 1.4.0
468
454
  type: :runtime
469
455
  prerelease: false
470
456
  version_requirements: !ruby/object:Gem::Requirement
471
457
  requirements:
472
- - - "~>"
458
+ - - '='
473
459
  - !ruby/object:Gem::Version
474
- version: '1.4'
460
+ version: 1.4.0
475
461
  - !ruby/object:Gem::Dependency
476
462
  name: dry-validation
477
463
  requirement: !ruby/object:Gem::Requirement
478
464
  requirements:
479
- - - "~>"
465
+ - - '='
480
466
  - !ruby/object:Gem::Version
481
- version: '1.7'
467
+ version: 1.7.0
482
468
  type: :runtime
483
469
  prerelease: false
484
470
  version_requirements: !ruby/object:Gem::Requirement
485
471
  requirements:
486
- - - "~>"
472
+ - - '='
487
473
  - !ruby/object:Gem::Version
488
- version: '1.7'
474
+ version: 1.7.0
489
475
  - !ruby/object:Gem::Dependency
490
476
  name: email_address
491
477
  requirement: !ruby/object:Gem::Requirement
@@ -504,58 +490,58 @@ dependencies:
504
490
  name: grape
505
491
  requirement: !ruby/object:Gem::Requirement
506
492
  requirements:
507
- - - "~>"
493
+ - - '='
508
494
  - !ruby/object:Gem::Version
509
- version: '1.6'
495
+ version: 1.6.2
510
496
  type: :runtime
511
497
  prerelease: false
512
498
  version_requirements: !ruby/object:Gem::Requirement
513
499
  requirements:
514
- - - "~>"
500
+ - - '='
515
501
  - !ruby/object:Gem::Version
516
- version: '1.6'
502
+ version: 1.6.2
517
503
  - !ruby/object:Gem::Dependency
518
504
  name: grape-entity
519
505
  requirement: !ruby/object:Gem::Requirement
520
506
  requirements:
521
- - - "~>"
507
+ - - '='
522
508
  - !ruby/object:Gem::Version
523
- version: '0.10'
509
+ version: 0.10.1
524
510
  type: :runtime
525
511
  prerelease: false
526
512
  version_requirements: !ruby/object:Gem::Requirement
527
513
  requirements:
528
- - - "~>"
514
+ - - '='
529
515
  - !ruby/object:Gem::Version
530
- version: '0.10'
516
+ version: 0.10.1
531
517
  - !ruby/object:Gem::Dependency
532
518
  name: grape-swagger
533
519
  requirement: !ruby/object:Gem::Requirement
534
520
  requirements:
535
- - - "~>"
521
+ - - '='
536
522
  - !ruby/object:Gem::Version
537
- version: '1.4'
523
+ version: 1.4.2
538
524
  type: :runtime
539
525
  prerelease: false
540
526
  version_requirements: !ruby/object:Gem::Requirement
541
527
  requirements:
542
- - - "~>"
528
+ - - '='
543
529
  - !ruby/object:Gem::Version
544
- version: '1.4'
530
+ version: 1.4.2
545
531
  - !ruby/object:Gem::Dependency
546
532
  name: grape-swagger-entity
547
533
  requirement: !ruby/object:Gem::Requirement
548
534
  requirements:
549
- - - "~>"
535
+ - - '='
550
536
  - !ruby/object:Gem::Version
551
- version: '0.5'
537
+ version: 0.5.1
552
538
  type: :runtime
553
539
  prerelease: false
554
540
  version_requirements: !ruby/object:Gem::Requirement
555
541
  requirements:
556
- - - "~>"
542
+ - - '='
557
543
  - !ruby/object:Gem::Version
558
- version: '0.5'
544
+ version: 0.5.1
559
545
  - !ruby/object:Gem::Dependency
560
546
  name: greynoise
561
547
  requirement: !ruby/object:Gem::Requirement
@@ -598,6 +584,20 @@ dependencies:
598
584
  - - "~>"
599
585
  - !ruby/object:Gem::Version
600
586
  version: '5.0'
587
+ - !ruby/object:Gem::Dependency
588
+ name: jr-cli
589
+ requirement: !ruby/object:Gem::Requirement
590
+ requirements:
591
+ - - "~>"
592
+ - !ruby/object:Gem::Version
593
+ version: '0.5'
594
+ type: :runtime
595
+ prerelease: false
596
+ version_requirements: !ruby/object:Gem::Requirement
597
+ requirements:
598
+ - - "~>"
599
+ - !ruby/object:Gem::Version
600
+ version: '0.5'
601
601
  - !ruby/object:Gem::Dependency
602
602
  name: launchy
603
603
  requirement: !ruby/object:Gem::Requirement
@@ -798,44 +798,44 @@ dependencies:
798
798
  name: puma
799
799
  requirement: !ruby/object:Gem::Requirement
800
800
  requirements:
801
- - - "~>"
801
+ - - '='
802
802
  - !ruby/object:Gem::Version
803
- version: '5.5'
803
+ version: 5.5.2
804
804
  type: :runtime
805
805
  prerelease: false
806
806
  version_requirements: !ruby/object:Gem::Requirement
807
807
  requirements:
808
- - - "~>"
808
+ - - '='
809
809
  - !ruby/object:Gem::Version
810
- version: '5.5'
810
+ version: 5.5.2
811
811
  - !ruby/object:Gem::Dependency
812
812
  name: rack
813
813
  requirement: !ruby/object:Gem::Requirement
814
814
  requirements:
815
- - - "~>"
815
+ - - '='
816
816
  - !ruby/object:Gem::Version
817
- version: '2.2'
817
+ version: 2.2.3
818
818
  type: :runtime
819
819
  prerelease: false
820
820
  version_requirements: !ruby/object:Gem::Requirement
821
821
  requirements:
822
- - - "~>"
822
+ - - '='
823
823
  - !ruby/object:Gem::Version
824
- version: '2.2'
824
+ version: 2.2.3
825
825
  - !ruby/object:Gem::Dependency
826
826
  name: rack-contrib
827
827
  requirement: !ruby/object:Gem::Requirement
828
828
  requirements:
829
- - - "~>"
829
+ - - '='
830
830
  - !ruby/object:Gem::Version
831
- version: '2.3'
831
+ version: 2.3.0
832
832
  type: :runtime
833
833
  prerelease: false
834
834
  version_requirements: !ruby/object:Gem::Requirement
835
835
  requirements:
836
- - - "~>"
836
+ - - '='
837
837
  - !ruby/object:Gem::Version
838
- version: '2.3'
838
+ version: 2.3.0
839
839
  - !ruby/object:Gem::Dependency
840
840
  name: rack-cors
841
841
  requirement: !ruby/object:Gem::Requirement
@@ -938,16 +938,16 @@ dependencies:
938
938
  name: thor
939
939
  requirement: !ruby/object:Gem::Requirement
940
940
  requirements:
941
- - - "~>"
941
+ - - '='
942
942
  - !ruby/object:Gem::Version
943
- version: '1.1'
943
+ version: 1.1.0
944
944
  type: :runtime
945
945
  prerelease: false
946
946
  version_requirements: !ruby/object:Gem::Requirement
947
947
  requirements:
948
- - - "~>"
948
+ - - '='
949
949
  - !ruby/object:Gem::Version
950
- version: '1.1'
950
+ version: 1.1.0
951
951
  - !ruby/object:Gem::Dependency
952
952
  name: thread_safe
953
953
  requirement: !ruby/object:Gem::Requirement
@@ -1092,6 +1092,7 @@ files:
1092
1092
  - lib/mihari/analyzers/crtsh.rb
1093
1093
  - lib/mihari/analyzers/dnpedia.rb
1094
1094
  - lib/mihari/analyzers/dnstwister.rb
1095
+ - lib/mihari/analyzers/feed.rb
1095
1096
  - lib/mihari/analyzers/greynoise.rb
1096
1097
  - lib/mihari/analyzers/onyphe.rb
1097
1098
  - lib/mihari/analyzers/otx.rb
@@ -1117,6 +1118,7 @@ files:
1117
1118
  - lib/mihari/commands/crtsh.rb
1118
1119
  - lib/mihari/commands/dnpedia.rb
1119
1120
  - lib/mihari/commands/dnstwister.rb
1121
+ - lib/mihari/commands/feed.rb
1120
1122
  - lib/mihari/commands/greynoise.rb
1121
1123
  - lib/mihari/commands/init.rb
1122
1124
  - lib/mihari/commands/json.rb
@@ -1146,6 +1148,8 @@ files:
1146
1148
  - lib/mihari/enrichers/base.rb
1147
1149
  - lib/mihari/enrichers/ipinfo.rb
1148
1150
  - lib/mihari/errors.rb
1151
+ - lib/mihari/feed/parser.rb
1152
+ - lib/mihari/feed/reader.rb
1149
1153
  - lib/mihari/mixins/autonomous_system.rb
1150
1154
  - lib/mihari/mixins/configurable.rb
1151
1155
  - lib/mihari/mixins/configuration.rb
@@ -1249,6 +1253,8 @@ files:
1249
1253
  - lib/mihari/web/public/static/js/app.365f1907.js.map
1250
1254
  - lib/mihari/web/public/static/js/app.378da3dc.js
1251
1255
  - lib/mihari/web/public/static/js/app.378da3dc.js.map
1256
+ - lib/mihari/web/public/static/js/app.5dc97aae.js
1257
+ - lib/mihari/web/public/static/js/app.5dc97aae.js.map
1252
1258
  - lib/mihari/web/public/static/js/app.6b636b62.js
1253
1259
  - lib/mihari/web/public/static/js/app.6b636b62.js.map
1254
1260
  - lib/mihari/web/public/static/js/app.8e3e5150.js
@@ -1261,6 +1267,8 @@ files:
1261
1267
  - lib/mihari/web/public/static/js/app.b5914c39.js.map
1262
1268
  - lib/mihari/web/public/static/js/app.cccddb2b.js
1263
1269
  - lib/mihari/web/public/static/js/app.cccddb2b.js.map
1270
+ - lib/mihari/web/public/static/js/app.f2b8890f.js
1271
+ - lib/mihari/web/public/static/js/app.f2b8890f.js.map
1264
1272
  - lib/mihari/web/public/static/js/app.fbc19869.js
1265
1273
  - lib/mihari/web/public/static/js/app.fbc19869.js.map
1266
1274
  - mihari.gemspec
@@ -1274,6 +1282,7 @@ files:
1274
1282
  - sig/lib/mihari/analyzers/crtsh.rbs
1275
1283
  - sig/lib/mihari/analyzers/dnpedia.rbs
1276
1284
  - sig/lib/mihari/analyzers/dnstwister.rbs
1285
+ - sig/lib/mihari/analyzers/feed.rbs
1277
1286
  - sig/lib/mihari/analyzers/onyphe.rbs
1278
1287
  - sig/lib/mihari/analyzers/otx.rbs
1279
1288
  - sig/lib/mihari/analyzers/passivetotal.rbs
@@ -1298,6 +1307,7 @@ files:
1298
1307
  - sig/lib/mihari/commands/crtsh.rbs
1299
1308
  - sig/lib/mihari/commands/dnpedia.rbs
1300
1309
  - sig/lib/mihari/commands/dnstwister.rbs
1310
+ - sig/lib/mihari/commands/feed.rbs
1301
1311
  - sig/lib/mihari/commands/init.rbs
1302
1312
  - sig/lib/mihari/commands/json.rbs
1303
1313
  - sig/lib/mihari/commands/onyphe.rbs
@@ -1325,6 +1335,8 @@ files:
1325
1335
  - sig/lib/mihari/enrichers/base.rbs
1326
1336
  - sig/lib/mihari/enrichers/ipinfo.rbs
1327
1337
  - sig/lib/mihari/errors.rbs
1338
+ - sig/lib/mihari/feed/parser.rbs
1339
+ - sig/lib/mihari/feed/reader.rbs
1328
1340
  - sig/lib/mihari/mixins/autonomous_system.rbs
1329
1341
  - sig/lib/mihari/mixins/configurable.rbs
1330
1342
  - sig/lib/mihari/mixins/configuration.rbs