《第14讲 Linux系统安全.ppt》

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

BSD Socket
一个通用的接口
A part of VFS inode A socket can be operated just the same as a file by system call read(), write(), lseek()…
用chmod修改权限:字符方式和数字方式
Linux文件的安全性
SUID程序
正常情况下,一个程序在运行的时候,它的进程将属于当前 用户 但是,对于SUID程序,它的进程不属于启动用户,而是属于 该程序的所有者用户 通常,SUID/SGID程序中的bug往往是入侵的基础
mount和fstab命令
用mount装载文件系统的时候,可以使用一些选项控制文件 系统的安全性,对于装载FAT系统比较有意义. umash=N uid=N gid=N
Linux文件系统安全性
权限管理的不灵活
只能对所有者,所有者所在组和其他用户分配权限, 无法做到进一步的细致化
POSIX ACLs for Linux软件包
内核补丁,可以做到用ACL来管理权限
需要重新编译内核,下载补丁:http://acl.bestbits.at
两个命令:setfacl,getfacl
do_exit()
TASK_ZOMBIE
Linux的系统调用
编程接口,与POSIX兼容,C语言函数集合 实现形式与DOS的INT 21H相似
Linux使用int 80h
函数名"sys_xxx"
比如系统调用fork的相应函数sys_fork()
系统调用号和系统调用表 系统调用都转换为Int 80h软中断 所有的系统调用只有一个入口system_call 出口: ret_from_sys_call
Linux的段选择符情况 的
Linux 的 GDT 表项分布
表项序号 0 1 2 3 4 5 6 7 2j+6 2j+7
段选择符格式( 段选择符格式ห้องสมุดไป่ตู้16 位)
内容 起始虚拟地址 段长度 特权级 NULL 描述符 未使用 1GB 0 内核态代码段 0xC0000000 1GB 0 内核态数据段 0xC0000000 0x00000000 3GB 3 用户态代码段 0x00000000 3GB 3 用户态数据段 未使用 未使用 第 j 进程 LDT 第 j 进程 TSS
网络与信息安全
系统安全:Linux系统安全
潘爱民,北京大学计算机研究所 /InfoSecCourse
内 容
Linux系统介绍
Linux内核 Linux文件系统
Linux的网络结构 Linux攻防技术 一次针对Linux的入侵过程
Linux操作系统
文件系统类型管理
file_system next
文件系统类型的注册途径:
file_system_type next next=0
在编译内核时确定 在文件系统作为模块装入时登记
虚拟文件系统(VFS)
是物理文件系统与服务之间的一个接口层,只存在于内存中 定义了关于各种特殊文件系统的公共接口——抽象性
Super_block,inode,文件操作函数入口 把所有的文件系统映射到同一个层次结构中,通过super_block与 inode中的关联关系来实现,如下图所示
retfromsyscalllinux存管理在i386机器上每32位络性地址利用硬件的分络机制3g以上的空络中在用络络下代络不可能络络3g以上的地址空络如果要络络vmavirtualmemoryarea机制不能超络此上界但是核代络可以重新络定此上界linuxlinuxnull描述符0xc00000001gb0xc00000001gb0x000000003gb0x000000003gb未使用2j6ldt2j7最高linux的模络机制核模络一旦加络之后原有的核心代络同等可能络致一定的性能络失和linux的模络机制原理linux核中有一利用自核心的络出符络修改其未insmod络用初始化模络的初始化注络例程地址络络络模络不再被引用的络候可以被所占用的核心存被回收通络lkm机制可以在系络linux22x络基络的rootkitknark使用insmodknarko就可以加络到一旦加络了knark后络之后可以改络netstat络有其他的rootkits比如adorelidslinux文件系络linux支持多络文件系络包括extext2hpfsvfatntfs通络络文件系络vfslinux操作系络可以支持不同络型的文nextnext0nextfilesystemfilesystemtype络文件系络定络了络于各络特殊文件系络的公共接口抽象性superblockinode文件操作函入口vfsinodecachevfsdirectorycachebuffercacherootimountisbscoverdsmountedext2文件系络12直接络sblockfs描述符32位的文件络络控制表和一个32控制表linux文件系络的安全性linux文件系络安全模型性相络与两个属络络络限accessrights第24络志
rmmod卸载模块
当一个模块不再被引用的时候,它可以被卸载 核心调用注销例程,释放相应的核心资源 从模块链表中移除,它所占用的核心内存被回收
内核中的ROOTKIT
通过LKM机制,可以在系统内核中插入木马模块 一个典型的以Linux 2.2.x为基础的rootkit—— knark
使用insmod knark.o就可以加载到内核中 一旦加载了knark后门之后 可以改变netstat的输出结果 可以改变运行进程的UID和GID 可以不用SUID就能够获得root访问权限 ……
Linux内存管理
在i386机器上,每个进程有独立的4G虚存空间 32位线性地址——利用硬件的分页机制
内核的代码段和数据段被映射到3G以上的空间中 用户态下的代码实际可申请的虚存空间为0-3GB 每个进程用两套段描述符来访问内存,分别用来访问内核态和用户态 下的内存空间 在用户态下,代码不可能访问3G以上的地址空间,如果要访问内核 空间,必须通过系统调用或者中断 Linux对虚存的管理使用vma(virtual memory area)机制 在进程数据结构中,指定了用户空间的上界,在系统调用时,用户指 定的指针不能超过此上界,但是内核代码可以重新设定此上界 页交换机制:缺页中断,页面换入
Linux中Kerberos认证协议的支持
建立KDC
下载和安装Kerberos 5 配置Kerberos 启动服务
管理Kerberos
kadmin,管理Kerberos数据库
使用Kerberos
kinit,获得一个ticket klist,列出所有的tickets kpasswd, 修改口令 kdestroy, 删除一个ticket 使用支持Kerberos的网络应用,例如ftp, telnet, 等
数据块 数据块 数据块 数据块 数据块 数据块
Linux文件系统的安全性
Linux文件系统安全模型与两个属性相关
文件的所有者(ownership)
文件所有者的id 文件所有者所在用户组的id
访问权限(access rights)
10个标志
第1个标志:d(目录), b(块系统设备), c(字符设备), .(普通文件) 第2-4个标志:所有者的读,写,执行权限 第5-7个标志:所有者所在组的读,写,执行权限 第8-10个标志:其他用户的读,写,执行权限
Kerberos认证
S/Key认证
管理员
PAM 配置文件
……
Linux内核安全性
Linux内核机制存在的一些潜在缺陷
超级用户的特权可能会被滥用 系统文档不安全 系统内核可以比较容易地插入模块 内核中,进程不受保护
Linux对网络的支持
Linux从UNIX继承了在网络方面的优势 Linux自身的发展也是与Internet息息相关的 介绍内容
背景
最初由Linus Benedict Torvalds于1991年开发的 1994年3月发布第一个正式版本 内核升级模式
稳定的内核,第二个数字为偶数,例如2.2.14 2.2.14 开发的内核,第二个数字为奇数,例如2.1.14 Linux系统特点
兼容UNIX:API兼容,管理命令和各种工具 源码开放 支持各种硬件平台,支持多CPU Linux平台上存在大量的应用软件,以及应用开发工具
处理面向文件系统的通用操作 把针对文件系统的操作映射到相关的物理文件系统 许多复杂的cache机制,提高了文件系统的访问效率
VFS inode cache VFS directory cache Buffer cache ……
root i_sb i_mount
s_coverd s_mounted
ext2文件系统
进程调度:状态转换图
do_fork()
收到SIG_KILL或 SIG_CONT后 TASK_RUNNING
所申请资源有效时
TASK_UNINTERRUPTIBLE 申请资源未果
所申请资源有效 或者收到信号时 TASK_INTERRUPTIBLE
schedule()
时间片到
申请资源未果
Holding CPU 跟踪系统调用 TASK_STOPPED
这是Linux系统专用的文件系统 文件也是分块存储,以块为整单位
组0 组1
...
组N
s_block fs描述符 块位图 inode位图 inode表
数据块
数据结构
ext2_super_block ext2_inode: 内含一个 32位的文件访问控制 表和一个32位的目录 访问控制表
12个直接块 一次间接块 二次间接块 三次间接块
15
3
2
1 0
INDEX
TI: 0 GDT, 1 RPL: 特权级,0 为最高 特权级,
TI RPL
LDT(切换任务时 切换任务时,GDT 不变 不变,LDT 改变 改变) 切换任务时
Linux的模块机制
可动态装载的内核模块(lkm)
一组命令:insmod/rmmod/lsmod/modprobe/…
crypt()是一个口令加密函数,它基于DES算法.我们可以认为这是 一个单向加密操作 函数原型: char *crypt(const char *key, const char *salt); *salt是两个字符,每个字符可从[a-zA-Z0-9./]中选出来 算法 UNIX标准算法使用DES加密算法,用key对一个常量进行加密,获 得一个13字节的密文编码输出,其中包括salt的两个字符[from Red Hat Linux 6.2] Salt的作用 同样的口令产生不同的密文 增加了穷举空间 建议使用更为安全的MD5算法
PAM(Pluggable Authentication Modules)
一种可插入的认证机制 针对一个服务,指定一些认证相关的动作,放到 /etc/pam.conf文件中,或者放到/etc/pam.d/下与服务 同名的配置文件中
每一行包含一个模块类型,一个控制级别,一个模块: service module-type control-flag module [args] 例如
关于模块机制
可以让核心保持比较小的尺寸 动态装载,避免重新启动 模块机制常常用于设备驱动 内核模块一旦加载之后,与原有的核心代码同等 可动态装载的内核模块的一些缺点
可能会导致一定的性能损失,和内存开销 代码不规范的模块可能导致核心崩溃
如果调用系统核心功能时,参数错误,同样会有问题
Linux的模块机制原理
Linux内核
多用户,多任务,分时,软实时处理 不是微内核系统,但具有某些微内核特征 Intel版本:i386的保护模式,特权级
内核态(0)和用户态(3) 中断和系统调用——两种特权级的切换
PCB:进程控制块,常驻内存 进程是最基本的调度单元
进程是动态的,每一个进程都有一个进程控制块 没有专门的调度进程,内核中有一个schedule函数完成调度 任务 进程在调度过程中有多种状态
真正删除文件
工具wipe
Linux用户管理
用户文件/etc/passwd
Shadow password: /etc/shadow
此文件只对root可读
让用户拥有单独的组, 而不是加入到共享的 users组中
groupadd
创建用户:useradd 改口令:passwd 管理口令的有效期
chage
Linux中crypt口令加密方案
insmod装载模块
Linux内核中有一个模块链表 首先通过一个特权级系统调用来找到核心的输出符号 然后将模块读入虚拟内存,并利用来自核心的输出符号,修 改其未解析的核心例程和资源的引用地址 再次使用特权级系统调用来申请足够的空间来容纳新的核心 模块,并拷贝到此内存空间中 每个模块必须包括初始化例程和注销例程,insmod将调用初 始化代码,并执行一个特权级系统调用将模块的初始化与注 销例程地址传递给核心
还有其他的ROOTKITS,比如adore 内核ROOTKITS的对策
根据每个rootkit的特征进行检测,然后设法删除 预防为主,安装内核检测系统,比如LIDS
Linux文件系统
Linux支持多种文件系统,包括ext,ext2,hpfs,vfat, ntfs,…
通过虚拟文件系统VFS ,Linux操作系统可以支持不同类型 的文件系统
passwd password required pam_cracklib.so type=user retry=3 passwd password required pam_pwdb.so use_authtok
PAM结构图
系统服务 PAM API login 用户 telnet ftp …… 认证管理(auth) 帐户管理(account) 会话管理(session) (password) 口令管理(password) PAM核心库 PAM SPI PAM服务模块 UNIX认证
Linux Linux网络层次
Linux协议栈
Linux网络配置 内核防火墙
Linux中网络的层次结构
Network Applications
User Kernel
BSD Sockets Socket Interface INET Sockets TCP Protocol Layers IP Network Devices PPP SLIP Ethernet ARP Appletalk UDP IPX
相关文档
最新文档