网络安全(五)--Linux 入侵检测分析技术

news2025/1/20 14:49:26

8. Linux 入侵检测分析技术

  • 目标
    • 了解入侵检测分析的基本方法
    • 掌握查看登录失败用户的方法
    • 掌握查阅历史命令的方法
    • 掌握检查系统开机自启服务的方法

8.1. 概述

最好的安全防护当然是“域敌于国门之外”, 通过安全防护技术,来保证当前主机不被非授权人员入侵,但是“道高一尺,魔高一丈”, 再好的防护手段、往往也会有疏漏的地方。在这种情况下,事后(入侵后)的追溯技术就很重要了。好比一个窃贼到我们家溜达一圈,我竟然无法知道是否窃贼来过,细思这是一件非常恐怖的事情。这就意味着,我们的家(主机)不在安全,鬼知道窃贼什么时候再来溜达一圈。

入侵分析技术一般通过是通过分析主机关键的文件记录、进程信息等来达到分析主机是否被侵入的目的。从安全防护的角度来讲,这是一项事后追踪技术(可追溯性);从攻击的角度来说, 当Hack成功实施攻击(入侵)后,要进行掩踪灭迹,也就是清除入侵痕迹,当知道入侵分析哪些地方后,那么作为入侵者也就明白需要重点关注哪些入侵痕迹了。

所谓“未知攻,焉知防”, 同样也可以说“未知防,焉知攻”, 攻防之道,本就是在攻防博弈中相互提高。

8.2. 入侵分析

8.2.1. 用户帐号

从攻击的角度来讲,Hacker实施攻击后,除了会“掩踪灭迹”之外还会进行“创建后门”,以便将这种攻击的机会持续下去,而创建后门用户帐号,往往是比较可行的途径。

  1. 搜寻具备shell用户的帐号, /etc/passwd
Panda.Guo@2018-04-18 11:34:31 $ cat /etc/passwd|awk -F: '{print $7}'| sort |uniq -c
  3 /bin/bash
  21 /bin/false
  1 /bin/sync
  17 /usr/sbin/nologin
Panda.Guo@2018-04-18 11:45:31 $ cat /etc/passwd | grep "bash"
  root:x:0:0:root:/root:/bin/bash
  panda:x:1000:1000:panda,,,:/home/panda:/bin/bash
  itcast:x:2001:2001::/home/itcast:/bin/bash
Panda.Guo@2018-04-18 11:45:40 $

对其中有shell的用户需要重点关注,本文假设itcast用户为“需重点关照”用户

  1. 进一步分析用户itcast

  2. 查看用户id和组信息:

Panda.Guo@2018-04-18 11:45:40 $ id itcast 
  uid=2001(itcast) gid=2001(itcast) group=2001(itcast)
  • 查看用户最近登录信息
Panda.Guo@2018-04-18 11:51:33 $ lastlog -u itcast 
Username         Port     From             Latest
itcast           pts/10   127.0.0.1        Thu Apr 12 19:03:20 +0800 2018
  • 查看用户历史登录信息: last hacker
Panda.Guo@2018-04-18 11:51:35 $ last itcast 
itcast   pts/10       127.0.0.1        Thu Apr 12 19:03 - 10:16  (15:12)
itcast   pts/6        172.16.28.59     Thu Apr 12 16:03 - 16:03  (00:00)
itcast   pts/6        172.16.28.59     Thu Apr 12 16:02 - 16:03  (00:00)

wtmp begins Sun Apr  1 23:41:17 2018
  • 查看用户登录失败信息:
Panda.Guo@2018-04-18 11:52:45 $ sudo lastb itcast
itcast   ssh:notty    127.0.0.1        Thu Apr 12 19:03 - 19:03  (00:00)
itcast   ssh:notty    172.16.28.59     Thu Apr 12 16:03 - 16:03  (00:00)

btmp begins Tue Apr  3 09:20:30 2018
Panda.Guo@2018-04-18 11:52:49 $ 
  • 查看综合信息: finger hacker
Panda.Guo@2018-04-18 11:53:20 $ finger itcast
Login: itcast                     Name: 
Directory: /home/itcast                 Shell: /bin/bash
Last login Thu Apr 12 19:03 (CST) on pts/10 from 127.0.0.1
No mail.
No Plan.

如果itcast用户登录有异常的IP登录, 则需重点关注

