Phishing Catcher 核心算法解析:从香农熵到Levenshtein距离

发布时间:2026/5/21 23:30:12

Phishing Catcher 核心算法解析:从香农熵到Levenshtein距离 Phishing Catcher 核心算法解析从香农熵到Levenshtein距离【免费下载链接】phishing_catcherPhishing catcher using Certstream项目地址: https://gitcode.com/gh_mirrors/ph/phishing_catcherPhishing Catcher是一款基于证书透明流CertStream的钓鱼域名检测工具它通过实时监控TLS证书颁发记录来发现可疑的钓鱼网站。这款工具的独特之处在于它巧妙融合了多种算法——从信息论中的香农熵到字符串相似度计算的Levenshtein距离构建了一个高效的多维度评分系统。在网络安全领域这种实时检测方法为防范钓鱼攻击提供了全新的技术视角。 香农熵检测域名随机性的利器香农熵是信息论中衡量信息不确定性的重要指标。在Phishing Catcher中这个数学概念被巧妙地应用于域名检测。钓鱼者常常使用随机生成的字符组合来创建仿冒域名这些域名字符分布往往比正常域名更加随机。在catch_phishing.py的entropy()函数中算法计算域名字符的分布概率然后应用香农熵公式-∑(p * log₂(p))。高熵值意味着字符分布更均匀、更随机——这正是钓鱼域名的典型特征。def entropy(string): Calculates the Shannon entropy of a string prob [ float(string.count(c)) / len(string) for c in dict.fromkeys(list(string)) ] entropy - sum([ p * math.log(p) / math.log(2.0) for p in prob ]) return entropy这个简单的数学函数为每个域名赋予了随机性分数分数越高域名越可疑。 Levenshtein距离识别仿冒拼写的关键钓鱼者最常用的手段之一是创建与知名品牌域名相似的仿冒域名——比如将paypal拼写为paypol或paypa1。Phishing Catcher使用Levenshtein距离算法来量化这种相似性。Levenshtein距离衡量的是将一个字符串转换成另一个字符串所需的最少编辑操作次数插入、删除、替换。在catch_phishing.py的第87-91行算法特别针对高分关键词≥70分进行Levenshtein距离检测for key in [k for (k,s) in suspicious[keywords].items() if s 70]: for word in [w for w in words_in_domain if w not in [email, mail, cloud]]: if distance(str(word), str(key)) 1: score 70当检测到域名中的单词与高风险关键词如paypal、appleid仅有一个字符的差异时系统会直接增加70分的可疑度评分。这种精准的相似度检测机制大大提高了对高级钓鱼攻击的识别能力。 多维度评分系统层层递进的检测逻辑Phishing Catcher的评分系统是一个精心设计的层级结构每个检测维度都针对钓鱼攻击的不同特征1. 顶级域名(TLD)检测在suspicious.yaml中定义了可疑的顶级域名列表包括.ga、.gq、.ml、.cf等免费或高风险域名。匹配到这些TLD会直接增加20分。2. 关键词匹配系统配置文件中的关键词分为不同风险等级高风险关键词70分appleid、paypal、gmail、blockchain等中风险关键词25-60分login、account、verification等低风险关键词10-15分secure、online、service等3. 域名结构分析算法还会检测域名的特殊结构特征过多的连字符-会增加可疑度深层嵌套的子域名如www.paypal.com.security.accountupdate.gq以com、net、org开头的域名可能是com-account-management.info这类仿冒️ 混淆字符检测对抗视觉欺骗钓鱼者经常使用Unicode混淆字符来创建视觉上难以区分的域名。例如使用西里尔字母аU0430代替拉丁字母aU0061。Phishing Catcher通过confusables.py中的unconfuse()函数来标准化这些混淆字符。这个函数参考了Unicode技术报告TR39中的混淆字符映射表将视觉相似的字符转换为标准ASCII字符从而让Levenshtein距离检测更加准确。⚙️ 配置与扩展灵活的自定义机制项目的配置系统设计得非常灵活默认配置suspicious.yaml包含预定义的检测规则用户自定义external.yaml允许用户添加或覆盖检测规则动态更新配置可以实时更新而不需要重启程序用户可以根据自己的需求调整关键词分数、添加新的可疑TLD或者完全替换默认配置。这种灵活性使得Phishing Catcher能够适应不同的使用场景和威胁环境。 评分阈值与告警级别Phishing Catcher设置了四个明确的告警级别分数范围告警级别说明≥65分潜在威胁需要关注的可疑域名≥80分很可能高度可疑的钓鱼域名≥90分可疑极有可能是钓鱼攻击≥100分高度可疑强烈建议立即调查 实时监控与日志记录工具通过CertStream API实时接收证书透明度日志每检测到一个新颁发的TLS证书就会触发评分算法。可疑域名不仅会在终端实时显示还会被记录到按日期命名的日志文件中便于后续分析和调查。 实际应用场景与价值Phishing Catcher的核心算法组合在实际应用中表现出色企业安全团队实时监控针对公司品牌的钓鱼域名金融机构保护客户免受金融钓鱼攻击电子邮件服务商检测针对邮箱服务的钓鱼尝试加密货币平台防范针对钱包和交易所的钓鱼攻击 算法优化建议基于对源代码的分析这里有一些算法优化方向机器学习集成将传统规则与机器学习模型结合时间序列分析检测短时间内大量相似域名的注册行为地理分布分析结合IP地理位置信息证书特征分析利用证书本身的元数据进行辅助判断 总结Phishing Catcher通过香农熵检测随机性、Levenshtein距离识别仿冒、混淆字符标准化和多层规则评分的算法组合构建了一个高效、实时的钓鱼域名检测系统。这个开源项目展示了如何将经典的计算机科学算法应用于现代网络安全挑战为防御钓鱼攻击提供了可靠的技术方案。无论是安全研究人员、企业IT团队还是普通开发者都可以从这个项目中学习到有价值的算法实现思路和网络安全防护策略。通过简单的配置调整这个工具就能适应各种特定的威胁检测需求成为网络安全防御体系中的重要一环。【免费下载链接】phishing_catcherPhishing catcher using Certstream项目地址: https://gitcode.com/gh_mirrors/ph/phishing_catcher创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