mihari 5.5.0 → 5.6.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.
- checksums.yaml +4 -4
- data/docs/analyzers/binaryedge.md +1 -1
- data/docs/analyzers/censys.md +1 -1
- data/docs/analyzers/circl.md +1 -1
- data/docs/analyzers/crtsh.md +1 -1
- data/docs/analyzers/dnstwister.md +1 -1
- data/docs/analyzers/greynoise.md +1 -1
- data/docs/analyzers/hunterhow.md +1 -1
- data/docs/analyzers/index.md +29 -15
- data/docs/analyzers/onyphe.md +1 -1
- data/docs/analyzers/otx.md +2 -2
- data/docs/analyzers/passivetotal.md +6 -2
- data/docs/analyzers/pulsedive.md +2 -2
- data/docs/analyzers/securitytrails.md +6 -2
- data/docs/analyzers/shodan.md +1 -1
- data/docs/analyzers/urlscan.md +3 -3
- data/docs/analyzers/virustotal.md +6 -2
- data/docs/analyzers/virustotal_intelligence.md +8 -4
- data/docs/analyzers/zoomeye.md +5 -0
- data/docs/emitters/hive.md +1 -1
- data/docs/emitters/slack.md +0 -5
- data/docs/enrichers/google_public_dns.md +1 -1
- data/docs/enrichers/ipinfo.md +2 -2
- data/docs/enrichers/shodan.md +4 -4
- data/docs/enrichers/whois.md +1 -1
- data/docs/rule.md +1 -4
- data/docs/usage.md +5 -2
- data/frontend/package-lock.json +3 -3
- data/frontend/src/components/ErrorMessage.vue +0 -1
- data/frontend/src/components/alert/Alerts.vue +0 -1
- data/frontend/src/components/alert/AlertsWithPagination.vue +0 -1
- data/frontend/src/components/alert/AlertsWrapper.vue +0 -6
- data/frontend/src/components/alert/Form.vue +1 -3
- data/frontend/src/components/artifact/Artifact.vue +0 -17
- data/frontend/src/components/artifact/ArtifactWrapper.vue +0 -2
- data/frontend/src/components/artifact/WhoisRecord.vue +0 -3
- data/frontend/src/components/config/ConfigsWrapper.vue +0 -2
- data/frontend/src/components/rule/EditRule.vue +0 -3
- data/frontend/src/components/rule/EditRuleWrapper.vue +0 -2
- data/frontend/src/components/rule/Form.vue +1 -3
- data/frontend/src/components/rule/NewRule.vue +0 -3
- data/frontend/src/components/rule/Rule.vue +1 -7
- data/frontend/src/components/rule/RuleWrapper.vue +0 -2
- data/frontend/src/components/rule/RulesWrapper.vue +0 -6
- data/frontend/src/swagger.yaml +254 -254
- data/lib/mihari/analyzers/base.rb +4 -41
- data/lib/mihari/analyzers/circl.rb +1 -1
- data/lib/mihari/analyzers/crtsh.rb +1 -1
- data/lib/mihari/analyzers/dnstwister.rb +1 -1
- data/lib/mihari/analyzers/otx.rb +1 -1
- data/lib/mihari/analyzers/passivetotal.rb +10 -1
- data/lib/mihari/analyzers/pulsedive.rb +2 -2
- data/lib/mihari/analyzers/rule.rb +24 -59
- data/lib/mihari/analyzers/securitytrails.rb +10 -1
- data/lib/mihari/analyzers/virustotal.rb +11 -2
- data/lib/mihari/analyzers/virustotal_intelligence.rb +16 -0
- data/lib/mihari/analyzers/zoomeye.rb +2 -2
- data/lib/mihari/base.rb +69 -0
- data/lib/mihari/cli/main.rb +36 -0
- data/lib/mihari/clients/base.rb +2 -2
- data/lib/mihari/clients/binaryedge.rb +3 -5
- data/lib/mihari/clients/censys.rb +3 -3
- data/lib/mihari/clients/circl.rb +5 -4
- data/lib/mihari/clients/crtsh.rb +3 -2
- data/lib/mihari/clients/dnstwister.rb +3 -2
- data/lib/mihari/clients/greynoise.rb +2 -2
- data/lib/mihari/clients/hunterhow.rb +2 -2
- data/lib/mihari/clients/misp.rb +1 -1
- data/lib/mihari/clients/onyphe.rb +2 -2
- data/lib/mihari/clients/otx.rb +4 -3
- data/lib/mihari/clients/passivetotal.rb +5 -4
- data/lib/mihari/clients/publsedive.rb +4 -3
- data/lib/mihari/clients/securitytrails.rb +5 -3
- data/lib/mihari/clients/shodan.rb +2 -2
- data/lib/mihari/clients/the_hive.rb +1 -1
- data/lib/mihari/clients/urlscan.rb +4 -4
- data/lib/mihari/clients/virustotal.rb +2 -2
- data/lib/mihari/clients/zoomeye.rb +2 -2
- data/lib/mihari/commands/alert.rb +6 -33
- data/lib/mihari/commands/rule.rb +7 -12
- data/lib/mihari/commands/search.rb +10 -38
- data/lib/mihari/constants.rb +3 -3
- data/lib/mihari/emitters/base.rb +3 -33
- data/lib/mihari/emitters/database.rb +1 -1
- data/lib/mihari/enrichers/base.rb +2 -33
- data/lib/mihari/enrichers/google_public_dns.rb +9 -0
- data/lib/mihari/schemas/analyzer.rb +24 -24
- data/lib/mihari/schemas/emitter.rb +6 -13
- data/lib/mihari/schemas/enricher.rb +4 -11
- data/lib/mihari/schemas/options.rb +27 -0
- data/lib/mihari/schemas/rule.rb +2 -2
- data/lib/mihari/services/alert_runner.rb +1 -1
- data/lib/mihari/services/rule_runner.rb +1 -11
- data/lib/mihari/types.rb +1 -14
- data/lib/mihari/version.rb +1 -1
- data/lib/mihari/web/public/assets/{index-33165282.css → index-56fc2187.css} +1 -1
- data/lib/mihari/web/public/assets/{index-b5d817a3.js → index-9cc489e6.js} +2 -2
- data/lib/mihari/web/public/index.html +2 -2
- data/lib/mihari.rb +67 -37
- data/mihari.gemspec +1 -0
- data/mkdocs.yml +0 -3
- metadata +20 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d661d9c83ba421776c4ca19e4a6fe19b980bbcbe86fe5e7628c1c3a15205e8a9
|
|
4
|
+
data.tar.gz: d3a26407b8f8146b86c70cbc443865ff895390ad6f32816f5873464c3f6b4e9d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 35a3783578b46a62dd3eafada97f27ad1701df53ad2b53179155daf4e9545feca0ba912d35c9ca9e8ccaf1f5ce5a15760850d723d55af51f80388b14fc41d95d
|
|
7
|
+
data.tar.gz: 8f7b3a5624c0ea5b677b32983e21ca731afb396c1904737b923c2b0082c7d1e3cac141e655eeae441150d01d4a26cd83b50665685211118efe9c4bfad512eeef
|
data/docs/analyzers/censys.md
CHANGED
data/docs/analyzers/circl.md
CHANGED
data/docs/analyzers/crtsh.md
CHANGED
data/docs/analyzers/greynoise.md
CHANGED
data/docs/analyzers/hunterhow.md
CHANGED
data/docs/analyzers/index.md
CHANGED
|
@@ -26,29 +26,28 @@ All the analyzers can have optional `options`.
|
|
|
26
26
|
analyzer: ...
|
|
27
27
|
query: ...
|
|
28
28
|
options:
|
|
29
|
-
timeout: ...
|
|
30
|
-
pagination_interval: ...
|
|
31
|
-
pagination_limit: ...
|
|
32
29
|
retry_times: ...
|
|
33
30
|
retry_interval: ...
|
|
34
31
|
retry_exponential_backoff: ...
|
|
32
|
+
timeout: ...
|
|
35
33
|
ignore_error: ...
|
|
36
34
|
```
|
|
37
35
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
`timeout` (`integer`) is an HTTP timeout in seconds. Optional.
|
|
41
|
-
|
|
42
|
-
### Pagination Interval
|
|
43
|
-
|
|
44
|
-
`pagination_interval` (`integer`) is an interval in seconds between pagination. Optional. Defaults to 0.
|
|
36
|
+
Also the following analyzers can have pagination options.
|
|
45
37
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
38
|
+
- [Shodan](./shodan.md)
|
|
39
|
+
- [BinaryEdge](./binaryedge.md)
|
|
40
|
+
- [Censys](./censys.md)
|
|
41
|
+
- [ZoomEye](./zoomeye.md)
|
|
42
|
+
- [urlscan.io](./urlscan.md)
|
|
43
|
+
- [VirusTotal Intelligence](./virustotal_intelligence.md)
|
|
44
|
+
- [HunterHow](./hunterhow.md)
|
|
49
45
|
|
|
50
|
-
|
|
51
|
-
|
|
46
|
+
```yaml
|
|
47
|
+
options:
|
|
48
|
+
pagination_interval: ...
|
|
49
|
+
pagination_limit: ...
|
|
50
|
+
```
|
|
52
51
|
|
|
53
52
|
### Retry Times
|
|
54
53
|
|
|
@@ -62,6 +61,10 @@ In the worst case, if something wrong with Mihari or a service, Mihari can drain
|
|
|
62
61
|
|
|
63
62
|
`retry_exponential_backoff` (`bool`) controls whether to do exponential backoff. Optional. Defaults to `true`.
|
|
64
63
|
|
|
64
|
+
### Timeout
|
|
65
|
+
|
|
66
|
+
`timeout` (`integer`) is an HTTP timeout in seconds. Optional.
|
|
67
|
+
|
|
65
68
|
### Ignore Error
|
|
66
69
|
|
|
67
70
|
`ignore_error` (`bool`) controls whether to ignore an error or not. Optional. Defaults to `false`.
|
|
@@ -87,3 +90,14 @@ queries:
|
|
|
87
90
|
- analyzer: censys
|
|
88
91
|
query: ip:8.8.8.8
|
|
89
92
|
```
|
|
93
|
+
|
|
94
|
+
### Pagination Interval
|
|
95
|
+
|
|
96
|
+
`pagination_interval` (`integer`) is an interval in seconds between pagination. Optional. Defaults to 0.
|
|
97
|
+
|
|
98
|
+
### Pagination Limit
|
|
99
|
+
|
|
100
|
+
`pagination_limit` (`integer`) is an limit for pagination. Optional. Defaults to 100.
|
|
101
|
+
|
|
102
|
+
In the worst case, if something wrong with Mihari or a service, Mihari can drain API quota by doing pagination forever.
|
|
103
|
+
`pagination_limit` is a safety valve for that. A number of pagination is limited as `pagination_limit` times.
|
data/docs/analyzers/onyphe.md
CHANGED
data/docs/analyzers/otx.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
tags:
|
|
3
|
-
- IP
|
|
4
|
-
- Domain
|
|
3
|
+
- Artifact:IP
|
|
4
|
+
- Artifact:Domain
|
|
5
5
|
- Passive DNS
|
|
6
6
|
- Passive SSL
|
|
7
7
|
- Reverse Whois
|
|
@@ -31,6 +31,10 @@ api_key: ...
|
|
|
31
31
|
|
|
32
32
|
## Components
|
|
33
33
|
|
|
34
|
+
### Analyzer
|
|
35
|
+
|
|
36
|
+
`analyzer` (`string`) should be either of `passivetotal` and `pt`.
|
|
37
|
+
|
|
34
38
|
### Query
|
|
35
39
|
|
|
36
40
|
`query` (`string`) is a passive DNS/SSL or reverse whois search query. Domain, IP address, mail or SHA1 certificate fingerprint.
|
data/docs/analyzers/pulsedive.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
tags:
|
|
3
|
-
- IP
|
|
4
|
-
- Domain
|
|
3
|
+
- Artifact:IP
|
|
4
|
+
- Artifact:Domain
|
|
5
5
|
- Passive DNS
|
|
6
6
|
- Reverse Whois
|
|
7
7
|
---
|
|
@@ -28,6 +28,10 @@ api_key: ...
|
|
|
28
28
|
|
|
29
29
|
## Components
|
|
30
30
|
|
|
31
|
+
### Analyzer
|
|
32
|
+
|
|
33
|
+
`analyzer` (`string`) should be either of `securitytrails` and `st`.
|
|
34
|
+
|
|
31
35
|
### Query
|
|
32
36
|
|
|
33
37
|
`query` (`string`) is a passive DNS search/reverse whois query. Domain, IP address or mail.
|
data/docs/analyzers/shodan.md
CHANGED
data/docs/analyzers/urlscan.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
tags:
|
|
3
|
-
- IP
|
|
4
|
-
- Domain
|
|
3
|
+
- Artifact:IP
|
|
4
|
+
- Artifact:Domain
|
|
5
5
|
- Passive DNS
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -30,6 +30,10 @@ api_key: ...
|
|
|
30
30
|
|
|
31
31
|
## Components
|
|
32
32
|
|
|
33
|
+
### Analyzer
|
|
34
|
+
|
|
35
|
+
`analyzer` (`string`) should be either of `virustoal` and `vt`.
|
|
36
|
+
|
|
33
37
|
### Query
|
|
34
38
|
|
|
35
39
|
`query` (`string`) is a passive DNS search query. Domain or IP address.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
tags:
|
|
3
|
-
- IP
|
|
4
|
-
- Domain
|
|
5
|
-
- URL
|
|
6
|
-
- Hash
|
|
3
|
+
- Artifact:IP
|
|
4
|
+
- Artifact:Domain
|
|
5
|
+
- Artifact:URL
|
|
6
|
+
- Artifact:Hash
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# VirusTotal Intelligence
|
|
@@ -20,6 +20,10 @@ api_key: ...
|
|
|
20
20
|
|
|
21
21
|
## Components
|
|
22
22
|
|
|
23
|
+
### Analyzer
|
|
24
|
+
|
|
25
|
+
`analyzer` (`string`) should be either of `virustotal_intelligence` and ``.
|
|
26
|
+
|
|
23
27
|
### Query
|
|
24
28
|
|
|
25
29
|
`query` (`string`) is a search query.
|
data/docs/analyzers/zoomeye.md
CHANGED
data/docs/emitters/hive.md
CHANGED
data/docs/emitters/slack.md
CHANGED
|
@@ -10,11 +10,6 @@ webhook_url: ...
|
|
|
10
10
|
channel: ...
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
| Name | Type | Required? | Default | Desc. |
|
|
14
|
-
| ----------- | ------ | --------- | ------------------------------- | ----------------- |
|
|
15
|
-
| webhook_url | String | No | ENV[SLACK_WEBHOOK_URL] | Slack webhook URL |
|
|
16
|
-
| channel | String | No | ENV[SLACK_CHANNEL] / `#general` | Slack channel |
|
|
17
|
-
|
|
18
13
|
## Components
|
|
19
14
|
|
|
20
15
|
### Webhook URL
|
data/docs/enrichers/ipinfo.md
CHANGED
data/docs/enrichers/shodan.md
CHANGED
data/docs/enrichers/whois.md
CHANGED
data/docs/rule.md
CHANGED
|
@@ -54,7 +54,7 @@ emitters:
|
|
|
54
54
|
- emitter: database
|
|
55
55
|
- emitter: misp
|
|
56
56
|
- emitter: slack
|
|
57
|
-
- emitter:
|
|
57
|
+
- emitter: thehive
|
|
58
58
|
data_types:
|
|
59
59
|
- hash
|
|
60
60
|
- ip
|
|
@@ -124,9 +124,6 @@ See [Emitters](./emitters/index.md) to know details of each emitter.
|
|
|
124
124
|
Defaults to:
|
|
125
125
|
|
|
126
126
|
- `database`
|
|
127
|
-
- `misp`
|
|
128
|
-
- `slack`
|
|
129
|
-
- `the_hive`
|
|
130
127
|
|
|
131
128
|
### Data Types
|
|
132
129
|
|
data/docs/usage.md
CHANGED
|
@@ -8,8 +8,11 @@ Commands:
|
|
|
8
8
|
mihari db # Sub commands for DB
|
|
9
9
|
mihari help [COMMAND] # Describe available commands or one specific command
|
|
10
10
|
mihari rule # Sub commands for rule
|
|
11
|
-
mihari search [PATH_OR_ID] # Search by a rule
|
|
11
|
+
mihari search [PATH_OR_ID] # Search by a rule (Outputs null if there is no new finding)
|
|
12
12
|
mihari web # Launch the web app
|
|
13
|
+
|
|
14
|
+
Options:
|
|
15
|
+
-d, [--debug], [--no-debug] # Sets up debug mode
|
|
13
16
|
```
|
|
14
17
|
|
|
15
18
|
## `mihari db`
|
|
@@ -43,7 +46,7 @@ Mihari asks whether really you want to update a rule if there is a diff by defau
|
|
|
43
46
|
|
|
44
47
|
```bash
|
|
45
48
|
$ mihari search /path/to/rule.yml
|
|
46
|
-
There is a diff in the rule
|
|
49
|
+
There is a diff in the rule. Are you sure you want to overwrite the rule? (y/n)
|
|
47
50
|
```
|
|
48
51
|
|
|
49
52
|
It can be suppressed by providing `-f`.
|
data/frontend/package-lock.json
CHANGED
|
@@ -6925,9 +6925,9 @@
|
|
|
6925
6925
|
}
|
|
6926
6926
|
},
|
|
6927
6927
|
"node_modules/vue-template-compiler": {
|
|
6928
|
-
"version": "2.7.
|
|
6929
|
-
"resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.
|
|
6930
|
-
"integrity": "sha512-
|
|
6928
|
+
"version": "2.7.15",
|
|
6929
|
+
"resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.15.tgz",
|
|
6930
|
+
"integrity": "sha512-yQxjxMptBL7UAog00O8sANud99C6wJF+7kgbcwqkvA38vCGF7HWE66w0ZFnS/kX5gSoJr/PQ4/oS3Ne2pW37Og==",
|
|
6931
6931
|
"dev": true,
|
|
6932
6932
|
"dependencies": {
|
|
6933
6933
|
"de-indent": "^1.0.2",
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
<p v-if="error.response.data?.message">{{ error.response.data.message }}</p>
|
|
4
4
|
<p v-else>{{ error }}</p>
|
|
5
5
|
</div>
|
|
6
|
-
|
|
7
6
|
<article class="message" v-if="error.response.data?.details">
|
|
8
7
|
<div class="message-body">
|
|
9
8
|
<VueJsonPretty :data="error.response.data.details"></VueJsonPretty>
|
|
@@ -7,9 +7,7 @@
|
|
|
7
7
|
:page="page"
|
|
8
8
|
:tag="tag"
|
|
9
9
|
></FormComponent>
|
|
10
|
-
|
|
11
10
|
<hr />
|
|
12
|
-
|
|
13
11
|
<div class="columns">
|
|
14
12
|
<div class="column">
|
|
15
13
|
<div class="field is-grouped is-grouped-centered">
|
|
@@ -25,14 +23,10 @@
|
|
|
25
23
|
</div>
|
|
26
24
|
</div>
|
|
27
25
|
</div>
|
|
28
|
-
|
|
29
26
|
<div v-if="getAlertsTask.performCount > 0">
|
|
30
27
|
<hr />
|
|
31
|
-
|
|
32
28
|
<Loading v-if="getAlertsTask.isRunning"></Loading>
|
|
33
|
-
|
|
34
29
|
<ErrorMessage v-if="getAlertsTask.isError" :error="getAlertsTask.last?.error"></ErrorMessage>
|
|
35
|
-
|
|
36
30
|
<AlertsComponent
|
|
37
31
|
:alerts="getAlertsTask.last.value"
|
|
38
32
|
v-if="getAlertsTask.last?.value"
|
|
@@ -36,7 +36,6 @@
|
|
|
36
36
|
</div>
|
|
37
37
|
</div>
|
|
38
38
|
</div>
|
|
39
|
-
|
|
40
39
|
<div class="columns">
|
|
41
40
|
<div class="column">
|
|
42
41
|
<div class="field is-horizontal">
|
|
@@ -61,7 +60,6 @@
|
|
|
61
60
|
</div>
|
|
62
61
|
<div class="column"></div>
|
|
63
62
|
</div>
|
|
64
|
-
|
|
65
63
|
<div class="columns">
|
|
66
64
|
<div class="column">
|
|
67
65
|
<div class="field is-horizontal">
|
|
@@ -95,7 +93,7 @@
|
|
|
95
93
|
</template>
|
|
96
94
|
|
|
97
95
|
<script lang="ts">
|
|
98
|
-
import { defineComponent, type PropType, ref, toRef,watch } from "vue"
|
|
96
|
+
import { defineComponent, type PropType, ref, toRef, watch } from "vue"
|
|
99
97
|
import { useRoute } from "vue-router"
|
|
100
98
|
|
|
101
99
|
import type { AlertSearchParams } from "@/types"
|
|
@@ -4,9 +4,7 @@
|
|
|
4
4
|
<Loading></Loading>
|
|
5
5
|
<hr />
|
|
6
6
|
</div>
|
|
7
|
-
|
|
8
7
|
<h2 class="is-size-2 mb-4">Artifact</h2>
|
|
9
|
-
|
|
10
8
|
<div class="columns">
|
|
11
9
|
<div
|
|
12
10
|
class="column is-half"
|
|
@@ -21,7 +19,6 @@
|
|
|
21
19
|
</h4>
|
|
22
20
|
<iframe class="mb-4" :src="googleMapSrc" width="100%" height="240px"></iframe>
|
|
23
21
|
</div>
|
|
24
|
-
|
|
25
22
|
<div v-if="urlscanLiveshotSrc">
|
|
26
23
|
<h4 class="is-size-4 mb-2">
|
|
27
24
|
Live screenshot
|
|
@@ -30,11 +27,9 @@
|
|
|
30
27
|
<img :src="urlscanLiveshotSrc" class="liveshot" alt="liveshot" />
|
|
31
28
|
</div>
|
|
32
29
|
</div>
|
|
33
|
-
|
|
34
30
|
<div class="column">
|
|
35
31
|
<div class="block">
|
|
36
32
|
<h4 class="is-size-4 mb-2">Information</h4>
|
|
37
|
-
|
|
38
33
|
<table class="table is-fullwidth is-completely-borderless">
|
|
39
34
|
<tr>
|
|
40
35
|
<th>ID</th>
|
|
@@ -47,7 +42,6 @@
|
|
|
47
42
|
<font-awesome-icon icon="lightbulb"></font-awesome-icon>
|
|
48
43
|
</span>
|
|
49
44
|
</button>
|
|
50
|
-
|
|
51
45
|
<button
|
|
52
46
|
class="button is-info is-light is-small"
|
|
53
47
|
@click="flipShowMetadata"
|
|
@@ -58,7 +52,6 @@
|
|
|
58
52
|
<font-awesome-icon icon="info-circle"></font-awesome-icon>
|
|
59
53
|
</span>
|
|
60
54
|
</button>
|
|
61
|
-
|
|
62
55
|
<button class="button is-light is-small" @click="deleteArtifact">
|
|
63
56
|
<span>Delete</span>
|
|
64
57
|
<span class="icon is-small">
|
|
@@ -86,7 +79,6 @@
|
|
|
86
79
|
</tr>
|
|
87
80
|
</table>
|
|
88
81
|
</div>
|
|
89
|
-
|
|
90
82
|
<div v-if="artifact.metadata && showMetadata">
|
|
91
83
|
<div class="modal is-active">
|
|
92
84
|
<div class="modal-background" @click="flipShowMetadata"></div>
|
|
@@ -103,45 +95,36 @@
|
|
|
103
95
|
</div>
|
|
104
96
|
</div>
|
|
105
97
|
</div>
|
|
106
|
-
|
|
107
98
|
<div class="block" v-if="artifact.autonomousSystem">
|
|
108
99
|
<h4 class="is-size-4 mb-2">AS</h4>
|
|
109
100
|
<AS :autonomousSystem="artifact.autonomousSystem"></AS>
|
|
110
101
|
</div>
|
|
111
|
-
|
|
112
102
|
<div class="block" v-if="artifact.reverseDnsNames">
|
|
113
103
|
<h4 class="is-size-4 mb-2">Reverse DNS</h4>
|
|
114
104
|
<ReverseDnsNames :reverseDnsNames="artifact.reverseDnsNames"></ReverseDnsNames>
|
|
115
105
|
</div>
|
|
116
|
-
|
|
117
106
|
<div class="block" v-if="artifact.dnsRecords">
|
|
118
107
|
<h4 class="is-size-4 mb-2">DNS records</h4>
|
|
119
108
|
<DnsRecords :dnsRecords="artifact.dnsRecords"></DnsRecords>
|
|
120
109
|
</div>
|
|
121
|
-
|
|
122
110
|
<div class="block" v-if="artifact.cpes">
|
|
123
111
|
<h4 class="is-size-4 mb-2">CPEs</h4>
|
|
124
112
|
<CPEs :cpes="artifact.cpes"></CPEs>
|
|
125
113
|
</div>
|
|
126
|
-
|
|
127
114
|
<div class="block" v-if="artifact.ports">
|
|
128
115
|
<h4 class="is-size-4 mb-2">Ports</h4>
|
|
129
116
|
<Ports :ports="artifact.ports"></Ports>
|
|
130
117
|
</div>
|
|
131
|
-
|
|
132
118
|
<div class="block" v-if="artifact.whoisRecord">
|
|
133
119
|
<h4 class="is-size-4 mb-2">Whois record</h4>
|
|
134
120
|
<WhoisRecord :whoisRecord="artifact.whoisRecord"></WhoisRecord>
|
|
135
121
|
</div>
|
|
136
|
-
|
|
137
122
|
<div class="block">
|
|
138
123
|
<h4 class="is-size-4 mb-2">Links</h4>
|
|
139
124
|
<Links :data="artifact.data" :type="artifact.dataType"></Links>
|
|
140
125
|
</div>
|
|
141
126
|
</div>
|
|
142
|
-
|
|
143
127
|
<hr />
|
|
144
|
-
|
|
145
128
|
<div class="column">
|
|
146
129
|
<h2 class="is-size-2 mb-4">Related alerts</h2>
|
|
147
130
|
<Alerts :artifact="artifact.data"></Alerts>
|
|
@@ -6,21 +6,18 @@
|
|
|
6
6
|
<span class="tag is-light">{{ whoisRecord.registrar?.name || "N/A" }}</span>
|
|
7
7
|
</div>
|
|
8
8
|
</div>
|
|
9
|
-
|
|
10
9
|
<div class="control">
|
|
11
10
|
<div class="tags has-addons are-medium">
|
|
12
11
|
<span class="tag is-dark">Created on</span>
|
|
13
12
|
<span class="tag is-light">{{ whoisRecord.createdOn || "N/A" }}</span>
|
|
14
13
|
</div>
|
|
15
14
|
</div>
|
|
16
|
-
|
|
17
15
|
<div class="control">
|
|
18
16
|
<div class="tags has-addons are-medium">
|
|
19
17
|
<span class="tag is-dark">Updated on</span>
|
|
20
18
|
<span class="tag is-light">{{ whoisRecord.updatedOn || "N/A" }}</span>
|
|
21
19
|
</div>
|
|
22
20
|
</div>
|
|
23
|
-
|
|
24
21
|
<div class="control">
|
|
25
22
|
<div class="tags has-addons are-medium">
|
|
26
23
|
<span class="tag is-dark">Exipres on</span>
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<Loading v-if="getConfigsTask.isRunning"></Loading>
|
|
3
|
-
|
|
4
3
|
<ErrorMessage v-if="getConfigsTask.isError" :error="getConfigsTask.last?.error"></ErrorMessage>
|
|
5
|
-
|
|
6
4
|
<Configs :configs="getConfigsTask.last.value" v-if="getConfigsTask.last?.value"></Configs>
|
|
7
5
|
</template>
|
|
8
6
|
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="column">
|
|
3
3
|
<h2 class="is-size-2 mb-4">Edit rule: {{ rule.id }}</h2>
|
|
4
|
-
|
|
5
4
|
<InputForm v-model:yaml="yaml" @update-yaml="updateYAML"></InputForm>
|
|
6
|
-
|
|
7
5
|
<div class="field is-grouped is-grouped-centered">
|
|
8
6
|
<p class="control">
|
|
9
7
|
<a class="button is-primary" @click="edit">
|
|
@@ -14,7 +12,6 @@
|
|
|
14
12
|
</a>
|
|
15
13
|
</p>
|
|
16
14
|
</div>
|
|
17
|
-
|
|
18
15
|
<div v-if="updateRuleTask.last?.error">
|
|
19
16
|
<hr />
|
|
20
17
|
<ErrorMessage :error="updateRuleTask.last?.error"></ErrorMessage>
|