diff --git a/monkey/monkey_island/cc/ui/src/components/report-components/ransomware/AttackSection.tsx b/monkey/monkey_island/cc/ui/src/components/report-components/ransomware/AttackSection.tsx index 1b9f2e794..10f39e4b0 100644 --- a/monkey/monkey_island/cc/ui/src/components/report-components/ransomware/AttackSection.tsx +++ b/monkey/monkey_island/cc/ui/src/components/report-components/ransomware/AttackSection.tsx @@ -3,19 +3,20 @@ import IslandHttpClient from '../../IslandHttpClient'; import {FileEncryptionTable, TableRow} from './FileEncryptionTable'; import NumberedReportSection from './NumberedReportSection'; import LoadingIcon from '../../ui-components/LoadingIcon'; +import ExternalLink from '../common/ExternalLink'; -const ATTACK_DESCRIPTION = 'After the attacker or malware has propagated through your network, \ - your data is at risk on any machine the attacker can access. It can be \ - encrypted and held for ransom, exfiltrated, or manipulated in \ - whatever way the attacker chooses. \ -
\ -
\ - \ - Learn about the financial impact of ransomware on Guardicore\'s blog. \ - '; +const ATTACK_DESCRIPTION = <> + After the attacker or malware has propagated through your network, + your data is at risk on any machine the attacker can access. It can be + encrypted and held for ransom, exfiltrated, or manipulated in + whatever way the attacker chooses. +
+
+ + const HOSTNAME_REGEX = /^(.* - )?(\S+) :.*$/; diff --git a/monkey/monkey_island/cc/ui/src/components/report-components/ransomware/BreachSection.tsx b/monkey/monkey_island/cc/ui/src/components/report-components/ransomware/BreachSection.tsx index afdddf469..fb4498e8e 100644 --- a/monkey/monkey_island/cc/ui/src/components/report-components/ransomware/BreachSection.tsx +++ b/monkey/monkey_island/cc/ui/src/components/report-components/ransomware/BreachSection.tsx @@ -3,22 +3,23 @@ import IslandHttpClient from '../../IslandHttpClient'; import NumberedReportSection from './NumberedReportSection'; import LoadingIcon from '../../ui-components/LoadingIcon'; import {renderLimitedArray} from '../common/RenderArrays'; +import ExternalLink from '../common/ExternalLink'; + +const BREACH_DESCRIPTION = <> + Ransomware attacks start after machines in the internal network get + compromised. The initial compromise was simulated by running Monkey Agents + manually. Detecting ransomware at this stage will minimize the impact to the + organization. +
+
+ + function BreachSection() { const [machines, setMachines] = useState(null); - let description = 'Ransomware attacks start after machines in the internal network get \ - compromised. The initial compromise was simulated by running Monkey Agents \ - manually. Detecting ransomware at this stage will minimize the impact to the \ - organization. \ -
\ -
\ - \ - Learn techniques for early ransomware detection on Guardicore\'s blog. \ - '; - useEffect(() => { IslandHttpClient.get('/api/exploitations/manual') @@ -27,7 +28,7 @@ function BreachSection() { if(machines !== null){ let body = getBreachSectionBody(machines); - return () + return () } else { return } diff --git a/monkey/monkey_island/cc/ui/src/components/report-components/ransomware/LateralMovement.tsx b/monkey/monkey_island/cc/ui/src/components/report-components/ransomware/LateralMovement.tsx index 0c360039d..75af68ea5 100644 --- a/monkey/monkey_island/cc/ui/src/components/report-components/ransomware/LateralMovement.tsx +++ b/monkey/monkey_island/cc/ui/src/components/report-components/ransomware/LateralMovement.tsx @@ -2,19 +2,20 @@ import React, {ReactElement} from 'react'; import NumberedReportSection from './NumberedReportSection'; import pluralize from 'pluralize' import BreachedServersComponent from '../security/BreachedServers'; +import ExternalLink from '../common/ExternalLink'; -const LATERAL_MOVEMENT_DESCRIPTION = 'After the initial breach, the attacker will begin the Lateral \ - Movement phase of the attack. They will employ various \ - techniques in order to compromise other systems in your \ - network. \ -
\ -
\ - \ - See some real-world examples on Guardicore\'s blog. \ - '; +const LATERAL_MOVEMENT_DESCRIPTION = <> + After the initial breach, the attacker will begin the Lateral + Movement phase of the attack. They will employ various + techniques in order to compromise other systems in your + network. +
+
+ + type PropagationStats = { num_scanned_nodes: number, diff --git a/monkey/monkey_island/cc/ui/src/components/report-components/ransomware/NumberedReportSection.tsx b/monkey/monkey_island/cc/ui/src/components/report-components/ransomware/NumberedReportSection.tsx index c0876137b..6312fd665 100644 --- a/monkey/monkey_island/cc/ui/src/components/report-components/ransomware/NumberedReportSection.tsx +++ b/monkey/monkey_island/cc/ui/src/components/report-components/ransomware/NumberedReportSection.tsx @@ -5,7 +5,7 @@ import {faInfoCircle} from '@fortawesome/free-solid-svg-icons'; type Props = { index: number, title: string, - description: string, + description: ReactFragment, body: ReactFragment } @@ -14,7 +14,7 @@ function NumberedReportSection(props: Props): ReactElement {
- + {props.body}
@@ -27,11 +27,11 @@ function Header({index, title}: {index: number, title: string}): ReactElement { ) } -function Description({text}: {text: string}): ReactElement { +function Description({description}: {description: ReactFragment}): ReactElement { return (
- + {description}
) }