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 {
@@ -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}
)
}