SSH介绍及检测规则思路分析

一、SSH

1、定义

SSH是安全的加密协议,用于远程连接linux服务器。

2、ssh服务的主要功能:

1)提供远程链接服务器的功能;

2)对远程链接传输的数据进行加密

3、ssh与telnet的区别:

|--------|--------|--------|--------------|
| 服务链接方式 | 服务数据传输 | 服务监听端口 | 服务登录用户 |
| ssh | 加密 | 22 | 默认支持root用户登录 |
| telnet | 明文 | 23 | 不支持root用户登录 |

4、SSH工作机制

SSH工作机制大致是:本地的SSH客户端先发送一个连接请求到远程的SSH服务端,服务端检查连接的客户端发送的数据包和IP地址,如果确认合法,就会发送密钥给SSH的客户端。此时,客户端本地再将密钥发回给服务端,自此连接建立。(类似TCP三次握手)

1)连接建立

SSH服务在指定的端口(默认:22)侦听客户端的连接请求,在客户端向服务器发起连接请求后,双方建立一个TCP链接

2)版本协商

SSH协议目前存在SSH1.X(SSH2.0之前的版本)和SSH2.0版本。SSH2.0协议相比SSH1.X协议来说,在结构上做了扩展,可以支持更多的认证方法和密钥交换方法,同时提高了服务能力。SSH服务器和客户端通过协商确定最终使用的SSH版本号。

3)算法协商

SSH支持多种加密算法,双方根据各自支持的算法,协商出最终用于产生会话密钥的密钥交换算法、用户数据信息加密的加密算法、用于进行数字签名和认证的公钥算法以及用于数据完整性保护的HMAC算法。

4)密钥交换

服务器和客户端通过密钥交换算法,动态生成共享的会话密钥和会话ID,建议加密通道。会话密钥主要用于后续数据传输的加密,会话ID用于在认证过程中标识该SSH连接。

5)用户认证 <SSH认证方式>

①密码认证:客户端通过用户名和密码的方式进行认证,将加密后的用户名和密码发送给服务器,服务器解密后与本地保存的用户名和密码进行对比,并向客户端返回认证成功或失败的消息。

②密钥认证:客户端通过用户名、公钥以及公钥算法等信息来与服务器进行认证。

③password-publickey认证:指用户需要同时满足密码认证和密钥认证才能登录。

④all认证:只要满足密码认证和密钥认证其中一种即可。

6)会话请求

认证通过后,SSH客户端向服务器端发送会话请求,请求服务器提供某种类型的服务,即请求与服务器建立相应的会话。

7)会话交互

会话建立后,SSH服务器和客户端在该会话上进行数据信息的交互。

5、ssh服务

SSH服务端是一个守护进程(daemon),它在后台运行并响应来自客户端的连接请求。SSH服务端的进程名位sshd,负责实时监听远程SSH客户端的远程连接请求,并进行处理,一般包括:公共密钥认证、密钥交换、对称密钥加密和非安全连接等。 SSH服务端主要包括两个服务功能:SSH远程连接和SFTP服务。

6、ssh客户端命令

ssh客户端包含ssh|slogin远程登录、scp远程拷贝、sftp文件传输、ssh-copy-di密钥分发等应用程序。

1)SSH远程登录服务器命令示例

2)SCP复制数据至远程主机命令(全量复制)

3)SFTP

该命令用于在Linux系统中进行安全文件传输的工具。它使用SSH协议进行加密传输,使用户能够在本地计算机和远程服务器之间传输文件。以下是SFTP命令的一些常用功能:

①上传文件(put):

用户可以使用sftp命令将本地计算机上的文件上传到远程服务器。

②下载文件(get):

用户可以使用sftp命令从远程服务器下载文件到本地计算机。

③浏览远程文件系统(pwd):

用户可以使用sftp命令浏览远程服务器上的文件和目录结构。

④创建和删除目录(mkdir、rm):

