WEBSHELL-恶意代码检测

静态查杀

提取特征写成规则库,调用规则库查杀。基于规则,会比较快,但漏报、误报会比较明显,一般的Webshell一句话木马变形混淆会比较多。

yara规则

        $eval = /(<\?php|[;{}])[ 5 2015 \t]*@?(eval|preg_replace|system|assert|passthru|(pcntl_)?exec|shell_exec|call_user_func(_array)?)\s*\( nocase ;eval( <- this is dodgy $eval_comment="/(eval|preg_replace|system|assert|passthru|(pcntl_)?exec|shell_exec|call_user_func(_array)?)\/\*[^\*]*\*\/\(/" eval *lol* ( $b374k="'ev'.'al'" $align="/(\$\w+=[^;]*)*;\$\w+=@?\$\w+\(/" b374k $weevely3="/\$\w=\$[a-zA-Z]\('',\$\w\);\$\w\(\);/" weevely3 launcher $c99_launcher="/;\$\w+\(\$\w+(,\s?\$\w+)+\);/" http: bartblaze.blogspot.fr 03 c99shell-not-dead.html $nano="/\$[a-z0-9-_]+\[[^]]+\]\(/" https: github.com ultimatehackers nano $ninja="/base64_decode[^;]+getallheaders/" $variable_variable="/\${\$[0-9a-zA-z]+}/" $too_many_chr="/(chr\([\d]+\)\.){8}/" concatenation of more than eight chr() $concat="/(\$[^\n\r]+\.){5}/" words $concat_with_spaces="/(\$[^\n\r]+\." ){5} words, with spaces $var_as_func="/\$_(GET|POST|COOKIE|REQUEST|SERVER)\s*\[[^\]]+\]\s*\(/" $comment="/\/\*([^*]|\*[^\/])*\*\/\s*\(/" * comment (php_code) < code></\?php|[;{}])[>

日志分析

基于对日志数据进行分析,检测可疑的漏洞攻击行为,提取特定时间段内特定IP对应用的访问行为。

&#x2460;&#x63D0;&#x4EA4;&#x6570;&#x636E;&#xFF08;POST/GET&#xFF09;&#x7684;&#x71B5;
&#x2461;URI&#x7684;&#x8BBF;&#x95EE;&#x9891;&#x7387;
&#x2462;&#x8BF7;&#x6C42;&#x5934;&#x4E2D;&#x6709;/&#x65E0;Referer&#x5B57;&#x6BB5;
&#x2463;&#x63D0;&#x4EA4;&#x6570;&#x636E;&#xFF08;POST/GET&#xFF09;&#x4E2D;key&#x7684;&#x51FA;&#x73B0;&#x9891;&#x7387;
&#x2464;&#x8BF7;&#x6C42;&#x6570;&#x636E;&#xFF08;POST/GET&#xFF09;&#x4E2D;key&#x5173;&#x8054;&#x7684;&#x9875;&#x9762;&#x6570;

动态检测

Webshell分析检测层,hook可疑函数

特征维度:

  • 文本语义(n-gram/TF-IDF/word2vec/CNN/RNN)
  • 统计特征(信息熵/重合指数/最长词/可压缩比)
  • 历史数据特征(计算单个文件的落盘时间/文件创建进程/文件类型/代码风格/权限和同目录下其他文件的”距离”)
  • OP指令层特征(指令/调用链/参数文本特征)
  • 动态特征(文件读写/网络连接,可依靠沙箱或旁路执行能力解决编码混淆类case)

基于文件的文本属性

  • 文件的 创建时间
  • 文件的 修改时间
  • 文件的 文件权限
  • 文件的 文件所有者

统计学

  • 文件的 文件重合指数index of coincidenc(IC)
  • 文件的 信息熵
  • 文件中的 最长单词
  • 文件的 可压缩比

Original: https://www.cnblogs.com/17bdw/p/11920974.html
Author: 17bdw
Title: WEBSHELL-恶意代码检测

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/529627/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 逆波兰表达式

    运用lambda表达式和包装器 150. 逆波兰表达式求值 – 力扣(LeetCode) class Solution { public: int evalRPN(ve…

    Linux 2023年6月13日
    0119
  • mysql查询中字符串转换成数字

    在操作mysql时,经常需要将字符转换成数字,这一步虽然简单,但不常用的话也很容易忘记,现将在网上找到的方法记录如下: 1.将字符的数字转成数字,比如’0’…

    Linux 2023年6月13日
    080
  • 在linux中使用tcpdump抓包的方法:

    在linux中使用tcpdump抓包的方法: 1,运行下面命令来从所有网卡中捕获数据包: tcpdump -i any 2,从指定网卡中捕获数据包 tcpdump -i eth0 …

    Linux 2023年5月27日
    0123
  • 玩转redis-延时消息队列

    上一篇基于 redis的list实现了一个简单的消息队列:玩转redis-简单消息队列 源码地址 使用demo 产品经理经常说的一句话,我们不光要有 X功能,还要 Y功能,这样客户…

    Linux 2023年5月28日
    0128
  • K8S 从私有仓库拉取镜像

    通常来讲,我们在通过公共镜像仓库拉取docker镜像的时候,不需要任何的认证操作,但我们在构建了企业的私有镜像以后,就不得不在拉取镜像之前通过用户名密码来完成认证。 在docker…

    Linux 2023年6月6日
    097
  • Tmux 配置

    前面提到的窗口管理只是 tmux 功能的一小部分,另一个很有用的功能就是,连接到远程主机之后,一旦断开,那么当前账户登录的任务就被取消了,但是使用 tmux 可以在断开之后继续工作…

    Linux 2023年6月7日
    098
  • EKS助力小白实践云原生——通过k8s部署wordpress应用

    目前云原生在大厂已经有了充分的实践,也逐渐向小厂以及非互联网公司推广。适逢12月20日,腾讯云原生【燎原社】精心打造了云原生在线技术工坊,让零基础的同学也能快速入门和实践 Dock…

    Linux 2023年6月13日
    090
  • requests模块

    掌握 headers参数的使用 掌握 发送带参数的请求 掌握 headers中携带cookie 掌握 cookies参数的使用 掌握 cookieJar的转换方法 掌握 超时参数t…

    Linux 2023年6月8日
    0118
  • shell的入门

    命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。 中间不能有空格,可以使用下划线 不能使用标点符号 不能使用bash里面关键字 使用变量加上$就可使用 只读变量 rea…

    Linux 2023年6月8日
    090
  • 不要使用短路逻辑编写 stl sorter 多条件比较

    最近工期紧、任务多,没有时间更新博客,就水一期吧。虽然是水,也不能太水,刚好最近工作中遇到一个 sorter 多条件排序的问题,花费了半天时间来定位解决,就说说它吧。 公司产品是一…

    Linux 2023年6月6日
    0103
  • Python之–paramiko实例

    一.基于SFTPClient类连接sshd服务器: 特点: 一般用于实现对远程服务器的上传, 下载和对远程目录文件的操作 1 import pramiko 2 3 hostname…

    Linux 2023年6月6日
    0119
  • phpcms如何在前台文章列表显示来源

    phpcms的文章来源分为两种,一种是在后台来源中添加完成的,这种”来源”的相关数据存放于数据库的copyfrom表中,通过id和news_data表相关联…

    Linux 2023年6月13日
    088
  • Shell Step by Step (4) —— Cron &amp; Echo

    6.脚本定时任务 <span class="hljs-preprocessor"># Example of job definition:</…

    Linux 2023年5月28日
    0140
  • (读书笔记)基于CMMI的软件工程及实训指导 第13-16章

    一、软件测试 软件测试是为了发现程序中的错误而执行的过程。测试只能证明软件有错,而不能保证软件程序没错。 1. 软件版本 Alpha版 公司内测版本 Beta版 对外公测版本 发布…

    Linux 2023年6月14日
    088
  • SLF4J 日志门面

    SLF4J( Simple Logging Facade For Java),即 简单日志门面。主要是为了给 Java 日志访问提供一套标准、规范的 API 框架,其主要意义在于提…

    Linux 2023年6月8日
    099
  • Linux机器自建账号并赋予sudo权限,同时修改远程端口

    默认使用root账号来操作Linux有一定风险,因此需要自建账号并赋予sudo权限,方便使用 登录为root用户后,创建账号 adduser <username>&lt…

    Linux 2023年6月6日
    0139
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球