8.2.2. 可提权用户(sudo)

Debian系统允许普通用户通过sudo来获取root用户权限, 因此对于已经存在的普通用户,如果其在/etc/sudoers或者/etc/sudoers.d/下的文件中, 则表示此普通用户可以通过sudo来完成root操作, 需要特别关注。

另可以通过命令groups itcast(其中itcast指代需要关注的用户username), 如果该用户所属的组是root或者 sudo组,或者该用户在/etc/sudoers(包括/etc/sudoer.d/目录), 那就需要重点关注了。

8.2.3. 开机自启服务

不同的Linux发行版,采用的服务管理器是不同的, Debian 8以上已经采用Systemd作为服务器管理器,其实目前较新的发行版系统上多在采用systemd。本次我们以Systemd为例来分析开机自起的一些程序。

对于systemd服务管理器来说,可以通过下述方式查看开机自启的服务:

Panda.Guo@2018-04-18 15:25:23 $ systemctl list-unit-files --type=service | grep "enabled"
  accounts-daemon.service                    enabled
  anacron.service                            enabled
  auditd.service                             enabled
  autovt@.service                            enabled
  。。。

入侵后,留下一些开机自起的服务,以便后续继续入侵。也是入侵保持持久性的一种手段。

8.2.4. 计划(定时)任务

除了开机自启动服务外, Debian还可以通过计划任务来进行持久化运行。

检查异常的计划任务相对简单:

只需要查看/etc/crontab以及子目录下/etc/cron.*的计划任务文件即可.

8.2.5. shell的初始化

不同的Linux发行版的默认shell是不一致的, 一般debian系统默认是dash, 而我自己偏爱bash, 一般系统安装完成后,我会调整我的shell为bash, 本节以bash为例进行描述。

对于shell来说,可分为交互shell/非交互shell、 登录shell和非登录shell。本质上就是在shell启动期间,默认执行的配置文件不同而已。 关于这块的详细区别,可参考man bash 中的INVOCATION章节。或者参考下图: 

简单分析如下:

  • 非交互/非登录shell: $BASh_ENV(环境变量)
  • 非交互/登录shell:/etc/profile ($HOME/.bash_profile$HOME/.bash_login$HOME/.profile按次序先存在的执行)
  • 交互/非登录shell: /etc/bash_bashrc$HOME/.bashrc
  • 交互/登录shell:/etc/profile ($HOME/.bash_profile$HOME/.bash_login$HOME/.profile按次序先存在的执行)

    上面描述的比较复杂。简单说,就是bash在启动时,要执行几个脚本文件。 这些文件中如果有命令,在某种情况下(登录非登录、交互非交互)可能会被执行。 入侵分析的重点就是查看这些文件中是否存在可疑命令。

8.2.6. 历史命令

一般而言, 入侵者获取shell之后会在上面执行某些命令, 我们可以通过history命令来查看曾经运行过的命令.或者直接查看~/.bash_history文件. 高明的入侵者完成入侵后,也会进行某些掩踪灭迹。 因此, 如果发现曾经运行过的命令中有一些可疑命令(莫名奇妙的命令),或者发现history被恶意清除,或者被异常篡改, 这也是我们常用的入侵分析技术。

history命令相关有几个环境变量,需要我们特别关注,详情可通过man bash 查看

  • HISTFILE: 保存历史命令的文件, 默认是 ~/.bash_history
  • HISTFILESIZE: 历史文件中包含的最大行数。
  • HISTSIZE: 命令历史中保存的命令数量行数。
  • HISTTIMEFORMAT: 保存历史命令的时间格式。

8.2.7. 系统日志

