In threat intelligence and zero-trust link analysis, traditional signature-based blocklists fail when attackers register thousands of short-lived, algorithmically generated domain names. To detect zero-day phishing infrastructure before public blocklists are updated, modern security engines rely on information theory—specifically Shannon Entropy.

1. What is Shannon Entropy?

Formulated by Claude Shannon in 1948, Shannon Entropy measures the degree of randomness or unpredictability of information within a data string.

The mathematical formula for Shannon Entropy $H(X)$ of a string $X$ is defined as:

H(X) = - ∑ [ P(x_i) * log₂ P(x_i) ]

Where:

  • x_i represents an individual character in the string.
  • P(x_i) is the probability of occurrence of character x_i in the string.
  • log₂ is the logarithm base 2 (measuring information in bits).

2. Human-Readable vs. Machine-Randomized String Comparison

Human languages exhibit predictable character frequency distributions (e.g. vowels occur frequently, consonants follow specific phonetic pairings). In contrast, Domain Generation Algorithms (DGA), encrypted parameters, and obfuscated malware payloads produce high entropy scores due to uniform character randomness.

Sample Domain StringCalculated Entropy (bits/char)Classification
google.com~2.14Benign / Natural Language
security-login-portal.com~3.12Benign / Low Randomness
x9k2m7qzp1w8a.com~3.78High Risk DGA Candidate
aHR0cHM6Ly9ldmlsLnh5ei9sb2dpbg==~4.45Obfuscated Base64 Payload

3. Algorithmic Implementation in Cloudflare Edge Workers

The code snippet below demonstrates how Shannon entropy is calculated in high-speed JavaScript runtimes:

function calculateShannonEntropy(str) {
  if (!str || str.length === 0) return 0;
  
  const len = str.length;
  const charMap = new Map();
  
  // Count frequency of each character
  for (let i = 0; i < len; i++) {
    const char = str[i];
    charMap.set(char, (charMap.get(char) || 0) + 1);
  }
  
  let entropy = 0;
  for (const count of charMap.values()) {
    const p = count / len;
    entropy -= p * Math.log2(p);
  }
  
  return entropy;
}

// Example evaluation threshold
const host = "qz98x1k-login-secure.xyz";
const entropyScore = calculateShannonEntropy(host);

if (entropyScore > 4.2) {
  console.warn("High Entropy Threat Flagged: " + entropyScore);
}

4. Practical Applications in URL Security

  • DGA Domain Detection: Identifying botnet command-and-control (C2) domains generated on the fly.
  • Obfuscated Path Inspection: Spotting encrypted token parameters carrying malware payloads.
  • Phishing Subdomain Scoring: Detecting randomized subdomains created dynamically for target victims.

5. Experience Real-Time Entropy Scoring on IncogSay

Every URL submitted to IncogSay's URL Scanner undergoes real-time Shannon Entropy analysis alongside Levenshtein distance matching and TLD risk matrix evaluation—providing instant visibility into hidden threat patterns.