HFish蜜罐的介绍和简单测试(一)

目录

0、什么是蜜罐

0.1、蜜罐的定义

0.2、蜜罐的优势

0.3、蜜罐与情报

1、HFish介绍

1.1、设计理念

1.2、HFish架构

1.3、HFish特点

1.4、常见蜜罐场景

 2、快速部署

2.1、环境要求

2.2、联网环境,一键安装

2.3、安装效果

3、错误排查

3.1、管理端问题

3.1、节点问题

3.3、蜜罐服务问题


0、什么是蜜罐

0.1、蜜罐的定义

        蜜罐 技术本质上是一种对攻击方进行欺骗的技术,通过布置一些作为诱饵的主机网络服务 或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获 和分析,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所面对的安全威胁,并通过技术和管理手段来增强实际系统的安全防护能力。

0.2、蜜罐的优势

误报少,告警准确

        蜜罐作为正常业务的 "影子" 混淆在网络中,正常情况下不应被触碰,每次触碰都可以视为威胁行为。例如,在其它检测型产品中,将正常请求误判为攻击行为的误报很常见,而对于蜜罐来说,几乎不存在正常请求,即使有也是探测行为。

检测深入,信息丰富

        不同于其它检测型安全产品,蜜罐可以模拟业务服务甚至对攻击的响应,完整获取整个交互的所有内容,最大深度的获得攻击者探测行为之后的N个步骤,可检测点更多,信息量更大。

        例如,对于SSL加密 或工控环境,蜜罐可以轻松伪装成业务,得到完整攻击数据。

主动防御,预见未来,生产情报

        在每个企业,几乎每分钟都在发生这样的场景:潜伏在互联网角落中的攻击者发起一次攻击探测,防守方业务不存在安全漏洞,IDS告警后事情就不了了之了。

        而应用蜜罐型产品后,转换为主动防御思路: 蜜罐响应了攻击探测,诱骗攻击者认为存在漏洞,进而发送了更多指令,包括从远端地址下载木马程序,而这一切不仅被完整记录下来,还可以转化为威胁情报供给传统检测设备,用于在未来的某个时刻,准确检测主机失陷。

        可以发现,转换为主动防护思路后,威胁检测由针对单次、多变的攻击上升到应用威胁情报甚至TTPs(Tactics,Techniques, and Procedures)检测

*失陷指标(Indicators of Compromise,IOC)

环境依赖少,拓展视野

        由于是融入型安全产品,蜜罐不需要改动现有网络结构,并且很多蜜罐是软件形态,对各种虚拟和云环境非常友好,部署成本低。 蜜罐可以广泛部署于云端接入交换机下游末梢网络中,作为轻量级探针,将告警汇聚到态势感知或传统检测设备中分析和展示。

0.3、蜜罐与情报

        显而易见蜜罐 是非常准确、稳定和恰当的情报感知探针。 蜜罐最大的价值是诱使攻击者展示其能力和资产,再配合误报少,信息丰富等一系列优势,配合态势感知或本地情报平台可以稳定生产私有威胁情报。

1、HFish介绍

1.1、设计理念

        HFish是一款社区型免费蜜罐,侧重企业安全场景,从内网失陷检测、外网威胁感知、威胁情报生产三个场景出发,为用户提供可独立操作且实用的功能,通过安全、敏捷、可靠的中低交互蜜罐增加用户在失陷感知和威胁情报领域的能力。

        HFish具有超过40种蜜罐环境、提供免费的云蜜网、可高度自定义的蜜饵能力、一键部署、跨平台多架构、国产操作系统和CPU支持、极低的性能要求、邮件/syslog/webhook/企业微信/钉钉/飞书告警等多项特性,帮助用户降低运维成本,提升运营效率。

1.2、HFish架构

        HFish采用B/S架构,系统由管理端和节点端组成,管理端用来生成和管理节点端,并接收、分析和展示节点端回传的数据,节点端接受管理端的控制并负责构建蜜罐服务。

在HFish中,管理端只用于数据的分析和展示节点端进行虚拟蜜罐,最后由蜜罐来承受攻击

         在最小化测试的情况,您可以直接通过安装管理端,通过管理端内的内置节点,直接进行蜜罐服务测试。

1.3、HFish特点

