forked from p15670423/monkey
Merge pull request #1311 from guardicore/ransomware-fix-config-ui-description
Ransomware: fix description and add info box
This commit is contained in:
commit
3b80221c38
|
@ -9,6 +9,13 @@ BASIC_NETWORK = {
|
||||||
"title": "Scope",
|
"title": "Scope",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
"info_box": {
|
||||||
|
"title": "",
|
||||||
|
"type": "object",
|
||||||
|
"info": 'The Monkey scans its subnet if "Local network scan" is checked. '
|
||||||
|
'Additionally, the Monkey scans machines according to "Scan '
|
||||||
|
'target list".',
|
||||||
|
},
|
||||||
"blocked_ips": {
|
"blocked_ips": {
|
||||||
"title": "Blocked IPs",
|
"title": "Blocked IPs",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
|
@ -19,9 +26,6 @@ BASIC_NETWORK = {
|
||||||
},
|
},
|
||||||
"default": [],
|
"default": [],
|
||||||
"description": "List of IPs that the Monkey will not scan.",
|
"description": "List of IPs that the Monkey will not scan.",
|
||||||
"info": 'The Monkey scans its subnet if "Local network scan" is ticked. '
|
|
||||||
'Additionally the monkey scans machines according to "Scan '
|
|
||||||
'target list".',
|
|
||||||
},
|
},
|
||||||
"local_network_scan": {
|
"local_network_scan": {
|
||||||
"title": "Local network scan",
|
"title": "Local network scan",
|
||||||
|
|
|
@ -6,17 +6,14 @@ from common.common_consts.validation_formats import (
|
||||||
RANSOMWARE = {
|
RANSOMWARE = {
|
||||||
"title": "Ransomware",
|
"title": "Ransomware",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"description": "This page allows you to configure the Infection Monkey to execute a ransomware "
|
|
||||||
"simulation. The Infection Monkey is capable of simulating a ransomware attack on your network "
|
|
||||||
"using a set of configurable behaviors. A number of precautions have been taken to ensure that "
|
|
||||||
"this ransomware simulation is safe for production environments.\n\nFor more information about "
|
|
||||||
"configuring the ransomware simulation, see "
|
|
||||||
'<a href="https://guardicore.com/infectionmonkey/docs/usage/use-cases/ransomware-simulation" '
|
|
||||||
'target="_blank"> the documentation</a>.',
|
|
||||||
"properties": {
|
"properties": {
|
||||||
"encryption": {
|
"encryption": {
|
||||||
"title": "Encryption",
|
"title": "Simulation",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
|
"description": "To simulate ransomware encryption, you'll need to provide Infection "
|
||||||
|
"Monkey with files that it can safely encrypt. On each machine where you would like "
|
||||||
|
"the ransomware simulation to run, create a directory and put some files in it."
|
||||||
|
"\n\nProvide the path to the directory that was created on each machine.",
|
||||||
"properties": {
|
"properties": {
|
||||||
"enabled": {
|
"enabled": {
|
||||||
"title": "Encrypt files",
|
"title": "Encrypt files",
|
||||||
|
@ -25,6 +22,12 @@ RANSOMWARE = {
|
||||||
"description": "Ransomware encryption will be simulated by flipping every bit "
|
"description": "Ransomware encryption will be simulated by flipping every bit "
|
||||||
"in the files contained within the target directories.",
|
"in the files contained within the target directories.",
|
||||||
},
|
},
|
||||||
|
"info_box": {
|
||||||
|
"title": "",
|
||||||
|
"type": "object",
|
||||||
|
"info": "No files will be encrypted if a directory is not specified or doesn't "
|
||||||
|
"exist on a victim machine.",
|
||||||
|
},
|
||||||
"directories": {
|
"directories": {
|
||||||
"title": "Directories to encrypt",
|
"title": "Directories to encrypt",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
import ObjectField from 'react-jsonschema-form-bs4/lib/components/fields/ArrayField';
|
|
||||||
import * as React from 'react';
|
|
||||||
import {FontAwesomeIcon} from '@fortawesome/react-fontawesome';
|
|
||||||
import {faInfoCircle} from '@fortawesome/free-solid-svg-icons/faInfoCircle';
|
|
||||||
|
|
||||||
class FieldWithInfo extends React.Component {
|
|
||||||
|
|
||||||
render() {
|
|
||||||
return (
|
|
||||||
<>
|
|
||||||
<div className='alert alert-info'>
|
|
||||||
<FontAwesomeIcon icon={faInfoCircle} style={{'marginRight': '5px'}}/>
|
|
||||||
{this.props.schema.info}
|
|
||||||
</div>
|
|
||||||
<ObjectField {...this.props} />
|
|
||||||
</>);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default FieldWithInfo;
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
import * as React from 'react';
|
||||||
|
import {FontAwesomeIcon} from '@fortawesome/react-fontawesome';
|
||||||
|
import {faInfoCircle} from '@fortawesome/free-solid-svg-icons/faInfoCircle';
|
||||||
|
|
||||||
|
class InfoBox extends React.Component {
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<div className='alert alert-info'>
|
||||||
|
<FontAwesomeIcon icon={faInfoCircle} style={{'marginRight': '5px'}}/>
|
||||||
|
{this.props.schema.info}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default InfoBox;
|
|
@ -1,7 +1,7 @@
|
||||||
import AdvancedMultiSelect from '../ui-components/AdvancedMultiSelect';
|
import AdvancedMultiSelect from '../ui-components/AdvancedMultiSelect';
|
||||||
import PbaInput from './PbaInput';
|
import PbaInput from './PbaInput';
|
||||||
import {API_PBA_LINUX, API_PBA_WINDOWS} from '../pages/ConfigurePage';
|
import {API_PBA_LINUX, API_PBA_WINDOWS} from '../pages/ConfigurePage';
|
||||||
import FieldWithInfo from './FieldWithInfo';
|
import InfoBox from './InfoBox';
|
||||||
|
|
||||||
export default function UiSchema(props) {
|
export default function UiSchema(props) {
|
||||||
const UiSchema = {
|
const UiSchema = {
|
||||||
|
@ -17,8 +17,8 @@ export default function UiSchema(props) {
|
||||||
basic_network: {
|
basic_network: {
|
||||||
'ui:order': ['scope', 'network_analysis'],
|
'ui:order': ['scope', 'network_analysis'],
|
||||||
scope: {
|
scope: {
|
||||||
blocked_ips: {
|
info_box: {
|
||||||
'ui:field': FieldWithInfo
|
'ui:field': InfoBox
|
||||||
},
|
},
|
||||||
subnet_scan_list: {
|
subnet_scan_list: {
|
||||||
format: 'ip-list'
|
format: 'ip-list'
|
||||||
|
@ -73,6 +73,9 @@ export default function UiSchema(props) {
|
||||||
},
|
},
|
||||||
ransomware: {
|
ransomware: {
|
||||||
encryption: {
|
encryption: {
|
||||||
|
info_box: {
|
||||||
|
'ui:field': InfoBox
|
||||||
|
},
|
||||||
directories: {
|
directories: {
|
||||||
// Directory inputs are dynamically hidden
|
// Directory inputs are dynamically hidden
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue