mihari 5.1.0 → 5.1.1

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 (48) hide show
  1. checksums.yaml +4 -4
  2. data/lib/mihari/analyzers/binaryedge.rb +9 -7
  3. data/lib/mihari/analyzers/censys.rb +3 -5
  4. data/lib/mihari/analyzers/circl.rb +4 -6
  5. data/lib/mihari/analyzers/crtsh.rb +6 -7
  6. data/lib/mihari/analyzers/dnpedia.rb +3 -7
  7. data/lib/mihari/analyzers/dnstwister.rb +3 -5
  8. data/lib/mihari/analyzers/feed.rb +12 -10
  9. data/lib/mihari/analyzers/greynoise.rb +3 -5
  10. data/lib/mihari/analyzers/onyphe.rb +3 -4
  11. data/lib/mihari/analyzers/otx.rb +1 -3
  12. data/lib/mihari/analyzers/passivetotal.rb +5 -7
  13. data/lib/mihari/analyzers/pulsedive.rb +5 -7
  14. data/lib/mihari/analyzers/shodan.rb +3 -9
  15. data/lib/mihari/analyzers/urlscan.rb +7 -6
  16. data/lib/mihari/analyzers/virustotal.rb +4 -6
  17. data/lib/mihari/analyzers/virustotal_intelligence.rb +4 -5
  18. data/lib/mihari/analyzers/zoomeye.rb +4 -10
  19. data/lib/mihari/clients/base.rb +53 -0
  20. data/lib/mihari/clients/binaryedge.rb +33 -0
  21. data/lib/mihari/clients/censys.rb +42 -0
  22. data/lib/mihari/clients/circl.rb +59 -0
  23. data/lib/mihari/clients/crtsh.rb +31 -0
  24. data/lib/mihari/clients/dnpedia.rb +64 -0
  25. data/lib/mihari/clients/dnstwister.rb +40 -0
  26. data/lib/mihari/clients/greynoise.rb +29 -0
  27. data/lib/mihari/clients/misp.rb +24 -0
  28. data/lib/mihari/clients/onyphe.rb +23 -0
  29. data/lib/mihari/clients/otx.rb +29 -0
  30. data/lib/mihari/clients/passivetotal.rb +65 -0
  31. data/lib/mihari/clients/publsedive.rb +39 -0
  32. data/lib/mihari/clients/shodan.rb +30 -0
  33. data/lib/mihari/clients/the_hive.rb +28 -0
  34. data/lib/mihari/clients/urlscan.rb +31 -0
  35. data/lib/mihari/clients/virustotal.rb +56 -0
  36. data/lib/mihari/clients/zoomeye.rb +68 -0
  37. data/lib/mihari/emitters/misp.rb +13 -20
  38. data/lib/mihari/emitters/the_hive.rb +3 -5
  39. data/lib/mihari/emitters/webhook.rb +2 -2
  40. data/lib/mihari/feed/reader.rb +14 -11
  41. data/lib/mihari/http.rb +29 -21
  42. data/lib/mihari/mixins/retriable.rb +3 -1
  43. data/lib/mihari/schemas/analyzer.rb +5 -4
  44. data/lib/mihari/version.rb +1 -1
  45. data/lib/mihari.rb +21 -0
  46. data/mihari.gemspec +13 -20
  47. metadata +51 -244
  48. data/lib/mihari/analyzers/clients/otx.rb +0 -36
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: 5.1.0
4
+ version: 5.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Manabu Niseki
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-25 00:00:00.000000000 Z
11
+ date: 2023-03-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -80,20 +80,6 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0.5'
83
- - !ruby/object:Gem::Dependency
84
- name: overcommit
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '0.60'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '0.60'
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: pg
99
85
  requirement: !ruby/object:Gem::Requirement
@@ -206,20 +192,6 @@ dependencies:
206
192
  - - "~>"
207
193
  - !ruby/object:Gem::Version
208
194
  version: '1.24'
209
- - !ruby/object:Gem::Dependency
210
- name: steep
211
- requirement: !ruby/object:Gem::Requirement
212
- requirements:
213
- - - "~>"
214
- - !ruby/object:Gem::Version
215
- version: '1.3'
216
- type: :development
217
- prerelease: false
218
- version_requirements: !ruby/object:Gem::Requirement
219
- requirements:
220
- - - "~>"
221
- - !ruby/object:Gem::Version
222
- version: '1.3'
223
195
  - !ruby/object:Gem::Dependency