HFish当前具备如下几个特点:

  • 安全可靠:主打低中交互蜜罐,简单有效;

  • 功能丰富:支持基本网络 服务、OA系统、CRM系统、NAS存储系统、Web服务器、运维平台、无线AP、交换机/路由器、邮件系统、IoT设备等40多种蜜罐服务,支持用户制作自定义Web蜜罐,支持用户进行流量牵引到云蜜网、可开关的扫描感知能力、支持可自定义的蜜饵配置;

  • 开放透明:支持对接微步在线X社区API、五路syslog输出、支持邮件、钉钉、企业微信、飞书、自定义WebHook告警输出;

  • 快捷管理:支持单个安装包批量部署,支持批量修改端口和服务;

  • 跨平台:支持Linux x32/x64/ARM、Windows x32/x64平台、国产操作系统、龙芯、海光、飞腾、鲲鹏、腾云、兆芯硬件。

1.4、常见蜜罐场景

 2、快速部署

2.1、环境要求

HFish支持的部署主机

        HFish采用B/S架构,系统由管理端和节点端组成,管理端用来生成和管理节点端,并接收、分析和展示节点端回传的数据,节点端接受管理端的控制并负责构建蜜罐服务。

Windows Linux X86
管理端(Server) 支持64位 支持64位
节点端(Client) 支持64位和32位 支持64为和32位

HFish内网所需配置

通常来说部署在内网的蜜罐,对性能的要求较低,接入公网的蜜罐会有更大的性能需求。

针对过往测试情况,我们给出两个配置。注意,如果您的蜜罐部署在互联网,会遭受到较大攻击流量,建议提升主机的配置。

管理端 节点端
建议配置 2核4g200G 1核2g50G
最低配置 1核2g100G 1核1g50G

注意:日志磁盘占用情况受攻击数量影响较大,建议管理端配置200G以上硬盘空间。

HFish外网所需配置(必须更换mysql数据库)

通常说接入公网的蜜罐会有更大的性能需求。

针对过往测试情况,我们给出两个配置。注意,如果您的蜜罐部署在互联网,会遭受到较大攻击流量,建议提升主机的配置。

管理端(必须更换mysql数据库) 节点端
建议配置 5个节点以内,4核8g200G。 1核2g50G
最低配置 2核4g100G 1核1g50G

注意:日志磁盘占用情况受攻击数量影响较大,建议管理端配置200G以上硬盘空间。

部署权限要求

管理端对root权限的需求

  1. 如果使用官网推荐的install.sh脚本安装,需要root权限,安装目录会位于opt目录下;

  2. 如果下载安装包手动安装,在默认使用SQLite数据库情况下,管理端的部署和使用不需要root权限,但如果要替换SQLite改为MySQL数据,则MySQL安装和配置需要root权限;

节点端对root权限的需求

节点端安装和运行无需root权限,但是由于操作系统限制,非root权限运行的节点无法监听低于tcp/1024的端口;

2.2、联网环境,一键安装

特别注意:Centos 是我们的原生开发和主力测试系统,我们最优推荐各位使用Centos系统进行安装。

当前HFish启动后会有两个进程,其中"hfish"进程为管理进程,负责监测、拉起和升级蜜罐主程序,"管理端"进程为蜜罐主程序进程,其执行蜜罐软件程序。 Linux版本HFish管理端数据库及配置文件都存储在 /usr/share/hfish 目录下,重装时会自动读取目录下的配置和数据。

如果您部署的环境为Linux,且可以访问互联网。我们为您准备了一键部署脚本进行安装和配置,在使用一键脚本前,请先配置防火墙

请防火墙开启4433、4434,确认返回success(如之后蜜罐服务需要占用其他端口,可使用相同命令打开。)

firewall-cmd --add-port=4433/tcp --permanent   #(用于web界面启动)
firewall-cmd --add-port=4434/tcp --permanent   #(用于节点与管理端通信)
firewall-cmd --reload

使用root用户,运行下面的脚本。