用户可以使用sftp命令在远程服务器上创建和删除目录。

⑤修改文件权限(chgrp、chmod、chown):

用户可以使用sftp命令修改远程服务器上文件的权限。

⑥列出文件和目录(lls):

用户可以使用sftp命令列出远程服务器上的文件和目录。

令列出远程服务器上的文件和目录。

7、SSH安全优化

SSH作为远程连接服务,通常我们需要考虑到该服务的安全,所以需要对该服务进行安全方面的配置:

1)更改远程连接登录的端口;

2)禁止ROOT用户直接登录;

3)密码认证的方式改为密钥认证;

4)重要服务不使用公网IP;

5)使用防火墙限制来源IP

二、SSH相关安全检测规则开发思路分析

1、攻击场景

SSH是一种协议,允许授权用户打开其他计算机上的远程Shell,在Linux和macOS版本默认情况下都安装了SSH,而且通常SSH不限制登录用户的数量,所以攻击者在潜入主机后,为了达到权限维持的目的,可能会在主机上设置SSH后门。

攻击者可以利用敏感函数来修改 SSH 相关的二进制文件以实现持久性的目的。

2、需求拆分

  • ssh相关二进制文件:/usr/sbin/sshd、/usr/bin/ssh、/usr/bin/sftp、/usr/bin/scp
  • 文件操作类型:create

3、检测规则思路

  • 数据源:终端告警日志
  • 命中逻辑:
  • 文件操作类型:创建二进制文件
  • or:
  • 文件路径 包含(忽略大小写)'/usr/sbin/sshd'
  • 文件路径 包含(忽略大小写)'/usr/bin/ssh'
  • 文件路径 包含(忽略大小写)'/usr/bin/sftp'
  • 文件路径 包含(忽略大小写)'/usr/bin/scp'
  • 检测时间:10min
  • 归并分组:受害者IP
  • 统计次数:count >= 1

4、研判分析

  1. 根据告警信息发现被更改的SSH二进制文件,并及时联系数据源IP主机责任人确认是否为授权修改,若不是则判定为可疑事件;
  2. 根据告警信息获取进行修改文件的UID等账户信息并查看该用户是否存在其他敏感操作,若出现判定为可疑事件。

5、应急响应

  1. 更改远程连接登录的端口;
  2. 禁止ROOT用户直接登录;
  3. 密码认证的方式改为密钥认证;
  4. 重要服务不使用公网IP;
  5. 使用防火墙限制来源IP
相关推荐
码农12138号1 分钟前
BUUCTF在线评测-练习场-WebCTF习题[GXYCTF2019]BabyUpload1-flag获取、解析
web安全·网络安全·文件上传漏洞·buuctf·解析漏洞
Johny_Zhao25 分钟前
Docker + CentOS 部署 Zookeeper 集群 + Kubernetes Operator 自动化运维方案
linux·网络安全·docker·信息安全·zookeeper·kubernetes·云计算·系统运维
独行soc6 小时前
#渗透测试#批量漏洞挖掘#HSC Mailinspector 任意文件读取漏洞(CVE-2024-34470)
linux·科技·安全·网络安全·面试·渗透测试
Me4神秘8 小时前
电信、移动、联通、广电跨运营商网速慢原因
网络
Whoisshutiao8 小时前
网安-XSS-pikachu
前端·安全·网络安全
我在看世界8 小时前
家里vscode连公司内网vscede
vscode·ssh
数通Dinner9 小时前
RSTP 拓扑收敛机制
网络·网络协议·tcp/ip·算法·信息与通信
liulilittle10 小时前
SNIProxy 轻量级匿名CDN代理架构与实现
开发语言·网络·c++·网关·架构·cdn·通信
电脑能手10 小时前
[保姆级教程] 解决不同局域网电脑无法SSH的问题
运维·ssh·电脑
tan77º11 小时前
【Linux网络编程】Socket - UDP
linux·服务器·网络·c++·udp