ImageVerifierCode 换一换
格式:DOCX , 页数:46 ,大小:92.08KB ,
资源ID:30660109      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/30660109.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Linux安全应用指导培训资料.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Linux安全应用指导培训资料.docx

1、Linux安全应用指导培训资料华为技术有限公司内部技术指导DKBA 8328-2015.11Linux安全应用指导华为技术有限公司Huawei Technologies Co., Ltd.版权所有XXAll rights reserved修订声明Revision declaration本指导拟制与解释部门:网络安全能力中心本指导的相关系列规范或文件:相关国际规范或文件一致性:替代或作废的其它规范或文件:无相关规范或文件的相互关系:无简介随着公司业务发展,越来越多的产品被公众所熟知,并成为安全研究组织的研究对象、黑客的漏洞挖掘目标,产品的安全问题不可小视。公司内许多产品使用Linux系统作为软件

2、开发和安装的基础,由于对Linux系统中编译器、软件服务、系统自身防护等方面缺乏足够的了解,使产品存在许多安全漏洞,产品也因此遭受黑客的攻击。Linux安全应用指导结合Linux系统中常用的安全机制安全特性同时结合业界最佳实践,针对业内普遍的Linux系统漏洞和软件漏洞给出指导方法,帮助产品开发团队减少由于设计过程中未引入安全机制或软件加固方法而引入安全风险。本指导的制订目的是希望能指导读者选择正确的安全机制和软件加固方法,以减少安全漏洞的产生。指导涵盖Linux系统中的:权限管理、访问控制、认证、审计、文件系统保护、漏洞攻击防护等内容。使用对象本指导的读者及使用对象主要是产品涉及Linux系

3、统的需求分析人员、设计人员、开发人员、测试人员等。适用范围本指导适合于公司涉及使用Linux操作系统的产品(嵌入式产品除外),如使用欧拉server OS、suse 等产品。指导解释Linux安全应用指导目的在于通过结合业内的最佳实践,对在Linux系统下合理的使用安全机制和安全特性来解决产品安全问题和增强系统安全能力提出要求。其目的在于以下几点:1. 充分发挥Linux已有的安全能力。2. 将Linux社区中普遍使用的安全组件及解决方案吸纳进来,合理的应用到系统中,增强系统的安全能力。3. 为产品线安全人员解决Linux安全问题赋能。用词约定规则:编程时必须遵守的约定。建议:编程时必须加以考

4、虑的约定。说明:对此规则/建议进行必要的解释。示例:对此规则/建议从正面给出例子。术语解释名词解释MAC强制访问控制(Mandatory Access ControlMAC),用于将系统中的信息分密级和类进行管理,以保证每个用户只能访问到那些被标明可以由他访问的信息的一种访问约束机制。DAC自主访问控制(Discretionary Access Control,DAC)是这样的一种控制方式,由客体的属主对自己的客体进行管理,由属主自己决定是否将自己的客体访问权或部分访问权授予其他主体,这种控制方式是自主的。容器容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供

5、指令解释机制以及全虚拟化的其他复杂性。PAMPAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制。它通过提供一些动态链接库和一套统一的API,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系统中添加新的认证手段。ASLRASLR(Address space layout randomization)是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化,通过增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出

6、攻击的目的。DEPDEP (Data Execution Prevention) 是一套软硬件技术,能够在内存上执行额外检查以帮助防止在系统上运行恶意代码。ACL访问控制列表(Access Control List,ACL)。1 权限管理1.1 权限最小化1.1.1 禁止直接使用root账号登录Linux系统说明:root是Linux系统中的超级特权用户,具有所有Linux系统资源的访问权限。如果允许直接使用root账号登录Linux系统对系统进行操作,会带来很多潜在的安全风险,为了规避由此带来的风险,应禁止直接使用root帐号登录操作系统,仅在必要的情况通过其他技术手段(如:su)间接的使用

