Removed bootstrap, cleaning started

This commit is contained in:
Jesús Ángel González 2018-03-06 12:03:58 +01:00
parent b599162fea
commit 8af6ae2f2d
15 changed files with 413 additions and 3496 deletions

View File

@ -29,7 +29,6 @@
"angular-material": "1.1.1",
"angular-md5": "^0.1.10",
"ansicolors": "^0.3.2",
"bootstrap": "^3.3.7",
"install": "^0.10.1",
"js-yaml": "3.10.0",
"lodash": "3.10.1",

View File

@ -1,19 +1,18 @@
// Require CSS
require('plugins/wazuh/less/loader');
//require('plugins/wazuh/less/ui_framework.less');
// Set up Wazuh app
var app = require('ui/modules').get('app/wazuh', ['ngCookies','ngMaterial'])
.config(['$compileProvider', function ($compileProvider) {
$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|data|blob):/);
}])
.config(['$httpProvider', function ($httpProvider) {
$httpProvider.useApplyAsync(true);
}]);
const app = require('ui/modules').get('app/wazuh', ['ngCookies', 'ngMaterial']);
app.config(['$compileProvider', function ($compileProvider) {
$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|data|blob):/);
}])
app.config(['$httpProvider', function ($httpProvider) {
$httpProvider.useApplyAsync(true);
}]);
//Bootstrap and font awesome
require('plugins/wazuh/../node_modules/bootstrap/dist/css/bootstrap.min.css');
require('plugins/wazuh/../node_modules/bootstrap/dist/js/bootstrap.min.js');
require('plugins/wazuh/utils/fontawesome/css/font-awesome.min.css');
require('plugins/wazuh/utils/when-scrolled/when-scrolled.js');
require('../../../ui_framework/dist/ui_framework.css');

View File

@ -1,12 +1,12 @@
<md-nav-bar class="wazuhMenuNav" name="menuTopName" md-selected-nav-item="menuNavItem" nav-bar-aria-label="navigation menu">
<md-nav-item class="wazuhMenuNav-logo" style="margin-top:-10px !important" id="header_logo" md-nav-click="goToClick('#/')" name="logo" aria-hidden="true">
<md-nav-bar class="wz-menu-nav" name="menuTopName" md-selected-nav-item="menuNavItem" nav-bar-aria-label="navigation menu">
<md-nav-item class="wz-menu-nav-logo" style="margin-top:-10px !important" id="header_logo" md-nav-click="goToClick('#/')" name="logo" aria-hidden="true">
<img aria-hidden="true" kbn-src="/plugins/wazuh/img/new_logo_white.png" height="44" weight="252"></img>
</md-nav-item>
<md-nav-item class="directives-color-white" ng-class="{navItemChangeColor: menuNavItem == 'overview' }" md-nav-click="goToClick('#/overview')" id="overview"><i class="fa fa-bar-chart"></i> Overview</md-nav-item>
<md-nav-item class="directives-color-white" ng-class="{navItemChangeColor: menuNavItem == 'manager' }" md-nav-click="goToClick('#/manager')" id="manager"><i class="fa fa-server"></i> Manager</md-nav-item>
<md-nav-item class="directives-color-white" ng-class="{navItemChangeColor: menuNavItem == 'agents' }" md-nav-click="goToClick('#/agents-preview')" id="agents"><i class="fa fa-tv"></i> Agents</md-nav-item>
<md-nav-item class="directives-color-white" ng-class="{navItemChangeColor: menuNavItem == 'discover' }" md-nav-click="goToClick('#/wazuh-discover')" id="discover"><i class="fa fa-compass"></i> Discover</md-nav-item>
<div class="wazuhMenuNavBar_API" layout="row" ng-show="theresAPI || theresPattern">
<md-nav-item class="wz-color-white" ng-class="{'wz-nav-item-change-color': menuNavItem == 'overview' }" md-nav-click="goToClick('#/overview')" id="overview"><i class="fa fa-bar-chart"></i> Overview</md-nav-item>
<md-nav-item class="wz-color-white" ng-class="{'wz-nav-item-change-color': menuNavItem == 'manager' }" md-nav-click="goToClick('#/manager')" id="manager"><i class="fa fa-server"></i> Manager</md-nav-item>
<md-nav-item class="wz-color-white" ng-class="{'wz-nav-item-change-color': menuNavItem == 'agents' }" md-nav-click="goToClick('#/agents-preview')" id="agents"><i class="fa fa-tv"></i> Agents</md-nav-item>
<md-nav-item class="wz-color-white" ng-class="{'wz-nav-item-change-color': menuNavItem == 'discover' }" md-nav-click="goToClick('#/wazuh-discover')" id="discover"><i class="fa fa-compass"></i> Discover</md-nav-item>
<div class="wz-menu-nav-bar-api" layout="row" ng-show="theresAPI || theresPattern">
<div ng-show="theresAPI" layout layout-align="center center"><i class="fa fa-star fa-fw settings-template-1" aria-hidden="true"></i>{{ currentAPI }}&nbsp;&ndash;&nbsp;<md-tooltip md-direction="bottom">Selected API</md-tooltip></div>
<div ng-show="!theresAPI" layout layout-align="center center"><i class="fa fa-star fa-fw settings-template-1" aria-hidden="true"></i>No API &nbsp;&ndash;&nbsp;<md-tooltip md-direction="bottom">Selected API</md-tooltip></div>
<!-- <div ng-show="theresPattern" layout layout-align="center center">&nbsp;&ndash;&nbsp;{{ currentPattern }}<md-tooltip md-direction="bottom">Selected index-pattern</md-tooltip></div> -->
@ -18,7 +18,7 @@
</div>
<div ng-show="theresPattern && patternList && patternList.length === 1" layout layout-align="center center"> {{ patternList[0].attributes.title }} <md-tooltip md-direction="bottom">Selected index pattern</md-tooltip></div>
</div>
<md-nav-item class="wazuhMenuNavBar_gear directives-color-white" md-nav-click="goToClick('#/settings')" id="settings" name="settings">
<md-nav-item class="wz-menu-nav-gear wz-color-white" md-nav-click="goToClick('#/settings')" id="settings" name="settings">
<i class="fa fa-cog ng-scope" aria-hidden="true"></i>
</md-nav-item>
</md-nav-bar>

