vlambda博客
学习文章列表

安全应急响应指南(Linux)

一、概述

1、常见的安全事件分类

·        web服务器异常

·        服务器异常

·        网络流量异常

·        信息泄露

·        风控异常

2、安全事件分类

·        员工误操作

·        即将离职员工恶意操作

·        员工电脑出现异常

·        等等

3、应急响应基本思想

·        保护现场

·        默认不可信

·        靠谱的人做事

·        交叉检查

4、应急响应基本思想

·        自动化工具辅助

·        对抗无止境、备份数据、重装系统

·        全面排查、总结反思

二、应急响应基本流程(PDCERF)

1、准备:即在事件未发生时的准备工作,包括策略、计划、规范文档及具体的技术工具和平台。
2、检测:初步判断是什么类型的问题,收影响的系统及危害程度。
3、抑制:限制攻击、破坏所波及的范围,通俗的将叫止血。
4、根除:对事件发生的原因进行分析,彻底解决问题,避免再次在同一个问题上犯错。
5、恢复:把业务恢复至正常水平。
6、跟踪:针对事件的整改措施进行落实并监控是否有无异常,换句话说叫安全运行中的持续改进。

三、linux系统下的常见目录介绍

(1)/bin

    系统中有很多放置命令的目录,但/bin比较特殊。因为/bin放置的是在单人维护模式下还能够被操作的指令。在/bin底下的指令可以被root与一般账号所使用。
 bin为binary的简写,主要放置系统的必备执行文件,例如:cat、cp、chmod、df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等。

(2)/boot

    主要放置开机会使用到的文件,包括Linux核心文件以及开机选单与开机所需设定文件等等。

(3)/dev

    在linux系统上,任何装置与周边设备都是以文件的形态存在于这个目录中、主要通过存取这个目录下的某个文件,就等于存取某个装置。

(4)/etc

系统主要的设定文件几乎都存放在这个目录内,例如人员的账号密码文件、各种服务的起始文件等等。

(5)/home

这是系统预设的使用者家目录(home directory)。在你新增一个一般使用者账号时,新增的使用者家目录都会规范到这里来。

(6)/lib和/lib64

系统的函式库非常多,而/lib或者/lib64放置常用的函数库

(7)/sbin

Linux有非常多指令是来设定系统环境的,这些指令只有root才能够利用来设定系统,其他使用者最多只能用来查询而已。放在/sbin底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的命令。

(8)/tmp

任何人后可以读写的目录,重新启动目录中存放的文件会被删除。


四、用户组概念

·        所有者

·        所在组

·        其他组

1、文件普通权限


r=4,w=2,x=1    /etc/passwd文件权限为0600

2、文件特殊权限

SUID:s出现在文件所有者的x权限上。

SGID:s出现在文件所属群组的x权限上。

SBIT:t出现在文件其他用户的x权限上。

(1)SUID

·        SUID权限仅对二进制程序有效

·        执行者对于该程序需要具有x的可执行权限

·        本权限仅在执行该程序的过程中有效

·        执行者将具有该拥有者的权限

安全应急响应指南(Linux)

(2)SGID

  • SGID对二进制程序有用

  • 程序执行者对该程序需具备x权限

  • 执行者在执行过程中会获得该程序用户组的支持

(3)SBIT

  • 当用户对此目录具有wx权限时,即具有写入权限时;

  • 当用户在该目录下创建新文件或目录时,仅有自己和root才有权力删除。 

3、目录权限


目录

文件

(r=4)

查看目录下的文件名

打开文件

(w=2)

修改目录下的内容,删除、增加

修改文件内容

执行(x=1)

进入目录

可以执行文件

五、应急响应中的常用命令

1、Stat

安全应急响应指南(Linux)

(1)atime

  • Access time(访问时间):文件中的内容最后被访问的最后时间

(2)mtime

  • Modified     time(修改时间):文件内容被修改的最后时间

(3)ctime

  • Change time(变化时间):文件的元数据发生变化,写入文件、更改所有者、权限修改。

2、文件常用命令

(1)ls

详细参数

-a 显示隐藏文件

-i
详细显示

-R
递归显示

netstat

-a 显示所有连接中的socket

-n
使用IP,而不是域名显示

-t
显示TCP连接

-p
显示每个网络连接对应的进程和用户

-I
显示处于监听中的socket

-e
显示扩展信息,inode等信息

-u
显示UDP连接 

组合使用

netstat -antpleu

安全应急响应指南(Linux)

 

(2)lsof

默认是没有安装的,可以使用命令进行安装
yum install lsof -y