224
196
  name: timecop
225
197
  requirement: !ruby/object:Gem::Requirement
@@ -263,117 +235,89 @@ dependencies:
263
235
  - !ruby/object:Gem::Version
264
236
  version: '3.18'
265
237
  - !ruby/object:Gem::Dependency
266
- name: activerecord
267
- requirement: !ruby/object:Gem::Requirement
268
- requirements:
269
- - - '='
270
- - !ruby/object:Gem::Version
271
- version: 7.0.4.2
272
- type: :runtime
273
- prerelease: false
274
- version_requirements: !ruby/object:Gem::Requirement
275
- requirements:
276
- - - '='
277
- - !ruby/object:Gem::Version
278
- version: 7.0.4.2
279
- - !ruby/object:Gem::Dependency
280
- name: addressable
281
- requirement: !ruby/object:Gem::Requirement
282
- requirements:
283
- - - '='
284
- - !ruby/object:Gem::Version
285
- version: 2.8.1
286
- type: :runtime
287
- prerelease: false
288
- version_requirements: !ruby/object:Gem::Requirement
289
- requirements:
290
- - - '='
291
- - !ruby/object:Gem::Version
292
- version: 2.8.1
293
- - !ruby/object:Gem::Dependency
294
- name: awrence
238
+ name: overcommit
295
239
  requirement: !ruby/object:Gem::Requirement
296
240
  requirements:
297
- - - '='
241
+ - - "~>"
298
242
  - !ruby/object:Gem::Version
299
- version: 2.0.1
300
- type: :runtime
243
+ version: '0.60'
244
+ type: :development
301
245
  prerelease: false
302
246
  version_requirements: !ruby/object:Gem::Requirement
303
247
  requirements:
304
- - - '='
248
+ - - "~>"
305
249
  - !ruby/object:Gem::Version
306
- version: 2.0.1
250
+ version: '0.60'
307
251
  - !ruby/object:Gem::Dependency
308
- name: binaryedge
252
+ name: ruby-lsp
309
253
  requirement: !ruby/object:Gem::Requirement
310
254
  requirements:
311
- - - '='
255
+ - - "~>"
312
256
  - !ruby/object:Gem::Version
313
- version: 0.1.0
314
- type: :runtime
257
+ version: '0.4'
258
+ type: :development
315
259
  prerelease: false
316
260
  version_requirements: !ruby/object:Gem::Requirement
317
261
  requirements:
318
- - - '='
262
+ - - "~>"
319
263
  - !ruby/object:Gem::Version
320
- version: 0.1.0
264
+ version: '0.4'
321
265
  - !ruby/object:Gem::Dependency
322
- name: censysx
266
+ name: steep
323
267
  requirement: !ruby/object:Gem::Requirement
324
268
  requirements:
325
- - - '='
269
+ - - "~>"
326
270
  - !ruby/object:Gem::Version
327
- version: 0.1.1
328
- type: :runtime
271
+ version: '1.3'
272
+ type: :development
329
273
  prerelease: false
330
274
  version_requirements: !ruby/object:Gem::Requirement
331
275
  requirements:
332
- - - '='
276
+ - - "~>"
333
277
  - !ruby/object:Gem::Version
334
- version: 0.1.1
278
+ version: '1.3'
335
279
  - !ruby/object:Gem::Dependency
336
- name: crtsh-rb
280
+ name: activerecord
337
281
  requirement: !ruby/object:Gem::Requirement
338
282
  requirements:
339
283
  - - '='
340
284
  - !ruby/object:Gem::Version
341
- version: 0.3.1
285
+ version: 7.0.4.2
342
286
  type: :runtime
343
287
  prerelease: false
344
288
  version_requirements: !ruby/object:Gem::Requirement
345
289
  requirements:
346
290
  - - '='
347
291
  - !ruby/object:Gem::Version
348
- version: 0.3.1
292
+ version: 7.0.4.2
349
293
  - !ruby/object:Gem::Dependency
350
- name: dnpedia
294
+ name: addressable
351
295
  requirement: !ruby/object:Gem::Requirement
352
296
  requirements:
353
297
  - - '='
354
298
  - !ruby/object:Gem::Version
355
- version: 0.1.0
299
+ version: 2.8.1
356
300
  type: :runtime