69
public/less/cleaned.less Normal file
View File

@ -0,0 +1,69 @@
// wazuh-navbar.less
.wz-color-white,
.wz-color-white button {
color: white !important;
}
.wz-nav-item-change-color button{
background-color: #0079a5 !important;
}
.wz-menu-nav div md-nav-ink-bar {
left: 0px !important;
width: 0px !important;
}
.wz-menu-nav div nav {
padding-top: 12px;
height: 70px;
background-color: #00445a !important;
color: rgb(0,121,165);
font-size: 14px;
}
.wz-menu-nav div nav ul li a {
border-bottom-left-radius: 0px;
border-bottom-right-radius: 0px;
color: #ffffff !important;
font-size: 14px !important;
padding-bottom: 0px;
height: 96%;
}
.wz-menu-nav div nav ul li a:hover {
background-color: #005571 !important;
}
.wz-menu-nav div nav ul li .md-active,
.wz-menu-nav .md-button:not([disabled]):hover{
background-color: #0079a5 !important;
}
.wz-menu-nav-logo .md-button:not([disabled]):hover{
background-color: #00445a !important;
}
.wz-menu-nav-bar {
min-width: 1015px;
background-color: #005571 !important;
}
.wz-menu-nav-gear {
float: right;
position: absolute;
right: 10px;
}
.wz-menu-nav-gear i.fa.fa-cog {
font-size: 18px;
color:#ffffff;
}
.wz-menu-nav-bar-api {
float: right;
position: absolute;
right: 130px;
color:#ffffff;
top: 25px;
bottom: 0px;
margin-right: -25px;
}

View File

@ -225,14 +225,6 @@ md-progress-linear ._md-bar {
color: rgb(0,121,165) !important;
}
.directives-color-white,
.directives-color-white button {
color: white !important;
}
.navItemChangeColor button{
background-color: #0079a5 !important;
}
/* Common styles for text and font */
.text-center {

View File

@ -13,4 +13,5 @@ require('plugins/wazuh/less/overview.less');
require('plugins/wazuh/less/settings.less');
require('plugins/wazuh/less/heights.less');
require('plugins/wazuh/less/tables.less');
require('plugins/wazuh/less/cleaned.less');
import 'ui/styles/theme.less';

View File

@ -116,8 +116,7 @@ md-list-item {
}
.wz-table-border {
box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.1) !important;
border: 1px solid #D9D9D9 !important;
box-shadow: 0 0px 0px 1px rgba(0, 0, 0, 0.1) !important;
}
.padding-right-14 {

File diff suppressed because it is too large Load Diff

View File

@ -1,144 +0,0 @@
/* --------------------------------------------------------------------- */
/* --------------------------- App nav menu ---------------------------- */
/* --------------------------------------------------------------------- */
#header_logo>a {
padding-top: 0;
padding-bottom: 0;
margin-left: 15px;
margin-right: 27px;
padding-left: 0;
}
li#header_logo {
margin-left: 0;
text-align: left;
}
.md-virtual-repeat-container.md-autocomplete-suggestions-container {
box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.1) !important;
border: 1px solid #D9D9D9 !important;
}
.autocomplete-custom-agents-bar li {
border-bottom: 1px solid #ccc;
height: auto;
padding-top: 8px;
padding-bottom: 8px;
white-space: normal;
}
.autocomplete-custom-agents-bar li:last-child {
border-bottom-width: 0;
}
.autocomplete-custom-agents-bar .item-title,
.autocomplete-custom-agents-bar .item-metadata {
display: block;
line-height: 2;
height: 18px;
}
.pagination-other-pages-list>li a {
text-decoration: none;
background-color: #f6f6f6;
margin-left: 2px;
padding: 8px 11px;
font-size: 12px;
line-height: 1.5;
}
.pagination-other-pages-list {
flex: 0 0 auto;
display: flex;
justify-content: center;
padding: 0;
margin: 0;
list-style: none;
}
.wazuhMenuNav div md-nav-ink-bar {
left: 0px !important;
width: 0px !important;
}
.wazuhMenuNav div nav {
padding-top: 12px;
height: 70px;
background-color: #00445a !important;
color: rgb(0,121,165);
font-size: 14px;
}
.wazuhMenuNav div nav ul li a {
border-bottom-left-radius: 0px;
border-bottom-right-radius: 0px;
color: #ffffff !important;
font-size: 14px !important;
padding-bottom: 0px;
height: 96%;
}
.wazuhMenuNav div nav ul li a:hover {
background-color: #005571 !important;
}
.wazuhMenuNav div nav ul li .md-active {
background-color: #0079a5 !important;
}
.wazuhMenuNav .md-button:not([disabled]):hover{
background-color: #0079a5 !important;
}
.wazuhMenuNav-logo .md-button:not([disabled]):hover{
background-color: #00445a !important;
}
.wazuhMenuNavBar {
min-width: 1015px;
background-color: #005571 !important;
}
.contentMin {
min-width: 1200px;
}
.wazuhMenuNavBar_gear {
float: right;
position: absolute;
right: 10px;
}
.wazuhMenuNavBar_gear i.fa.fa-cog {
font-size: 18px;
color:#ffffff;
}
.wazuhMenuNavBar_API {
float: right;
position: absolute;
right: 130px;
color:#ffffff;
top: 25px;
bottom: 0px;
margin-right: -25px;
}
/* --------------------------------------------------------------------- */
/* ---------------------------- md-nav-bar ----------------------------- */
/* --------------------------------------------------------------------- */
md-nav-bar {
padding-top: 0px !important;
}
md-nav-bar.md-default-theme .md-button._md-nav-button.md-unselected,
md-nav-bar .md-button._md-nav-button.md-unselected {
color: #141414;
border: none;
}
.md-nav-bar {
border: none !important;
}

