@threatcaptain/tc-reports 0.2.21 → 0.2.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +84 -86
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +84 -86
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -51740,9 +51740,9 @@ const MITRETacticsOverview = ({
|
|
|
51740
51740
|
setSelectedTactic(null);
|
|
51741
51741
|
};
|
|
51742
51742
|
return /* @__PURE__ */ jsxs("div", { className: "bg-gray-50 p-4 rounded-lg", children: [
|
|
51743
|
-
/* @__PURE__ */ jsx("h4", { className: "font-medium text-
|
|
51744
|
-
/* @__PURE__ */ jsx("p", { className: "text-xs text-gray-500 mb-4", children: "Click on any step to explore individual tactics" }),
|
|
51745
|
-
/* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-4 mb-6", children: ATTACK_STEPS.map((step) => {
|
|
51743
|
+
/* @__PURE__ */ jsx("h4", { className: "font-medium text-lg mb-3", children: "MITRE ATT&CK Kill Chain Coverage - 4 Attack Steps" }),
|
|
51744
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs text-gray-500 mb-4 print:hidden", children: "Click on any step to explore individual tactics" }),
|
|
51745
|
+
/* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 print:grid-cols-2 gap-4 mb-6", children: ATTACK_STEPS.map((step) => {
|
|
51746
51746
|
var _a2;
|
|
51747
51747
|
const stepData = (_a2 = breachData.attackSteps) == null ? void 0 : _a2.find(
|
|
51748
51748
|
(s2) => s2.stepId === step.stepId
|
|
@@ -51948,7 +51948,7 @@ const BreachLikelihood = ({ reportData }) => {
|
|
|
51948
51948
|
/* @__PURE__ */ jsx("h1", { className: "text-3xl font-bold text-slate-900", children: "Breach Likelihood Assessment" }),
|
|
51949
51949
|
/* @__PURE__ */ jsx("p", { className: "text-slate-600 text-base", children: "Analyzing probability and impact of security incidents" })
|
|
51950
51950
|
] }),
|
|
51951
|
-
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4 mb-4", children: [
|
|
51951
|
+
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 print:grid-cols-1 gap-4 mb-4", children: [
|
|
51952
51952
|
/* @__PURE__ */ jsx("div", { className: "flex flex-col items-center p-4 text-center", children: breachData ? /* @__PURE__ */ jsx(
|
|
51953
51953
|
MitreAttack,
|
|
51954
51954
|
{
|
|
@@ -51956,7 +51956,7 @@ const BreachLikelihood = ({ reportData }) => {
|
|
|
51956
51956
|
overallLikelihood: attackLikelihood
|
|
51957
51957
|
}
|
|
51958
51958
|
) : /* @__PURE__ */ jsx("p", { children: "Getting breach data..." }) }),
|
|
51959
|
-
/* @__PURE__ */ jsxs("div", { className: "flex flex-col justify-center gap-4", children: [
|
|
51959
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col justify-center print:justify-normal gap-4", children: [
|
|
51960
51960
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center p-4 rounded-md bg-slate-50", children: [
|
|
51961
51961
|
/* @__PURE__ */ jsx(CheckCircle, { className: "w-6 h-6 mr-4 text-green-600" }),
|
|
51962
51962
|
/* @__PURE__ */ jsxs("span", { children: [
|
|
@@ -51977,28 +51977,9 @@ const BreachLikelihood = ({ reportData }) => {
|
|
|
51977
51977
|
/* @__PURE__ */ jsx("span", { children: "Smart investments could reduce your risk to under $100,000" })
|
|
51978
51978
|
] })
|
|
51979
51979
|
] })
|
|
51980
|
-
] }),
|
|
51981
|
-
/* @__PURE__ */ jsxs("div", { className: "p-3", children: [
|
|
51982
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center mb-2", children: [
|
|
51983
|
-
/* @__PURE__ */ jsx(FileText, { className: "w-4 h-4 text-slate-600 mr-1" }),
|
|
51984
|
-
/* @__PURE__ */ jsxs("h4", { className: "text-lg font-semibold text-slate-700 italic", children: [
|
|
51985
|
-
"Your Current Estimated Risk = $",
|
|
51986
|
-
realRiskExposure.toLocaleString()
|
|
51987
|
-
] })
|
|
51988
|
-
] }),
|
|
51989
|
-
/* @__PURE__ */ jsxs("ul", { className: "text-slate-600 space-y-1", children: [
|
|
51990
|
-
/* @__PURE__ */ jsx("li", { children: "• Cyber attacks increased 38% globally in 2023 compared to 2022" }),
|
|
51991
|
-
/* @__PURE__ */ jsx("li", { children: "• Small businesses experience a cyberattack every 39 seconds on average" }),
|
|
51992
|
-
/* @__PURE__ */ jsx("li", { children: "• 60% of small companies go out of business within 6 months of a cyber attack" }),
|
|
51993
|
-
/* @__PURE__ */ jsx("li", { children: "• The average cost of cybercrime for businesses globally rose to $4.88 million in 2024" })
|
|
51994
|
-
] })
|
|
51995
51980
|
] })
|
|
51996
51981
|
] }),
|
|
51997
|
-
/* @__PURE__ */ jsxs("section", { className: "report-page space-y-6 border-
|
|
51998
|
-
/* @__PURE__ */ jsxs("div", { className: "text-center", children: [
|
|
51999
|
-
/* @__PURE__ */ jsx("h2", { className: "text-2xl font-bold text-slate-900 mb-2", children: "Understanding Your Numbers" }),
|
|
52000
|
-
/* @__PURE__ */ jsx("p", { className: "text-slate-600", children: "How We Calculate Your Risk" })
|
|
52001
|
-
] }),
|
|
51982
|
+
/* @__PURE__ */ jsxs("section", { className: "report-page space-y-6 border-b border-slate-200 pt-8", children: [
|
|
52002
51983
|
/* @__PURE__ */ jsx(
|
|
52003
51984
|
MITRETacticsOverview,
|
|
52004
51985
|
{
|
|
@@ -52008,6 +51989,25 @@ const BreachLikelihood = ({ reportData }) => {
|
|
|
52008
51989
|
onTacticClick: setSelectedTactic
|
|
52009
51990
|
}
|
|
52010
51991
|
),
|
|
51992
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center mb-2", children: [
|
|
51993
|
+
/* @__PURE__ */ jsx(FileText, { className: "w-4 h-4 text-slate-600 mr-1" }),
|
|
51994
|
+
/* @__PURE__ */ jsxs("h4", { className: "text-lg font-semibold text-slate-700 italic", children: [
|
|
51995
|
+
"Your Current Estimated Risk = $",
|
|
51996
|
+
realRiskExposure.toLocaleString()
|
|
51997
|
+
] })
|
|
51998
|
+
] }),
|
|
51999
|
+
/* @__PURE__ */ jsxs("ul", { className: "text-slate-600 space-y-1", children: [
|
|
52000
|
+
/* @__PURE__ */ jsx("li", { children: "• Cyber attacks increased 38% globally in 2023 compared to 2022" }),
|
|
52001
|
+
/* @__PURE__ */ jsx("li", { children: "• Small businesses experience a cyberattack every 39 seconds on average" }),
|
|
52002
|
+
/* @__PURE__ */ jsx("li", { children: "• 60% of small companies go out of business within 6 months of a cyber attack" }),
|
|
52003
|
+
/* @__PURE__ */ jsx("li", { children: "• The average cost of cybercrime for businesses globally rose to $4.88 million in 2024" })
|
|
52004
|
+
] })
|
|
52005
|
+
] }),
|
|
52006
|
+
/* @__PURE__ */ jsxs("section", { className: "report-page space-y-6 border-b border-slate-200 pt-8", children: [
|
|
52007
|
+
/* @__PURE__ */ jsxs("div", { className: "text-center", children: [
|
|
52008
|
+
/* @__PURE__ */ jsx("h2", { className: "text-2xl font-bold text-slate-900 mb-2", children: "Understanding Your Numbers" }),
|
|
52009
|
+
/* @__PURE__ */ jsx("p", { className: "text-slate-600", children: "How We Calculate Your Risk" })
|
|
52010
|
+
] }),
|
|
52011
52011
|
/* @__PURE__ */ jsxs("div", { className: "bg-slate-50 rounded-lg p-6 mb-6", children: [
|
|
52012
52012
|
/* @__PURE__ */ jsx("h3", { className: "text-xl font-bold mb-4", children: "Our Approach" }),
|
|
52013
52013
|
/* @__PURE__ */ jsx("p", { className: "text-sm text-slate-700", children: "We use the same data sources that insurance companies and security professionals rely on. Our calculations are conservative - real attack costs are often higher than our estimates." })
|
|
@@ -52940,7 +52940,7 @@ const InsuranceImpactCards = ({
|
|
|
52940
52940
|
if (score2 >= 450) return "Detailed review, additional requirements";
|
|
52941
52941
|
return "Extensive review, may require risk mitigation plan";
|
|
52942
52942
|
};
|
|
52943
|
-
return /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-4", children: [
|
|
52943
|
+
return /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 md:grid-cols-3 print:grid-cols-3 gap-4", children: [
|
|
52944
52944
|
/* @__PURE__ */ jsx(Card, { className: getCardClasses(score), children: /* @__PURE__ */ jsx(CardContent, { className: "pt-4", children: /* @__PURE__ */ jsxs("div", { className: "flex items-start space-x-3", children: [
|
|
52945
52945
|
/* @__PURE__ */ jsx(Shield, { className: `h-5 w-5 mt-0.5 ${getIconClasses(score)}` }),
|
|
52946
52946
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -52974,74 +52974,72 @@ const InsuranceHealthScore = ({ reportData }) => {
|
|
|
52974
52974
|
bgColor: "bg-blue-600"
|
|
52975
52975
|
} : scoreCategory;
|
|
52976
52976
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
52977
|
-
/* @__PURE__ */
|
|
52977
|
+
/* @__PURE__ */ jsxs(
|
|
52978
52978
|
"section",
|
|
52979
52979
|
{
|
|
52980
52980
|
id: "insurance-health-score",
|
|
52981
52981
|
className: "report-page text-center space-y-6 pb-8 border-b border-slate-200",
|
|
52982
|
-
children:
|
|
52982
|
+
children: [
|
|
52983
52983
|
/* @__PURE__ */ jsx("h1", { className: "text-4xl font-bold text-slate-900", children: "Cyber Insurance Health Score Report" }),
|
|
52984
|
-
/* @__PURE__ */ jsx("p", { className: "text-xl text-slate-600", children: "Understanding How Insurance Companies View Your Organization" })
|
|
52985
|
-
|
|
52986
|
-
|
|
52987
|
-
|
|
52988
|
-
|
|
52989
|
-
|
|
52990
|
-
|
|
52991
|
-
|
|
52992
|
-
|
|
52993
|
-
|
|
52994
|
-
|
|
52995
|
-
|
|
52996
|
-
|
|
52997
|
-
|
|
52998
|
-
|
|
52999
|
-
|
|
53000
|
-
|
|
53001
|
-
|
|
53002
|
-
|
|
53003
|
-
|
|
53004
|
-
|
|
53005
|
-
|
|
53006
|
-
|
|
53007
|
-
|
|
53008
|
-
|
|
53009
|
-
|
|
53010
|
-
|
|
53011
|
-
|
|
53012
|
-
|
|
53013
|
-
|
|
53014
|
-
|
|
53015
|
-
|
|
53016
|
-
|
|
53017
|
-
/* @__PURE__ */ jsx(AlertTriangle, { className: "w-4 h-4 text-blue-500 mt-1" }),
|
|
53018
|
-
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("p", { className: "font-medium text-sm", children: "Risk Evaluation" }) })
|
|
53019
|
-
] })
|
|
53020
|
-
] })
|
|
53021
|
-
] }),
|
|
53022
|
-
/* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
53023
|
-
/* @__PURE__ */ jsx("h4", { className: "text-lg font-semibold text-slate-900", children: "Things to Consider" }),
|
|
53024
|
-
/* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
53025
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center space-x-2", children: [
|
|
53026
|
-
/* @__PURE__ */ jsx(AlertTriangle, { className: "w-4 h-4 text-amber-500" }),
|
|
53027
|
-
/* @__PURE__ */ jsx("span", { className: "text-sm", children: "Cyber insurance rates are directly tied to your security posture" })
|
|
53028
|
-
] }),
|
|
53029
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center space-x-2", children: [
|
|
53030
|
-
/* @__PURE__ */ jsx(AlertTriangle, { className: "w-4 h-4 text-amber-500" }),
|
|
53031
|
-
/* @__PURE__ */ jsx("span", { className: "text-sm", children: "Insurers are increasingly requiring security controls" })
|
|
52984
|
+
/* @__PURE__ */ jsx("p", { className: "text-xl text-slate-600", children: "Understanding How Insurance Companies View Your Organization" }),
|
|
52985
|
+
/* @__PURE__ */ jsxs(
|
|
52986
|
+
"div",
|
|
52987
|
+
{
|
|
52988
|
+
className: `rounded-lg p-6 text-white text-center ${scoreCategoryData.bgColor}`,
|
|
52989
|
+
children: [
|
|
52990
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-center space-x-2 mb-2", children: [
|
|
52991
|
+
/* @__PURE__ */ jsx("div", { className: "w-12 h-12 p-2 rounded-full bg-white/20 flex items-center justify-center", children: /* @__PURE__ */ jsx("span", { className: "text-lg font-bold", children: score }) }),
|
|
52992
|
+
/* @__PURE__ */ jsx("h3", { className: "text-2xl font-bold", children: "INSURANCE HEALTH SCORE" })
|
|
52993
|
+
] }),
|
|
52994
|
+
/* @__PURE__ */ jsx("p", { className: "text-4xl font-bold", children: `${score}/850` }),
|
|
52995
|
+
/* @__PURE__ */ jsx("p", { className: "text-lg font-semibold mt-2", children: scoreCategoryData.category }),
|
|
52996
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm opacity-75 mt-1", children: scoreCategoryData.description })
|
|
52997
|
+
]
|
|
52998
|
+
}
|
|
52999
|
+
),
|
|
53000
|
+
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 print:grid-cols-2 gap-6", children: [
|
|
53001
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
53002
|
+
/* @__PURE__ */ jsx("h4", { className: "text-lg font-semibold text-slate-900", children: "Coverage Impact" }),
|
|
53003
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
|
|
53004
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-start space-x-2", children: [
|
|
53005
|
+
/* @__PURE__ */ jsx(AlertTriangle, { className: "w-4 h-4 text-blue-500 mt-1" }),
|
|
53006
|
+
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("p", { className: "font-medium text-sm", children: "Premium Rates" }) })
|
|
53007
|
+
] }),
|
|
53008
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-start space-x-2", children: [
|
|
53009
|
+
/* @__PURE__ */ jsx(AlertTriangle, { className: "w-4 h-4 text-blue-500 mt-1" }),
|
|
53010
|
+
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("p", { className: "font-medium text-sm", children: "Coverage Availability" }) })
|
|
53011
|
+
] }),
|
|
53012
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-start space-x-2", children: [
|
|
53013
|
+
/* @__PURE__ */ jsx(AlertTriangle, { className: "w-4 h-4 text-blue-500 mt-1" }),
|
|
53014
|
+
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("p", { className: "font-medium text-sm", children: "Risk Evaluation" }) })
|
|
53015
|
+
] })
|
|
53016
|
+
] })
|
|
53032
53017
|
] }),
|
|
53033
|
-
/* @__PURE__ */ jsxs("div", { className: "
|
|
53034
|
-
/* @__PURE__ */ jsx(
|
|
53035
|
-
/* @__PURE__ */
|
|
53018
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
53019
|
+
/* @__PURE__ */ jsx("h4", { className: "text-lg font-semibold text-slate-900", children: "Things to Consider" }),
|
|
53020
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
53021
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center space-x-2", children: [
|
|
53022
|
+
/* @__PURE__ */ jsx(AlertTriangle, { className: "w-4 h-4 text-amber-500" }),
|
|
53023
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm text-left", children: "Cyber insurance rates are directly tied to your security posture" })
|
|
53024
|
+
] }),
|
|
53025
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center space-x-2", children: [
|
|
53026
|
+
/* @__PURE__ */ jsx(AlertTriangle, { className: "w-4 h-4 text-amber-500" }),
|
|
53027
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm text-left", children: "Insurers are increasingly requiring security controls" })
|
|
53028
|
+
] }),
|
|
53029
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center space-x-2", children: [
|
|
53030
|
+
/* @__PURE__ */ jsx(AlertTriangle, { className: "w-4 h-4 text-amber-500" }),
|
|
53031
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm text-left", children: "Claims approval depends on documented security measures" })
|
|
53032
|
+
] })
|
|
53033
|
+
] })
|
|
53036
53034
|
] })
|
|
53037
53035
|
] })
|
|
53038
|
-
]
|
|
53039
|
-
|
|
53040
|
-
|
|
53041
|
-
/* @__PURE__ */ jsxs("section", { className: "report-page space-y-6 border-
|
|
53036
|
+
]
|
|
53037
|
+
}
|
|
53038
|
+
),
|
|
53039
|
+
/* @__PURE__ */ jsxs("section", { className: "report-page space-y-6 border-b border-slate-200 pt-8", children: [
|
|
53042
53040
|
/* @__PURE__ */ jsx("h2", { className: "text-2xl font-bold text-slate-900 mb-2", children: "Your Insurance Health Score Results" }),
|
|
53043
53041
|
/* @__PURE__ */ jsx("p", { className: "text-slate-600", children: "Assessment results and category breakdown" }),
|
|
53044
|
-
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-8", children: [
|
|
53042
|
+
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 print:grid-cols-2 gap-8", children: [
|
|
53045
53043
|
/* @__PURE__ */ jsx("div", { className: "flex flex-col items-center space-y-4", children: /* @__PURE__ */ jsx(InsuranceHealthGauge, { score, size: 320 }) }),
|
|
53046
53044
|
/* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
53047
53045
|
/* @__PURE__ */ jsx("h4", { className: "font-semibold text-slate-900", children: "Security Category Scores" }),
|
|
@@ -53100,7 +53098,7 @@ const InsuranceHealthScore = ({ reportData }) => {
|
|
|
53100
53098
|
] }),
|
|
53101
53099
|
/* @__PURE__ */ jsx(InsuranceImpactCards, { score })
|
|
53102
53100
|
] }),
|
|
53103
|
-
/* @__PURE__ */ jsxs("section", { className: "report-page space-y-6 border-
|
|
53101
|
+
/* @__PURE__ */ jsxs("section", { className: "report-page space-y-6 border-b border-slate-200 pt-8", children: [
|
|
53104
53102
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center space-x-3", children: [
|
|
53105
53103
|
/* @__PURE__ */ jsx("div", { className: "w-8 h-8 bg-blue-600 rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsx("span", { className: "text-white text-lg", children: "?" }) }),
|
|
53106
53104
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -53165,7 +53163,7 @@ const InsuranceHealthScore = ({ reportData }) => {
|
|
|
53165
53163
|
] })
|
|
53166
53164
|
] })
|
|
53167
53165
|
] }),
|
|
53168
|
-
/* @__PURE__ */ jsx("section", { className: "report-page space-y-6
|
|
53166
|
+
/* @__PURE__ */ jsx("section", { className: "report-page space-y-6 pt-8", children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 print:grid-cols-2 gap-6", children: [
|
|
53169
53167
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
53170
53168
|
/* @__PURE__ */ jsx("h4", { className: "font-semibold text-green-600 mb-3", children: "What This Report IS:" }),
|
|
53171
53169
|
/* @__PURE__ */ jsxs("ul", { className: "text-slate-700 space-y-2 text-sm", children: [
|