357
301
  prerelease: false
358
302
  version_requirements: !ruby/object:Gem::Requirement
359
303
  requirements:
360
304
  - - '='
361
305
  - !ruby/object:Gem::Version
362
- version: 0.1.0
306
+ version: 2.8.1
363
307
  - !ruby/object:Gem::Dependency
364
- name: dnstwister
308
+ name: awrence
365
309
  requirement: !ruby/object:Gem::Requirement
366
310
  requirements:
367
311
  - - '='
368
312
  - !ruby/object:Gem::Version
369
- version: 0.1.0
313
+ version: 2.0.1
370
314
  type: :runtime
371
315
  prerelease: false
372
316
  version_requirements: !ruby/object:Gem::Requirement
373
317
  requirements:
374
318
  - - '='
375
319
  - !ruby/object:Gem::Version
376
- version: 0.1.0
320
+ version: 2.0.1
377
321
  - !ruby/object:Gem::Dependency
378
322
  name: dotenv
379
323
  requirement: !ruby/object:Gem::Requirement
@@ -556,34 +500,6 @@ dependencies:
556
500
  - - '='
557
501
  - !ruby/object:Gem::Version
558
502
  version: 0.5.1
559
- - !ruby/object:Gem::Dependency
560
- name: greynoise
561
- requirement: !ruby/object:Gem::Requirement
562
- requirements:
563
- - - '='
564
- - !ruby/object:Gem::Version
565
- version: 0.1.1
566
- type: :runtime
567
- prerelease: false
568
- version_requirements: !ruby/object:Gem::Requirement
569
- requirements:
570
- - - '='
571
- - !ruby/object:Gem::Version
572
- version: 0.1.1
573
- - !ruby/object:Gem::Dependency
574
- name: hachi
575
- requirement: !ruby/object:Gem::Requirement
576
- requirements:
577
- - - '='
578
- - !ruby/object:Gem::Version
579
- version: 2.0.0
580
- type: :runtime
581
- prerelease: false
582
- version_requirements: !ruby/object:Gem::Requirement
583
- requirements:
584
- - - '='
585
- - !ruby/object:Gem::Version
586
- version: 2.0.0
587
503
  - !ruby/object:Gem::Dependency
588
504
  name: insensitive_hash
589
505
  requirement: !ruby/object:Gem::Requirement
@@ -640,20 +556,6 @@ dependencies:
640
556
  - - '='
641
557
  - !ruby/object:Gem::Version
642
558
  version: 2.0.2
643
- - !ruby/object:Gem::Dependency
644
- name: misp
645
- requirement: !ruby/object:Gem::Requirement
646
- requirements:
647
- - - '='
648
- - !ruby/object:Gem::Version
649
- version: 0.1.4
650
- type: :runtime
651
- prerelease: false
652
- version_requirements: !ruby/object:Gem::Requirement
653
- requirements:
654
- - - '='
655
- - !ruby/object:Gem::Version
656
- version: 0.1.4
657
559
  - !ruby/object:Gem::Dependency
658
560
  name: net-ping
659
561
  requirement: !ruby/object:Gem::Requirement
@@ -682,20 +584,6 @@ dependencies:
682
584
  - - '='
683
585
  - !ruby/object:Gem::Version
684
586
  version: 0.3.2
685
- - !ruby/object:Gem::Dependency
686
- name: onyphe
687
- requirement: !ruby/object:Gem::Requirement
688
- requirements:
689
- - - '='
690
- - !ruby/object:Gem::Version
691
- version: 2.0.0
692
- type: :runtime
693
- prerelease: false
694
- version_requirements: !ruby/object:Gem::Requirement
695
- requirements:
696
- - - '='
697
- - !ruby/object:Gem::Version
698
- version: 2.0.0
699
587
  - !ruby/object:Gem::Dependency
700
588
  name: parallel
701
589
  requirement: !ruby/object:Gem::Requirement
@@ -710,34 +598,6 @@ dependencies:
710
598
  - - '='
711
599
  - !ruby/object:Gem::Version
712
600
  version: 1.22.1