View File

@ -1,7 +1,7 @@
<div flex ng-controller="agentsPreviewController" layout="column">
<md-content class="wazuhMenuNavBar height-70" ng-init="menuNavItem = 'agents'">
<div class="wz-menu-nav-bar height-70" ng-init="menuNavItem = 'agents'">
<wz-menu></wz-menu>
</md-content>
</div>
<div flex layout="column" id="content" ng-class="tabView != 'discover' ? 'background-e4' : ''" >

View File

@ -1,8 +1,8 @@
<div flex ng-controller="agentsController" layout="column">
<md-content class="wazuhMenuNavBar height-70" ng-init="menuNavItem = 'agents'">
<div class="wz-menu-nav-bar height-70" ng-init="menuNavItem = 'agents'">
<wz-menu></wz-menu>
</md-content>
</div>
<div layout="row" layout-align="space-between start" class="background-f7">
<md-toolbar class="height-50">

View File

@ -1,6 +1,6 @@
<div flex layout="column">
<md-content class="wazuhMenuNavBar kbn-dis-height-70" ng-init="menuNavItem = 'discover'">
<div class="wz-menu-nav-bar kbn-dis-height-70" ng-init="menuNavItem = 'discover'">
<wz-menu></wz-menu>
</md-content>
</div>
<md-progress-linear class="md-accent" md-mode="indeterminate" ng-show="load"></md-progress-linear>

View File

@ -1,8 +1,8 @@
<div flex ng-controller="managerController" layout="column">
<md-content class="wazuhMenuNavBar height-70" ng-init="menuNavItem = 'manager';">
<div class="wz-menu-nav-bar height-70" ng-init="menuNavItem = 'manager';">
<wz-menu></wz-menu>
</md-content>
</div>
<div class="headBar" layout="row" layout-align="center start">
<md-nav-bar flex class="pading-right-0" md-selected-nav-item="submenuNavItem" nav-bar-aria-label="navigation submenu">

View File

@ -1,8 +1,8 @@
<div flex ng-controller="overviewController" layout="column">
<md-content class="wazuhMenuNavBar height-70" ng-init="menuNavItem = 'overview'">
<div class="wz-menu-nav-bar height-70" ng-init="menuNavItem = 'overview'">
<wz-menu></wz-menu>
</md-content>
</div>
<div layout="row" layout-align="space-between start" class="horizontalTabsBar">
<div class="horizontalTabsBar" layout="column" layout-align="center start">

View File

