Skip to content

Commit 88716e5

Browse files
authored
Make KEV data visible on findings listing (#12785)
* add display of kev data to findings listing and filtering * kev date filter to use date widget * define labels for kev date filter * change column title for kev date * add before/after filters for kev date
1 parent b54652e commit 88716e5

2 files changed

Lines changed: 43 additions & 0 deletions

File tree

dojo/filters.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -448,6 +448,11 @@ def get_finding_filterset_fields(*, metrics=False, similar=False, filter_string_
448448
"epss_score_range",
449449
"epss_percentile",
450450
"epss_percentile_range",
451+
"known_exploited",
452+
"ransomware_used",
453+
"kev_date",
454+
"kev_before",
455+
"kev_after",
451456
])
452457

453458
if similar:
@@ -1757,6 +1762,9 @@ class FindingFilterHelper(FilterSet):
17571762
"is an upper bound. Leaving one empty will skip that bound (e.g., leaving the lower bound "
17581763
'input empty will filter only on the upper bound -- filtering on "less than or equal").'
17591764
))
1765+
kev_date = DateFilter(field_name="kev_date", lookup_expr="exact", label="Added to KEV On")
1766+
kev_before = DateFilter(field_name="kev_date", lookup_expr="lt", label="Added to KEV Before")
1767+
kev_after = DateFilter(field_name="kev_date", lookup_expr="gt", label="Added to KEV After")
17601768

17611769
o = OrderingFilter(
17621770
# tuple-mapping retains order
@@ -1773,6 +1781,9 @@ class FindingFilterHelper(FilterSet):
17731781
("service", "service"),
17741782
("epss_score", "epss_score"),
17751783
("epss_percentile", "epss_percentile"),
1784+
("known_exploited", "known_exploited"),
1785+
("ransomware_used", "ransomware_used"),
1786+
("kev_date", "kev_date"),
17761787
),
17771788
field_labels={
17781789
"numerical_severity": "Severity",
@@ -1783,6 +1794,9 @@ class FindingFilterHelper(FilterSet):
17831794
"test__engagement__product__name": "Product Name",
17841795
"epss_score": "EPSS Score",
17851796
"epss_percentile": "EPSS Percentile",
1797+
"known_exploited": "Known Exploited",
1798+
"ransomware_used": "Ransomware Used",
1799+
"kev_date": "Date added to KEV",
17861800
},
17871801
)
17881802

@@ -1794,6 +1808,9 @@ def set_date_fields(self, *args: list, **kwargs: dict):
17941808
self.form.fields["on"].widget = date_input_widget
17951809
self.form.fields["before"].widget = date_input_widget
17961810
self.form.fields["after"].widget = date_input_widget
1811+
self.form.fields["kev_date"].widget = date_input_widget
1812+
self.form.fields["kev_before"].widget = date_input_widget
1813+
self.form.fields["kev_after"].widget = date_input_widget
17971814
self.form.fields["mitigated_on"].widget = date_input_widget
17981815
self.form.fields["mitigated_before"].widget = date_input_widget
17991816
self.form.fields["mitigated_after"].widget = date_input_widget

dojo/templates/dojo/findings_list_snippet.html

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,15 @@ <h3 class="has-filters">
336336
<th scope="col">
337337
{% trans "EPSS Percentile" %}
338338
</th>
339+
<th scope="col">
340+
{% trans "Known Exploited" %}
341+
</th>
342+
<th scope="col">
343+
{% trans "Used in Ransomware" %}
344+
</th>
345+
<th scope="col">
346+
{% trans "Date Added to KEV" %}
347+
</th>
339348
<th class="nowrap" scope="col">
340349
{% if filter_name == 'Closed' %}
341350
{% comment %} The display field is translated in the function. No need to translate here as well{% endcomment %}
@@ -618,6 +627,15 @@ <h3 class="has-filters">
618627
<td class="nowrap text-right">
619628
{{ finding.epss_percentile|format_epss }}
620629
</td>
630+
<td class="nowrap text-right">
631+
{{ finding.known_exploited|yesno|capfirst }}
632+
</td>
633+
<td class="nowrap text-right">
634+
{{ finding.ransomware_used|yesno|capfirst }}
635+
</td>
636+
<td class="nowrap text-right">
637+
{{ finding.kev_date|date }}
638+
</td>
621639
{% if filter_name == 'Closed' %}
622640
<td class="nowrap" data-order="{{ finding.mitigated|date:"U" }}">
623641
{{ finding.mitigated|date }}
@@ -765,6 +783,14 @@ <h3 class="has-filters">
765783
{ "data": "cve" },
766784
{ "data": "epss_score", "type": "num", "render": percentSort },
767785
{ "data": "epss_percentile", "type": "num", "render": percentSort },
786+
{ "data": "known_exploited", },
787+
{ "data": "used_ransomware", },
788+
{ "data": "kev_date", render: function(data, type, row, meta) {
789+
if(type === 'sort') {
790+
return data && Date.parse(data)
791+
}
792+
return data;
793+
}},
768794
{ "data": "found_date", render: function (data, type, row, meta) {
769795
if(type === 'sort') {
770796
var api = new $.fn.dataTable.Api(meta.settings);

0 commit comments

Comments
 (0)