This demo illustrates the benefits of using filters to improve the clarity and understanding of relations in a chart.
The dataset shows the web of relations between malware (exploit kits) and the vulnerabilities they exploit. Each vulnerability is colour coded to the class of technology they relate to.
You can select one or more technology categories and the chart filters the data, presenting only relevant exploits and malware families.
As well as discovery of patterns, the resulting chart can provide a powerful way to communicate the risks an organisation may be exposed to from unpatched or vulnerable platforms and technologies.
Data from
https://contagiodump.blogspot.co.uk/
with permission and thanks.
Key functions used:
import KeyLines from "keylines";
import { data } from "./data";
let chart;
async function filterItems(exploitsToShow, allCheckboxes) {
function isExploitChecked(item) {
// Ensure malware nodes are always shown
return item.d.type === "malware" || exploitsToShow.includes(item.d.product);
}
// filter out the subsets that aren't selected
await chart.filter(isExploitChecked, { type: "node" });
// finish with a layout
chart.layout("structural");
// re-enable checkboxes now that filtering is complete
allCheckboxes.forEach((checkbox) => {
checkbox.disabled = false;
});
}
function findSelection(checkboxes) {
// disable the legend to prevent asynchronous calls
checkboxes.forEach((checkbox) => {
checkbox.disabled = true;
});
// find checked boxes and put into a new array
const checkedBoxes = [...checkboxes]
.filter((checkbox) => checkbox.checked)
.map((checkbox) => checkbox.id);
filterItems(checkedBoxes, checkboxes);
}
function initialiseInteractions() {
// Set up event listener for the legend
const legendCheckboxes = document.querySelectorAll('input[type="checkbox"]');
legendCheckboxes.forEach((checkbox) => {
checkbox.addEventListener("click", () => findSelection(legendCheckboxes));
});
}
async function loadKeyLines() {
const options = {
logo: { u: "/public/images/Logo.png" },
handMode: true,
};
chart = await KeyLines.create({ container: "klchart", options });
chart.load(data);
chart.layout("structural");
// set up user interactions
initialiseInteractions();
}
window.addEventListener("DOMContentLoaded", loadKeyLines);export const data = {
type: "LinkChart",
items: [
{
id: "Hanjuan",
type: "node",
t: "Hanjuan",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=hanjuan",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Angler",
type: "node",
t: "Angler",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=angler",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Archie",
type: "node",
t: "Archie",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=archie",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Astrum",
type: "node",
t: "Astrum",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=astrum",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Bleeding life",
type: "node",
t: "Bleeding life",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=bleeding life",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Dotkachef",
type: "node",
t: "Dotkachef",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=dotkachef",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "CkVip",
type: "node",
t: "CkVip",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=ckvip",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Fiesta",
type: "node",
t: "Fiesta",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=fiesta",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Flash",
type: "node",
t: "Flash",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=flash",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "GongDa",
type: "node",
t: "GongDa",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=gongda",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Infinity",
type: "node",
t: "Infinity",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=infinity",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "LightsOut",
type: "node",
t: "LightsOut",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=lightsout",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Magnitude",
type: "node",
t: "Magnitude",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=magnitude",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Neutrino",
type: "node",
t: "Neutrino",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=neutrino",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Niteris",
type: "node",
t: "Niteris",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=niteris",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Nuclear",
type: "node",
t: "Nuclear",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=nuclear",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Nuclear 3.x",
type: "node",
t: "Nuclear 3.x",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=nuclear 3.x",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "NullHole",
type: "node",
t: "NullHole",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=nullhole",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Rig",
type: "node",
t: "Rig",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=rig",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Sednit",
type: "node",
t: "Sednit",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=sednit",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Styx",
type: "node",
t: "Styx",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=styx",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "SweetOrange",
type: "node",
t: "SweetOrange",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=sweetorange",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Nuclear 2.2",
type: "node",
t: "Nuclear 2.2",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=nuclear 2.2",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Nuclear 2.1",
type: "node",
t: "Nuclear 2.1",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=nuclear 2.1",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Nuclear 2.0",
type: "node",
t: "Nuclear 2.0",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=nuclear 2.0",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Redkit 2.x",
type: "node",
t: "Redkit 2.x",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=redkit 2.x",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Redkit Light",
type: "node",
t: "Redkit Light",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=redkit light",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Neo Sploit",
type: "node",
t: "Neo Sploit",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=neo sploit",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "FlashPack (child of SafePack / CritXPack/ Vintage Pack)",
type: "node",
t: "FlashPack (child of SafePack / CritXPack/ Vintage Pack)",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=flashpack (child of safepack / critxpack/ vintage pack)",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Safe Pack",
type: "node",
t: "Safe Pack",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=safe pack",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "White Lotus",
type: "node",
t: "White Lotus",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=white lotus",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Popads",
type: "node",
t: "Popads",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=popads",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Net Boom NB Exploiter",
type: "node",
t: "Net Boom NB Exploiter",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=net boom nb exploiter",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Blackhole (last)*",
type: "node",
t: "Blackhole (last)*",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=blackhole (last)*",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Crimeboss",
type: "node",
t: "Crimeboss",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=crimeboss",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Sakura",
type: "node",
t: "Sakura",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=sakura",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "LightsOut",
type: "node",
t: "LightsOut",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=lightsout",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Glazunov",
type: "node",
t: "Glazunov",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=glazunov",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "Rawin",
type: "node",
t: "Rawin",
d: {
url: "https://www.microsoft.com/security/portal/threat/encyclopedia/search.aspx?page=1&showall=False&sortby=relevance&sortdir=desc&size=10&query=rawin",
type: "malware",
},
u: "/public/images/exploitkits/malware.png",
},
{
id: "CVE-2010-0188",
type: "node",
t: "CVE-2010-0188",
d: {
url: "http://www.cvedetails.com/cve/CVE-2010-0188",
product: "adobe",
type: "cve",
},
c: "#f781bf",
},
{
id: "CVE-2010-0188-Astrum",
id1: "CVE-2010-0188",
id2: "Astrum",
type: "link",
d: { product: "adobe" },
c: "#f781bf",
},
{
id: "CVE-2010-0188-Nuclear",
id1: "CVE-2010-0188",
id2: "Nuclear",
type: "link",
d: { product: "adobe" },
c: "#f781bf",
},
{
id: "CVE-2010-0188-Nuclear 3.x",
id1: "CVE-2010-0188",
id2: "Nuclear 3.x",
type: "link",
d: { product: "adobe" },
c: "#f781bf",
},
{
id: "CVE-2010-0188-Nuclear 2.2",
id1: "CVE-2010-0188",
id2: "Nuclear 2.2",
type: "link",
d: { product: "adobe" },
c: "#f781bf",
},
{
id: "CVE-2010-0188-Nuclear 2.1",
id1: "CVE-2010-0188",
id2: "Nuclear 2.1",
type: "link",
d: { product: "adobe" },
c: "#f781bf",
},
{
id: "CVE-2010-0188-Nuclear 2.0",
id1: "CVE-2010-0188",
id2: "Nuclear 2.0",
type: "link",
d: { product: "adobe" },
c: "#f781bf",
},
{
id: "CVE-2010-0188-Blackhole (last)*",
id1: "CVE-2010-0188",
id2: "Blackhole (last)*",
type: "link",
d: { product: "adobe" },
c: "#f781bf",
},
{
id: "CVE-2011-3402",
type: "node",
t: "CVE-2011-3402",
d: {
url: "http://www.cvedetails.com/cve/CVE-2011-3402",
product: "windows",
type: "cve",
},
c: "#999999",
},
{
id: "CVE-2011-3402-Magnitude",
id1: "CVE-2011-3402",
id2: "Magnitude",
type: "link",
d: { product: "windows" },
c: "#999999",
},
{
id: "CVE-2011-3402-Nuclear 2.0",
id1: "CVE-2011-3402",
id2: "Nuclear 2.0",
type: "link",
d: { product: "windows" },
c: "#999999",
},
{
id: "CVE-2011-3402-Blackhole (last)*",
id1: "CVE-2011-3402",
id2: "Blackhole (last)*",
type: "link",
d: { product: "windows" },
c: "#999999",
},
{
id: "CVE-2011-3544",
type: "node",
t: "CVE-2011-3544",
d: {
url: "http://www.cvedetails.com/cve/CVE-2011-3544",
product: "java",
type: "cve",
},
c: "#FFD903",
},
{
id: "CVE-2011-3544-Bleeding life",
id1: "CVE-2011-3544",
id2: "Bleeding life",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2011-3544-Nuclear 2.1",
id1: "CVE-2011-3544",
id2: "Nuclear 2.1",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2011-3544-White Lotus",
id1: "CVE-2011-3544",
id2: "White Lotus",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2011-3544-Crimeboss",
id1: "CVE-2011-3544",
id2: "Crimeboss",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2011-3544-Sakura",
id1: "CVE-2011-3544",
id2: "Sakura",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2012-0507",
type: "node",
t: "CVE-2012-0507",
d: {
url: "http://www.cvedetails.com/cve/CVE-2012-0507",
product: "java",
type: "cve",
},
c: "#FFD903",
},
{
id: "CVE-2012-0507-Fiesta",
id1: "CVE-2012-0507",
id2: "Fiesta",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2012-0507-GongDa",
id1: "CVE-2012-0507",
id2: "GongDa",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2012-0507-Magnitude",
id1: "CVE-2012-0507",
id2: "Magnitude",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2012-0507-Nuclear",
id1: "CVE-2012-0507",
id2: "Nuclear",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2012-0507-Rig",
id1: "CVE-2012-0507",
id2: "Rig",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2012-0507-Blackhole (last)*",
id1: "CVE-2012-0507",
id2: "Blackhole (last)*",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2012-0507-Rawin",
id1: "CVE-2012-0507",
id2: "Rawin",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2012-1889",
type: "node",
t: "CVE-2012-1889",
d: {
url: "http://www.cvedetails.com/cve/CVE-2011-1889",
product: "windows",
type: "cve",
},
c: "#999999",
},
{
id: "CVE-2012-1889-GongDa",
id1: "CVE-2012-1889",
id2: "GongDa",
type: "link",
d: { product: "windows" },
c: "#999999",
},
{
id: "CVE-2012-5692",
type: "node",
t: "CVE-2012-5692",
d: {
url: "http://www.cvedetails.com/cve/CVE-2012-5692",
product: "php",
type: "cve",
},
c: "#a65628",
},
{
id: "CVE-2012-5692-Dotkachef",
id1: "CVE-2012-5692",
id2: "Dotkachef",
type: "link",
d: { product: "php" },
c: "#a65628",
},
{
id: "CVE-2012-1723",
type: "node",
t: "CVE-2012-1723",
d: {
url: "http://www.cvedetails.com/cve/CVE-2012-1723",
product: "java",
type: "cve",
},
c: "#FFD903",
},
{
id: "CVE-2012-1723-Bleeding life",
id1: "CVE-2012-1723",
id2: "Bleeding life",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2012-1723-LightsOut",
id1: "CVE-2012-1723",
id2: "LightsOut",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2012-1723-Nuclear",
id1: "CVE-2012-1723",
id2: "Nuclear",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2012-1723-Nuclear 3.x",
id1: "CVE-2012-1723",
id2: "Nuclear 3.x",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2012-1723-SweetOrange",
id1: "CVE-2012-1723",
id2: "SweetOrange",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2012-1723-Nuclear 2.2",
id1: "CVE-2012-1723",
id2: "Nuclear 2.2",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2012-1723-Nuclear 2.1",
id1: "CVE-2012-1723",
id2: "Nuclear 2.1",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2012-1723-Neo Sploit",
id1: "CVE-2012-1723",
id2: "Neo Sploit",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2012-1723-Safe Pack",
id1: "CVE-2012-1723",
id2: "Safe Pack",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2012-1723-Blackhole (last)*",
id1: "CVE-2012-1723",
id2: "Blackhole (last)*",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2012-1723-LightsOut",
id1: "CVE-2012-1723",
id2: "LightsOut",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2013-0025",
type: "node",
t: "CVE-2013-0025",
d: {
url: "http://www.cvedetails.com/cve/CVE-2013-0025",
product: "ie",
type: "cve",
},
c: "#1f78b4",
},
{
id: "CVE-2013-0025-Rig",
id1: "CVE-2013-0025",
id2: "Rig",
type: "link",
d: { product: "ie" },
c: "#1f78b4",
},
{
id: "CVE-2013-0074",
type: "node",
t: "CVE-2013-0074",
d: {
url: "http://www.cvedetails.com/cve/CVE-2013-0074",
product: "silverlight",
type: "cve",
},
c: "#a6cee3",
},
{
id: "CVE-2013-0074-Hanjuan",
id1: "CVE-2013-0074",
id2: "Hanjuan",
type: "link",
d: { product: "silverlight" },
c: "#a6cee3",
},
{
id: "CVE-2013-0074-Angler",
id1: "CVE-2013-0074",
id2: "Angler",
type: "link",
d: { product: "silverlight" },
c: "#a6cee3",
},
{
id: "CVE-2013-0074-Archie",
id1: "CVE-2013-0074",
id2: "Archie",
type: "link",
d: { product: "silverlight" },
c: "#a6cee3",
},
{
id: "CVE-2013-0074-Astrum",
id1: "CVE-2013-0074",
id2: "Astrum",
type: "link",
d: { product: "silverlight" },
c: "#a6cee3",
},
{
id: "CVE-2013-0074-Fiesta",
id1: "CVE-2013-0074",
id2: "Fiesta",
type: "link",
d: { product: "silverlight" },
c: "#a6cee3",
},
{
id: "CVE-2013-0074-Infinity",
id1: "CVE-2013-0074",
id2: "Infinity",
type: "link",
d: { product: "silverlight" },
c: "#a6cee3",
},
{
id: "CVE-2013-0074-Neutrino",
id1: "CVE-2013-0074",
id2: "Neutrino",
type: "link",
d: { product: "silverlight" },
c: "#a6cee3",
},
{
id: "CVE-2013-0074-Nuclear",
id1: "CVE-2013-0074",
id2: "Nuclear",
type: "link",
d: { product: "silverlight" },
c: "#a6cee3",
},
{
id: "CVE-2013-0074-Rig",
id1: "CVE-2013-0074",
id2: "Rig",
type: "link",
d: { product: "silverlight" },
c: "#a6cee3",
},
{
id: "CVE-2013-0074-FlashPack (child of SafePack / CritXPack/ Vintage Pack)",
id1: "CVE-2013-0074",
id2: "FlashPack (child of SafePack / CritXPack/ Vintage Pack)",
type: "link",
d: { product: "silverlight" },
c: "#a6cee3",
},
{
id: "CVE-2013-3896",
type: "node",
t: "CVE-2013-3896",
d: {
url: "http://www.cvedetails.com/cve/CVE-2013-3896",
product: "silverlight",
type: "cve",
},
c: "#a6cee3",
},
{
id: "CVE-2013-3896-Angler",
id1: "CVE-2013-3896",
id2: "Angler",
type: "link",
d: { product: "silverlight" },
c: "#a6cee3",
},
{
id: "CVE-2013-3896-Astrum",
id1: "CVE-2013-3896",
id2: "Astrum",
type: "link",
d: { product: "silverlight" },
c: "#a6cee3",
},
{
id: "CVE-2013-3896-Fiesta",
id1: "CVE-2013-3896",
id2: "Fiesta",
type: "link",
d: { product: "silverlight" },
c: "#a6cee3",
},
{
id: "CVE-2013-3896-FlashPack (child of SafePack / CritXPack/ Vintage Pack)",
id1: "CVE-2013-3896",
id2: "FlashPack (child of SafePack / CritXPack/ Vintage Pack)",
type: "link",
d: { product: "silverlight" },
c: "#a6cee3",
},
{
id: "CVE-2012-3993",
type: "node",
t: "CVE-2012-3993",
d: {
url: "http://www.cvedetails.com/cve/CVE-2012-3993",
product: "firefox",
type: "cve",
},
c: "#ff7f00",
},
{
id: "CVE-2012-3993-Niteris",
id1: "CVE-2012-3993",
id2: "Niteris",
type: "link",
d: { product: "firefox" },
c: "#ff7f00",
},
{
id: "CVE-2013-0422",
type: "node",
t: "CVE-2013-0422",
d: {
url: "http://www.cvedetails.com/cve/CVE-2013-0422",
product: "java",
type: "cve",
},
c: "#FFD903",
},
{
id: "CVE-2013-0422-GongDa",
id1: "CVE-2013-0422",
id2: "GongDa",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2013-0422-Niteris",
id1: "CVE-2013-0422",
id2: "Niteris",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2013-0422-Nuclear 3.x",
id1: "CVE-2013-0422",
id2: "Nuclear 3.x",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2013-0422-Nuclear 2.2",
id1: "CVE-2013-0422",
id2: "Nuclear 2.2",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2013-0422-Blackhole (last)*",
id1: "CVE-2013-0422",
id2: "Blackhole (last)*",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2013-0422-Crimeboss",
id1: "CVE-2013-0422",
id2: "Crimeboss",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2013-0422-Sakura",
id1: "CVE-2013-0422",
id2: "Sakura",
type: "link",
d: { product: "java" },
c: "#FFD903",
},
{
id: "CVE-2013-0634",
type: "node",
t: "CVE-2013-0634",
d: {
url: "http://www.cvedetails.com/cve/CVE-2013-0634",
product: "flash",
type: "cve",
},
c: "#e41a1c",
},
// ...truncated 1705 lines<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Filtering Basics</title>
<link rel="stylesheet" type="text/css" href="@ci/theme/kl/css/keylines.css">
<link
rel="stylesheet"
type="text/css"
href="@ci/theme/kl/css/minimalsdk.css"
>
<link
rel="stylesheet"
type="text/css"
href="@ci/theme/kl/css/sdk-layout.css"
>
<link rel="stylesheet" type="text/css" href="@ci/theme/kl/css/demo.css">
<link
rel="stylesheet"
type="text/css"
href="@ci/theme/kl/css/examples-chrome.css"
>
<link rel="stylesheet" href="./style.css">
</head>
<body>
<div class="chart-wrapper demo-cols">
<div id="lhs" class="flex1">
<div
id="lhsVisual"
class="toggle-content is-visible"
style="width: 100%; height: 100%"
>
<div id="klchart" class="klchart"></div>
</div>
</div>
<div class="rhs citext" id="demorhscontent">
<div class="tab-content-panel">
<div id="controlsTab" class="toggle-content is-visible tabcontent">
<p>
Explore the relation between malware families and the
vulnerabilities they exploit.
</p>
<form id="rhsForm" autocomplete="off" onsubmit="return false;">
<div class="cicontent">
<fieldset>
<div class="reduce-bottom-margin">
<legend>Filter by technology</legend>
<p>
Select different technologies to highlight their relations
to exploit kits.
</p>
<div class="row-fluid">
<dl class="half-span">
<h5>Browsers & Plug-ins</h5>
<label class="checkbox"
><input
name="exploitKits"
id="firefox"
type="checkbox"
checked
>
<div class="firefox">
<dt> </dt>
<dd>Mozilla Firefox</dd>
</div></label
><label class="checkbox"
><input
name="exploitKits"
type="checkbox"
id="chrome"
checked
>
<div class="chrome">
<dt> </dt>
<dd>Google Chrome</dd>
</div></label
><label class="checkbox"
><input
name="exploitKits"
type="checkbox"
id="ie"
checked
>
<div class="ie">
<dt> </dt>
<dd>Internet Explorer</dd>
</div></label
><label class="checkbox"
><input
name="exploitKits"
type="checkbox"
id="flash"
checked
>
<div class="flash">
<dt> </dt>
<dd>Adobe Flash</dd>
</div></label
><label class="checkbox"
><input
name="exploitKits"
type="checkbox"
id="silverlight"
checked
>
<div class="silverlight">
<dt> </dt>
<dd>Microsoft Silverlight</dd>
</div></label
>
</dl>
<dl class="half-span">
<h5>Other</h5>
<label class="checkbox"
><input
name="exploitKits"
type="checkbox"
id="java"
checked
>
<div class="java">
<dt> </dt>
<dd>Oracle Java</dd>
</div></label
><label class="checkbox"
><input
name="exploitKits"
type="checkbox"
id="windows"
checked
>
<div class="windows">
<dt> </dt>
<dd>Microsoft Windows</dd>
</div></label
><label class="checkbox"
><input
name="exploitKits"
type="checkbox"
id="php"
checked
>
<div class="php">
<dt> </dt>
<dd>PHP Language</dd>
</div></label
><label class="checkbox"
><input
name="exploitKits"
type="checkbox"
id="adobe"
value="False"
checked
>
<div class="adobe">
<dt> </dt>
<dd>Adobe PDF</dd>
</div></label
>
</dl>
</div>
</div>
</fieldset>
</div>
</form>
</div>
</div>
</div>
</div>
<script type="module" src="./code.js"></script>
</body>
</html>/* --- exploitkits.css --- */
.toggle-content::-webkit-scrollbar {
display: none;
}
.toggle-content {
scrollbar-width: none;
-ms-overflow-style: none;
}
dl {
margin-bottom: 50px;
}
dl dt {
color: #fff;
float: left;
font-weight: bold;
margin-left: 0px;
margin-right: 10px;
padding: 3px;
width: 22px;
height: 22px;
-webkit-border-radius: 22px;
-moz-border-radius: 22px;
border-radius: 22px;
line-height: 12px;
}
dl dd {
margin: 2px 0;
padding: 5px 0;
line-height: 12px;
font-size: 12px;
}
/* Legend Colours */
.firefox dt {
background-color: #ff7f00;
}
.chrome dt {
background-color: #4daf4a;
}
.ie dt {
background-color: #1f78b4;
}
.flash dt {
background-color: #e41a1c;
}
.silverlight dt {
background-color: #a6cee3;
}
.java dt {
background-color: #ffd903;
}
.windows dt {
background-color: #999999;
}
.php dt {
background-color: #a65628;
}
.adobe dt {
background-color: #f781bf;
}
.highlight {
font-weight: bold;
}
#htmlModal {
-webkit-touch-callout: text;
-webkit-user-select: text;
-khtml-user-select: text;
-moz-user-select: text;
-ms-user-select: text;
user-select: text;
}
#tooltip.popover {
max-width: 500px;
}
.reduce-bottom-margin {
margin-bottom: -55px;
}
.tab-content-panel:-webkit-scrollbar {
display: none;
}
.increase-bottom-margin {
margin-bottom: 25px;
}
dl input {
margin-top: 5px;
}
@media (max-width: 979px) {
dl dt {
margin-left: -4px;
margin-right: 3px;
}
}
@media (max-width: 767px) {
label dd {
max-width: 79.5px;
margin-top: -5px;
}
.half-span h5 {
height: 40px;
}
}