@ -1,281 +1,342 @@
<md-content flex ng-controller="settingsController" layout="column">
<md-content class="wazuhMenuNavBar height-70" ng-init="menuNavItem = 'settings'">
<div class="wz-menu-nav-bar height-70" ng-init="menuNavItem = 'settings'">
<wz-menu></wz-menu>
</md-content>
</div>
<md-content class="headBar" layout="row" layout-align="center start">
<div class="headBar" layout="row" layout-align="center start">
<md-nav-bar flex class="padding-right-0" md-selected-nav-item="submenuNavItem" nav-bar-aria-label="navigation submenu">
<md-nav-item md-nav-click="submenuNavItem = 'api'" name="api">API</md-nav-item>
<md-nav-item md-nav-click="submenuNavItem = 'extensions'" name="extensions">Extensions</md-nav-item>
<md-nav-item md-nav-click="submenuNavItem = 'pattern'" name="pattern">Pattern</md-nav-item>
<md-nav-item md-nav-click="submenuNavItem = 'about'" name="about">About</md-nav-item>
</md-nav-bar>
</md-content>
</div>
<div layout="column" layout-align="start stretch">
<div layout="column" layout-align="start stretch">
<md-card layout-padding layout-align="start stretch" ng-if="submenuNavItem == 'api' && apiEntries.length == 0">
<md-card layout-padding layout-align="start stretch" ng-if="submenuNavItem == 'api' && apiEntries.length == 0">
<h1 class="wazuh-h1">Welcome to the Wazuh App for Kibana 6</h1>
<div>
<p>The Wazuh App brings together a new and useful web interface for managing and monitoring your Wazuh infrastructure. You can check agent status, alert evolution, most recent events, popular alerts, top alert groups, etc. You can also display configuration and logs of the manager.</p>
<p>In addition, make use of any or all of these extensions:</p>
<ul>
<li>Linux Audit system integration.
<li>PCI DSS Compliance.
<li>OpenSCAP security compliance and vulnerability assessments.
<li>Amazon Web Services (AWS) integration.
<li>VirusTotal integration.
</ul>
<p>The app joins Wazuh features like: <strong>Log management and analysis</strong>, <strong>file integrity monitoring</strong>, <strong>intrusion and anomaly detection</strong> and <strong>policy and compliance monitoring.</strong></p>
<p>Help us to improve this app. We would appreciate your feedback. Collaborate with us on the <a href="https://groups.google.com/forum/#!forum/wazuh">Mailing Lists</a> and/or the Wazuh App <a href="https://github.com/wazuh/wazuh-kibana-app">Github repository</a></p>
<br>
<p>Please enter your Wazuh RESTful API credentials at the form below to begin.</p>
</div>
</md-card>
<md-card layout-padding layout-align="start stretch" ng-if="apiIsDown">
<h1 class="wazuh-h1"><i class="fa fa-warning ng-scope font-size-25" aria-hidden="true"></i> Wazuh RESTful API seems to be down</h1>
<p>Please, check if Wazuh RESTful API is running with one of the commands below:</p>
<md-list>
<md-list-item>For Systemd:</md-list-item>
<md-list-item><code> $ systemctl status wazuh-api</code></md-list-item>
<md-list-item>For SysV Init:</md-list-item>
<md-list-item><code> $ service wazuh-api status</code></md-list-item>
</md-list>
<p>If the API is <code>active (running)</code> please check its configuration below.</p>
</md-card>
<md-card layout-padding layout-align="start stretch" ng-if="submenuNavItem == 'api'">
<h1 class="wazuh-h1"><i class="fa fa-cog ng-scope font-size-25" aria-hidden="true"></i> Wazuh App: API configuration</h1>
<span layout="row" layout-align="start start">
<p flex="15" class="text-bold">Cluster</p>
<p flex="20" class="text-bold">Manager</p>
<p flex="15" class="text-bold">API URL</p>
<p flex="15" class="text-bold">API Port</p>
<p flex="15" class="text-bold">User</p>
<p flex="20" class="text-bold">Actions</p>
</span>
<div ng-repeat="entry in apiEntries">
<span layout="row" layout-align="space-between center">
<p flex="15" ><i ng-show="(entry._id === currentDefault)" tooltip="Set as default Manager" class="fa fa-star settings-template-1" aria-hidden="true"></i> {{entry._source.cluster_info.cluster}}</p>
<p flex="20" >{{entry._source.cluster_info.manager}}</p>
<p flex="15" >{{entry._source.url}}</p>
<p flex="15" >{{entry._source.api_port}}</p>
<p flex="15" >{{entry._source.api_user}}</p>
<p flex="20" >
<i ng-click="setDefault(entry)" tooltip="Set as default Manager" class="fa fa-star font-size-18 cursor-pointer" aria-hidden="true"></i>
<i ng-click="removeManager(entry)" tooltip="Remove manager" class="fa fa-trash settings-template-2 cursor-pointer" aria-hidden="true"></i>
<i ng-click="checkManager(entry)" tooltip="Check connection" class="fa fa-refresh settings-template-2 cursor-pointer" aria-hidden="true"></i>
<i ng-click="toggleEditor(entry)" tooltip="Edit" class="fa fa-pencil settings-template-2 cursor-pointer" aria-hidden="true"></i>
</p>
</span>
<span layout="row" layout-align="space-between center" ng-if="showEditForm[entry._id] && isEditing">
<form flex ng-submit="updateSettings(entry)" layout="column" layout-align="start stretch" class="margin-top-30">
<md-input-container>
<label>Username</label>
<input placeholder="" ng-init="formUpdate.user=entry._source.api_user" type="text" ng-model="formUpdate.user" aria-label="username" required/>
</md-input-container>
<md-input-container>
<label>Password</label>
<input placeholder="" type="password" ng-model="formUpdate.password" aria-label="password" required/>
</md-input-container>
<md-input-container>
<label>URL</label>
<input placeholder="https://" ng-init="formUpdate.url=entry._source.url" ng-model="formUpdate.url" type="url" aria-label="full url" required/>
</md-input-container>
<md-input-container>
<label>Port</label>
<input placeholder="" ng-init="formUpdate.port=entry._source.api_port" ng-model="formUpdate.port" type="text" aria-label="port" required/>
</md-input-container>
<div layout="row" layout-align="center center" ng-if="messageError">
<p class="color-f9">{{messageErrorUpdate}}</p>
</div>
<div layout="row" layout-align="center center">
<md-button flex="15" type="submit" class="wazuh-button md-raised md-primary" aria-label="Update API button">
<i class="fa fa-pencil fa-fw" aria-hidden="true"></i> Update API
</md-button>
</div>
</form>
</span>
<span class="md-headline">Welcome to the Wazuh App for Kibana 6</span>
<md-divider></md-divider>
</div>
<div ng-show="!isUpdating()" layout="row" layout-align="center center">
<md-button flex="15" ng-click="$parent.addManagerContainer = !$parent.addManagerContainer" type="submit" class="wazuh-button md-raised md-primary" aria-label="Add new API button">
<i class="fa fa-plus-circle fa-fw" aria-hidden="true"></i> Add new API
</md-button>
</div>
<form flex ng-submit="processForm()" layout="column" layout-align="start stretch" ng-if="!currentAPI || ($parent.addManagerContainer && !isEditing)" class="margin-top-30">
<md-input-container>
<label>Username</label>
<input placeholder="" type="text" ng-model="formData.user" aria-label="username" required/>
</md-input-container>
<md-input-container>
<label>Password</label>
<input placeholder="" type="password" ng-model="formData.password" aria-label="password" required/>
</md-input-container>
<md-input-container>
<label>URL</label>
<input placeholder="https://" ng-model="formData.url" type="url" aria-label="full url" required/>
</md-input-container>
<md-input-container>
<label>Port</label>
<input placeholder="" ng-model="formData.port" type="text" aria-label="port" required/>
</md-input-container>
<div layout="row" layout-align="center center">
<p class="color-f9">{{messageError}}</p>
</div>
<div layout="row" layout-align="center center">
<md-button flex="15" type="submit" class="wazuh-button md-raised md-primary" aria-label="Save API button">
<i class="fa fa-floppy-o fa-fw" aria-hidden="true"></i> Save API
</md-button>
</div>
</form>
</md-card>
<md-card flex layout-padding layout-align="start stretch" ng-if="submenuNavItem == 'extensions'">
<h1 class="wazuh-h1"><i class="fa fa-cog ng-scope font-size-25" aria-hidden="true"></i> Wazuh App: Extensions</h1>
<p flex>Enable or disable extensions according to your needs. The extension includes: Panels and Discover, for Overview / Agents tabs.</p>
<div>
<span layout="row" layout-align="space-between center" class="text-bold">
PCI DSS
</span>
<span>
The Payment Card Industry Data Security Standard (PCI DSS) is a proprietary information security standard for organizations that handle branded credit cards from the major card schemes including Visa, MasterCard, American Express, Discover, and JCB. The PCI Standard is mandated by the card brands and administered by the Payment Card Industry Security Standards Council. The standard was created to increase controls around cardholder data to reduce credit card fraud.
</span>
<span>
<md-switch flex ng-model="extensions.pci" aria-label="extensionsPci" ng-change="toggleExtension('pci',extensions.pci)"></md-switch>
</span>
<md-divider></md-divider>
</div>
<div>
<span layout="row" layout-align="space-between center" class="text-bold">
OpenSCAP
</span>
<span>
OVAL (Open Vulnerability Assessment Language) interpreter used to check system configuration and detect vulnerable applications. It is recognized as a standardized compliance and hardening checking solution for enterprise-level infrastructure.
</span>
<span>
<md-switch flex ng-model="extensions.oscap" aria-label="extensionsOscap" ng-change="toggleExtension('oscap',extensions.oscap)"></md-switch>
</span>
<md-divider></md-divider>
</div>
<div>
<span layout="row" layout-align="space-between center" class="text-bold">
Audit
</span>
<span>
The Linux Audit system provides a way to track security-relevant information on your system. Based on pre-configured rules, Audit generates log entries to record as much information about the events that are happening on your system as possible.
</span>
<span layout="row" layout-align="space-between center">
<md-switch flex ng-model="extensions.audit" aria-label="extensionsAudit" ng-change="toggleExtension('audit',extensions.audit)"></md-switch>
</span>
<md-divider></md-divider>
</div>
<div>
<span layout="row" layout-align="space-between center" class="text-bold">
Amazon Web Services (AWS)
</span>
<span>
Wazuh provides a way to collect alerts from your AWS machines and store them to an agent. Once the agent reads the message, it sends it to the Wazuh manager which analyses it with decoders and rules. When a rule matches, an alert is triggered if the rule severity is high enough. Wazuh can be used to alert on specific events from IAM, EC2 and VPC.
</span>
<span layout="row" layout-align="space-between center">
<md-switch flex ng-model="extensions.aws" aria-label="extensionsAWS" ng-change="toggleExtension('aws',extensions.aws)"></md-switch>
</span>
<md-divider></md-divider>
</div>
<div>
<span layout="row" layout-align="space-between center" class="text-bold">
VirusTotal
</span>
<span>
VirusTotal is an online service that analyzes files and URLs enabling the detection of viruses, worms, trojans and other kinds of malicious content using antivirus engines and website scanners. It also can be used to detect false positives.
</span>
<span layout="row" layout-align="space-between center">
<md-switch flex ng-model="extensions.virustotal" aria-label="extensionsVirusTotal" ng-change="toggleExtension('virustotal',extensions.virustotal)"></md-switch>
</span>
</div>
</md-card>
<md-card flex layout-padding layout-align="start stretch" ng-if="submenuNavItem == 'pattern'">
<h1 class="wazuh-h1"><i class="fa fa-cog ng-scope font-size-25" aria-hidden="true"></i> Wazuh App: Index pattern selection</h1>
<p flex>Select the index pattern to run search and analytics against:</p>
<p flex><strong>Beware: the new index-pattern structure must be compatible with Wazuh alerts, otherwise the visualizations will load erroneous data, or no data at all.</strong></p>
<p flex><strong>Warning: modifying the index-pattern will change it to ALL of the users.</strong></p>
<md-input-container flex="20" class="md-whiteframe-z1 manager-ruleset-decoders-selector background-e2" ng-if="load === false">
<md-select ng-model="selectedIndexPattern" ng-change="changeIndexPattern(selectedIndexPattern)" aria-label="Select index pattern">
<md-option ng-repeat="indexPattern in indexPatterns" value="{{indexPattern.id}}">{{indexPattern.attributes.title}}</md-option>
</md-select>
</md-input-container>
</md-card>
<md-content layout="column" layout-align="start stretch" ng-if="submenuNavItem == 'about'">
<md-card layout-align="start stretch">
<md-card-content>
<h1 class="wazuh-h1"><i class="fa fa-cog ng-scope font-size-25" aria-hidden="true"></i> Wazuh App: About</h1>
<div>
<p>The Wazuh App brings together a new and useful web interface for managing and monitoring your Wazuh infrastructure. You can check agent status, alert evolution, most recent events, popular alerts, top alert groups, etc. You can also display configuration and logs of the manager.</p>
<p>In addition, make use of any or all of these extensions:</p>
<ul>
<li>Linux Audit system integration.
<div>
<p>The Wazuh App brings together a new and useful web interface for managing and monitoring your Wazuh infrastructure.
You can check agent status, alert evolution, most recent events, popular alerts, top alert groups, etc.
You can also display configuration and logs of the manager.</p>
<p>In addition, make use of any or all of these extensions:</p>
<ul>
<li>Linux Audit system integration.
<li>PCI DSS Compliance.
<li>OpenSCAP security compliance and vulnerability assessments.
<li>Amazon Web Services (AWS) integration.
<li>VirusTotal integration.
</ul>
<p>The app joins Wazuh features like: <strong>Log management and analysis</strong>, <strong>file integrity monitoring</strong>, <strong>intrusion and anomaly detection</strong> and <strong>policy and compliance monitoring.</strong></p>
<p>Help us to improve this app. We would appreciate your feedback. Collaborate with us on the <a href="https://groups.google.com/forum/#!forum/wazuh">Mailing Lists</a> and/or the Wazuh App <a href="https://github.com/wazuh/wazuh-kibana-app">Github repository</a>.</p>
<li>OpenSCAP security compliance and vulnerability assessments.
<li>Amazon Web Services (AWS) integration.
<li>VirusTotal integration.
</ul>
<p>The app joins Wazuh features like:
<strong>Log management and analysis</strong>,
<strong>file integrity monitoring</strong>,
<strong>intrusion and anomaly detection</strong> and
<strong>policy and compliance monitoring.</strong>
</p>
<p>Help us to improve this app. We would appreciate your feedback. Collaborate with us on the
<a href="https://groups.google.com/forum/#!forum/wazuh">Mailing Lists</a> and/or the Wazuh App
<a href="https://github.com/wazuh/wazuh-kibana-app">Github repository</a>
</p>
<br>
<p>Please enter your Wazuh RESTful API credentials at the form below to begin.</p>
</div>
</md-card>
<md-card layout-padding layout-align="start stretch" ng-if="apiIsDown">
<h1 class="wazuh-h1">
<i class="fa fa-warning ng-scope font-size-25" aria-hidden="true"></i> Wazuh RESTful API seems to be down</h1>
<p>Please, check if Wazuh RESTful API is running with one of the commands below:</p>
<md-list>
<md-list-item>For Systemd:</md-list-item>
<md-list-item>
<code> $ systemctl status wazuh-api</code>
</md-list-item>
<md-list-item>For SysV Init:</md-list-item>
<md-list-item>
<code> $ service wazuh-api status</code>
</md-list-item>
</md-list>
<p>If the API is
<code>active (running)</code> please check its configuration below.</p>
</md-card>
<md-card layout-padding layout-align="start stretch" ng-if="submenuNavItem == 'api'">
<span class="md-headline">Wazuh App: API configuration</span>
<md-divider></md-divider>
<div layout="row" layout-align="start start">
<p flex="15" class="text-bold">Cluster</p>
<p flex="20" class="text-bold">Manager</p>
<p flex="15" class="text-bold">API URL</p>
<p flex="15" class="text-bold">API Port</p>
<p flex="15" class="text-bold">User</p>
<p flex="20" class="text-bold">Actions</p>
</div>
<div ng-repeat="entry in apiEntries">
<div layout="row" layout-align="space-between center">
<p flex="15">
<i ng-show="(entry._id === currentDefault)" tooltip="Set as default Manager" class="fa fa-star settings-template-1" aria-hidden="true"></i> {{entry._source.cluster_info.cluster}}</p>
<p flex="20">{{entry._source.cluster_info.manager}}</p>
<p flex="15">{{entry._source.url}}</p>
<p flex="15">{{entry._source.api_port}}</p>
<p flex="15">{{entry._source.api_user}}</p>
<p flex="20">
<i ng-click="setDefault(entry)" tooltip="Set as default Manager" class="fa fa-star font-size-18 cursor-pointer" aria-hidden="true"></i>
<i ng-click="removeManager(entry)" tooltip="Remove manager" class="fa fa-trash settings-template-2 cursor-pointer" aria-hidden="true"></i>
<i ng-click="checkManager(entry)" tooltip="Check connection" class="fa fa-refresh settings-template-2 cursor-pointer" aria-hidden="true"></i>
<i ng-click="toggleEditor(entry)" tooltip="Edit" class="fa fa-pencil settings-template-2 cursor-pointer" aria-hidden="true"></i>
</p>
</div>
</md-card-content>
<div layout="row" layout-align="space-between center" ng-if="showEditForm[entry._id] && isEditing">
<form flex ng-submit="updateSettings(entry)" layout="column" layout-align="start stretch" class="margin-top-30">
<md-input-container>
<label>Username</label>
<input placeholder="" ng-init="formUpdate.user=entry._source.api_user" type="text" ng-model="formUpdate.user" aria-label="username"
required/>
</md-input-container>
<md-input-container>
<label>Password</label>
<input placeholder="" type="password" ng-model="formUpdate.password" aria-label="password" required/>
</md-input-container>
<md-input-container>
<label>URL</label>
<input placeholder="https://" ng-init="formUpdate.url=entry._source.url" ng-model="formUpdate.url" type="url" aria-label="full url"
required/>
</md-input-container>
<md-input-container>
<label>Port</label>
<input placeholder="" ng-init="formUpdate.port=entry._source.api_port" ng-model="formUpdate.port" type="text" aria-label="port"
required/>
</md-input-container>
<div layout="row" layout-align="center center" ng-if="messageError">
<p class="color-f9">{{messageErrorUpdate}}</p>
</div>
<div layout="row" layout-align="center center">
<md-button flex="15" type="submit" class="wazuh-button md-raised md-primary" aria-label="Update API button">
<i class="fa fa-pencil fa-fw" aria-hidden="true"></i> Update API
</md-button>
</div>
</form>
</div>
</div>
<div ng-show="!isUpdating()" layout="row" layout-align="center center">
<md-button flex="15" ng-click="$parent.addManagerContainer = !$parent.addManagerContainer" type="submit" class="wazuh-button md-raised md-primary"
aria-label="Add new API button">
<i class="fa fa-plus-circle fa-fw" aria-hidden="true"></i> Add new API
</md-button>
</div>
<form flex ng-submit="processForm()" layout="column" layout-align="start stretch" ng-if="!currentAPI || ($parent.addManagerContainer && !isEditing)"
class="margin-top-30">
<md-input-container>
<label>Username</label>
<input placeholder="" type="text" ng-model="formData.user" aria-label="username" required/>
</md-input-container>
<md-input-container>
<label>Password</label>
<input placeholder="" type="password" ng-model="formData.password" aria-label="password" required/>
</md-input-container>
<md-input-container>
<label>URL</label>
<input placeholder="https://" ng-model="formData.url" type="url" aria-label="full url" required/>
</md-input-container>
<md-input-container>
<label>Port</label>
<input placeholder="" ng-model="formData.port" type="text" aria-label="port" required/>
</md-input-container>
<div layout="row" layout-align="center center">
<p class="color-f9">{{messageError}}</p>
</div>
<div layout="row" layout-align="center center">
<md-button flex="15" type="submit" class="wazuh-button md-raised md-primary" aria-label="Save API button">
<i class="fa fa-floppy-o fa-fw" aria-hidden="true"></i> Save API
</md-button>
</div>
</form>
</md-card>
<md-card layout-align="start stretch">
<md-card-content class="width-500">
<md-card flex layout-padding layout-align="start stretch" ng-if="submenuNavItem == 'extensions'">
<h1 class="wazuh-h1"><i class="fa fa-cog ng-scope font-size-25" aria-hidden="true"></i> Wazuh App: Version</h1>
<span class="md-headline">Wazuh App: Extensions</span>
<md-divider></md-divider>
<span layout="row" layout-align="space-between center">
<p>App version</p>
<p>{{appInfo["app-version"]}}</p>
<p flex>Enable or disable extensions according to your needs. The extension includes: Panels and Discover, for Overview
/ Agents tabs.</p>
<div>
<span layout="row" layout-align="space-between center" class="text-bold">
PCI DSS
</span>
<span>
The Payment Card Industry Data Security Standard (PCI DSS) is a proprietary information security standard for organizations
that handle branded credit cards from the major card schemes including Visa, MasterCard, American Express,
Discover, and JCB. The PCI Standard is mandated by the card brands and administered by the Payment Card
Industry Security Standards Council. The standard was created to increase controls around cardholder
data to reduce credit card fraud.
</span>
<span>
<md-switch flex ng-model="extensions.pci" aria-label="extensionsPci" ng-change="toggleExtension('pci',extensions.pci)"></md-switch>
</span>
<md-divider></md-divider>
<span layout="row" layout-align="space-between center">
<p>Install date</p>
<p>{{appInfo["installationDate"]}}</p>
</div>
<div>
<span layout="row" layout-align="space-between center" class="text-bold">
OpenSCAP
</span>
<span>
OVAL (Open Vulnerability Assessment Language) interpreter used to check system configuration and detect vulnerable applications.
It is recognized as a standardized compliance and hardening checking solution for enterprise-level infrastructure.
</span>
<span>
<md-switch flex ng-model="extensions.oscap" aria-label="extensionsOscap" ng-change="toggleExtension('oscap',extensions.oscap)"></md-switch>
</span>
<md-divider></md-divider>
<span layout="row" layout-align="space-between center">
<p>Revision</p>
<p>{{appInfo["revision"]}}</p>
</span>
</div>
<div>
<span layout="row" layout-align="space-between center" class="text-bold">
Audit
</span>
<span>
The Linux Audit system provides a way to track security-relevant information on your system. Based on pre-configured rules,
Audit generates log entries to record as much information about the events that are happening on your
system as possible.
</span>
<span layout="row" layout-align="space-between center">
<md-switch flex ng-model="extensions.audit" aria-label="extensionsAudit" ng-change="toggleExtension('audit',extensions.audit)"></md-switch>
</span>
<md-divider></md-divider>
</div>
<div>
<span layout="row" layout-align="space-between center" class="text-bold">
Amazon Web Services (AWS)
</span>
<span>
Wazuh provides a way to collect alerts from your AWS machines and store them to an agent. Once the agent reads the message,
it sends it to the Wazuh manager which analyses it with decoders and rules. When a rule matches, an alert
is triggered if the rule severity is high enough. Wazuh can be used to alert on specific events from
IAM, EC2 and VPC.
</span>
<span layout="row" layout-align="space-between center">
<md-switch flex ng-model="extensions.aws" aria-label="extensionsAWS" ng-change="toggleExtension('aws',extensions.aws)"></md-switch>
</span>
<md-divider></md-divider>
</div>
<div>
<span layout="row" layout-align="space-between center" class="text-bold">
VirusTotal
</span>
<span>
VirusTotal is an online service that analyzes files and URLs enabling the detection of viruses, worms, trojans and other
kinds of malicious content using antivirus engines and website scanners. It also can be used to detect
false positives.
</span>
<span layout="row" layout-align="space-between center">
<md-switch flex ng-model="extensions.virustotal" aria-label="extensionsVirusTotal" ng-change="toggleExtension('virustotal',extensions.virustotal)"></md-switch>
</span>
</div>
</md-card-content>
</md-card>
</md-content>
</div>
</md-content>
<md-card flex layout-padding layout-align="start stretch" ng-if="submenuNavItem == 'pattern'">
<span class="md-headline">Wazuh App: Index pattern selection</span>
<md-divider></md-divider>
<p flex>Select the index pattern to run search and analytics against:</p>
<p flex>
<strong>Beware: the new index-pattern structure must be compatible with Wazuh alerts, otherwise the visualizations
will load erroneous data, or no data at all.</strong>
</p>
<p flex>
<strong>Warning: modifying the index-pattern will change it to ALL of the users.</strong>
</p>
<md-input-container flex="20" class="md-whiteframe-z1 manager-ruleset-decoders-selector background-e2" ng-if="load === false">
<md-select ng-model="selectedIndexPattern" ng-change="changeIndexPattern(selectedIndexPattern)" aria-label="Select index pattern">
<md-option ng-repeat="indexPattern in indexPatterns" value="{{indexPattern.id}}">{{indexPattern.attributes.title}}</md-option>
</md-select>
</md-input-container>
</md-card>
<md-content layout="column" layout-align="start stretch" ng-if="submenuNavItem == 'about'">
<md-card layout-align="start stretch">
<md-card-content>
<span class="md-headline">Wazuh App: About</span>
<md-divider></md-divider>
<div layout="row">
<p>The Wazuh App brings together a new and useful web interface for managing and monitoring your Wazuh
infrastructure. You can check agent status, alert evolution, most recent events, popular alerts,
top alert groups, etc. You can also display configuration and logs of the manager.</p>
</div>
<div layout="row">
<p>In addition, make use of any or all of these extensions:</p>
</div>
<div layout="row">
<md-list>
<md-list-item>Linux Audit system integration.</md-list-item>
<md-list-item>PCI DSS Compliance.</md-list-item>
<md-list-item>OpenSCAP security compliance and vulnerability assessments.</md-list-item>
<md-list-item>Amazon Web Services (AWS) integration.</md-list-item>
<md-list-item>VirusTotal integration.</md-list-item>
</md-list>
</div>
<div layout="row">
<p>The app joins Wazuh features like:
<strong>Log management and analysis</strong>,
<strong>file integrity monitoring</strong>,
<strong>intrusion and anomaly detection</strong> and
<strong>policy and compliance monitoring.</strong>
</p>
</div>
<div layout="row">
<p>Help us to improve this app. We would appreciate your feedback. Collaborate with us on the
<a href="https://groups.google.com/forum/#!forum/wazuh">Mailing Lists</a> and/or the Wazuh App
<a href="https://github.com/wazuh/wazuh-kibana-app">Github repository</a>.</p>
</div>
</md-card-content>
</md-card>
<md-card layout-align="start stretch">
<md-card-content class="width-500">
<span class="md-headline">Wazuh App: Version</span>
<md-divider></md-divider>
<div layout="row" layout-align="space-between center">
<p>App version</p>
<p>{{appInfo["app-version"]}}</p>
</div>
<div layout="row" layout-align="space-between center">
<p>Install date</p>
<p>{{appInfo["installationDate"]}}</p>
</div>
<div layout="row" layout-align="space-between center">
<p>Revision</p>
<p>{{appInfo["revision"]}}</p>
</div>
</md-card-content>
</md-card>
</md-content>
</div>
</md-content>