lsof -c sshd 显示abc进程现在打开的文件

lsof -p pid 显示进程号为pid的打开情况

lsof +d /tmp 显示目录下被进程打开的文件

lsod +D /tmp 递归显示显示目录下被进程打开的文件

(3)ps

a 显示当前终端下的进程

u 以用户为主的显示方式

x 显示所有进程

grep(egrep)

-i 忽略大小写

-v 不包含匹配字符

安全应急响应指南(Linux)

 

(4)tcpdump

tcpdump -i eth0#抓取网卡为eth0的流量
tcpdump tcp#抓取TCP流量
tcpdumpport 53 #抓取端口为53的流量,源端口或者目的端口
tcpdump host 1.1.1.1#抓取和主机1.1.1.1有关的流量
tcpdump -w wireshark.pcap#流量保存为图形化分析软件可以识别的数据包

(5)find

find path -name filename#在path路径下查找文件名为filename的文件。
find path -perm 777#在path路径下查找文件权限。
find path -perm -700#在path路径下查找文件权限为700以及700以上权限的文件。

六、服务器常规检查项

1、文件检查--历史执行命令

  • root用户执行过历史命令

/root/.bash_history

  • 对应username执行过的历史命令

/home/{username}/.bash_history

  • 当前用户执行过的历史命令

history

ls -Ral * 递归显示当前目录下的所有文件的详细信息

 

安全应急响应指南(Linux)

2、文件检查---系统关键文件

·        /etc/passwd

·        /etc/shadow

·        /etc/group

·        /etc/profile/

·        /root/.bash_profile

·        /home/{username}/.bash_profile

·        /root/.bashrc

·        /home/{username}/.bashrc

·        /root/.bash_logout

·        /home/{username}/.bash_logout

·        /root/.ssh/authorized_keys

·        /home/{username}/.ssh/authrized_keys

           ·      /test/.bash_profile

若是里面有攻击者的公钥的话,攻击者可以通过自己的私钥进行连接,而不需要密码。这个机制是默认开启的。

安全应急响应指南(Linux)

3、文件检查---系统关键目录

·        /root/

·        /home/{username}

·        /tmp/

·        /var/tmp/

·        /dev/shm/

4、很多恶意脚本会在以下三个目录中写入恶意代码

·        /tmp/

·        /var/tmp/

·        /dev/shm/

·        命令检查

·        /usr/bin/ps

·        /usr/bin/netstat

·        /usr/bin/ps

·        /usr/sbin/lsof

·        /usr/bin/md5sum

·        /usr/sbin/ss

·        /usr/bin/stat

5、系统安装包检查


(1)列出系统所有安装的rpm包

rpm -qa

(2)校验系统所有rpm包

rpm -V -a


安全应急响应指南(Linux)

(3)校验特定文件或命令

rpm -V -f /etc/sysconfig/authconfig

6、Crontab

(1)计划任务:系统自带的定时执行脚本或者命令的系统服务

          systemctl status crond  #查看crond服务状态

   systemctl start crond    #启动crond服务
          systemctl stop crond    #停止crond服务
          systemctl enable crond     #开机启动crond服务
          systemctl disable crond     #关闭开机启动crond服务。

(2)crontab

·        -l 列出crontab

·        -u 指定用户用户

·        -e 编辑crontab

·        /etc/cron.deny /etc/cron.allow

·        crontab的限制文件,用户名存在cron.deny,且cron.allow文件不存在、或者用户名不存在cron,allow的时候,不允许此用户执行crontab。

·        cron.allow优先级高于cron.deny

·        系统默认不存在cron.allow

(3)系统默认crontab相关配置文件和目录

·        /etc/cron.d

·        /etc/cron.hourly/

·        /etc/cron.daily/

·        /etc/cron.monthly/

·        /etc/cron.weekly/

·        /etc/croutab

·        /var/spool/cron/

·        /var/log/cron

·        /etc/systemd/system/system/multi-user.target.wants/crond.service

 

(5)cat /etc/crontab

基本格式 :
*****command
分 时 日 月 周 命令
1列表示分钟159 每分钟用*或者 */1表示
2列表示小时023(0表示0) 7-9表示:8点到10点之间
3列表示日期131
4列表示月份112
5列标识号星期06(0表示星期天)
6列要运行的命令

(6)查看crontab日志(系统rsyslog已经启动)

crontab的执行日志:
cat /var/log/cron

    昆仑云安全实验室系列文章仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担!!!
      昆仑云安全实验室拥有对此文章的修改、删除和解释权限!!!