Linux安全事件应急响应排查方法总结
Linux安全事件应急响应排查方法总结
Linux是服务器操作系统中最常用的操作系统,因为其拥有高性能、高扩展性、高安全性,受到了越来越多的运维人员追捧。但是针对Linux服务器操作系统的安全事件也非常多的。攻击方式主要是弱口令攻击、远程溢出攻击及其他应用漏洞攻击等。我的VPS在前几天就遭受了一次被恶意利用扫描其他主机SSH弱口令安全问题。以下是我针对此次攻击事件,结合工作中Linux安全事件分析处理办法,总结Linux安全应急响应过程中的分析方法。
一、分析原则
- 重要数据先备份再分析,尽量不要在原来的系统中分析;
- 已经被入侵的系统都不再安全,如果条件允许最好采用第三方系统进行分析
二、分析目标
- 找到攻击来源IP
- 找到入侵途径
- 分析影响范围
- 量化影响级别
三、数据备份采集
1.痕迹数据永远是分析安全事件最重要的数据
在分析过程中,痕迹数据永远是最重要的数据资料。所以第一件事自然是备份相关痕迹数据。痕迹数据主要包含如下几点:
- 系统日志:message、secure、cron、mail等系统日志;
- 应用程序日志:Apache日志、Nginx日志、FTP日志、MySQL等日志;
- 自定义日志:很多程序开发过程中会自定义程序日志,这些日志也是很重要的数据,能够帮我们分析入侵途径等信息;
- bash_history:这是bash执行过程中记录的bash日志信息,能够帮我们查看bash执行了哪些命令。
- 其他安全事件相关日志记录
分析这些日志的时候一定要先备份,我们可以通过tar压缩备份好,再进行分析,如果遇到日志较大,可以尽可能通过splunk等海量日志分析工具进行分析。以下是完整备份var/log路径下所有文件的命令,其他日志可以参照此命令:
#备份系统日志及默认的httpd服务日志
tar -cxvf logs.tar.gz /var/html
#备份last
last > last.log
#此时在线用户
w > w.log
2.系统状态
系统状态主要是网络、服务、端口、进程等状态信息的备份工作:
#系统服务备份
chkconfig --list > services.log
#进程备份
ps -ef > ps.log
#监听端口备份
netstat -utnpl > port-listen.log
#系统所有端口情况
netstat -ano > port-all.log
3.查看系统、文件异常
主要针对文件的更改时间、属组属主信息问题,新增用户等问题,其他可以类推:
#查看用户信息:
cat /etc/passwd
#查找最近5天内更改的文件
find -type f -mtime -5
4.最后扫一下rootkit
Rootkit Hunter和chkrootkit都可以
四、分析方法
大胆猜测是最重要的,猜测入侵途径,然后进行分析一般都会事半功倍。
一般来说,分析日志可以找到很多东西,比如,secure日志可以查看Accept关键字;last可以查看登录信息;bash_history可以查看命令执行信息等,不同的日志有不同的查看方式,最好是系统管理员的陪同下逐步排查,因为系统管理员才最懂他的服务器系统。此处不做太多赘述。
五、分析影响
根据服务器的用途、文件内容、机密情况结合数据泄漏、丢失风险,对系统使用者影响等进行影响量化,并记录相关安全事件,总结分析,以便后期总结。
如果已经被进行过内网渗透,还需要及时排查内网机器的安全风险,及时处理。
六、加固方法
已经被入侵的机器,可以打上危险标签,最直接最有效的办法是重装系统或者系统还原。所以经常性的备份操作是必不可少的,特别是源代码和数据库数据。
通过分析的入侵途径,可以进行进一步的加固处理,比如弱口令和应用漏洞等
引自: LINUX安全事件应急响应排查方法总结 http://www.3mc2.com/linux-security-response-methods.html
Linux安全事件应急响应排查方法总结的更多相关文章
- 一些关于Linux入侵应急响应的碎碎念
近半年做了很多应急响应项目,针对黑客入侵.但疲于没有时间来总结一些常用的东西,寄希望用这篇博文分享一些安全工程师在处理应急响应时常见的套路,因为方面众多可能有些杂碎. 个人认为入侵响应的核心无外乎四个 ...
- 服务器入侵应急响应排查(Linux篇)
总体思路 确认问题与系统现象 → 取证清除与影响评估 → 系统加固 → 复盘整改 常见入侵 ① 挖矿: 表象:CPU增高.可疑定时任务.外联矿池IP. 告警:威胁情报(主要).Hids.蜜罐(挖矿扩散 ...
- 安全运维 - Linux系统攻击应急响应
Linux 应急相应 - 总纲 应急准备: 制定应急策略 组建应急团队 其他应急资源 安全事件处理: 痕迹数据获取 分析.锁定攻击源删除可疑账号关闭异常进程.端口禁用相应异常开机启动项删除异常定时任务 ...
- Linux系统应急响应
目录 排查用户相关的信息 排查进程端口相关的信息 查找恶意程序并杀掉 斩草除根 判断入侵方式,修复漏洞 当我们被告知一台Linux服务器被黑客入侵,黑客利用该服务器进行挖矿,并且在该服务器上放置了木马 ...
- Linux 无法连接网络排查方法
.hosts文件增加 127.0.0.1 对localhost的解析. .检查/etc/resove.cnf dns配置是否正确 .route命令检查是否有默认路由,没有就 route add 网段 ...
- Linux 攻击防护基础排查
作者:Zzang 来源:cnblogs 原文:https://www.cnblogs.com/Zzang/p/LinuxHack.html 版权声明:本文为博主原创文章,转载请附上博文链接! 基本网络 ...
- 【命令汇总】Windows 应急响应
日期:2019-06-07 16:11:49 作者:Bay0net 介绍:Windows 应急响应.取证及溯源相关内容学习记录 0x00.前言 常见的应急分类: web入侵:网页挂马.主页篡改.Web ...
- Linux应急响应入侵排查思路
0x00 前言 当企业发生黑客入侵.系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解 ...
- windows应急响应入侵排查思路
0x00 前言 当企业发生黑客入侵.系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解 ...
随机推荐
- 文件与base64二进制转换
/// <summary> /// 文件转换为Base64二进制流 /// </summary> /// <param name="FilePath" ...
- 编译jsoncpp库以及要注意的问题
原创文章,转载请注明原作者与本文原始URL. 版本:jsoncpp-src-0.5.0.zip简介:jsoncpp是用cpp实现的json库,可以拼装,解析,生成json串.我们要把他编译成动态库.这 ...
- LightOJ1027 A Dangerous Maze(期望)
题目大概说你正在起点,面前有$n$个门,每个门有一个数字$x$,正数表示开这个门$x$分钟后会出去,负数表示开这个门$-x$分钟后会回到起点.选择门的概率是一样的且每次选择互不影响.问出去的时间期望是 ...
- cordova3.X的部署和环境搭建教程
针对cordova3.0,至现在的3.6都能用. 一.准备工作: 1.下载Node.js 网址:http://nodejs.org/ 2.下载phonegap 打开CMD窗口 Windows平台: ...
- LINUX RHEL AS 4 + ORACLE10G安装详解
第一部分:LINUX RHEL AS 4 安装 运行提示: 1)按键盘的前后键可以调节光标所在的位置 2)在选项前面的括号中打上*号或者去掉*号,选中这条选项用空格键操作 3)在vi编辑文件时,键盘按 ...
- Unix时间戳与C# DateTime时间类型互换
Unix时间戳最小单位是秒,开始时间为格林威治标准时间1970-01-01 00:00:00ConvertIntDateTime方法的基本思路是通过获取本地时区表示Unixk开始时间,加上Unix时间 ...
- 用c#开发微信(2)扫描二维码,用户授权后获取用户基本信息 (源码下载)
本文将介绍基于Senparc.Weixin微信开发框架来实现网页授权来获取用户基本信息.先生成包含授权及回调url信息的二维码:用户用微信扫描之后,被要求授权以获取Ta的用户基本信息:用户授权后,通过 ...
- ArcServer JS API开发离线部署方法
1. 下载ArcGIS API for JavaScript 3.6 Library. (地址:http://support.esrichina.com.cn/uploadfile/Javascr ...
- Salesforce 快速查看被引入Package的组件
在 Salesforce Package 生成一个新版本的时候,由于经常需要去检查有哪些新的组件将要被引入 Package 中,这个在有众多组件的情况下检查起来会有点眼花缭乱,为了方便,就想着用 JS ...
- nodeJs开发app.js解析
在 node.js 中模块分为核心模块和文件模块两种,核心模块是通过 require('xxxx') 导入的,文件模块是以 require('/xxxx') 或 require('./xxxx').r ...