7、root账号。禁止直接使用root账号登录可以规避很多潜在的安全风险,提高系统安全性。此条目需满足以下要求: 禁止直接通过root账号远程登录系统(ssh远程登录) 禁止直接使用root账号本地标准终端登录(本地tty登录,如:tty1、tty2等)此条目对以下情况不做强制要求: 对于设备维护用串口不做强制要求,如console。 系统初始化和调测阶段不在规则范围内。实施指导: 禁止root账号本地直接登录1) 编辑root登录设备控制文件securettyvi /etc/securetty2) 注释掉或删除所有标准终端设备(形如ttyN,如:tty1、tty2等)#tty1#tty2#tty

8、N3) 保存文件后root用户本地标准终端登录即被禁止Login: rootPassword:Login incorrect 禁止root账号远程直接登录例:修改openssh服务配置文件,禁止root账号远程直接登录1) 编辑openssh服务配置文件sshd_configvi /etc/ssh/sshd_config2) 查找PermitRootLogin配置项(若不存在需添加),将其设置为NoPermitRootLogin No3) 保存文件后,重新启动sshd服务/etc/init.d/sshd restart1.1.2 除有明确特权需求,应用程序应以非root账号运行说明:root权

9、限是Linux系统中的超级特权用户,具有所有Linux资源的访问权限。若自研程序或者第三方程序存在堆栈溢出漏洞,那么攻击者就可以利用漏洞植入任意代码,获取程序执行者的权限,进而控制整个系统。因此,我们应该按照最小权限原则设计Linux系统权限,即使程序中存在堆栈溢出漏洞,由于被植入恶意代码的程序只有普通用户权限,无法对系统造成严重影响,攻击面大大降低。实施指导:比如一个程序在使用普通用户就可以正常运行的情况,就不应用 root帐号运行,按照安全设计的最小权限原则,分析应用程序进程所需要的最小权限,无特权需求的程序禁止使用root运行。实施方法如下:root# useradd huaweisu

10、- user -c programuser代表用户名,program是程序名(这里要注意的是程序名要给决对路径)1.1.3采用不同权限的帐号运行不同的应用并对帐号进行权限分离说明:在设计实现应用系统时,应根据各个组成部分(子系统或程序)运行所需的操作系统权限的不同以及暴露给用户的访问权限的不同,对其进行划分和授权,采用不同权限的帐号运行不同的程序或组成部分。此条目需满足以下要求: 运行web服务的系统帐号不能和运行数据库的系统帐号是同一个帐号,并且要做访问的权限分离。实施指导:例如典型的WEB应用系统,由WEB系统和数据库系统组成,WEB系统对外提供访问服务,外部用户通过WEB服务获取页面相关

11、的数据,这此页面数据敏感度相对低一些,而数据库系统一般存放业务相关的重要数据,敏感度高,通常会为两个系统建立不同的帐号和权限,并分配不同的目录来存放敏感度不同的数据。对于WEB系统使用Apache服务器情况,会建立apache用户来运行httpd进程,限制httpd进程只能特定WEB文件、配置文件和日志数据,如var/www;同时,对数据库使用mysql的情况,也会为数据库建立专门的帐户mysql和相应的特权目录,让mysqld服务进程只能访问限定的目录,如var/lib/mysql。通过这样的划分和授权,达到用不同的权限帐号运行不同的程序并实现了运行权限的分离。1.1.4在运行时有特权需求的

12、程序,在特权操作完后如后续无特权需求,必须使用setuid放弃特权说明:程序中有些任务必需使用root权限执行,当特权操作完成后并且后续无特权需求,应调用setuid()函数放弃root用户的权利,使用普通用户权限运行程序。需要注意的是一旦调用setuid()函数放弃root用户的权利,在后续执行中这个进程就只能以普通用户的身份运行。此条目需满足以下要求: 在程序启动时需要特权需求,启动完成后不需要特权需求的程序,需放弃特权。实施指导:#include#include#includeint main()if(!setuid( getuid() ) 抛弃root权限,进入普通用户权限printf

