Source Country Networks Attacking
incomingPlot = {
const sortedCountries = countryData[countrySelect].incoming.stats.source_countries
.sort((a, b) => b.count - a.count)
.map((d) => d.country);
const result = Plot.plot({
width: width,
height: width * (1/2),
marginLeft: 150,
style: {
fontSize: "18px"
},
x: {
grid: true,
ticks: 5
},
y: {
label: null,
domain: sortedCountries
},
marks: [
Plot.barX(
countryData[countrySelect].incoming.stats.source_countries, {
x: "count",
y: "country",
fill: "#303d4e",
tip: true
})
]
})
return(result);
}Source Country Networks Only Attacking
incomingOnlyPlot = {
const sortedCountries = countryData[countrySelect].incoming_only.stats.source_countries
.sort((a, b) => b.count - a.count)
.map((d) => d.country);
const result = Plot.plot({
width: width,
height: width * (1/2),
marginLeft: 150,
style: {
fontSize: "18px"
},
x: {
grid: true,
ticks: 5
},
y: {
label: null,
domain: sortedCountries
},
marks: [
Plot.barX(
countryData[countrySelect].incoming_only.stats.source_countries, {
x: "count",
y: "country",
fill: "#303d4e"
})
]
})
return(result);
}Attack Types Against
incomingAttacksPlot = {
const sortedCountries = countryData[countrySelect].incoming.stats.tags
.sort((a, b) => b.count - a.count)
.map((d) => d.tag);
const result = Plot.plot({
width: width,
height: width * (1/2),
marginLeft: 400,
style: {
fontSize: "16px"
},
x: {
grid: true,
ticks: 5
},
y: {
label: null,
domain: sortedCountries
},
marks: [
Plot.barX(
countryData[countrySelect].incoming.stats.tags, {
x: "count",
y: "tag",
fill: "#303d4e",
tip: true
})
]
})
return(result);
}Attack Types Only Against
incomingOnlyAttackPlot = {
const sortedCountries = countryData[countrySelect].incoming_only.stats.tags
.sort((a, b) => b.count - a.count)
.map((d) => d.tag);
const result = Plot.plot({
width: width,
height: width * (1/2),
marginLeft: 400,
style: {
fontSize: "16px"
},
x: {
grid: true,
ticks: 5
},
y: {
label: null,
domain: sortedCountries
},
marks: [
Plot.barX(
countryData[countrySelect].incoming_only.stats.tags, {
x: "count",
y: "tag",
fill: "#303d4e"
})
]
})
return(result);
}This is an example Quarto Dashboard using data from the planetary scale honeypot sensor fleet run by GreyNoise.