📜  项目理念 | Homograph 攻击警告系统 (HAWS)(1)

📅  最后修改于: 2023-12-03 14:58:45.378000             🧑  作者: Mango

项目理念 | Homograph 攻击警告系统 (HAWS)

项目简介

Homograph 攻击警告系统 (HAWS) 是一款旨在帮助用户防范 Homograph 攻击的软件。Homograph 攻击是一种利用域名或 URL 中的字符集混淆来进行欺骗的一种攻击方法。HAWS 可以检测用户在使用浏览器时是否遇到了 Homograph 攻击,并及时发出警告。

技术栈

HAWS 主要使用了以下技术:

  • Python 编程语言
  • Flask web 框架
  • Homoglyphs 库:用于处理 Homograph 字符
  • WHOIS 查询库:用于获取域名 WHOIS 信息
  • 浏览器 API:用于获取当前页面的 URL 和域名
功能特性

HAWS 主要具有以下功能特性:

  1. 检测 Homograph 攻击
    • 判断用户在浏览器中输入的 URL 是否包含 Homograph 字符,防止用户被诈骗
  2. 提供 WHOIS 信息
    • 对于用户访问的域名,提供 WHOIS 信息,方便用户了解域名的所有者和注册信息
  3. 针对浏览器插件的警告提示
    • 当用户遇到 Homograph 攻击时,HAWS 可以弹出警告提示,提醒用户该网站可能存在危险
代码片段

以下是检测 Homograph 攻击的代码片段:

# 使用 Homoglyphs 库获取 Homograph 字符替换表
def get_homoglyphs_table():
    table = {}
    for alpha in ascii_letters + digits:
        table[alpha] = [char for char in HOMOGLYPHS.get_combinations(alpha, greedy=True)]
    return table

# 检测字符串中是否包含 Homograph 字符
def contains_homoglyph(string):
    table = get_homoglyphs_table()
    for char in string:
        if char in table.keys():
            for homoglyph in table[char]:
                if homoglyph in string:
                    return True
    return False

以上是通过 Homoglyphs 库来检测字符串中是否包含 Homograph 字符的代码片段。

以下是对浏览器插件进行警告提示的代码片段:

// 监听用户访问 URL 的事件
chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
    // 获取当前页面的 URL 和域名
    var url = new URL(changeInfo.url)
    var domain = url.hostname

    // 如果 URL 中包含 Homograph 字符,弹出警告提示
    if (contains_homoglyph(domain)) {
        alert('WARNING: This website may contain homograph characters!')
    }
})

以上是通过 Chrome 浏览器 API 来监听用户访问 URL 的事件,如果检测到 Homograph 攻击,就弹出警告提示的代码片段。