SSL/TLS 证书监测工具 — Certwatcher

SSL/TLS 证书监测工具 — Certwatcher

一、说明

CertWatcher 是一种使用 YAML 模板捕获和跟踪证书透明度日志的工具,使用 Go 语言编写,该工具有助于检测和分析网络钓鱼网站,旨在让安全专业人员和研究人员易于使用。

图片[1]-SSL/TLS 证书监测工具 — Certwatcher-零度非安全
官方截图

Certwatcher 持续监控证书数据流并检查可疑 patterns 或恶意活动,另外还可以自定义 Certwatcher 以检测特定的网络钓鱼并打击恶意网站的传播

二、安装

下面为安装步骤

git clone https://github.com/drfabiocastro/certwatcher
cd certwatcher
make
sudo make install
图片[2]-SSL/TLS 证书监测工具 — Certwatcher-零度非安全
git clone https://github.com/drfabiocastro/certwatcher

不过在这里需要特别说明一下,由于我的系统是 MacOS (Ventura v13.2),在 make 安装依赖的 Go 包后,执行 sudo make install 出错,提示往 /usr/bin 目录下进行写操作被拒绝,即使用了 sudo 也出现,我想到的只有 MacOS 的 SIP 安全机制,重启按 Command + R 进入安全模式将 SIP 关闭后问题依旧,还是无法进行写操作

图片[3]-SSL/TLS 证书监测工具 — Certwatcher-零度非安全
由于 MacOS 的安全机制导致无法进行写操作,即便将 SIP 关闭也无效

查看项目下的 Makefile 文件,定位到 install,将 /usr/bin 修改为 /usr/local/bin 再重新执行,问题解决

图片[4]-SSL/TLS 证书监测工具 — Certwatcher-零度非安全
定位到 install,将 /usr/bin 修改为 /usr/local/bin
图片[5]-SSL/TLS 证书监测工具 — Certwatcher-零度非安全
certwatch –help

在 Certwatcher 中可使用自定义模板来显示证书信息,有一些来自社区的公共自定义模板:https://github.com/drfabiocastro/certwatcher-templates

三、模板

Certwatcher 基于 YAML 模板工作,模板定义了如何处理获得的证书,这让 certwatcher 具有可扩展性和灵活性。

这些模板用 YAML 编写,指定一种友好的可读格式来快速定义执行过程。

3.1 自定义模板

每个模板都有一个唯一的 ID,在输出写入期间使用该 ID 来指定输出行的模板名称,模板文件以 YAML 扩展名结尾,可以使用任何文本编辑器创建模板文件。

id: fas-keywords-malware

ID 不得包含空格,这样做是为了更容易进行输出解析。

3.2 Info

关于模板的下一个重要信息是 info 块,info 块提供 idnameauthordescriptionclassificationreference

info 块粟子

info:
    id: fas-keywords-malware
    name: Ads Malware Delivery
    author: Fábio Castro
    description: List of Ads Malware Delivery for keyword matching.

    classification:
      tags:
        - ads
        - windows

    reference:
      - https://github.com/certwatcher/certwatcher-templates

实际请求和相应的 matchers 放在信息块下面,它们执行分析的任务。

3.3 Keywords

Certwatcher 使用的 keywords 用于过滤 YAML 文件中证书日志返回的域对应的关键字,这些关键字可用于限制需要分析的日志量

  # Keywords for domain matching.
  keywords:
    - acrobat
    - adwcleaner
    - airtable
    - airvpn
    - androidstudio
    - anydesk

3.4 Matchers

每个 matcher 都是一个包含三个字段的字典:patterntype 和 description。pattern 字段包含一个正则表达式,用于在 HTTP 请求正文中获取 pattern。type 字段指定在哪里寻找 pattern,例如请求的主体或请求的头部。description 字段提供了它对应 pattern 的描述。

matchers:
    # Using regular expressions to search in the page body.
    - pattern: "\\b(UA-167472923|UA-145098812)\\b"
      type: body
      description: "Matches UA tracking codes in the body of the request."

    - pattern: "\\bGTM-[A-Z0-9]+\\b"
      type: body
      description: "Matches Google Tag Manager container IDs"

    - pattern: "\\b(RC-|YCL)[0-9]+\\b"
      type: body
      description: "Matches Yahoo Search Ads conversion tracking IDs"

提供的 matchers 用于查找特定字符串,例如令牌、API 密钥、电子邮件地址、跟踪 ID、AdSense 发布商 ID、Google Ads 转换 ID 和 Google 跟踪代码管理器容器 ID。

3.5 顶级域 (TLDs)

顶级域 (Top Level Domains,TLD) 是互联网分层域名系统中的最高级别,这些 pattern 用于识别和匹配包含顶级域的 URL,通常用于网络钓鱼,这是一种欺骗用户提供密码、银行或信用卡信息等个人信息的做法。

tlds:
    - pattern: "\\b\\w+\\.net|org|io|info|xyz|top|club|pw|tk|ga|ml|cf|gq|online|tech\\b"
      type: url
      description: "Matches common TLDs used for phishing"

    - pattern: "\\b\\w+\\.link|bid|download|loan\\b"
      type: url
      description: "Matches common TLDs used for phishing"

3.6 模板的结构

  • id:关键字集的唯一标识符;
  • name:关键字集的名称;
  • country:欺诈或网络钓鱼站点的位置,通常具有特定国家/地区的关键字;
  • author:关键字集的作者或创建者的姓名;
  • description:关键字集及其用途的描述;
  • classification:有关关键字集分类的附加信息,包括标签和引用;
  • reference:与关键字集相关的相关参考资料列表;
  • keywords:与关键字集相关的关键字列表;
  • matchers:用于识别钓鱼网站关键字的匹配类型列表,包括精确的单词匹配和 pattern 匹配以识别特定的表单字段。
  • tlds:用于识别与关键字集相关的 URL 的顶级域模式列表,包括每个 pattern 的描述;
© 版权声明
THE END
喜欢就支持一下吧
点赞1 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容