713
- - !ruby/object:Gem::Dependency
714
- name: passive_circl
715
- requirement: !ruby/object:Gem::Requirement
716
- requirements:
717
- - - '='
718
- - !ruby/object:Gem::Version
719
- version: 0.1.0
720
- type: :runtime
721
- prerelease: false
722
- version_requirements: !ruby/object:Gem::Requirement
723
- requirements:
724
- - - '='
725
- - !ruby/object:Gem::Version
726
- version: 0.1.0
727
- - !ruby/object:Gem::Dependency
728
- name: passivetotalx
729
- requirement: !ruby/object:Gem::Requirement
730
- requirements:
731
- - - '='
732
- - !ruby/object:Gem::Version
733
- version: 0.1.1
734
- type: :runtime
735
- prerelease: false
736
- version_requirements: !ruby/object:Gem::Requirement
737
- requirements:
738
- - - '='
739
- - !ruby/object:Gem::Version
740
- version: 0.1.1
741
601
  - !ruby/object:Gem::Dependency
742
602
  name: plissken
743
603
  requirement: !ruby/object:Gem::Requirement
@@ -766,20 +626,6 @@ dependencies:
766
626
  - - '='
767
627
  - !ruby/object:Gem::Version
768
628
  version: 5.0.1
769
- - !ruby/object:Gem::Dependency
770
- name: pulsedive
771
- requirement: !ruby/object:Gem::Requirement
772
- requirements:
773
- - - '='
774
- - !ruby/object:Gem::Version
775
- version: 0.1.5
776
- type: :runtime
777
- prerelease: false
778
- version_requirements: !ruby/object:Gem::Requirement
779
- requirements:
780
- - - '='
781
- - !ruby/object:Gem::Version
782
- version: 0.1.5
783
629
  - !ruby/object:Gem::Dependency
784
630
  name: puma
785
631
  requirement: !ruby/object:Gem::Requirement
@@ -870,28 +716,14 @@ dependencies:
870
716
  requirements:
871
717
  - - '='
872
718
  - !ruby/object:Gem::Version
873
- version: 5.7.0
874
- type: :runtime
875
- prerelease: false
876
- version_requirements: !ruby/object:Gem::Requirement
877
- requirements:
878
- - - '='
879
- - !ruby/object:Gem::Version
880
- version: 5.7.0
881
- - !ruby/object:Gem::Dependency
882
- name: shodanx
883
- requirement: !ruby/object:Gem::Requirement
884
- requirements:
885
- - - '='
886
- - !ruby/object:Gem::Version
887
- version: 0.2.1
719
+ version: 5.8.0
888
720
  type: :runtime
889
721
  prerelease: false
890
722
  version_requirements: !ruby/object:Gem::Requirement
891
723
  requirements:
892
724
  - - '='
893
725
  - !ruby/object:Gem::Version
894
- version: 0.2.1
726
+ version: 5.8.0
895
727
  - !ruby/object:Gem::Dependency
896
728
  name: slack-notifier
897
729
  requirement: !ruby/object:Gem::Requirement
@@ -912,14 +744,14 @@ dependencies:
912
744
  requirements:
913
745
  - - '='
914
746
  - !ruby/object:Gem::Version
915
- version: 1.6.0
747
+ version: 1.6.1
916
748
  type: :runtime
917
749
  prerelease: false
918
750
  version_requirements: !ruby/object:Gem::Requirement
919
751
  requirements:
920
752
  - - '='
921
753
  - !ruby/object:Gem::Version
922
- version: 1.6.0
754
+ version: 1.6.1
923
755
  - !ruby/object:Gem::Dependency
924
756
  name: thor
925
757
  requirement: !ruby/object:Gem::Requirement
@@ -934,20 +766,6 @@ dependencies:
934
766
  - - '='
935
767
  - !ruby/object:Gem::Version
936
768
  version: 1.2.1
937
- - !ruby/object:Gem::Dependency
938
- name: urlscan
939
- requirement: !ruby/object:Gem::Requirement
940
- requirements:
941
- - - '='
942
- - !ruby/object:Gem::Version
943
- version: 0.8.0
944
- type: :runtime
945
- prerelease: false
946
- version_requirements: !ruby/object:Gem::Requirement
947
- requirements:
948
- - - '='
949
- - !ruby/object:Gem::Version
950
- version: 0.8.0
951
769
  - !ruby/object:Gem::Dependency
952
770
  name: uuidtools
953
771
  requirement: !ruby/object:Gem::Requirement
@@ -962,20 +780,6 @@ dependencies:
962
780
  - - '='
