diff --git a/docs/1-1-honeypot.md b/docs/1-1-honeypot.md index ee97a27..a82d875 100644 --- a/docs/1-1-honeypot.md +++ b/docs/1-1-honeypot.md @@ -1,6 +1,48 @@ -**蜜罐** 技术本质上是一种对攻击方进行 **欺骗的技术**,通过布置一些作为 **诱饵的主机**、**网络服务** 或者 **信息**,诱使攻击方对它们实施攻击,从而可以对攻击行为进行 **捕获** 和 **分析**,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所面对的安全威胁,并通过技术和管理手段来增强实际系统的安全防护能力。 -**蜜罐** 好比是 **情报收集系统**。蜜罐好像是故意让人攻击的目标,**引诱黑客前来攻击**。所以攻击者入侵后,你就可以知道他是如何得逞的,随时了解针对服务器发动的最新的攻击和漏洞。还可以通过窃听黑客之间的联系,收集黑客所用的种种工具,并且掌握他们的社交网络。 +### 什么是蜜罐 + + **蜜罐** 技术本质上是一种对攻击方进行 **欺骗的技术**,通过布置一些作为 **诱饵的主机**、**网络服务** 或者 **信息**,诱使攻击方对它们实施攻击,从而可以对攻击行为进行 **捕获** 和 **分析**,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所面对的安全威胁,并通过技术和管理手段来增强实际系统的安全防护能力。 + + +### 蜜罐的优势 + + > **误报少,告警准确** + + 蜜罐作为正常业务的 "**影子**" 混淆在网络中,正常情况下不应被触碰,每次触碰都可以视为威胁行为。 + + 例如,在其它检测型产品中,将正常请求误判为攻击行为的误报很常见,而对于蜜罐来说,几乎不存在正常请求,即使有也是探测行为。 + + > **检测深入,信息丰富** + + 不同于其它检测型安全产品,蜜罐可以 **模拟业务服务甚至对攻击的响应**,完整获取整个交互的所有内容,最大深度的获得攻击者探测行为之后的N个步骤,可检测点更多,信息量更大。 + + 例如,对于SSL加密或工控环境,蜜罐可以轻松伪装成业务,得到完整攻击数据。 + + + > **主动防御,预见未来,生产情报** + + 在每个企业,几乎每分钟都在发生这样的场景: + + 潜伏在互联网角落中的攻击者发起一次攻击探测,防守方业务不存在安全漏洞,IDS告警后事情就不了了之了。 + + 而应用蜜罐型产品后,转换为 **主动防御思路**: + + 蜜罐响应了攻击探测,诱骗攻击者认为存在漏洞,进而发送了更多指令,包括从远端地址下载木马程序,而这一切不仅被完整记录下来,还可以转化为威胁情报供给传统检测设备,用于在未来的某个时刻,准确检测主机失陷。 + + 可以发现,转换为主动防护思路后, **威胁检测由针对单次、多变的攻击上升到应用威胁情报甚至TTPs检测**。 + + + > **环境依赖少,拓展视野** + + 由于是融入型安全产品,蜜罐**不需要**改动现有网络结构,并且很多蜜罐是软件形态,对各种虚拟和云环境非常友好,部署成本低。 + + 蜜罐可以广泛部署于**云端**和**接入交换机下游末梢网络中**,作为**轻量级探针**,将告警汇聚到态势感知或传统检测设备中分析和展示。 + + +### 蜜罐和威胁情报的关系 + 显而易见 **蜜罐** 是非常准确、稳定和恰当的 **情报感知探针**。 + + 蜜罐最大的价值是 **诱使攻击者展示其能力和资产**,再配合误报少,信息丰富等一系列优势,配合态势感知或本地情报平台可以稳定生产私有威胁情报。 diff --git a/docs/8-2-debug.md b/docs/8-2-debug.md index 9f6f455..25383cc 100644 --- a/docs/8-2-debug.md +++ b/docs/8-2-debug.md @@ -1,6 +1,6 @@ ### 常见问题排查 -> 节点红色离线而蜜罐服务却是绿色的启用? +> 节点状态为红色离线,蜜罐服务却是绿色启用? ![](https://hfish.cn-bj.ufileos.com/images/WechatIMG3065.jpg) @@ -11,26 +11,26 @@ 1. 检查节点到管理端的网络连通情况,并等待…… ```shell - 节点每90秒连接server的4433端口一次,180秒内连接不上,即显示离线。 - 在刚刚完成部署,或网络不稳定的时候会出现这种情况。 - 这种时候等2~3分钟,如果节点恢复绿色在线,那通常过一会儿,蜜罐服务也会从绿色的启用,变成绿色的在线。 + 节点每90秒连接server的TCP/4433端口一次,180秒内连接不上,即显示离线。 + 在刚刚完成部署或网络不稳定的时候会出现这种情况。 + 通常情况,等待2~3分钟,如果节点恢复绿色在线,那蜜罐服务也会从绿色启用,变成绿色在线。 ``` -2. 检查管理端防火墙以及ACL策略是否放行了节点对server 4434端口访问的权限 +2. 检查管理端防火墙以及ACL策略是否放行了节点对server 4434端口的访问 ```shell - #可以用wget进行测试 - wget 127.0.0.1:4433 + # 从节点主机发起wget测试 + wget [服务器地址]:4434 ``` -3. 如果确认网络访问正常,节点在server那里始终离线,需要检查节点上的进程运行情况。如果进程运行异常,需要杀死全部关联进程后,重启进程,并记录错误日志。 +3. 如果确认网络访问正常,节点在server上始终离线,需要检查节点上的进程运行情况。如果进程运行异常,需要杀死全部关联进程后,重启进程,并记录错误日志。 ```shell - #检查./client的进程是否运行正常 - ps aux | grep client + # 检查./client的进程是否运行正常 + ps ax | grep -E 'services|./client' | grep -v grep - #检查./service的进程是否运行正常 - ps aux | grep service + # 检查./service的进程是否运行正常 + ps ax | grep ./server | grep -v grep ``` @@ -39,25 +39,28 @@ 解决办法: -1. 确认server进程的运行情况和4433端口开放情况,如果不正常需要重启server进程,并记录错误日志 +1. 确认浏览器访问地址是 https://[server]:4433/web/,注意不可缺少“web”这个路径 + +2. 确认server进程的运行情况和4433端口开放情况,如果不正常需要重启server进程,并记录错误日志 ```shell - #检查./server的进程是否运行正常 - ps aux | grep server + # 检查./server的进程是否运行正常 + ps ax | grep ./server | grep -v grep - #检查端口是否正常开放 + # 检查tcp/4433端口是否正常开放 ss -ntpl - - #节点端日志在安装目录下client/logs文件夹内,文件名称为 - client.log - - #蜜罐服务的日志在节点端安装目录下client/service/蜜罐服务名称 文件夹,文件名称为 + 蜜罐服务名称.log ``` -2. 检查堡垒机是否开放了对server4433端口的访问 +3. 检查server主机是否开启了防火墙 - +4. 如果以上都没有问题,请将server和client日志提供给我们 + + ```shell + # 节点端日志在安装目录的logs文件夹内,文件名为client.log + # 控制端日志在安装目录的logs文件夹内,文件名为server-*.log + ``` > 节点在线,部分蜜罐服务在线,部分蜜罐服务离线 @@ -65,28 +68,29 @@ 1. 确认蜜罐服务进程是否还在运行? -```shell -#检查./service的进程是否运行正常 -ps aux | grep service - -#如果进程确实挂了,查看服务的日志 -``` + ```shell + # 检查service的进程是否运行正常,如果进程退出,建议查看service的日志 + ps ax | grep service | grep -v grep + ``` 2. 确认是否端口冲突? -```shell -这个问题常见默认22端口的SSH服务,刚启动client的时候,服务在线,过了一会儿后服务离线。 -用ss -ntpl检查该蜜罐服务的端口是否被占用?如果被占用,建议修改该业务的默认端口。 -``` + ```shell + 这个问题常见默认22端口的SSH服务,刚启动client的时候,服务在线,过了一会儿后服务离线。 + 用ss -ntpl检查该蜜罐服务的端口是否被占用?如果被占用,建议修改该业务的默认端口。 + + 在Windows操作系统上,如果用户启用了tcp端口监听,大概率会发现tcp 135、139、445、3389端口冲突, + 这是用于Windows默认占用了这些端口,不太建议在Windows上使用tcp 135、139、445、3389端口的蜜罐。 + ``` > 变更服务模板后,蜜罐新服务访问不到 -```shell -在HFish当前的产品结构中,管理端永远不会主动连接节点进行节点配置的变更。 -而是在管理端上,生成一个配置,等待节点来拉取。 -节点每90秒尝试连接管理端一次,获取到变更数据后,还需要从管理端上拉取新的服务,解压服务包并运行。 -运行服务的结果,会在下一个90秒回连时,上报到管理端。 -这个流程最慢的话,可能会有一个3分钟左右延时。 -所以刚刚变更蜜罐服务后,请大家稍微等等。 -``` + ```shell + 在HFish当前的产品结构中,管理端永远不会主动连接节点进行节点配置的变更。 + 而是在管理端上生成一个配置,等待节点来拉取。 + 节点每90秒尝试连接管理端一次,获取到变更数据后,还需要从管理端上拉取新的服务,解压服务包并运行。 + 运行服务的结果,会在下一个90秒回连时,上报到管理端。 + 这个流程最慢的话,可能会有一个3分钟左右延时。 + 所以刚刚变更蜜罐服务后,请大家稍微等等。 + ``` diff --git a/docs/_sidebar.md b/docs/_sidebar.md index 2e3c844..02431dc 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -1,5 +1,6 @@ - HFish介绍 - [什么是蜜罐](1-1-honeypot) + - [使用场景](1-4-honeypot) - [HFish特点](1-2-spec) - [HFish原理](1-3-workflow) - 快速开始 diff --git a/docs/download.md b/docs/download.md index 664174d..081cc7d 100755 --- a/docs/download.md +++ b/docs/download.md @@ -11,7 +11,7 @@ 2.新增TCP端口监听服务,支持最高对10个自定义端口的灵活监听。 3.新增蜜罐服务的支持,单个节点,最高可添加10种蜜罐服务。 4.新增windows开机自启动能力,防止意外关机导致的程序退出。 -5.修复告警策略中,修改配置不生效的问题 。 +5.修复告警策略中,修改配置不生效的问题。 6.修复数据清理时,扫描数据,攻击IP及账号资产未进行清理的问题。 7.修复部分使用交互问题。 ``` @@ -30,41 +30,41 @@ ```wiki HFish -│ server #控制端文件 -│ config.ini #控制端配置文件 -│ README.md #安装使用说明 -│ version #版本信息 -│ ssl.key #SSL私钥 -│ ssl.pem #SSL证书 -│ tools #控制台工具,目前功能为重置控制台web登录密码 +│ server #控制端文件 +│ config.ini #控制端配置文件 +│ README.md #安装使用说明 +│ version #版本信息 +│ ssl.key #SSL私钥 +│ ssl.pem #SSL证书 +│ tools #控制台工具,目前功能为重置控制台web登录密码 │ └───db -│ │ hfish.db #sqlite数据 -│ │ ipip.ipdb #ip归属地信息 +│ │ hfish.db #sqlite数据 +│ │ ipip.ipdb #ip归属地信息 │ │ │ └───sql │ └───mysql -│ │ V<% version %>__mysql.sql #mysql数据库用户升级文件 +│ │ V<% version %>__mysql.sql #mysql数据库用户升级文件 │ │ │ └───sqlite │ │ V<% version %>__sqlite.sql #sqlite数据库用户升级文件 │ └───logs -│ │ server-年-月-日.log #server日志文件 +│ │ server-年-月-日.log #server日志文件 │ └───packages -│ │ install.sh #节点部署时安装脚本 -│ │ node_account.conf #蜜饵源文件 +│ │ install.sh #节点部署时安装脚本 +│ │ node_account.conf #蜜饵源文件 │ │ -│ └───linux-x86 #Linux 服务包 +│ └───linux-x86 #Linux 服务包 │ │ client │ │ service-*.tar.gz │ -└───static #web服务预览图 +└───static #web服务预览图 │ └───services │ │ …… │ -└───web #控制台web文件 +└───web #控制台web文件 │ │ …… ``` \ No newline at end of file diff --git a/docs/known.md b/docs/known.md index fb8013c..5b0173c 100644 --- a/docs/known.md +++ b/docs/known.md @@ -1,5 +1,5 @@ > 2.5.0版本,Windows版本自动升级流程遇到问题,正在第一优先级修复。 - - > 当前linux节点安装时候,结束后会有两行异常报错,该报错不影响节点安装过程使用。(正在修复) + +> 已知多网卡情况下,client上线有问题。 \ No newline at end of file diff --git a/docs/uninstall.md b/docs/uninstall.md index 6dc3b2f..21f3ba8 100644 --- a/docs/uninstall.md +++ b/docs/uninstall.md @@ -1,52 +1,52 @@ # 卸载蜜罐的流程 -> 卸载 server 端 +> 卸载server端 -1. 杀死 server 进程 +1. 杀死server进程 ```shell -# 结束 server 进程 +# 结束server进程 root@HFish~$ ps ax | grep ./server | grep -v grep 8435 ? Sl 97:59 ./server root@HFish:~$ sudo kill -9 8435 ``` -2. 删除 server 文件夹 +2. 删除server文件夹 ```shell -# 使用 install.sh 安装的 HFish 会被部署到/opt/hfish目标,删除即可 +# 使用install.sh安装的HFish会被部署到/opt/hfish目标,删除即可 root@HFish~$ sudo rm -rf /opt/hfish ``` -3. 清理数据库(如果使用的是 SQLite 数据库请忽略) +3. 清理数据库(如果使用的是SQLite数据库请忽略) ```shell -# 删除 HFish 数据库 +# 删除HFish数据库 root@HFish:~$ mysql -h127.0.0.1 -uroot -p Enter password:*******(默认密码详见config.ini配置文件) mysql> DROP DATABASE hfish; -# 停止 MySQL 服务 +# 停止MySQL服务 root@HFish:~$ sudo systemctl stop mysqld root@HFish:~$ sudo systemctl disable mysqld ``` -4. 还原 SSH 和 Firewall 配置 +4. 还原SSH和Firewall配置 ```shell -# 清除 SSH config 内对于访问来源的限制 +# 清除SSH config内对于访问来源的限制 root@HFish~$ sudo vi /etc/ssh/sshd_config 注释掉以 AllowUsers root@ 开头的行 -# 重启 SSH 服务 +# 重启SSH服务 root@HFish~$ sudo systemctl restart sshd -# 清除 Firewall 服务的规则(请根据实际情况删除!) +# 清除Firewall服务的规则(请根据实际情况删除!) root@HFish~$ sudo firewall-cmd --permanent --list-all | grep ports | head -n 1 | \ cut -d: -f2 | tr ' ' '\n' | xargs -I {} firewall-cmd --permanent --remove-port={} -# 重启 Firewall 服务 +# 重启Firewall服务 root@HFish~$ sudo systemctl restart firewalld ``` @@ -54,11 +54,11 @@ root@HFish~$ sudo systemctl restart firewalld > 卸载节点端 -1. 杀死 client 和 services 进程 +1. 杀死client和services进程 ```shell # 结束 client 和 services 进程 -root@HFish~$ sudo ps ax | grep -E 'services|./client' | grep -v grep +root@HFish~$ ps ax | grep -E 'services|./client' | grep -v grep 10506 ? Sl 134:20 ./client 1685739 ? Sl 0:00 services/mysql/mysql 0.0.0.0:3306 true 1685743 ? Sl 0:00 services/redis/redis 0.0.0.0:6379 true @@ -69,32 +69,32 @@ root@HFish~$ sudo ps ax | grep -E 'services|./client' | grep -v grep root@HFish:~$ sudo kill -9 10506 1685739 1685743 1685747 1685751 1685755 ``` -2. 删除 client 文件夹 +2. 删除client文件夹 ```shell # 使用 install.sh 安装的 HFish 会被部署到/opt/hfish目标,删除即可 root@HFish~$ sudo rm -rf /opt/hfish ``` -3. 还原 SSH 和 Firewall 配置 +3. 还原SSH和Firewall配置 ```shell -# 还原默认 SSH 端口 +# 还原默认SSH端口 root@HFish~$ sudo vi /etc/ssh/sshd_config - 把 Port 22122 注释掉或修改为默认的22 -# 清除 SSH config 内对于访问来源的限制 +# 清除SSH config内对于访问来源的限制 root@HFish~$ sudo vi /etc/ssh/sshd_config 注释掉以 AllowUsers root@ 开头的行 -# 重启 SSH 服务 +# 重启SSH服务 root@HFish~$ sudo systemctl restart sshd -# 清除 Firewall 服务规则(请根据实际情况删除!) +# 清除Firewall服务规则(请根据实际情况删除!) root@HFish~$ sudo firewall-cmd --permanent --list-all | grep ports | head -n 1 | \ cut -d: -f2 | tr ' ' '\n' | xargs -I {} firewall-cmd --permanent --remove-port={} -# 重启 Firewall 服务 +# 重启Firewall服务 root@HFish~$ sudo systemctl restart firewalld ```