mirror of
https://github.com/valitydev/wazuh-kibana-app.git
synced 2024-11-07 02:15:24 +00:00
Merge pull request #278 from wazuh/3.2-dev-design
New metrics, fixed visualizations, new design
This commit is contained in:
commit
16aa78555f
@ -26,6 +26,155 @@ function ($scope, $location, $q, $rootScope, appState, genericReq, apiReq, Agent
|
||||
$rootScope.currentImplicitFilter = "";
|
||||
}
|
||||
|
||||
|
||||
// Metrics Audit
|
||||
let watcher8, watcher9, watcher10, watcher11;
|
||||
|
||||
$scope.auditNewFiles = '';
|
||||
$scope.auditReadFiles = '';
|
||||
$scope.auditModifiedFiles = '';
|
||||
$scope.auditRemovedFiles = '';
|
||||
|
||||
const assignWatcher8 = () => {
|
||||
watcher8 = $scope.$watch(() => {
|
||||
return $('#Wazuh-App-Agents-Audit-New-files-metric > visualize > visualization > div > div > div > div > div.metric-value.ng-binding > span').text();
|
||||
}, (newVal, oldVal) => {
|
||||
if (newVal !== oldVal) {
|
||||
$scope.auditNewFiles = newVal;
|
||||
if (!$scope.$$phase) $scope.$digest();
|
||||
}
|
||||
});
|
||||
}
|
||||
const assignWatcher9 = () => {
|
||||
watcher9 = $scope.$watch(() => {
|
||||
return $('#Wazuh-App-Agents-Audit-Read-files-metric > visualize > visualization > div > div > div > div > div.metric-value.ng-binding > span').text();
|
||||
}, (newVal, oldVal) => {
|
||||
if (newVal !== oldVal) {
|
||||
$scope.auditReadFiles = newVal;
|
||||
if (!$scope.$$phase) $scope.$digest();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const assignWatcher10 = () => {
|
||||
watcher10 = $scope.$watch(() => {
|
||||
return $('#Wazuh-App-Agents-Audit-Modified-files-metric > visualize > visualization > div > div > div > div > div.metric-value.ng-binding > span').text();
|
||||
}, (newVal, oldVal) => {
|
||||
if (newVal !== oldVal) {
|
||||
$scope.auditModifiedFiles = newVal;
|
||||
if (!$scope.$$phase) $scope.$digest();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const assignWatcher11 = () => {
|
||||
watcher11 = $scope.$watch(() => {
|
||||
return $('#Wazuh-App-Agents-Audit-Removed-files-metric > visualize > visualization > div > div > div > div > div.metric-value.ng-binding > span').text();
|
||||
}, (newVal, oldVal) => {
|
||||
if (newVal !== oldVal) {
|
||||
$scope.auditRemovedFiles = newVal;
|
||||
if (!$scope.$$phase) $scope.$digest();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// Metrics Vulnerability Detector
|
||||
let watcher12, watcher13, watcher14, watcher15;
|
||||
|
||||
$scope.vulnCritical = '';
|
||||
$scope.vulnHigh = '';
|
||||
$scope.vulnMedium = '';
|
||||
$scope.vulnLow = '';
|
||||
|
||||
const assignWatcher12 = () => {
|
||||
watcher12 = $scope.$watch(() => {
|
||||
return $('#Wazuh-App-Overview-VULS-Metric-Critical-severity > visualize > visualization > div > div > div > div > div.metric-value.ng-binding > span').text();
|
||||
}, (newVal, oldVal) => {
|
||||
if (newVal !== oldVal) {
|
||||
$scope.vulnCritical = newVal;
|
||||
if (!$scope.$$phase) $scope.$digest();
|
||||
}
|
||||
});
|
||||
}
|
||||
const assignWatcher13 = () => {
|
||||
watcher13 = $scope.$watch(() => {
|
||||
return $('#Wazuh-App-Overview-VULS-Metric-High-severity > visualize > visualization > div > div > div > div > div.metric-value.ng-binding > span').text();
|
||||
}, (newVal, oldVal) => {
|
||||
if (newVal !== oldVal) {
|
||||
$scope.vulnHigh = newVal;
|
||||
if (!$scope.$$phase) $scope.$digest();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const assignWatcher14 = () => {
|
||||
watcher14 = $scope.$watch(() => {
|
||||
return $('#Wazuh-App-Overview-VULS-Metric-Medium-severity > visualize > visualization > div > div > div > div > div.metric-value.ng-binding > span').text();
|
||||
}, (newVal, oldVal) => {
|
||||
if (newVal !== oldVal) {
|
||||
$scope.vulnMedium = newVal;
|
||||
if (!$scope.$$phase) $scope.$digest();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const assignWatcher15 = () => {
|
||||
watcher15 = $scope.$watch(() => {
|
||||
return $('#Wazuh-App-Overview-VULS-Metric-Low-severity > visualize > visualization > div > div > div > div > div.metric-value.ng-binding > span').text();
|
||||
}, (newVal, oldVal) => {
|
||||
if (newVal !== oldVal) {
|
||||
$scope.vulnLow = newVal;
|
||||
if (!$scope.$$phase) $scope.$digest();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
const assignAuditMetrics = () => {
|
||||
assignWatcher8();
|
||||
assignWatcher9();
|
||||
assignWatcher10();
|
||||
assignWatcher11();
|
||||
}
|
||||
|
||||
const destroyAuditMetrics = () => {
|
||||
watcher8();
|
||||
watcher9();
|
||||
watcher10();
|
||||
watcher11();
|
||||
watcher8 = null;
|
||||
watcher9 = null;
|
||||
watcher10 = null;
|
||||
watcher11 = null;
|
||||
}
|
||||
|
||||
const assignVulnMetrics = () => {
|
||||
assignWatcher12();
|
||||
assignWatcher13();
|
||||
assignWatcher14();
|
||||
assignWatcher15();
|
||||
}
|
||||
|
||||
const destroyVulnMetrics = () => {
|
||||
watcher12();
|
||||
watcher13();
|
||||
watcher14();
|
||||
watcher15();
|
||||
watcher12 = null;
|
||||
watcher13 = null;
|
||||
watcher14 = null;
|
||||
watcher15 = null;
|
||||
}
|
||||
|
||||
if ($scope.tab === 'audit' && $scope.tabView === 'panels' && !watcher8) {
|
||||
assignAuditMetrics();
|
||||
}
|
||||
|
||||
if ($scope.tab === 'vuls' && $scope.tabView === 'panels' && !watcher12) {
|
||||
assignVulnMetrics();
|
||||
}
|
||||
|
||||
$rootScope.tabVisualizations = {
|
||||
general : 7,
|
||||
fim : 8,
|
||||
@ -51,11 +200,37 @@ function ($scope, $location, $q, $rootScope, appState, genericReq, apiReq, Agent
|
||||
};
|
||||
|
||||
// Switch subtab
|
||||
$scope.switchSubtab = subtab => $scope.tabView = subtab;
|
||||
$scope.switchSubtab = subtab => {
|
||||
$scope.tabView = subtab;
|
||||
if($scope.tab === 'audit' && subtab === 'panels' && !watcher8){
|
||||
assignAuditMetrics();
|
||||
} else if(watcher8) {
|
||||
destroyAuditMetrics();
|
||||
}
|
||||
|
||||
|
||||
if($scope.tab === 'vuls' && subtab === 'panels' && !watcher12){
|
||||
assignVulnMetrics();
|
||||
} else if(watcher8) {
|
||||
destroyVulnMetrics();
|
||||
}
|
||||
}
|
||||
$scope.switchTab = tab => {
|
||||
|
||||
if($scope.tab === tab) return;
|
||||
|
||||
if(tab === 'audit' && $scope.tabView === 'panels' && !watcher8){
|
||||
assignAuditMetrics();
|
||||
} else if(watcher8) {
|
||||
destroyAuditMetrics();
|
||||
}
|
||||
|
||||
if(tab === 'vuls' && $scope.tabView === 'panels' && !watcher12){
|
||||
assignVulnMetrics();
|
||||
} else if(watcher8) {
|
||||
destroyVulnMetrics();
|
||||
}
|
||||
|
||||
if($rootScope.ownHandlers){
|
||||
for(let h of $rootScope.ownHandlers){
|
||||
h._scope.$destroy();
|
||||
@ -233,6 +408,8 @@ function ($scope, $location, $q, $rootScope, appState, genericReq, apiReq, Agent
|
||||
h._scope.$destroy();
|
||||
}
|
||||
}
|
||||
if(watcher8) destroyAuditMetrics();
|
||||
if(watcher12) destroyVulnMetrics();
|
||||
$rootScope.ownHandlers = [];
|
||||
});
|
||||
|
||||
|
@ -1,9 +1,203 @@
|
||||
let app = require('ui/modules').get('app/wazuh', []);
|
||||
const app = require('ui/modules').get('app/wazuh', []);
|
||||
import $ from 'jquery';
|
||||
//
|
||||
|
||||
app.controller('overviewController', function ($scope, $location, $rootScope, appState, genericReq, errorHandler) {
|
||||
$rootScope.page = 'overview';
|
||||
$scope.extensions = appState.getExtensions().extensions;
|
||||
|
||||
// Metrics General
|
||||
let watcher1, watcher2, watcher3, watcher4;
|
||||
|
||||
$scope.totalAlerts = '';
|
||||
$scope.level12 = '';
|
||||
$scope.authFailure = '';
|
||||
$scope.authSuccess = '';
|
||||
const assignWatcher1 = () => {
|
||||
watcher1 = $scope.$watch(() => {
|
||||
return $('#Wazuh-App-Overview-General-Metric-alerts > visualize > visualization > div > div > div > div > div.metric-value.ng-binding > span').text();
|
||||
}, (newVal, oldVal) => {
|
||||
if (newVal !== oldVal) {
|
||||
$scope.totalAlerts = newVal;
|
||||
if (!$scope.$$phase) $scope.$digest();
|
||||
}
|
||||
});
|
||||
}
|
||||
const assignWatcher2 = () => {
|
||||
watcher2 = $scope.$watch(() => {
|
||||
return $('#Wazuh-App-Overview-General-Level-12-alerts > visualize > visualization > div > div > div > div > div.metric-value.ng-binding > span').text();
|
||||
}, (newVal, oldVal) => {
|
||||
if (newVal !== oldVal) {
|
||||
$scope.level12 = newVal;
|
||||
if (!$scope.$$phase) $scope.$digest();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const assignWatcher3 = () => {
|
||||
watcher3 = $scope.$watch(() => {
|
||||
return $('#Wazuh-App-Overview-General-Authentication-failure > visualize > visualization > div > div > div > div > div.metric-value.ng-binding > span').text();
|
||||
}, (newVal, oldVal) => {
|
||||
if (newVal !== oldVal) {
|
||||
$scope.authFailure = newVal;
|
||||
if (!$scope.$$phase) $scope.$digest();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const assignWatcher4 = () => {
|
||||
watcher4 = $scope.$watch(() => {
|
||||
return $('#Wazuh-App-Overview-General-Authentication-success > visualize > visualization > div > div > div > div > div.metric-value.ng-binding > span').text();
|
||||
}, (newVal, oldVal) => {
|
||||
if (newVal !== oldVal) {
|
||||
$scope.authSuccess = newVal;
|
||||
if (!$scope.$$phase) $scope.$digest();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Metrics FIM
|
||||
let watcher5, watcher6, watcher7;
|
||||
|
||||
$scope.fimAdded = '';
|
||||
$scope.fimModified = '';
|
||||
$scope.fimDeleted = '';
|
||||
|
||||
const assignWatcher5 = () => {
|
||||
watcher5 = $scope.$watch(() => {
|
||||
return $('#Wazuh-App-Overview-FIM-Added > visualize > visualization > div > div > div > div > div.metric-value.ng-binding > span').text();
|
||||
}, (newVal, oldVal) => {
|
||||
if (newVal !== oldVal) {
|
||||
$scope.fimAdded = newVal;
|
||||
if (!$scope.$$phase) $scope.$digest();
|
||||
}
|
||||
});
|
||||
}
|
||||
const assignWatcher6 = () => {
|
||||
watcher6 = $scope.$watch(() => {
|
||||
return $('#Wazuh-App-Overview-FIM-Modified > visualize > visualization > div > div > div > div > div.metric-value.ng-binding > span').text();
|
||||
}, (newVal, oldVal) => {
|
||||
if (newVal !== oldVal) {
|
||||
$scope.fimModified = newVal;
|
||||
if (!$scope.$$phase) $scope.$digest();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const assignWatcher7 = () => {
|
||||
watcher7 = $scope.$watch(() => {
|
||||
return $('#Wazuh-App-Overview-FIM-Deleted > visualize > visualization > div > div > div > div > div.metric-value.ng-binding > span').text();
|
||||
}, (newVal, oldVal) => {
|
||||
if (newVal !== oldVal) {
|
||||
$scope.fimDeleted = newVal;
|
||||
if (!$scope.$$phase) $scope.$digest();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Metrics Audit
|
||||
let watcher8, watcher9, watcher10, watcher11;
|
||||
|
||||
$scope.auditNewFiles = '';
|
||||
$scope.auditReadFiles = '';
|
||||
$scope.auditModifiedFiles = '';
|
||||
$scope.auditRemovedFiles = '';
|
||||
|
||||
const assignWatcher8 = () => {
|
||||
watcher8 = $scope.$watch(() => {
|
||||
return $('#Wazuh-App-Overview-Audit-New-files > visualize > visualization > div > div > div > div > div.metric-value.ng-binding > span').text();
|
||||
}, (newVal, oldVal) => {
|
||||
if (newVal !== oldVal) {
|
||||
$scope.auditNewFiles = newVal;
|
||||
if (!$scope.$$phase) $scope.$digest();
|
||||
}
|
||||
});
|
||||
}
|
||||
const assignWatcher9 = () => {
|
||||
watcher9 = $scope.$watch(() => {
|
||||
return $('#Wazuh-App-Overview-Audit-Read-files > visualize > visualization > div > div > div > div > div.metric-value.ng-binding > span').text();
|
||||
}, (newVal, oldVal) => {
|
||||
if (newVal !== oldVal) {
|
||||
$scope.auditReadFiles = newVal;
|
||||
if (!$scope.$$phase) $scope.$digest();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const assignWatcher10 = () => {
|
||||
watcher10 = $scope.$watch(() => {
|
||||
return $('#Wazuh-App-Overview-Audit-Modified-files > visualize > visualization > div > div > div > div > div.metric-value.ng-binding > span').text();
|
||||
}, (newVal, oldVal) => {
|
||||
if (newVal !== oldVal) {
|
||||
$scope.auditModifiedFiles = newVal;
|
||||
if (!$scope.$$phase) $scope.$digest();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const assignWatcher11 = () => {
|
||||
watcher11 = $scope.$watch(() => {
|
||||
return $('#Wazuh-App-Overview-Audit-Removed-files > visualize > visualization > div > div > div > div > div.metric-value.ng-binding > span').text();
|
||||
}, (newVal, oldVal) => {
|
||||
if (newVal !== oldVal) {
|
||||
$scope.auditRemovedFiles = newVal;
|
||||
if (!$scope.$$phase) $scope.$digest();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// Metrics Vulnerability Detector
|
||||
let watcher12, watcher13, watcher14, watcher15;
|
||||
|
||||
$scope.vulnCritical = '';
|
||||
$scope.vulnHigh = '';
|
||||
$scope.vulnMedium = '';
|
||||
$scope.vulnLow = '';
|
||||
|
||||
const assignWatcher12 = () => {
|
||||
watcher12 = $scope.$watch(() => {
|
||||
return $('#Wazuh-App-Overview-VULS-Metric-Critical-severity > visualize > visualization > div > div > div > div > div.metric-value.ng-binding > span').text();
|
||||
}, (newVal, oldVal) => {
|
||||
if (newVal !== oldVal) {
|
||||
$scope.vulnCritical = newVal;
|
||||
if (!$scope.$$phase) $scope.$digest();
|
||||
}
|
||||
});
|
||||
}
|
||||
const assignWatcher13 = () => {
|
||||
watcher13 = $scope.$watch(() => {
|
||||
return $('#Wazuh-App-Overview-VULS-Metric-High-severity > visualize > visualization > div > div > div > div > div.metric-value.ng-binding > span').text();
|
||||
}, (newVal, oldVal) => {
|
||||
if (newVal !== oldVal) {
|
||||
$scope.vulnHigh = newVal;
|
||||
if (!$scope.$$phase) $scope.$digest();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const assignWatcher14 = () => {
|
||||
watcher14 = $scope.$watch(() => {
|
||||
return $('#Wazuh-App-Overview-VULS-Metric-Medium-severity > visualize > visualization > div > div > div > div > div.metric-value.ng-binding > span').text();
|
||||
}, (newVal, oldVal) => {
|
||||
if (newVal !== oldVal) {
|
||||
$scope.vulnMedium = newVal;
|
||||
if (!$scope.$$phase) $scope.$digest();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const assignWatcher15 = () => {
|
||||
watcher15 = $scope.$watch(() => {
|
||||
return $('#Wazuh-App-Overview-VULS-Metric-Low-severity > visualize > visualization > div > div > div > div > div.metric-value.ng-binding > span').text();
|
||||
}, (newVal, oldVal) => {
|
||||
if (newVal !== oldVal) {
|
||||
$scope.vulnLow = newVal;
|
||||
if (!$scope.$$phase) $scope.$digest();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Check the url hash and retrieve the tabView information
|
||||
if ($location.search().tabView) {
|
||||
$scope.tabView = $location.search().tabView;
|
||||
@ -25,12 +219,12 @@ app.controller('overviewController', function ($scope, $location, $rootScope, ap
|
||||
|
||||
// This object represents the number of visualizations per tab; used to show a progress bar
|
||||
$rootScope.tabVisualizations = {
|
||||
general : 15,
|
||||
fim : 17,
|
||||
general : 11,
|
||||
fim : 10,
|
||||
pm : 5,
|
||||
vuls : 8,
|
||||
oscap : 14,
|
||||
audit : 16,
|
||||
audit : 15,
|
||||
pci : 6,
|
||||
aws : 10,
|
||||
virustotal: 7
|
||||
@ -49,15 +243,151 @@ app.controller('overviewController', function ($scope, $location, $rootScope, ap
|
||||
virustotal: { group: 'virustotal' }
|
||||
};
|
||||
|
||||
// Switch subtab
|
||||
$scope.switchSubtab = subtab => $scope.tabView = subtab;
|
||||
const assignOverviewMetrics = () => {
|
||||
assignWatcher1();
|
||||
assignWatcher2();
|
||||
assignWatcher3();
|
||||
assignWatcher4();
|
||||
}
|
||||
const destroyOverviewMetrics = () => {
|
||||
watcher1();
|
||||
watcher2();
|
||||
watcher3();
|
||||
watcher4();
|
||||
watcher1 = null;
|
||||
watcher2 = null;
|
||||
watcher3 = null;
|
||||
watcher4 = null;
|
||||
}
|
||||
|
||||
const assignFimMetrics = () => {
|
||||
assignWatcher5();
|
||||
assignWatcher6();
|
||||
assignWatcher7();
|
||||
}
|
||||
|
||||
const destroyFimMetrics = () => {
|
||||
watcher5();
|
||||
watcher6();
|
||||
watcher7();
|
||||
watcher5 = null;
|
||||
watcher6 = null;
|
||||
watcher7 = null;
|
||||
}
|
||||
|
||||
const assignAuditMetrics = () => {
|
||||
assignWatcher8();
|
||||
assignWatcher9();
|
||||
assignWatcher10();
|
||||
assignWatcher11();
|
||||
}
|
||||
|
||||
const destroyAuditMetrics = () => {
|
||||
watcher8();
|
||||
watcher9();
|
||||
watcher10();
|
||||
watcher11();
|
||||
watcher8 = null;
|
||||
watcher9 = null;
|
||||
watcher10 = null;
|
||||
watcher11 = null;
|
||||
}
|
||||
|
||||
const assignVulnMetrics = () => {
|
||||
assignWatcher12();
|
||||
assignWatcher13();
|
||||
assignWatcher14();
|
||||
assignWatcher15();
|
||||
}
|
||||
|
||||
const destroyVulnMetrics = () => {
|
||||
watcher12();
|
||||
watcher13();
|
||||
watcher14();
|
||||
watcher15();
|
||||
watcher12 = null;
|
||||
watcher13 = null;
|
||||
watcher14 = null;
|
||||
watcher15 = null;
|
||||
}
|
||||
|
||||
if ($scope.tab === 'general' && $scope.tabView === 'panels' && !watcher1) {
|
||||
assignOverviewMetrics();
|
||||
}
|
||||
|
||||
if ($scope.tab === 'fim' && $scope.tabView === 'panels' && !watcher5) {
|
||||
assignOverviewMetrics();
|
||||
}
|
||||
|
||||
if ($scope.tab === 'audit' && $scope.tabView === 'panels' && !watcher8) {
|
||||
assignAuditMetrics();
|
||||
}
|
||||
|
||||
if ($scope.tab === 'vuls' && $scope.tabView === 'panels' && !watcher12) {
|
||||
assignVulnMetrics();
|
||||
}
|
||||
|
||||
// Switch subtab
|
||||
$scope.switchSubtab = subtab => {
|
||||
$scope.tabView = subtab;
|
||||
|
||||
if($scope.tab === 'general' && subtab === 'panels' && !watcher1){
|
||||
assignOverviewMetrics();
|
||||
} else if(watcher1) {
|
||||
destroyOverviewMetrics();
|
||||
}
|
||||
|
||||
if($scope.tab === 'fim' && subtab === 'panels' && !watcher5){
|
||||
assignFimMetrics();
|
||||
} else if(watcher5) {
|
||||
destroyFimMetrics();
|
||||
}
|
||||
|
||||
if($scope.tab === 'audit' && subtab === 'panels' && !watcher8){
|
||||
assignAuditMetrics();
|
||||
} else if(watcher8) {
|
||||
destroyAuditMetrics();
|
||||
}
|
||||
|
||||
if($scope.tab === 'vuls' && subtab === 'panels' && !watcher12){
|
||||
assignVulnMetrics();
|
||||
} else if(watcher8) {
|
||||
destroyVulnMetrics();
|
||||
}
|
||||
|
||||
}
|
||||
// Switch tab
|
||||
$scope.switchTab = tab => {
|
||||
if($scope.tab === tab) return;
|
||||
if ($scope.tab === tab) return;
|
||||
|
||||
for(let h of $rootScope.ownHandlers){
|
||||
h._scope.$destroy();
|
||||
if(tab === 'general' && $scope.tabView === 'panels' && !watcher1){
|
||||
assignOverviewMetrics();
|
||||
} else if(watcher1) {
|
||||
destroyOverviewMetrics();
|
||||
}
|
||||
|
||||
if(tab === 'fim' && $scope.tabView === 'panels' && !watcher5){
|
||||
assignFimMetrics();
|
||||
} else if(watcher1) {
|
||||
destroyFimMetrics();
|
||||
}
|
||||
|
||||
if(tab === 'audit' && $scope.tabView === 'panels' && !watcher8){
|
||||
assignAuditMetrics();
|
||||
} else if(watcher8) {
|
||||
destroyAuditMetrics();
|
||||
}
|
||||
|
||||
if(tab === 'vuls' && $scope.tabView === 'panels' && !watcher12){
|
||||
assignVulnMetrics();
|
||||
} else if(watcher8) {
|
||||
destroyVulnMetrics();
|
||||
}
|
||||
|
||||
if ($rootScope.ownHandlers) {
|
||||
for (let h of $rootScope.ownHandlers) {
|
||||
h._scope.$destroy();
|
||||
}
|
||||
}
|
||||
$rootScope.ownHandlers = [];
|
||||
|
||||
@ -79,12 +409,16 @@ app.controller('overviewController', function ($scope, $location, $rootScope, ap
|
||||
else $rootScope.currentImplicitFilter = tabFilters[$scope.tab].group;
|
||||
});
|
||||
|
||||
$scope.$on('$destroy',() => {
|
||||
if($rootScope.ownHandlers){
|
||||
for(let h of $rootScope.ownHandlers){
|
||||
$scope.$on('$destroy', () => {
|
||||
if ($rootScope.ownHandlers) {
|
||||
for (let h of $rootScope.ownHandlers) {
|
||||
h._scope.$destroy();
|
||||
}
|
||||
}
|
||||
if(watcher1) destroyOverviewMetrics();
|
||||
if(watcher5) destroyFimMetrics();
|
||||
if(watcher8) destroyAuditMetrics();
|
||||
if(watcher12) destroyVulnMetrics();
|
||||
$rootScope.ownHandlers = [];
|
||||
});
|
||||
|
||||
@ -93,18 +427,20 @@ app.controller('overviewController', function ($scope, $location, $rootScope, ap
|
||||
genericReq
|
||||
.request('GET', '/api/wazuh-api/pci/all')
|
||||
.then(data => {
|
||||
for(let key in data.data){
|
||||
for (let key in data.data) {
|
||||
tabs.push({
|
||||
"title": key,
|
||||
"title": key,
|
||||
"content": data.data[key]
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
errorHandler.handle(error,'Overview');
|
||||
if(!$rootScope.$$phase) $rootScope.$digest();
|
||||
errorHandler.handle(error, 'Overview');
|
||||
if (!$rootScope.$$phase) $rootScope.$digest();
|
||||
});
|
||||
|
||||
$scope.tabs = tabs;
|
||||
$scope.selectedIndex = 0;
|
||||
|
||||
|
||||
});
|
||||
|
@ -1,4 +1,4 @@
|
||||
<md-toolbar layout="row" class="wazuh-toolbar md-toolbar-tools" ng-show="(!noscroll && data.items && data.items.length > 0) || (noscroll && data)">
|
||||
<md-toolbar layout="row" class="wazuh-toolbar md-toolbar-tools wz-table-border" ng-show="(!noscroll && data.items && data.items.length > 0) || (noscroll && data)">
|
||||
<div ng-repeat="key in keys" flex="{{key.size || ''}}">
|
||||
<span ng-if="key.sortValue" class="wz-table-header-color" ng-click="data.sort(key.sortValue)">{{key.name}}
|
||||
<i class="fa cursor-pointer" ng-class="data.sortValue === key.sortValue ? (data.sortDir ? 'fa-sort-asc' : 'fa-sort-desc') : 'fa-sort'"
|
||||
|
@ -1,7 +1,7 @@
|
||||
<div flex ng-if="!isruleset && !isdecoders" layout="column" class="md-padding groupsFixPadding no-padding-bottom" ng-show="(!noscroll && data.items && data.items.length > 0) || (noscroll && data)">
|
||||
<div ng-if="!noscroll" flex class="clusterScrollable" when-scrolled="data.nextPage('')">
|
||||
<div layout="row" ng-class-odd="'odd'" ng-class-even="'even'" ng-repeat="item in data.items | filter : searchTerm"
|
||||
class="ownNavBarGroupsPadding agents-groups-preview groups-table groupsFixPadding wz-word-wrap" ng-class="!nopointer ? 'cursor-pointer' : '' "
|
||||
class="ownNavBarGroupsPadding agents-groups-preview groups-table groupsFixPadding wz-word-wrap wz-table-border" ng-class="!nopointer ? 'cursor-pointer' : '' "
|
||||
ng-click="clickAction(full ? item : $index)">
|
||||
<div ng-repeat="key in keys" flex="{{key.size || ''}}">
|
||||
<span>{{parseItem(item,key) || '---'}}</span>
|
||||
@ -9,7 +9,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div ng-if="noscroll" flex class="clusterScrollable">
|
||||
<div layout="row" ng-class-odd="'odd'" ng-class-even="'even'" ng-repeat="item in data" class="ownNavBarGroupsPadding agents-groups-preview groups-table groupsFixPadding wz-word-wrap"
|
||||
<div layout="row" ng-class-odd="'odd'" ng-class-even="'even'" ng-repeat="item in data" class="ownNavBarGroupsPadding agents-groups-preview groups-table groupsFixPadding wz-word-wrap wz-table-border"
|
||||
ng-class="!nopointer ? 'cursor-pointer' : '' " ng-click="clickAction($index)">
|
||||
<div ng-repeat="key in keys" flex="{{key.size || ''}}">
|
||||
<span>{{parseItem(item,key) || '---'}}</span>
|
||||
@ -21,7 +21,7 @@
|
||||
<div flex ng-if="isruleset" layout="column" class="md-padding groupsFixPadding no-padding-bottom" ng-show="(!noscroll && data.items && data.items.length > 0) || (noscroll && data)">
|
||||
<div ng-if="!noscroll" flex class="clusterScrollable" when-scrolled="data.nextPage('')">
|
||||
<div layout="row" ng-class-odd="'odd'" ng-class-even="'even'" ng-repeat="item in data.items | filter : searchTerm"
|
||||
class="ownNavBarGroupsPadding agents-groups-preview groups-table groupsFixPadding" ng-class="!nopointer && activeitem !== item.id ? 'cursor-pointer' : !nopointer && activeitem === item.id ? 'cursor-pointer wz-active' : ''"
|
||||
class="ownNavBarGroupsPadding agents-groups-preview groups-table groupsFixPadding wz-table-border" ng-class="!nopointer && activeitem !== item.id ? 'cursor-pointer' : !nopointer && activeitem === item.id ? 'cursor-pointer wz-active' : ''"
|
||||
ng-click="clickAction(full ? item : $index)">
|
||||
<div ng-show="activeitem !== item.id" ng-repeat="key in keys" flex="{{key.size || ''}}">
|
||||
<span>{{parseItem(item,key) || '---'}}</span>
|
||||
@ -96,7 +96,7 @@
|
||||
<div flex ng-if="isdecoders" layout="column" class="md-padding groupsFixPadding no-padding-bottom" ng-show="(!noscroll && data.items && data.items.length > 0) || (noscroll && data)">
|
||||
<div ng-if="!noscroll" flex class="clusterScrollable" when-scrolled="data.nextPage('')">
|
||||
<div layout="row" ng-class-odd="'odd'" ng-class-even="'even'" ng-repeat="decoder in data.items | filter : searchTerm"
|
||||
class="ownNavBarGroupsPadding agents-groups-preview groups-table groupsFixPadding" ng-class="!nopointer && activeitem !== decoder.name+decoder.file+decoder.position ? 'cursor-pointer' : !nopointer && activeitem === decoder.name+decoder.file+decoder.position ? 'cursor-pointer wz-active' : ''"
|
||||
class="ownNavBarGroupsPadding agents-groups-preview groups-table groupsFixPadding wz-table-border" ng-class="!nopointer && activeitem !== decoder.name+decoder.file+decoder.position ? 'cursor-pointer' : !nopointer && activeitem === decoder.name+decoder.file+decoder.position ? 'cursor-pointer wz-active' : ''"
|
||||
ng-click="clickAction(full ? decoder : $index)">
|
||||
<div ng-show="activeitem !== decoder.name+decoder.file+decoder.position" class="wz-word-wrap" ng-repeat="key in keys" flex="{{key.size || ''}}">
|
||||
<span>{{parseItem(decoder,key) || '---'}}</span>
|
||||
|
@ -3,7 +3,7 @@
|
||||
}
|
||||
|
||||
.agentsPreview .md-whiteframe-z1 {
|
||||
box-shadow: none;
|
||||
box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 2px 0px, rgba(0, 0, 0, 0.137255) 0px 0px 0px 0px, rgba(0, 0, 0, 0.117647) 0px 0px 0px 0px;
|
||||
}
|
||||
|
||||
.agents-groups-preview .md-button:not([disabled]):hover {
|
||||
|
@ -7,7 +7,7 @@
|
||||
}
|
||||
|
||||
md-card-content .ng-binding {
|
||||
color: rgb(102, 102, 102);
|
||||
color: black !important;
|
||||
}
|
||||
|
||||
/* Fix text color from visualizations tooltips */
|
||||
@ -43,7 +43,7 @@ md-input-container>md-select {
|
||||
}
|
||||
|
||||
span.md-headline {
|
||||
color: #555;
|
||||
color:#0079a5 !important;
|
||||
font-size: 17px;
|
||||
}
|
||||
|
||||
@ -65,22 +65,28 @@ md-input-container>md-select {
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
md-autocomplete-wrap,
|
||||
md-input-container.md-whiteframe-z1.flex.md-input-has-value {
|
||||
box-shadow: none;
|
||||
box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 2px 0px, rgba(0, 0, 0, 0.137255) 0px 0px 0px 0px, rgba(0, 0, 0, 0.117647) 0px 0px 0px 0px;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
input#searchBox,
|
||||
md-autocomplete-wrap.md-whiteframe-z1.layout-row ,
|
||||
md-input-container.md-whiteframe-z1.flex-20.md-input-has-value {
|
||||
box-shadow: none;
|
||||
box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 2px 0px, rgba(0, 0, 0, 0.137255) 0px 0px 0px 0px, rgba(0, 0, 0, 0.117647) 0px 0px 0px 0px;
|
||||
|
||||
}
|
||||
|
||||
md-input-container.md-whiteframe-z1.flex-20.md-input-has-value {
|
||||
box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 2px 0px, rgba(0, 0, 0, 0.137255) 0px 0px 0px 0px, rgba(0, 0, 0, 0.117647) 0px 0px 0px 0px;
|
||||
|
||||
background: white;
|
||||
}
|
||||
|
||||
md-input-container.md-whiteframe-z1.flex-20 {
|
||||
box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 2px 0px, rgba(0, 0, 0, 0.137255) 0px 0px 0px 0px, rgba(0, 0, 0, 0.117647) 0px 0px 0px 0px;
|
||||
|
||||
background: white;
|
||||
}
|
||||
|
||||
@ -106,7 +112,7 @@ md-input-container ._md-placeholder {
|
||||
/* Overriding the colour for the navbar */
|
||||
|
||||
.md-button.md-accent {
|
||||
color: rgb(0,121,165);
|
||||
color: black;
|
||||
}
|
||||
|
||||
md-nav-bar md-nav-ink-bar {
|
||||
|
@ -43,3 +43,11 @@
|
||||
margin-top: 20px;
|
||||
width: 180px;
|
||||
}
|
||||
|
||||
.md-button:not([disabled]).md-raised:active, .md-button:not([disabled]).md-fab:active,
|
||||
.md-button.md-raised:not([disabled]) {
|
||||
box-shadow: none !important;
|
||||
}
|
||||
.tabView button._md-nav-button.md-accent.md-button.md-ink-ripple.md-active.md-primary {
|
||||
background-color:white !important;
|
||||
}
|
@ -72,7 +72,7 @@ pre {
|
||||
position: relative;
|
||||
height: 25px;
|
||||
color: #666666;
|
||||
background-color: #e4e4e4 !important;
|
||||
background-color: #white !important;
|
||||
}
|
||||
/* Wazuh Header */
|
||||
|
||||
@ -130,12 +130,12 @@ navbar {
|
||||
}
|
||||
|
||||
.headBar {
|
||||
background-color: #f7f7f7;
|
||||
background-color: white !important;
|
||||
min-width: 463px;
|
||||
}
|
||||
|
||||
.horizontalTabsBar {
|
||||
background-color: #f7f7f7
|
||||
background-color: white !important;
|
||||
}
|
||||
|
||||
.tabView md-nav-bar md-nav-ink-bar {
|
||||
@ -168,7 +168,7 @@ navbar {
|
||||
/* Input filter box styles */
|
||||
|
||||
.input-filter-box {
|
||||
box-shadow: rgba(0, 0, 0, 0.2) 0px 1px 3px 0px, rgba(0, 0, 0, 0.137255) 0px 1px 1px 0px, rgba(0, 0, 0, 0.117647) 0px 2px 1px -1px;
|
||||
box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 2px 0px, rgba(0, 0, 0, 0.137255) 0px 0px 0px 0px, rgba(0, 0, 0, 0.117647) 0px 0px 0px 0px;
|
||||
font-size: 14px;
|
||||
padding: 0px 15px;
|
||||
margin-top: 18px;
|
||||
@ -262,7 +262,7 @@ md-progress-linear ._md-bar {
|
||||
}
|
||||
|
||||
.background-e4 {
|
||||
background-color: #e4e4e4;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
.background-e2 {
|
||||
|
@ -105,3 +105,7 @@
|
||||
.width-500 {
|
||||
width: 500px;
|
||||
}
|
||||
|
||||
.height-30 {
|
||||
height: 30px !important;
|
||||
}
|
@ -53,7 +53,7 @@ border-bottom
|
||||
}
|
||||
|
||||
.kuiLocalNav {
|
||||
background-color: #e4e4e4 !important;
|
||||
background-color: white !important;
|
||||
}
|
||||
|
||||
.kbn-vis-value td {
|
||||
@ -122,7 +122,7 @@ border-bottom
|
||||
/* Filter bar */
|
||||
|
||||
.filter-bar {
|
||||
background-color: #e4e4e4 !important;
|
||||
background-color: white !important;
|
||||
}
|
||||
|
||||
.chart {
|
||||
@ -176,7 +176,7 @@ kbn-dis .euiText {
|
||||
|
||||
.legacy-searchbar .typeahead {
|
||||
padding: 4px 10px 0 !important;
|
||||
background-color: #e4e4e4 !important;
|
||||
background-color: white !important;
|
||||
}
|
||||
|
||||
|
||||
|
@ -85,7 +85,11 @@ md-content._md.layout-row {
|
||||
}
|
||||
|
||||
md-content {
|
||||
background-color: #e4e4e4;
|
||||
background-color: white !important;
|
||||
}
|
||||
|
||||
md-card {
|
||||
box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 2px 0px, rgba(0, 0, 0, 0.137255) 0px 0px 0px 0px, rgba(0, 0, 0, 0.117647) 0px 0px 0px 0px !important;
|
||||
}
|
||||
|
||||
md-card md-card-content {
|
||||
@ -100,6 +104,10 @@ a.pull-right {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.wz-no-display {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.visualize-show-spy {
|
||||
display: none;
|
||||
}
|
||||
@ -166,3 +174,7 @@ md-select .md-select-value.md-select-placeholder {
|
||||
.cursor-pointer {
|
||||
cursor: pointer !important;
|
||||
}
|
||||
|
||||
.wz-padding-top-5 {
|
||||
padding-top: 5px !important;
|
||||
}
|
@ -8,7 +8,7 @@
|
||||
}
|
||||
|
||||
.manager-background {
|
||||
background-color: #e4e4e4;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
.wazuh-chip {
|
||||
|
@ -49,7 +49,7 @@ md-select-menu md-content md-option:not([disabled]):focus,
|
||||
md-select-menu.md-default-theme md-content md-option:not([disabled]):hover,
|
||||
md-select-menu md-content md-option:not([disabled]):hover {
|
||||
background-color: rgba(255, 255, 255, 0.1);
|
||||
color: #555;
|
||||
color: black !important;
|
||||
}
|
||||
|
||||
md-select-menu:not(._md-overflow) md-content {
|
||||
@ -58,7 +58,7 @@ md-select-menu:not(._md-overflow) md-content {
|
||||
}
|
||||
|
||||
.manager-groups-left-panel {
|
||||
background-color: #E4E4E4;
|
||||
background-color: white;
|
||||
overflow: auto;
|
||||
height: 400px;
|
||||
box-shadow: 0 0px 0px rgba(10, 16, 20, .15), 0 0 0px rgba(10, 16, 20, .12) !important;
|
||||
@ -69,6 +69,8 @@ md-select-menu:not(._md-overflow) md-content {
|
||||
|
||||
.horizontal-menu-right .md-whiteframe-1dp,
|
||||
.horizontal-menu-right .md-whiteframe-z1 {
|
||||
box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 2px 0px, rgba(0, 0, 0, 0.137255) 0px 0px 0px 0px, rgba(0, 0, 0, 0.117647) 0px 0px 0px 0px;
|
||||
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
|
@ -115,6 +115,10 @@ md-list-item {
|
||||
word-wrap: break-word !important;
|
||||
}
|
||||
|
||||
.wz-table-border {
|
||||
box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 2px 0px, rgba(0, 0, 0, 0.137255) 0px 0px 0px 0px, rgba(0, 0, 0, 0.117647) 0px 0px 0px 0px !important;
|
||||
}
|
||||
|
||||
.padding-right-14 {
|
||||
padding-right: 14px !important;
|
||||
}
|
||||
|
@ -2,7 +2,17 @@
|
||||
|
||||
<!-- View: Panels -->
|
||||
<div ng-if="resultState === 'ready' && tabView === 'panels'">
|
||||
<div layout="row" layout-align="center stretch" class="height-125">
|
||||
<div layout="row">
|
||||
<md-card flex class="height-30">
|
||||
<md-card-content layout="row" class="wz-padding-top-5">
|
||||
<span flex><b>New files:</b> {{auditNewFiles}}</span>
|
||||
<span flex><b>Read files:</b> {{auditReadFiles}}</span>
|
||||
<span flex><b>Modified files:</b> {{auditModifiedFiles}}</span>
|
||||
<span flex><b>Removed files:</b> {{auditRemovedFiles}}</span>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
</div>
|
||||
<div layout="row" layout-align="center stretch" class="height-125 wz-no-display">
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="metric-headline md-headline">New files</span>
|
||||
@ -39,18 +49,21 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Groups</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-Audit-Groups'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Directories</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-Audit-Directories'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Files</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-Audit-Files'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -60,6 +73,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Alerts over time</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-Audit-Alerts-over-time'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -70,6 +84,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">File read access</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-Audit-File-read-access'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -77,6 +92,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">File write access</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-Audit-File-write-access'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -86,6 +102,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Commands</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-Audit-Commands'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -95,12 +112,14 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Created files</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-Audit-Created-files'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Removed files</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-Audit-Removed-files'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -111,6 +130,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Alerts summary</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis class="kbn-chart" vis-id="'Wazuh-App-Agents-Audit-Last-alerts'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
|
@ -7,18 +7,21 @@
|
||||
<md-card flex="33">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Users</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-FIM-Users'">
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="33">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Groups</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-FIM-Groups'">
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="33">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Permissions</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-FIM-Permissions'">
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -28,6 +31,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Events</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-FIM-Events'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -37,18 +41,21 @@
|
||||
<md-card flex="33">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Files added</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-FIM-Files-added'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="33">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Files modified</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-FIM-Files-modified'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="33">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Files deleted</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-FIM-Files-deleted'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -58,6 +65,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Alerts summary</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis class="kbn-chart" vis-id="'Wazuh-App-Agents-FIM-Alerts-summary'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
|
@ -1,83 +1,40 @@
|
||||
<md-content flex layout="column" ng-if="tab === 'general'" layout-align="start">
|
||||
|
||||
<div ng-if="resultState === 'ready' && tabView === 'panels'">
|
||||
<div layout="row" class="height-100">
|
||||
<md-card flex>
|
||||
<md-card-content class="text-center">
|
||||
<div class="metric-value ng-binding font-size-14-pt">{{agent.name}}</div>
|
||||
<!--<md-tooltip md-direction="bottom">{{ agent.name }}</md-tooltip>-->
|
||||
<div class="ng-binding">Name</div>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="12">
|
||||
<md-card-content class="text-center">
|
||||
<div class="metric-value ng-binding font-size-14-pt">{{agent.ip}}</div>
|
||||
<!--<md-tooltip md-direction="bottom">{{ agent.ip }}</md-tooltip>-->
|
||||
<div class="ng-binding">IP Address</div>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card ng-if="agent.version" flex="12">
|
||||
<md-card-content class="text-center">
|
||||
<div class="metric-value ng-binding font-size-14-pt">{{ agent.version | limitTo: 12 }}{{agent.version.length > 12 ? '...' : ''}}</div>
|
||||
<!--<md-tooltip md-direction="bottom">{{ agent.version }}</md-tooltip>-->
|
||||
<div class="ng-binding">Version</div>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card ng-if="agent.group" flex="12">
|
||||
<md-card-content class="text-center cursor-pointer" ng-click="goGroups(agent)">
|
||||
<div class="metric-value ng-binding font-size-14-pt" >{{ agent.group }}</div>
|
||||
<!--<md-tooltip md-direction="bottom">{{ agent.version }}</md-tooltip>-->
|
||||
<div class="ng-binding">Group</div>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex>
|
||||
<md-card-content class="text-center">
|
||||
<div class="metric-value ng-binding legend-value-truncate font-size-14-pt">{{ agentOS }}</div>
|
||||
<!--<md-tooltip md-direction="bottom">{{ agentOS }}</md-tooltip>-->
|
||||
<div class="ng-binding">OS</div>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<div layout="row">
|
||||
<md-card flex class="height-30">
|
||||
<md-card-content layout="row" class="wz-padding-top-5">
|
||||
<span flex><b>Name:</b> {{agent.name}}</span>
|
||||
<span flex><b>IP:</b> {{agent.ip}}</span>
|
||||
<span ng-if="agent.version" flex><b>Version:</b> {{ agent.version | limitTo: 12 }}{{agent.version.length > 12 ? '...' : ''}}</span>
|
||||
<span ng-if="agent.group" flex><b>Group:</b> {{ agent.group }}</span>
|
||||
<span flex><b>OS:</b> {{ agentOS }}</span>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
</div>
|
||||
|
||||
<div layout="row" class="height-100">
|
||||
<md-card flex ng-show="agent.id != '000'">
|
||||
<md-card-content class="text-center">
|
||||
<div class="metric-value ng-binding font-size-14-pt">{{agent.lastKeepAlive || 'Unknown' }}</div>
|
||||
<!--<md-tooltip md-direction="bottom">{{ agent.lastKeepAlive }}</md-tooltip>-->
|
||||
<div class="ng-binding">Last keep alive</div>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex>
|
||||
<md-card-content class="text-center">
|
||||
<div class="metric-value ng-binding font-size-14-pt">{{agent.dateAdd}}</div>
|
||||
<!--<md-tooltip md-direction="bottom">{{ agent.dateAdd }}</md-tooltip>-->
|
||||
<div class="ng-binding">Registration date</div>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex>
|
||||
<md-card-content class="text-center">
|
||||
<div class="metric-value ng-binding font-size-14-pt" ng-if="agent.syscheck.inProgress">Scan in progress</div>
|
||||
<div ng-if="!agent.syscheck.inProgress" class="metric-value ng-binding font-size-14-pt">{{agent.syscheck.end || 'Unknown'}}</div>
|
||||
<md-tooltip ng-if="!agent.syscheck.inProgress && agent.syscheck.start && agent.syscheck.end" md-direction="bottom">
|
||||
Start time: {{ agent.syscheck.start || 'Unknown'}} <br>
|
||||
End time: {{ agent.syscheck.end || 'Unknown'}} <br>
|
||||
Duration time: {{ agent.syscheck.duration +' minutes' || 'Unknown'}}
|
||||
</md-tooltip>
|
||||
<div class="ng-binding">Last syscheck scan</div>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex>
|
||||
<md-card-content class="text-center">
|
||||
<div class="metric-value ng-binding font-size-14-pt" ng-if="agent.rootcheck.inProgress">Scan in progress</div>
|
||||
<div ng-if="!agent.rootcheck.inProgress" class="metric-value ng-binding font-size-14-pt">{{agent.rootcheck.end || 'Unknown'}}</div>
|
||||
<md-tooltip ng-if="!agent.rootcheck.inProgress && agent.rootcheck.start && agent.rootcheck.end" md-direction="bottom">
|
||||
Start time: {{ agent.rootcheck.start || 'Unknown'}} <br>
|
||||
End time: {{ agent.rootcheck.end || 'Unknown'}} <br>
|
||||
Duration time: {{ agent.rootcheck.duration + ' minutes' || 'Unknown' }}
|
||||
</md-tooltip>
|
||||
<div class="ng-binding">Last rootcheck scan</div>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<div layout="row">
|
||||
<md-card flex class="height-30">
|
||||
<md-card-content layout="row" class="wz-padding-top-5">
|
||||
<span flex><b>Last keep alive:</b> {{agent.lastKeepAlive || 'Unknown' }}</span>
|
||||
<span flex><b>Registration date:</b> {{agent.dateAdd}}</span>
|
||||
<span flex ng-if="agent.syscheck.inProgress"><b>Last syscheck scan:</b> Scan in progress</span>
|
||||
<span flex ng-if="!agent.syscheck.inProgress"><b>Last syscheck scan:</b> {{agent.syscheck.end || 'Unknown'}}
|
||||
<md-tooltip ng-if="!agent.syscheck.inProgress && agent.syscheck.start && agent.syscheck.end" md-direction="bottom">
|
||||
Start time: {{ agent.syscheck.start || 'Unknown'}} <br>
|
||||
End time: {{ agent.syscheck.end || 'Unknown'}} <br>
|
||||
Duration time: {{ agent.syscheck.duration +' minutes' || 'Unknown'}}
|
||||
</md-tooltip>
|
||||
</span>
|
||||
<span flex ng-if="agent.rootcheck.inProgress"><b>Last rootcheck scan:</b> Scan in progress</span>
|
||||
<span flex ng-if="!agent.rootcheck.inProgress"><b>Last rootcheck scan:</b> {{agent.rootcheck.end || 'Unknown'}}
|
||||
<md-tooltip ng-if="!agent.rootcheck.inProgress && agent.rootcheck.start && agent.rootcheck.end" md-direction="bottom">
|
||||
Start time: {{ agent.rootcheck.start || 'Unknown'}} <br>
|
||||
End time: {{ agent.rootcheck.end || 'Unknown'}} <br>
|
||||
Duration time: {{ agent.rootcheck.duration +' minutes' || 'Unknown'}}
|
||||
</md-tooltip>
|
||||
</span>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -88,18 +45,21 @@
|
||||
<md-card flex="33">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Top 5 alerts</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-Overview-Top-5-alerts'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="33">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Top 5 groups</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-Overview-Top-5-groups'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="33">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Top 5 PCI DSS Requirements</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-Overview-Top-5-PCI-DSS-Requirements'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -109,12 +69,14 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Alert level evolution</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-Overview-Alert-level-evolution'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="60">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Alerts</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-Overview-Alerts'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -124,12 +86,14 @@
|
||||
<md-card flex="60">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Alerts summary</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis class="kbn-chart" vis-id="'Wazuh-App-Agents-Overview-Alerts-summary'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="40">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Groups summary</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis class="kbn-chart" vis-id="'Wazuh-App-Agents-Overview-Groups-summary'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
|
@ -31,18 +31,21 @@
|
||||
<md-card flex="25">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Scans</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-OSCAP-Scans'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="25">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Profiles</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-OSCAP-Profiles'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="25">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Content</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-OSCAP-Content'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -50,6 +53,7 @@
|
||||
<md-card flex="25">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Severity</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-OSCAP-Severity'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -59,6 +63,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Daily scans evolution</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-OSCAP-Daily-scans-evolution'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -68,16 +73,14 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Top 5 - Alerts</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-OSCAP-Top-5-Alerts'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex class="wazuh-column">
|
||||
<md-card-title>
|
||||
<md-card-title-text>
|
||||
<span class="md-headline">Top 5 - High risk alerts</span>
|
||||
</md-card-title-text>
|
||||
</md-card-title>
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Top 5 - High risk alerts</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-OSCAP-Top-5-High-risk-alerts'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -96,6 +99,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Alerts summary</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis class="kbn-chart" vis-id="'Wazuh-App-Agents-OSCAP-Last-alerts'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
|
@ -19,12 +19,14 @@
|
||||
<md-card flex="70">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Requirements</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-PCI-Requirements'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="30">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Groups</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-PCI-Groups'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -34,6 +36,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Alerts summary</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis class="kbn-chart" vis-id="'Wazuh-App-Agents-PCI-Last-alerts'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
|
@ -8,18 +8,21 @@
|
||||
<md-card flex="50">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Alerts over time</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-PM-Alerts-over-time'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="25">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Top 5 CIS Requirements</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-PM-Top-5-CIS-Requirements'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="25">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Top 5 PCI DSS Requirements</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Agents-PM-Top-5-PCI-DSS-Requirements'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -29,6 +32,7 @@
|
||||
<md-card flex="100">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Alerts summary</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis class="kbn-chart" vis-id="'Wazuh-App-Agents-PM-Alerts-summary'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
|
@ -24,12 +24,14 @@
|
||||
<md-card flex="33">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Last scanned files</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-Virustotal-Last-Files-Pie'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Malicious files alerts Evolution</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-Virustotal-Malicious-Evolution'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -38,6 +40,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Last files</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis class="kbn-chart" vis-id="'Wazuh-App-Overview-Virustotal-Files-Table'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
|
@ -2,8 +2,17 @@
|
||||
|
||||
<!-- View: Panels -->
|
||||
<div ng-if="resultState === 'ready' && tabView === 'panels'">
|
||||
|
||||
<div layout="row" layout-align="center stretch" class="height-120">
|
||||
<div layout="row">
|
||||
<md-card flex class="height-30">
|
||||
<md-card-content layout="row" class="wz-padding-top-5">
|
||||
<span flex><b>Critical severity alerts:</b> {{vulnCritical}}</span>
|
||||
<span flex><b>High severity alerts:</b> {{vulnHigh}}</span>
|
||||
<span flex><b>Medium severity alerts:</b> {{vulnMedium}}</span>
|
||||
<span flex><b>Low severity alerts:</b> {{vulnLow}}</span>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
</div>
|
||||
<div layout="row" layout-align="center stretch" class="height-120 wz-no-display">
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<kbn-vis class="metric" vis-id="'Wazuh-App-Overview-VULS-Metric-Critical-severity'"></kbn-vis>
|
||||
@ -30,12 +39,14 @@
|
||||
<md-card flex="60">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Alerts severity over time</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-VULS-Alerts-severity-over-time'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="40">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Affected packages - Top 5</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-VULS-Top-5-affected-packages'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -45,6 +56,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Alerts summary</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis class="kbn-chart" vis-id="'Wazuh-App-Overview-VULS-Alerts-summary'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
|
@ -65,7 +65,7 @@
|
||||
</md-nav-bar>
|
||||
</div>
|
||||
|
||||
<div ng-show="tab != 'configuration'" class="horizontalTabsBar tabView" layout="column" layout-align="end end">
|
||||
<div ng-show="tab != 'configuration'" class="horizontalTabsBar" layout="column" layout-align="end end">
|
||||
<md-nav-bar layout-align="end end" class="padding-right-0" md-selected-nav-item="tabView" nav-bar-aria-label="navigation submenu">
|
||||
<md-nav-item md-nav-click="switchSubtab('panels')" name="panels">
|
||||
<i class="fa fa-th agents-head-6" aria-hidden="true"></i>Panels
|
||||
|
@ -8,7 +8,8 @@
|
||||
<div ng-show="!loading" layout="row" layout-align="center start">
|
||||
<md-card flex class="manager-ruleset-decoders-top-24">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline-small">Top 24h - Decoder name</span>
|
||||
<span class="md-headline">Top 24h - Decoder name</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis specific-time-range="true" vis-id="'Wazuh-App-Manager-Ruleset-Decoders-Top-24h-Decoder-name'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
|
@ -9,24 +9,28 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Top 24h - Rule ID</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis specific-time-range="true" vis-id="'Wazuh-App-Manager-Ruleset-Rules-Top-24h-Rule-ID'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Top 24h - Groups</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis specific-time-range="true" vis-id="'Wazuh-App-Manager-Ruleset-Rules-Top-24h-Groups'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Top 24h - PCI DSS requirements</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis specific-time-range="true" vis-id="'Wazuh-App-Manager-Ruleset-Rules-Top-24h-PCI-DSS-requirements'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Top 24h - Level</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis specific-time-range="true" vis-id="'Wazuh-App-Manager-Ruleset-Rules-Top-24h-Level'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
|
@ -2,8 +2,17 @@
|
||||
|
||||
<!-- View: Panels -->
|
||||
<div ng-if="resultState === 'ready' && tabView === 'panels'">
|
||||
|
||||
<div layout="row" layout-align="center stretch" class="height-125">
|
||||
<div layout="row">
|
||||
<md-card flex class="height-30">
|
||||
<md-card-content layout="row" class="wz-padding-top-5">
|
||||
<span flex><b>New files:</b> {{auditNewFiles}}</span>
|
||||
<span flex><b>Read files:</b> {{auditReadFiles}}</span>
|
||||
<span flex><b>Modified files:</b> {{auditModifiedFiles}}</span>
|
||||
<span flex><b>Removed files:</b> {{auditRemovedFiles}}</span>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
</div>
|
||||
<div layout="row" layout-align="center stretch" class="height-125 wz-no-display">
|
||||
<md-card flex="10">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="metric-headline md-headline">New files</span>
|
||||
@ -28,36 +37,34 @@
|
||||
<kbn-vis class="metric" vis-id="'Wazuh-App-Overview-Audit-Removed-files'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="auto">
|
||||
<md-card-content class="wazuh-column text-center">
|
||||
<div class="ng-binding">Latest alert</div>
|
||||
<kbn-vis class="kbn-vis-value" vis-id="'Wazuh-App-Overview-Audit-Latest-alert'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
</div>
|
||||
|
||||
<div layout="row" layout-align="center stretch" class="height-200">
|
||||
<md-card flex="25">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Groups</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-Audit-Groups'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="25">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Agents</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-Audit-Agents'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="25">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Directories</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-Audit-Directories'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="25">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Files</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-Audit-Files'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -67,6 +74,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Alerts over time</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-Audit-Alerts-over-time'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -77,12 +85,14 @@
|
||||
<md-card flex="50">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">File read access</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-Audit-File-read-access'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="50">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">File write access</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-Audit-File-write-access'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -92,6 +102,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Commands</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-Audit-Commands'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -101,12 +112,14 @@
|
||||
<md-card flex="50">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Created files</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-Audit-Files-created'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="50">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Removed files</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-Audit-Files-deleted'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -117,6 +130,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Alerts summary</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis class="kbn-chart" vis-id="'Wazuh-App-Overview-Audit-Last-alerts'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
|
@ -8,6 +8,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Instances</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-AWS-Instances'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -44,6 +45,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Security groups over time</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-AWS-Security-groups-over-time'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -54,6 +56,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Events over time</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-AWS-Events-over-time'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -63,12 +66,14 @@
|
||||
<md-card flex="65">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Event sources over time</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-AWS-Event-sources-over-time'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="35">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Success login - Top 5 countries</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-AWS-Success-login-Top-5-countries'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -78,6 +83,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Alerts summary</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis class="kbn-chart" vis-id="'Wazuh-App-Overview-AWS-Alerts-summary'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
|
@ -3,8 +3,18 @@
|
||||
<!-- View: Panels -->
|
||||
<div ng-if="resultState === 'ready' && tabView === 'panels'">
|
||||
|
||||
|
||||
<div layout="row">
|
||||
<md-card flex class="height-30">
|
||||
<md-card-content layout="row" class="wz-padding-top-5">
|
||||
<span flex><b>Files added:</b> {{fimAdded}}</span>
|
||||
<span flex><b>Files modified:</b> {{fimModified}}</span>
|
||||
<span flex><b>Files deleted:</b> {{fimDeleted}}</span>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
</div>
|
||||
<div layout="row" class="height-400">
|
||||
<div flex="15" layout="column">
|
||||
<div flex="15" layout="column" class="wz-no-display">
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<kbn-vis class="metric" vis-id="'Wazuh-App-Overview-FIM-Added'" ></kbn-vis>
|
||||
@ -26,52 +36,35 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Events over time</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-FIM-Events-over-time'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
</div>
|
||||
|
||||
<div flex="20" layout="column">
|
||||
<div flex="30" layout="column">
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Top user owners</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-FIM-Top-user-owners'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Top group owners</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-FIM-Top-group-owners'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div layout="row" class="height-120">
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column text-center">
|
||||
<div class="ng-binding">Last file modified</div>
|
||||
<kbn-vis class="kbn-vis-value" vis-id="'Wazuh-App-Overview-FIM-Last-file-modified'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card >
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column text-center">
|
||||
<div class="ng-binding">Last file added</div>
|
||||
<kbn-vis class="kbn-vis-value" vis-id="'Wazuh-App-Overview-FIM-Last-file-added'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column text-center">
|
||||
<div class="ng-binding">Last file deleted</div>
|
||||
<kbn-vis class="kbn-vis-value" vis-id="'Wazuh-App-Overview-FIM-Last-file-deleted'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
</div>
|
||||
|
||||
<div layout="row" class="height-213">
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Top file changes</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-FIM-Top-file-changes'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -79,6 +72,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Root user file changes</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-FIM-Root-user-file-changes'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -86,42 +80,17 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">World writable modified files</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-FIM-World-writable-modified-files'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
</div>
|
||||
|
||||
<div layout="row" layout-align="start stretch" class="height-120">
|
||||
<md-card flex="20">
|
||||
<md-card-content class="wazuh-column text-center">
|
||||
<div class="ng-binding">Top agent</div>
|
||||
<kbn-vis class="kbn-vis-value" vis-id="'Wazuh-App-Overview-FIM-Top-agent'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="20">
|
||||
<md-card-content class="wazuh-column text-center">
|
||||
<div class="ng-binding">Top PCI Requirement</div>
|
||||
<kbn-vis class="kbn-vis-value" vis-id="'Wazuh-App-Overview-FIM-Top-PCI-requirement'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="20">
|
||||
<md-card-content class="wazuh-column text-center">
|
||||
<div class="ng-binding">Most common permissions</div>
|
||||
<kbn-vis class="kbn-vis-value" vis-id="'Wazuh-App-Overview-FIM-Most-common-permissions'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="40">
|
||||
<md-card-content class="wazuh-column text-center">
|
||||
<div class="ng-binding">Most modified file</div>
|
||||
<kbn-vis class="kbn-vis-value" vis-id="'Wazuh-App-Overview-FIM-Most-modified-file'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
</div>
|
||||
|
||||
<div layout="row" class="height-570">
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Events summary</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis class="kbn-chart" vis-id="'Wazuh-App-Overview-FIM-Events-summary'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
|
@ -2,8 +2,18 @@
|
||||
|
||||
<!-- View: Panels -->
|
||||
<div ng-if="resultState === 'ready' && tabView === 'panels'">
|
||||
|
||||
<div layout="row" layout-align="center stretch" class="height-120">
|
||||
<div layout="row">
|
||||
<md-card flex class="height-30">
|
||||
<md-card-content layout="row" class="wz-padding-top-5">
|
||||
<span flex><b>Alerts:</b> {{totalAlerts}}</span>
|
||||
<span flex><b>Level 12 or above alerts:</b> {{level12}}</span>
|
||||
<span flex><b>Authentication failure:</b> {{authFailure}}</span>
|
||||
<span flex><b>Authentication success:</b> {{authSuccess}}</span>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
</div>
|
||||
|
||||
<div layout="row" layout-align="center stretch" class="height-120 wz-no-display">
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<kbn-vis class="metric" vis-id="'Wazuh-App-Overview-General-Metric-alerts'"></kbn-vis>
|
||||
@ -29,13 +39,15 @@
|
||||
<div layout="row" layout-align="start stretch" class="height-230">
|
||||
<md-card flex="40">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Alert level evolution</span>
|
||||
<span class="md-headline wz-vis-title">Alert level evolution</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-General-Alert-level-evolution'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="60">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Alerts</span>
|
||||
<span class="md-headline wz-vis-title">Alerts</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-General-Alerts'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -44,61 +56,39 @@
|
||||
<div layout="row" layout-align="space-between stretch" class="height-270">
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Top 5 agents</span>
|
||||
<span class="md-headline wz-vis-title">Top 5 agents</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-General-Top-5-agents'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Alerts evolution - Top 5 agents</span>
|
||||
<span class="md-headline wz-vis-title">Alerts evolution - Top 5 agents</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-General-Alerts-evolution-Top-5-agents'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="35">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Agents status</span>
|
||||
<span class="md-headline wz-vis-title">Agents status</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-General-Agents-status'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
</div>
|
||||
|
||||
<div layout="row" layout-align="center stretch" class="height-120">
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column text-center">
|
||||
<div class="ng-binding">Top source user</div>
|
||||
<kbn-vis class="kbn-vis-value" vis-id="'Wazuh-App-Overview-General-Top-source-user'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column text-center">
|
||||
<div class="ng-binding">Top source IP</div>
|
||||
<kbn-vis class="kbn-vis-value" vis-id="'Wazuh-App-Overview-General-Top-source-IP'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column text-center">
|
||||
<div class="ng-binding">Top group</div>
|
||||
<kbn-vis class="kbn-vis-value" vis-id="'Wazuh-App-Overview-General-Top-group'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column text-center">
|
||||
<div class="ng-binding">Top PCI DSS requirement</div>
|
||||
<kbn-vis class="kbn-vis-value" vis-id="'Wazuh-App-Overview-General-Top-PCI-DSS-requirement'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
</div>
|
||||
|
||||
<div layout="row" layout-align="center stretch" class="height-570">
|
||||
<md-card flex="60">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Alerts summary</span>
|
||||
<kbn-vis class="kbn-chart" vis-id="'Wazuh-App-Overview-General-Alerts-summary'"></kbn-vis>
|
||||
<span class="md-headline wz-vis-title">Alerts summary</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis class="kbn-chart" vis-id="'Wazuh-App-Overview-General-Alerts-summary'" id="Wazuh-App-Overview-General-Alerts-summary"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="40">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Groups summary</span>
|
||||
<span class="md-headline wz-vis-title">Groups summary</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis class="kbn-chart" vis-id="'Wazuh-App-Overview-General-Groups-summary'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
|
@ -28,24 +28,28 @@
|
||||
<md-card flex="25">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Agents</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-OSCAP-Agents'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="25">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Profiles</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-OSCAP-Profiles'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="25">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Content</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-OSCAP-Content'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="25">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Severity</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-OSCAP-Severity'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -55,6 +59,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Top 5 Agents - Severity high</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-OSCAP-Top-5-agents-Severity-high'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -64,6 +69,7 @@
|
||||
<md-card flex="50">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Top 10 - Alerts</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-OSCAP-Top-10-alerts'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -71,6 +77,7 @@
|
||||
<md-card flex="50">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Top 10 - High risk alerts</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-OSCAP-Top-10-high-risk-alerts'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -101,6 +108,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Alerts summary</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis class="kbn-chart" vis-id="'Wazuh-App-Overview-OSCAP-Last-alerts'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
|
@ -20,6 +20,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Last alerts</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-PCI-DSS-Requirements-heatmap'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -29,12 +30,14 @@
|
||||
<md-card flex="70">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Requirements</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-PCI-DSS-requirements'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="30">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Groups</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-PCI-DSS-Groups'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -44,12 +47,14 @@
|
||||
<md-card flex="30">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Agents</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-PCI-DSS-Agents'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="70">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Requirements by agent</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-PCI-DSS-Requirements-by-agent'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -59,6 +64,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Alerts summary</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis class="kbn-chart" vis-id="'Wazuh-App-Overview-PCI-DSS-Last-alerts'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
|
@ -7,6 +7,7 @@
|
||||
<md-card flex="50">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Events over time</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-PM-Events-over-time'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -14,6 +15,7 @@
|
||||
<md-card flex="25">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Top 5 CIS Requirements</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-PM-Top-5-CIS-requirements'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -21,6 +23,7 @@
|
||||
<md-card flex="25">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Top 5 PCI DSS Requirements</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-PM-Top-5-PCI-DSS-requirements'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -30,6 +33,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Events per agent evolution</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-PM-Events-per-agent-evolution'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -39,6 +43,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Alerts summary</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis class="kbn-chart" vis-id="'Wazuh-App-Overview-PM-Alerts-summary'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
|
@ -34,6 +34,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Unique malicious files per agent</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-Virustotal-Malicious-Per-Agent'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -44,6 +45,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Last scanned files</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-Virustotal-Last-Files-Pie'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -56,6 +58,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Top 10 agents with positive scans</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-Virustotal-Positives-Heatmap'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -64,6 +67,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Malicious files alerts evolution</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-Virustotal-Malicious-Evolution'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -72,6 +76,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Last files</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis class="kbn-chart" vis-id="'Wazuh-App-Overview-Virustotal-Files-Table'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
|
@ -2,8 +2,18 @@
|
||||
|
||||
<!-- View: Panels -->
|
||||
<div ng-if="resultState === 'ready' && tabView === 'panels'">
|
||||
|
||||
<div layout="row" layout-align="center stretch" class="height-120">
|
||||
<div layout="row">
|
||||
<md-card flex class="height-30">
|
||||
<md-card-content layout="row" class="wz-padding-top-5">
|
||||
<span flex><b>Critical severity alerts:</b> {{vulnCritical}}</span>
|
||||
<span flex><b>High severity alerts:</b> {{vulnHigh}}</span>
|
||||
<span flex><b>Medium severity alerts:</b> {{vulnMedium}}</span>
|
||||
<span flex><b>Low severity alerts:</b> {{vulnLow}}</span>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
</div>
|
||||
|
||||
<div layout="row" layout-align="center stretch" class="height-120 wz-no-display">
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<kbn-vis class="metric" vis-id="'Wazuh-App-Overview-VULS-Metric-Critical-severity'"></kbn-vis>
|
||||
@ -30,6 +40,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Alerts severity over time</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-VULS-Alerts-severity-over-time'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -39,12 +50,14 @@
|
||||
<md-card flex="60">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Top Agents severity</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-VULS-Top-Agents-severity'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex="40">
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Affected packages - Top 5</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-VULS-Top-5-affected-packages'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
@ -54,6 +67,7 @@
|
||||
<md-card flex>
|
||||
<md-card-content class="wazuh-column">
|
||||
<span class="md-headline">Alerts summary</span>
|
||||
<md-divider></md-divider>
|
||||
<kbn-vis class="kbn-chart" vis-id="'Wazuh-App-Overview-VULS-Alerts-summary'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
|
@ -19,7 +19,7 @@
|
||||
</md-nav-bar>
|
||||
</div>
|
||||
|
||||
<div class="horizontalTabsBar tabView" layout="column" layout-align="end end">
|
||||
<div class="horizontalTabsBar" layout="column" layout-align="end end">
|
||||
<md-nav-bar layout-align="end end" class="padding-right-0" md-selected-nav-item="tabView" nav-bar-aria-label="navigation submenu">
|
||||
<md-nav-item md-nav-click="switchSubtab('panels')" name="panels">
|
||||
<i class="fa fa-th overview-head-1" aria-hidden="true"></i>Panels
|
||||
|
@ -1022,16 +1022,14 @@
|
||||
{
|
||||
"_id": "Wazuh-App-Overview-Audit-Last-alerts",
|
||||
"_source": {
|
||||
"title": "Wazuh App Overview Audit Last alerts",
|
||||
"visState":
|
||||
"{\"title\":\"Wazuh App Overview Audit Last alerts\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"agent.name\",\"size\":999999999,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Agent\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"rule.description\",\"size\":999999999,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Event\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"data.audit.exe\",\"size\":999999999,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Command\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"data.audit.type\",\"size\":999999999,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Type\"}},{\"id\":\"6\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"data.audit.euid\",\"size\":999999999,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Effective user ID\"}}]}",
|
||||
"uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}",
|
||||
"description": "",
|
||||
"version": 1,
|
||||
"kibanaSavedObjectMeta": {
|
||||
"searchSourceJSON":
|
||||
"{\"index\":\"wazuh-alerts\",\"filter\":[],\"query\":{\"query\":\"rule.groups: audit\",\"language\":\"lucene\"}}"
|
||||
}
|
||||
"title": "Wazuh App Overview Audit Last alerts",
|
||||
"visState": "{\"title\":\"Wazuh App Overview Audit Last alerts\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"agent.name\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":999999,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Agent\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"rule.description\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":1000,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Event\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"data.audit.exe\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Command\"}}]}",
|
||||
"uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}",
|
||||
"description": "",
|
||||
"version": 1,
|
||||
"kibanaSavedObjectMeta": {
|
||||
"searchSourceJSON": "{\"index\":\"wazuh-alerts\",\"filter\":[],\"query\":{\"query\":\"rule.groups: audit\",\"language\":\"lucene\"}}"
|
||||
}
|
||||
},
|
||||
"_type": "visualization"
|
||||
},
|
||||
@ -1940,16 +1938,14 @@
|
||||
{
|
||||
"_id": "Wazuh-App-Agents-Audit-Last-alerts",
|
||||
"_source": {
|
||||
"title": "Wazuh App Agents Audit Last alerts",
|
||||
"visState":
|
||||
"{\"title\":\"Wazuh App Agents Audit Last alerts\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"agent.name\",\"size\":999999,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Agent name\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"rule.description\",\"size\":999999,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Event\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"data.audit.exe\",\"size\":999999,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Command\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"data.audit.type\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Type\"}},{\"id\":\"6\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"data.audit.euid\",\"size\":999999,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Effective user ID\"}}]}",
|
||||
"uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}",
|
||||
"description": "",
|
||||
"version": 1,
|
||||
"kibanaSavedObjectMeta": {
|
||||
"searchSourceJSON":
|
||||
"{\"index\":\"wazuh-alerts\",\"filter\":[],\"query\":{\"query\":\"rule.groups: audit\",\"language\":\"lucene\"}}"
|
||||
}
|
||||
"title": "Wazuh App Agents Audit Last alerts",
|
||||
"visState": "{\"title\":\"Wazuh App Agents Audit Last alerts\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"agent.name\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":999999,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Agent name\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"rule.description\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":1000,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Event\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"data.audit.exe\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Command\"}}]}",
|
||||
"uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}",
|
||||
"description": "",
|
||||
"version": 1,
|
||||
"kibanaSavedObjectMeta": {
|
||||
"searchSourceJSON": "{\"index\":\"wazuh-alerts\",\"filter\":[],\"query\":{\"query\":\"rule.groups: audit\",\"language\":\"lucene\"}}"
|
||||
}
|
||||
},
|
||||
"_type": "visualization"
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user