13、(setuid successfully!n);elseprintf(setuid error!);perror(setuid);return 0;1.1.5使用sudo机制代替以root帐号登录运行特权程序的方式。说明:sudo可以使普通用户以特定的用户权限执行某些命令。大部分系统管理命令都需要使用root权限执行,对于系统管理员来说,适当的对其它用户授权可以减轻系统管理员负担,但直接授予其它用户root用户密码会带来安全方面的风险,而使用sudo可以解决这一问题。此条目需满足以下要求: 系统中的需要以root帐号执行的自开发程序,可以使用sudo机制避免使用root帐号登录。实施指导:下面

14、看一个完整的例子:$ cat /etc/sudoers为方便对允许使用sudo命令的用户分类,我们可以用户分组:User_AliasNETWORK_ MAINTAINERS=www,com#定义NETWORK _COMMANDS可以运行网络接口配置命令Cmnd_AliasNETWORK _COMMANDS = /bin/ifconfig,/bin/ping#NETWORK_ MAINTAINERS用户组可以用 root身份运行NETWORK _COMMANDS中包含的命令NETWORK_ MAINTAINERSlocalhost = (root) NETWORK _COMMANDS1.1.6应

15、对允许使用su到root帐号的用户进行明确授权,非授权用户不能切换到root说明:su命令可以使一个一般用户拥有超级用户或其他用户的权限,它经常被用于从普通用户账号切换到系统root账号。su命令为用户变更身份提供了便捷的途径,但如果不加约束的使用su命令,会给系统带来潜在的风险。通过对用户su访问root账户的权力进行限制,仅对部分账号进行su使用授权,可以提高系统账号使用的安全性。此条目需满足以下要求: 需建立su访问组,非组内帐号未无法使用su命令切换到root账号(包括在已知root口令的情况下)实施指导: 使用pam_limits模块限制su root的访问组例:通过组成员限制能够s

