当前位置: 首页 > article >正文

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

http://www.kler.cn/a/272878.html

相关文章:

  • Qt Quick 和 Qt Designer
  • 03JavaWeb——Ajax-Vue-Element(项目实战)
  • nginx 修改内置 404 页面、点击劫持攻击。
  • c#删除文件和目录到回收站
  • 类模板的使用方法
  • 【AI日记】25.01.15
  • 2024年Microsoft Office计算机二级考试必考45题
  • 19 # 高级类型:索引类型
  • Django生命周期
  • Python的接口自动化unittest测试框架和ddt数据驱动
  • 12 Python多进程
  • 前端基础篇-快速了解 Vue 前端框架(Vue 指令)
  • 提高效率,就信赖快速开发表单平台
  • 如何跨数据源根据一张表字段更新另一张表字段数据
  • IOS面试题object-c 91-100
  • 上传照片怎么改大小?几个图片改大小的方法
  • Codeforces Round 918 (Div. 4)----->E. Romantic Glasses
  • 计算机组成原理-2-计算机的发展应用
  • openEuler-22.03-LTS-SP2更改阿里云yum安装源
  • python异常:pythonIOError异常python打开文件异常
  • 阿里云云服务器ECS端口多个端口号开通教程
  • 组建对等网
  • Qt Excel文件读写
  • 深入理解Linux内核页表映射分页机制原理
  • 软考怎么考?高项科目这么多,应该怎么选?
  • 实现更高能效的汽车级低边驱动器NRVB140ESFT1G 带温度和电流限制 自保护低压侧驱动器