963
781
  - !ruby/object:Gem::Version
964
782
  version: 2.2.0
965
- - !ruby/object:Gem::Dependency
966
- name: virustotalx
967
- requirement: !ruby/object:Gem::Requirement
968
- requirements:
969
- - - '='
970
- - !ruby/object:Gem::Version
971
- version: 1.2.0
972
- type: :runtime
973
- prerelease: false
974
- version_requirements: !ruby/object:Gem::Requirement
975
- requirements:
976
- - - '='
977
- - !ruby/object:Gem::Version
978
- version: 1.2.0
979
783
  - !ruby/object:Gem::Dependency
980
784
  name: whois
981
785
  requirement: !ruby/object:Gem::Requirement
@@ -1004,20 +808,6 @@ dependencies:
1004
808
  - - '='
1005
809
  - !ruby/object:Gem::Version
1006
810
  version: 2.0.0
1007
- - !ruby/object:Gem::Dependency
1008
- name: zoomeye-rb
1009
- requirement: !ruby/object:Gem::Requirement
1010
- requirements:
1011
- - - '='
1012
- - !ruby/object:Gem::Version
1013
- version: 0.2.0
1014
- type: :runtime
1015
- prerelease: false
1016
- version_requirements: !ruby/object:Gem::Requirement
1017
- requirements:
1018
- - - '='
1019
- - !ruby/object:Gem::Version
1020
- version: 0.2.0
1021
811
  description:
1022
812
  email:
1023
813
  - manabu.niseki@gmail.com
@@ -1062,7 +852,6 @@ files:
1062
852
  - lib/mihari/analyzers/binaryedge.rb
1063
853
  - lib/mihari/analyzers/censys.rb
1064
854
  - lib/mihari/analyzers/circl.rb
1065
- - lib/mihari/analyzers/clients/otx.rb
1066
855
  - lib/mihari/analyzers/crtsh.rb
1067
856
  - lib/mihari/analyzers/dnpedia.rb
1068
857
  - lib/mihari/analyzers/dnstwister.rb
@@ -1083,6 +872,24 @@ files:
1083
872
  - lib/mihari/cli/database.rb
1084
873
  - lib/mihari/cli/main.rb
1085
874
  - lib/mihari/cli/rule.rb
875
+ - lib/mihari/clients/base.rb
876
+ - lib/mihari/clients/binaryedge.rb
877
+ - lib/mihari/clients/censys.rb
878
+ - lib/mihari/clients/circl.rb
879
+ - lib/mihari/clients/crtsh.rb
880
+ - lib/mihari/clients/dnpedia.rb
881
+ - lib/mihari/clients/dnstwister.rb
882
+ - lib/mihari/clients/greynoise.rb
883
+ - lib/mihari/clients/misp.rb
884
+ - lib/mihari/clients/onyphe.rb
885
+ - lib/mihari/clients/otx.rb
886
+ - lib/mihari/clients/passivetotal.rb
887
+ - lib/mihari/clients/publsedive.rb
888
+ - lib/mihari/clients/shodan.rb
889
+ - lib/mihari/clients/the_hive.rb
890
+ - lib/mihari/clients/urlscan.rb
891
+ - lib/mihari/clients/virustotal.rb
892
+ - lib/mihari/clients/zoomeye.rb
1086
893
  - lib/mihari/commands/database.rb
1087
894
  - lib/mihari/commands/rule.rb
1088
895
  - lib/mihari/commands/searcher.rb
@@ -1,36 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Mihari
4
- module Analyzers
5
- module Clients
6
- class OTX
7
- attr_reader :api_key
8
-
9
- def initialize(api_key)
10
- @api_key = api_key
11
- end
12
-
13
- def query_by_ip(ip)
14
- get "https://otx.alienvault.com/api/v1/indicators/IPv4/#{ip}/passive_dns"
15
- end
16
-
17
- def query_by_domain(domain)
18
- get "https://otx.alienvault.com/api/v1/indicators/domain/#{domain}/passive_dns"
19
- end
20
-
21
- private
22
-
23
- def headers
24
- { "x-otx-api-key": api_key }
25
- end
26
-
27
- def get(url)
28
- res = HTTP.get(url, headers: headers)
29
- JSON.parse(res.body.to_s)
30
- rescue HTTPError
31
- nil
32
- end
33
- end
34
- end
35
- end
36
- end