|
941 | 941 | </ul> |
942 | 942 | </nav> |
943 | 943 |
|
| 944 | +</li> |
| 945 | + |
| 946 | + <li class="md-nav__item"> |
| 947 | + <a href="#independence-assumption" class="md-nav__link"> |
| 948 | + <span class="md-ellipsis"> |
| 949 | + Independence Assumption |
| 950 | + </span> |
| 951 | + </a> |
| 952 | + |
| 953 | + <nav class="md-nav" aria-label="Independence Assumption"> |
| 954 | + <ul class="md-nav__list"> |
| 955 | + |
| 956 | + <li class="md-nav__item"> |
| 957 | + <a href="#scenario-1-same-cve-truly-independent-deployments" class="md-nav__link"> |
| 958 | + <span class="md-ellipsis"> |
| 959 | + Scenario 1: Same CVE, Truly Independent Deployments |
| 960 | + </span> |
| 961 | + </a> |
| 962 | + |
| 963 | +</li> |
| 964 | + |
| 965 | + <li class="md-nav__item"> |
| 966 | + <a href="#scenario-2-same-cve-shared-system-or-pathway" class="md-nav__link"> |
| 967 | + <span class="md-ellipsis"> |
| 968 | + Scenario 2: Same CVE, Shared System or Pathway |
| 969 | + </span> |
| 970 | + </a> |
| 971 | + |
| 972 | +</li> |
| 973 | + |
| 974 | + <li class="md-nav__item"> |
| 975 | + <a href="#calculating-conditional-probabilities-with-a-small-number-of-dependent-vulnerabilities" class="md-nav__link"> |
| 976 | + <span class="md-ellipsis"> |
| 977 | + Calculating Conditional Probabilities With A Small Number Of Dependent Vulnerabilities |
| 978 | + </span> |
| 979 | + </a> |
| 980 | + |
| 981 | +</li> |
| 982 | + |
| 983 | + </ul> |
| 984 | + </nav> |
| 985 | + |
944 | 986 | </li> |
945 | 987 |
|
946 | 988 | <li class="md-nav__item"> |
|
2037 | 2079 | </ul> |
2038 | 2080 | </nav> |
2039 | 2081 |
|
| 2082 | +</li> |
| 2083 | + |
| 2084 | + <li class="md-nav__item"> |
| 2085 | + <a href="#independence-assumption" class="md-nav__link"> |
| 2086 | + <span class="md-ellipsis"> |
| 2087 | + Independence Assumption |
| 2088 | + </span> |
| 2089 | + </a> |
| 2090 | + |
| 2091 | + <nav class="md-nav" aria-label="Independence Assumption"> |
| 2092 | + <ul class="md-nav__list"> |
| 2093 | + |
| 2094 | + <li class="md-nav__item"> |
| 2095 | + <a href="#scenario-1-same-cve-truly-independent-deployments" class="md-nav__link"> |
| 2096 | + <span class="md-ellipsis"> |
| 2097 | + Scenario 1: Same CVE, Truly Independent Deployments |
| 2098 | + </span> |
| 2099 | + </a> |
| 2100 | + |
| 2101 | +</li> |
| 2102 | + |
| 2103 | + <li class="md-nav__item"> |
| 2104 | + <a href="#scenario-2-same-cve-shared-system-or-pathway" class="md-nav__link"> |
| 2105 | + <span class="md-ellipsis"> |
| 2106 | + Scenario 2: Same CVE, Shared System or Pathway |
| 2107 | + </span> |
| 2108 | + </a> |
| 2109 | + |
| 2110 | +</li> |
| 2111 | + |
| 2112 | + <li class="md-nav__item"> |
| 2113 | + <a href="#calculating-conditional-probabilities-with-a-small-number-of-dependent-vulnerabilities" class="md-nav__link"> |
| 2114 | + <span class="md-ellipsis"> |
| 2115 | + Calculating Conditional Probabilities With A Small Number Of Dependent Vulnerabilities |
| 2116 | + </span> |
| 2117 | + </a> |
| 2118 | + |
| 2119 | +</li> |
| 2120 | + |
| 2121 | + </ul> |
| 2122 | + </nav> |
| 2123 | + |
2040 | 2124 | </li> |
2041 | 2125 |
|
2042 | 2126 | <li class="md-nav__item"> |
@@ -2122,6 +2206,75 @@ <h4 id="step-2-calculate-the-chance-of-at-least-one-being-exploited">Step 2: Cal |
2122 | 2206 | <p><strong>So, there is a 38.8% chance that at least one vulnerability will be exploited.</strong></p> |
2123 | 2207 | </div> |
2124 | 2208 | </div> |
| 2209 | +<h2 id="independence-assumption">Independence Assumption<a class="headerlink" href="#independence-assumption" title="Permanent link">¶</a></h2> |
| 2210 | +<div class="admonition info"> |
| 2211 | +<p class="admonition-title">What if Vulnerabilities are not independent?</p> |
| 2212 | +<p>If multiple systems in the group (that you're calculating Grouped <abbr title="Exploit Prediction Scoring System">EPSS</abbr> for) share the same <abbr title="CVE Common Vulnerability and Exposures. A standardized list of publicly known vulnerabilities and exposures maintained by the MITRE Corporation.">CVE</abbr>, the assumption of independence is likely not valid — or at least weakened — because:</p> |
| 2213 | +<ul> |
| 2214 | +<li> |
| 2215 | +<p>An attacker exploiting that <abbr title="CVE Common Vulnerability and Exposures. A standardized list of publicly known vulnerabilities and exposures maintained by the MITRE Corporation.">CVE</abbr> successfully on one system might increase their ability (or knowledge) to exploit it elsewhere.</p> |
| 2216 | +</li> |
| 2217 | +<li> |
| 2218 | +<p>Shared configurations, network access, or authentication could create a correlation between the vulnerabilities being exploited.</p> |
| 2219 | +</li> |
| 2220 | +</ul> |
| 2221 | +<h4 id="scenario-1-same-cve-truly-independent-deployments"><strong>Scenario 1: Same <abbr title="CVE Common Vulnerability and Exposures. A standardized list of publicly known vulnerabilities and exposures maintained by the MITRE Corporation.">CVE</abbr>, Truly Independent Deployments</strong><a class="headerlink" href="#scenario-1-same-cve-truly-independent-deployments" title="Permanent link">¶</a></h4> |
| 2222 | +<p>Imagine you have:</p> |
| 2223 | +<ul> |
| 2224 | +<li>3 different machines or services,</li> |
| 2225 | +<li>All vulnerable to <strong><abbr title="CVE Common Vulnerability and Exposures. A standardized list of publicly known vulnerabilities and exposures maintained by the MITRE Corporation.">CVE</abbr>-XXXX-YYYY</strong>,</li> |
| 2226 | +<li>Each independently patched, segmented, or exposed.</li> |
| 2227 | +</ul> |
| 2228 | +<p><strong>In this case</strong>, you can reasonably <strong>treat them independently</strong>. So the math above still applies:</p> |
| 2229 | +<div class="arithmatex">\[ |
| 2230 | +P(\text{no exploits}) = \prod_{i=1}^{N} (1 - P_i) |
| 2231 | +\]</div> |
| 2232 | +<p>Example: Three instances of <abbr title="CVE Common Vulnerability and Exposures. A standardized list of publicly known vulnerabilities and exposures maintained by the MITRE Corporation.">CVE</abbr>-2022-12345 with 10% chance each</p> |
| 2233 | +<div class="arithmatex">\[ |
| 2234 | +P(\text{at least one exploit}) = 1 - (0.9)^3 = 0.271 |
| 2235 | +\]</div> |
| 2236 | +<hr /> |
| 2237 | +<h4 id="scenario-2-same-cve-shared-system-or-pathway"><strong>Scenario 2: Same <abbr title="CVE Common Vulnerability and Exposures. A standardized list of publicly known vulnerabilities and exposures maintained by the MITRE Corporation.">CVE</abbr>, Shared System or Pathway</strong><a class="headerlink" href="#scenario-2-same-cve-shared-system-or-pathway" title="Permanent link">¶</a></h4> |
| 2238 | +<p>Now suppose:</p> |
| 2239 | +<ul> |
| 2240 | +<li>All three instances run on the <strong>same host</strong> or share an <strong>authentication mechanism</strong>.</li> |
| 2241 | +<li>Once an attacker exploits it in <strong>one place</strong>, they can <strong>reuse access or credentials</strong> elsewhere.</li> |
| 2242 | +</ul> |
| 2243 | +<p>Then the exploit events are <strong>dependent</strong>, and the original formula <strong>no longer holds</strong>.</p> |
| 2244 | +<p>You might see something like:</p> |
| 2245 | +<ul> |
| 2246 | +<li>One successful exploit causes <strong>all instances</strong> to be compromised (100% dependence).</li> |
| 2247 | +<li>Or a <strong>partial dependence</strong> — e.g., exploiting one boosts others from 10% to 50%.</li> |
| 2248 | +</ul> |
| 2249 | +<div class="admonition warning"> |
| 2250 | +<p class="admonition-title">Warning</p> |
| 2251 | +<p>When vulnerabilities are <strong>not</strong> independent and there is a</p> |
| 2252 | +<ul> |
| 2253 | +<li>small number, e.g. 3, of the same vulnerability, then conditional probabilities can be used </li> |
| 2254 | +<li> |
| 2255 | +<p>large number of the same vulnerability, then calculating probabilities becomes complex! </p> |
| 2256 | +<ul> |
| 2257 | +<li>It would involve e.g. conditional probabilities, Bayesian networks, or Markov chains.</li> |
| 2258 | +</ul> |
| 2259 | +</li> |
| 2260 | +</ul> |
| 2261 | +</div> |
| 2262 | +<h4 id="calculating-conditional-probabilities-with-a-small-number-of-dependent-vulnerabilities"><strong>Calculating Conditional Probabilities With A Small Number Of Dependent Vulnerabilities</strong><a class="headerlink" href="#calculating-conditional-probabilities-with-a-small-number-of-dependent-vulnerabilities" title="Permanent link">¶</a></h4> |
| 2263 | +<p>Let’s say you define:</p> |
| 2264 | +<ul> |
| 2265 | +<li><span class="arithmatex">\(A\)</span>: event that system 1 is exploited</li> |
| 2266 | +<li><span class="arithmatex">\(B\)</span>: event that system 2 is exploited</li> |
| 2267 | +</ul> |
| 2268 | +<p>Instead of computing <span class="arithmatex">\(P(A \cup B) = 1 - (1 - P(A))(1 - P(B))\)</span>, you’d now use:</p> |
| 2269 | +<div class="arithmatex">\[ |
| 2270 | +P(A \cup B) = P(A) + P(B) - P(A \cap B) |
| 2271 | +\]</div> |
| 2272 | +<p>Where:</p> |
| 2273 | +<div class="arithmatex">\[ |
| 2274 | +P(A \cap B) = P(A) \cdot P(B | A) |
| 2275 | +\]</div> |
| 2276 | +<p>And <strong><span class="arithmatex">\(P(B | A) > P(B)\)</span></strong> if they’re positively correlated (as with the same <abbr title="CVE Common Vulnerability and Exposures. A standardized list of publicly known vulnerabilities and exposures maintained by the MITRE Corporation.">CVE</abbr> in a shared system).</p> |
| 2277 | +</div> |
2125 | 2278 | <h2 id="using-grouped-epss">Using Grouped <abbr title="Exploit Prediction Scoring System">EPSS</abbr><a class="headerlink" href="#using-grouped-epss" title="Permanent link">¶</a></h2> |
2126 | 2279 | <div class="admonition tip"> |
2127 | 2280 | <p class="admonition-title">Using Grouped <abbr title="Exploit Prediction Scoring System">EPSS</abbr></p> |
|
0 commit comments