16、u为root的用户1) 编辑pam的su配置文件vi /etc/pam.d/su2) 查找auth required pam_wheel.so配置行(若不存在需添加),做如下设置:auth required pam_wheel.so group=wheel3) 保存文件后,根据需要将su授权的账号加入wheel组即可。usermod -a-G wheel testuser这样,只有wheel组的用户可以su到root(执行su的用户仍需要知道root口令,但未被授权的用户即使知道root口令也无法通过su切换为root用户。POSIX 能力(pcap)是一种分散root用户权利的方式,使用PO

17、SIX可以对具有特权需求的程序进行授权访问。在需要的时,通过POSIX可以把一项或几项特权赋予需要的程序。因此,POSIX以授予最小的完成工作所需的权限的方式提供一个更安全的选择,坚持了最小权限的安全原则。1.1.7使用POSIX Capabilities功能避免直接使用root权限说明:某个程序运行权限为root,但是可能并不需要 root 权限的全部能力,以ping命令为例,ping命令可能只需要cap_net_raw能力来发送ICMP ping报文,对于root其它能力并不是必需的。因此,只需要将cap_net_raw能力分配ping命令,这样普通用户就可以使用ping命令了。使用set

18、cap分配运行命令所需要的能力替换直接使用root。此功能需要内核版本在2.6.13以上,并且xattr(扩展文件属性)功能在内核设置中被打开。下表为setcap中提供的能力:名称值解释CAP_CHOWN0允许改变文件的所有权CAP_DAC_OVERRIDE1忽略对文件的所有DAC访问限制CAP_DAC_READ_SEARCH2忽略所有对读、搜索操作的限制CAP_FOWNER3以最后操作的UID,覆盖文件的先前的UIDCAP_FSETID4确保在文件被修改后不修改setuid/setgid位CAP_KILL5允许对不属于自己的进程发送信号CAP_SETGID6允许改变组IDCAP_SETUID

19、7允许改变用户IDCAP_SETPCAP8允许向其它进程转移能力以及删除其它进程的任意能力(只限init进程)CAP_LINUX_IMMUTABLE9允许修改文件的不可修改(IMMUTABLE)和只添加(APPEND-ONLY)属性CAP_NET_BIND_SERVICE10允许绑定到小于1024的端口CAP_NET_BROADCAST11允许网络广播和多播访问CAP_NET_ADMIN12允许执行网络管理任务:接口、防火墙和路由等CAP_NET_RAW13允许使用原始(raw)套接字CAP_IPC_LOCK14允许锁定共享内存片段CAP_IPC_OWNER15忽略IPC所有权检查CAP_SY

20、S_MODULE16插入和删除内核模块CAP_SYS_RAWIO17允许对ioperm/iopl的访问CAP_SYS_CHROOT18允许使用chroot()系统调用CAP_SYS_PTRACE19允许跟踪任何进程CAP_SYS_PACCT20允许配置进程记帐(process accounting)CAP_SYS_ADMIN21允许执行系统管理任务:加载/卸载文件系统、设置磁盘配额、开/关交换设备和文件等CAP_SYS_BOOT22允许重新启动系统CAP_SYS_NICE23允许提升优先级,设置其它进程的优先级CAP_SYS_RESOURCE24忽略资源限制CAP_SYS_TIME25允许改变

21、系统时钟CAP_SYS_TTY_CONFIG26允许配置TTY设备CAP_MKNOD27允许使用mknod()系统调用CAP_LEASE28允许在文件上建立租借锁CAP_SETFCAP31允许在指定的程序上授权能力给其它程序实施指导:参考设计样例中的使用setcap避免直接使用root方案1.2 文件和目录权限1.2.1系统中禁止有无主文件存在说明:无主文件(和目录)是指属于没有匹配到任何用户的用户ID的文件。通常管理员删除一个用户但是该用户在文件系统中尚有文件时会发生这种情况。同样的情况也会发生在用户组上。这些文件叫做未分组文件。如果新用户分配到某个已删除用户的用户ID,新用户将能够访问某些

22、原本无意访问的文件。因此,应根据实际情况对其进行合理处理如删除、添加新的用户或用户组等。实施指导:可使用如下命令检查无主文件和未分组文件root # find / ( -nouser -o -nogroup ) print1.2.2除有明确需求,应删除文件不必要的setuid和setgid位说明:非法带有setuid和setgid的可执行文件可能对系统造成威胁。因此,建议对除必须要带SUID位的可执行文件进行检查,删除不必要可执行文件的setuid和setgid位。必须要带SUID位的的可执行文件根据系统版本和配置不同会不同。此条目需满足以下要求: 公司自主开发的软件/程序需遵守本条目(操作系

23、统自带程序不做严格限制)。实施指导:可使用如下命令来显示setuid 和setgid 可执行文件:root # find / -type f ( -perm -4000 -o -perm -2000 ) print显然,命令结果中会列出很多设置了setuid/setgid 位的文件(例如/usr/bin/passwd 文件):仔细确认文件列表并确认是否有必要设置该权限。如果确定某可执行文件没有必要设置setuid位,使用以下命令将其删除:root # chmod -s FILE1.2.3应为系统用户设置缺省的umask值说明:umask设置了用户创建文件的默认权限。一般在/etc/profil

24、e、$ HOME/.bash_profile或$HOME/.profile中设置umask值。因此系统必须设置Umask值,普通用户推荐值为022,超级用户推荐值为027。如果用户希望创建的文件或目录的权限不是umask指定的缺省权限,可以修改缺省的umask值,然后再创建文件或目录。实施指导:$umask查询默认的umask值020系统默认为020,更改为所希望的022$umask022$touch testfile创建文件$ls -l testfile查看创建后的权限rxwr-xr-x admin admin 786 Nov 17 10:45 /home/ testfile1.2.4使用特