在debian9上,系统日志统一由rsyslog进程产生, 和rsyslog相关的配置可参考/etc/rsyslog.conf文件以及/etc/rsyslog.d/目录。

  • 登录相关信息
    • 查看每个用户最近的登录时间和ip: lastlog
    • 查看每个用户的登录记录: last
    • 查看每个用户的登录尝试(包括失败的)记录: lastb
    • 查看当前登录的用户,ip以及正在执行的命令: w
  • 一些常见的系统日志介绍如下:
    • /var/log/messages: 一般的系统日志
    • /var/log/kern.log: 系统内核日志
    • /var/log/boot.log: 系统启动日志
    • /var/log/auth.log: 登录相关的日志, 比如ssh/sudo成功失败的日志都在这里
    • /var/log/cron.d: cron计划任务的执行日志
  • 审计, 审计日志由auditd产生,/etc/audit/auditd.conf为审计配置文件,/etc/audit/audit.rules 为审计规则文件。
    • /var/log/audit/* : 为审计记录,可以进一步分析,也许可以发现一些意想不到的痕迹(如果有的话).

8.2.8. 可疑进程

一般可通过top命令查看正在运行的程序所占用的资源, 或者用ps aux列出当前系统所用的进程. 如果发现可疑进程(没见过、耗资源), 可以用以下命令进一步:

  • 查看该进程启动的完整命令行: ps eho command -p $PID
  • 查看该进程启动时候所在的目录: readlink /proc/$PID/cwd
  • 查看该进程启动时的完整环境变量: strings -f /proc/$PID/environ | cut -f2 -d ‘ ‘
  • 列出该进程所打开的所有文件: lsof -p $PID

如果某个可疑进程正在活动,一般会与外界有网络交互,可通过如下方法进一步分析:

  • 查看当前主机的网络连接情况, netstat -apn | grep $PID
  • 抓包分析,tcpdump 或者 使用图形化抓包工具wireshark
  • 查看主机防火墙iptables, DNS(/etc/resolv.conf/etc/resolvconf/)、http代理,或者/etc/hosts, 都可能会导致我们正常的网络请求被攻击者监听并篡改. 这些小小的修改也许不是很明显,可一旦发现自身网络环境’不太对劲’, 就要提高警惕, 仔细排查了.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1293340.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uni-app 微信小程序之好看的ui登录页面(五)

文章目录 1. 页面效果2. 页面样式代码 更多登录ui页面 uni-app 微信小程序之好看的ui登录页面(一) uni-app 微信小程序之好看的ui登录页面(二) uni-app 微信小程序之好看的ui登录页面(三) uni-app 微信小程…

uni-app 微信小程序之好看的ui登录页面(一)

文章目录 1. 页面效果2. 页面样式代码 更多登录ui页面 uni-app 微信小程序之好看的ui登录页面(一) uni-app 微信小程序之好看的ui登录页面(二) uni-app 微信小程序之好看的ui登录页面(三) uni-app 微信小程…

ChatGPT/GPT4科研实践篇: AI绘图+论文写作+编程

1、熟练掌握ChatGPT提示词技巧及各种应用方法,并成为工作中的助手。 2、通过案例掌握ChatGPT撰写、修改论文及工作报告,提供写作能力及优化工作 3、熟练掌握ChatGPT融合相关插件的应用,完成数据分析、编程以及深度学习等相关科研项目。 4、…

基于ssm vue协同过滤算法的图书推荐系统源码和论文

基于ssm vue协同过滤算法的图书推荐系统源码和论文742 idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 环境: jdk8 tomcat8.5 开发技术 ssm 摘 要 “互联网”的战略实施后,很多行业的信息化水平都有了很大的提升。但是目前很多行业…

Leetcode算法题笔记(1)

目录 哈希1. 两数之和1.1 解法11.1 解法2 2. 字母异位词分组2.1 解法12.2 解法2 3. 最长连续序列3.1 解法 小结 双指针4. 移动零4.1 解法14.2 解法2 5. 盛最多水的容器5.1 解法一5.2 解法二 6. 三数之和6.1 解法16.2 解法2 7. 接雨水7.1 解法1 小结 滑动窗口8. 无重复字符的最长…

区分node,npm,nvm

目录 一,nodejs二,npm三,nvm 区分node,npm,nvm 几年前学习前端的时候学习的就是htmlcssjs 三件套。 现在只学习这些已经不能满足需要了。 一,nodejs nodejs是编程语言javascript运行时环境。(比…

msvcp140_ATOMIC_WAIT.dll丢失的相关解决方法分享

在计算机使用过程中,我们可能会遇到一些错误提示,其中之一就是msvcp140_CODECVT_IDS.dll丢失。这个错误通常会导致某些应用程序无法正常运行,给用户带来困扰。本文将详细介绍msvcp140_CODECVT_IDS.dll的作用和影响,并提供5个解决办…

【EXCEL】折线图添加垂直x轴的竖线|画图

相关链接:excel 添加垂直竖向直线 如何在Excel中添加水平和垂直线? 因为加辅助列有点不习惯,已经有分位数横坐标了,想着试下用散点图的误差线画 效果图: 步骤: s1:随便框选两列数据–>插入(…

深入浅出分析kafka客户端程序设计 ----- 生产者篇----万字总结

前面在深入理解kafka中提到的只是理论上的设计原理, 本篇讲得是基于c语言的kafka库的程序编写!!!!! 首先要编写生产者的代码,得先知道生产者的逻辑在代码上是怎么体现的 1.kafka生产者的逻辑 …

Nature Communications 高时空分辨率的机器人传感系统及其在纹理识别方面的应用

前沿速览: 现有的触觉传感器虽然可以精确的检测压力、剪切力和应变等物理刺激,但还难以像人类手指一样通过滑动触摸,同时获取静态压力与高频振动来实现精确的纹理识别。为了解决这一问题,来自南方科技大学的郭传飞团队提出了衔接…

深度学习训练过程自查:为什么我的模型不收敛/表现不佳?

代码终于写完了,bug 处理好了,终于跑起来了。但是模型不收敛。或者收敛了,但是加 trick 也表现不良。看着这个精心编写的辣鸡模型,从内心深处生出一股恨铁不成钢的悲愤。 于是开始思考,为什么?哪里出了问题…

MySQL系列(十):主从架构

一:主从架构 常见的主从架构模式有四种: 一主多从架构:适用于读大于写的场景,采用多个从库来分担数据库系统的读压力。多主架构:适用于读写参半的场景,采用多个主库来承载数据库系统整体的读写压力。多主…

12.Java程序设计-基于Springboot框架的Android学习生活交流APP设计与实现

摘要 移动应用在日常生活中扮演着越来越重要的角色,为用户提供了方便的学习和生活交流渠道。本研究旨在设计并实现一款基于Spring Boot框架的Android学习生活交流App,以促进用户之间的信息分享、学术交流和社交互动。 在需求分析阶段,我们明…

Elasticsearch从入门到精通

Elasticsearch简介 应用开发中一个比较常见的功能是搜索,传统应用的解决方案:数据库的模糊查询。 模糊查询存在的问题: 海量数据下效率低下功能不够丰富:不够智能、不能高亮 Elasticsearch 是一个分布式、RESTful 风格的搜索和数据…

Android Audio实战——音频链路分析(二十五)

在 Android 系统的开发过程当中,音频异常问题通常有如下几类:无声、调节不了声音、爆音、声音卡顿和声音效果异常(忽大忽小,低音缺失等)等。尤其声音效果这部分问题通常从日志上信息量较少,相对难定位根因。想要分析此类问题,便需要对声音传输链路有一定的了解,能够在链…

/proc/sys/net/ipv4/ 下网络参数的理解

/proc/sys/net/ipv4/下文件详细解释: /proc/sys/net/ipv4/下文件 /proc/sys/net/ipv4/ip_forward 该文件表示是否打开IP转发。 0,禁止 1,转发 基本用途:如VPN、路由产品的利用; 出于安全考虑,Linux系…

【开源】基于JAVA的个人健康管理系统

项目编号: S 040 ,文末获取源码。 \color{red}{项目编号:S040,文末获取源码。} 项目编号:S040,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 健康档案模块2.2 体检档案模块2.3 健…

uni-app 微信小程序之好看的ui登录页面(二)

文章目录 1. 页面效果2. 页面样式代码 更多登录ui页面 uni-app 微信小程序之好看的ui登录页面(一) uni-app 微信小程序之好看的ui登录页面(二) uni-app 微信小程序之好看的ui登录页面(三) uni-app 微信小程…

SAP UI5 walkthrough step1 hello word

这里我用的VS Studio 来进行本地化学习 关于SAP UI5是啥,我就不再赘述了,另外还有VS Studio 的安装,请提前做好准备 下面我们直接进入正文 1.首先在你的本地新建一个文件夹,此处我命名为:walkthrough 2.在VS中打开…

【动手学深度学习】(十)PyTorch 神经网络基础+GPU

文章目录 一、层和块1.自定义块2.顺序块3.在前向传播函数中执行代码 二、参数管理1.参数访问2.参数初始化3.参数绑定 三、自定义层1.不带参数的层2.带参数的层 四、读写文件1.加载和保存张量2.加载和保存模型参数五、使用GPU [相关总结]state_dict() 一、层和块 为了实现复杂神…