bash <(curl -sS -L https://hfish.net/webinstall.sh)

完成安装

登陆链接:https://[ip]:4433/web/
账号:admin
密码:HFish2021

   2.3、安装效果

        本次测试使用Linux下联网环境安装,其他环境安装请参考官方手册。

     测试环境是我的VPS。

 选择1,安装和运行HFish

 等待安装完毕。

配置VPS的防火墙后可以打开管理界面(注意url后写全部包括web)

 自己测试使用SQLite数据库。

 首先修改密码,因为部署在互联网。

 登录以后可以看到节点状态和攻击状态

3、错误排查

3.1、管理端问题

管理端部署完成后,访问Web管理页面始终无法打开

解决办法:

1、确认浏览器访问地址是 https://[server]:4433/web/,注意不可缺少“/web/”这个路径

2、确认管理端进程的运行情况和TCP/4433端口开放情况,如果不正常需要重启管理端进程

# 检查 hfish-server的进程是否运行正常
ps ax | grep ./hfish | grep -v grep
​
# 检查TCP/4433端口是否正常开放
ss -ntpl

3、检查管理端主机是否开启了防火墙,导致目前无法访问,必要情况,考虑关闭防火墙

 #centos7 检查防火墙状态
 systemctl status firewalld

 #centos7 检查防火墙开放端口
 firewall-cmd --list-ports

4、Linux环境使用date命令确认系统时间的准确

5、如果以上都没有问题,请将server和client日志提供给我们

节点端日志在安装目录的logs文件夹内,文件名为client.log
Linux管理端日志在/usr/share/hfish/log文件夹内,文件名为server.log
Windows管理端日志在C:\Users\Public\hfish\log文件夹内,文件名为server.log

3.1、节点问题

节点状态为红色离线

解决办法:

1、检查节点到管理端的网络连通情况,以下是几种常见情况

节点每60秒连接管理端的TCP/4434端口一次,180秒内连接不上即显示为离线。
刚完成部署或网络不稳定的时候会出现显示为离线。
通常情况,等待2~3分钟,如果节点恢复绿色在线,那蜜罐服务也会从绿色启用,变成绿色在线。

2、如果确认网络访问正常,节点在管理端上始终离线,需要检查节点上的进程运行情况。如果进程运行异常,需要杀死全部关联进程后,重启进程,并记录错误日志。

# 检查./client的进程是否运行正常
ps ax | grep -E 'services|./client' | grep -v grep        

如果以上都没有问题,请将server和client日志提供给我们

节点端日志在安装目录的logs目录内,文件名为client.log
Linux管理端日志在/usr/share/hfish/log文件夹内,文件名为server.log
Linux管理端日志在C:\Users\Public\hfish\log文件夹内,文件名为server.log
​
Linux节点端后台运行方案:
nohup .~/client >>nohup.out 2>&1 &
​
Linux开机自启动方案
echo 'nohup .~/client >>nohup.out 2>&1 &' >> /etc/rc.local
​
Linux定时任务方案
echo '* * * * * nohup .~/client >>nohup.out 2>&1 &' >> /var/spool/cron/crontabs/root

3.3、蜜罐服务问题

节点在线,部分蜜罐服务在线,部分蜜罐服务离线

可通过触碰状态旁边的问号,确认离线原因。

bind:address already in use解决办法:

该报错情况往往是因为端口冲突

这个问题常见默认22端口的SSH服务,刚启动client的时候服务在线,过了一会儿后服务离线。
使用ss -ntpl命令检查该蜜罐服务的端口是否被占用?如果被占用,建议修改该业务的默认端口。
​
Windows操作系统上,如果用户启用了tcp端口监听,大概率会发现TCP 135、139、445、3389端口冲突,
这是用于Windows默认占用了这些端口,不建议在Windows上监听TCP 135、139、445、3389端口。
​
Linux操作系统端口冲突解决方案:
lsof -i:[port]
kill [pin]
重新启用该端口的蜜罐

**变更服务模板后,蜜罐新服务访问不到 **

在HFish当前的产品结构中,管理端**永远不会**主动连接节点进行节点配置的变更。
管理端仅负责生成一个配置,等待节点每60秒尝试连接管理端拉取。
​
蜜罐服务被攻击的结果,会实时上报到管理端。

 =========================================================

以上内容大部分参考HFish官方文档,本篇是介绍和安装,下篇计划更新详细使用。

猜你喜欢

转载自blog.csdn.net/imtech/article/details/129688386