25、殊属性位Sticky位对共享目录权限进行控制说明:Sticky位是Linux系统下的一种特殊文件属性位,可用于加强对文件的权限管理,合理的使用Sticky位属性,能够帮助提高文件和目录的安全性。使用Sticky位对共享目录权限进行控制,可以防止共享目录中不属于自己的文件被恶意或无意删除。在Linux系统下,最典型的共享目录为用于临时文件存取的/tmp和/var/tmp目录。此条目需满足以下要求: 对/tmp和/var/tmp目录应设置Sticky位,确保用户(root除外)只能对自己建立的文件或目录进行删除/更名/移动等动作。实施指导:在Linux系统下,有一些特殊文件属性位用于加强对文件的权

26、限管理,合理的使用这些特殊属性,能够帮助提高文件和目录的安全性。使用Sticky位对共享目录权限进行控制,可以防止共享目录中不属于自己的文件被恶意或无意删除。对不希望被修改的文件设置非可变位(Immutable bit),系统不允许对这个文件进行任何的修改。如果对目录设置这个属性,那么任何的进程只能修改目录中已存在的文件,不能建立和删除文件。对不允许修改历史内容的文件设置只追加位(Append-only bit),系统只允许在这个文件之后追加数据,不允许任何进程覆盖或者截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。 设置sticky位chmo

27、d +t /tmp$ ls -ld /tmpdrwxrwxrwt 1 root root 786 Nov 17 10:45 /tmp注意:rwt权限中t代表sticky和execute位。如果显示的是T,那么只有sticky位置位了。1.2.5利用特殊文件属性Append-only位保护系统命令行历史日志文件,防止内容被篡改说明:在Linux系统下,有一些特殊文件属性位用于加强对文件的权限管理,合理的使用这些特殊属性,能够帮助提高文件和目录的安全性。对不允许修改历史内容的文件设置只追加位(Append-only bit),系统将只允许在这个文件之后追加数据,不允许任何进程覆盖或者截断这个文件。

28、如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。此条目需满足以下要求: 对系统中的用户命令行历史日志文件(典型名称如:.bash_history)设置只追加位(Append-only bit),防止日志被篡改。此条目对以下情况不做强制要求: 对命令行日志文件有定期截断或回滚需求的系统不做追加位(Append-only bit)设置的强制要求。实施指导: 设置非可变位和只追加位$ sudo chattr +ai test.txt$ lsattr test.txt-ia- test.txt2 访问控制2.1 自主访问控制2.1.1 使用POSIX ACL进行更细

29、粒度的访问控制说明:虽然Linux系统提供了文件控制机制,但是也具有一些局限性。例如,一个目录只允许一个组访问。POSIX ACL提供了一种更加细粒度的访问控制机制,通过运用这种机制,文件系统对象可以为具体用户和组分配访问权限。每一个文件系统对象都有一条对应的访问ACL,用于控制对该对象的访问。此外,目录还可以包括一条缺省的ACL,该缺省ACL决定了本目录中创建的对象的首次访问ACL。此功能需要内核版本2.6以上,并且内核开启POSIX ACL、xattr功能。此建议适用于提供对文件或目录的细粒度访问控制的情形,比如:同一个用户组中的两个用户,对特定的文件或目录,需要设定一个用户拥有写的权限,

30、而另一个用户只拥有只读权限。此条目需满足以下要求: 对于特定的目录或文件仅允许特定的几个用户组或用户设置使用权限的情形,建议使用ACL进行细粒度的访问控制。POSIX ACL条目名称解释用法ACL_USER_OBJ所有者的访问权限user:ACL_USERaccess rights of some specific user, other than the owner除所有者外,一些特定用户的访问权限user:USERNAME:ACL_GROUP_OBJaccess rights of the group that owns the file文件所属组的访问权限group:ACL_GROUPaccess rights of some group that doesnt own the file非文件所属组的访问权限group:GROUPNAME:ACL_OTHERaccess rights of anyone not otherwise covered所有没有覆盖用户的访问根限other:ACL_MASKmaximum possible access rights for e

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1