哈工大-计算机安全学-信息安全专业

第二章操作系统安全基础

1、操作系统提供的安全目标是什么?以及为达到安全目的相应的措施是什么?

目标1:允许多个用户可以安全地共享一台计算机

内存保护、处理器模式、身份验证、文件访问控制

目标2:确保网络环境下的安全操作

身份验证、访问控制、保密通信、审计日志、入侵预防和检测。

2、用root或administrator身份运行在内核模式和用户模式的差别是什么?(Difference between kernel mode and

processes running as root(or superuser,administrator) )

内核模式和root 是两个不相关的独立的概念,以root运行一个进程的概念是一个UNIX/LINUX术语,它意味着你是作为系统管理员登陆的。

你运行任何进程,不管你是以root还是普通用户身份,一般同时运行在内核模式和用户模式下。该系统不断在两个模式间切换,用户模式下是应用程序代码在运行,内核模式下是内核代码在运行。

例如像设备驱动的一些程序,始终运行在内核模式,意味它们有权限访问硬件。一个普通的应用程序以root权限运行在用户模式下,只有当发生一个内核系统调用时会切换到内核模式,然后会再切回到用户模式。

3、为验证用户身份,系统将用户输入的口令同存储在口令文件中的值进行比较。对攻击者而言,口令文件更具

吸引力,如何保护口令文件?

1) 2) 3)加密保护

由操作系统强加的访问控制

加密保护和访问控制相结合,或者可能有更强的保护措施来减缓字典攻击的速度

第三章Unix访问控制

1、运行二进制文件和脚本文件时,如何设置权限?

2、目录的执行位有何用途?

If execute permission is required for a directory, it is usually required for each directory component on the full pathname of that directory

Without execute permission on a directory, a user can't access files in a directory even if they own them and have all permissions on them

With read but not execute, you can do ls someDir but not ls-l someDir

With execute but not read permission,you can ls-l someDir/file but not ls someDir or ls - l someDir. s 执行位能控制目录的遍历,能查找到目录下文件的inode信息。要访问目录下的文件,要使文件路径的目录都有执行位。

3、读/home/abc/aaa.txt文件所需权限?删除/home/abc/aaa.txt需要什么权限?

x on/,x on/home,x on /home/abc , r on/home/abc/aaa.txt

x on/,x on/home,wx on/home/abc

4、用fork创建进程,和用exec执行文件的进程,其euid,suid,ruid分别有何差别?

用fork创建一个子进程,其euid,suid,ruid都是继承其父进程的;

用exec执行文件的进程,一般情况下euid,suid,ruid是保持不变的。除非被执行文件的set-user-id被设置,在这种情况下,进程的euid和suid被赋予成文件拥有者的user-id。

1、函数setuid含义在不同操作系统版本以及不同情况下结果不同,请问如何避免歧义?

使用改进的API以避免在不同的UNIX系统中混淆,具体实现基于FSA 自动机,通过uid-setting 系列的系统调用,使用三个函数分别实现临时失去权限、永久失去权限、重新获得权限功能。

第四章防主机入侵

1、Unix系列的系统,访问控制是基于user id的,基于user的访问控制是粗粒度的,尤其root用户权限过大,

请问有几种限制措施吗,分别是什么?

Answer:

1)?????2)??3)虚拟化进行限制

包括操作系统级虚拟化:

在单内核的操作系统上虚拟服务、如chroot 或FreeBSD jail 虚拟机

在主机上运行模拟软件,如VMWare,Microsoft Virtual PC Paravirtualization

打破root强大的权力

POSIX/Linux能力

FreeBSD运行级别

采用细粒度的强制访问控制

2、使用chroot进行虚拟化限制,好处是什么?某人想使用chroot限制某服务运行在某目录下,其做法是:

chroot(dir);

setresuid(nonroot);// give up root permissions correctly;

请问能否成功,为什么,如果不成功,如何修改使之成功?

Answer:

使用chroot进行虚拟化限制的优点是安全且性能好,管理员容易建立和管理。在新的root下,许多系统功能

和资源不存在,及时攻击者破坏进程,对系统损失和影响也非常有限。

上面chroot做法缺少一步:chdir(dir);

3、为了打破root强大功能,linux内核2.6.24把root权力分为分成多个能力(capability)位,请问CAP_CHOWN

能力位和chown系统调用有何关系?

Answer:

CAP_CHOWN:可以改变文件拥有权,也可越过自主访问限制

4、在SELinux系统中,采用细粒度的强制访问控制,如何设置访问控制措施使得普通用户可以修改自己的密

码而又没有获得额外权限?

Answer:passwd程序可以修改shadow,普通用户不能修改shadow 文件

Passwd 程序定义类型passwd_t,/etc/shadow定义类型shadow_t

允许普通用户Joe的shell(类型user_t),运行passwd 程序(类型passwd_exec_t)上启动execve()系统调用,格式为allow user_t passwd_exec_t:file{getattr execute};

对passwd_t域的入口访问权: allow passwd_t passwd_exec_t: file entrypoint

许可原始的类型(user_t)到新类型(passwd_t)进行域转变Transition: allow user_t passwd_t : process

transition

第五章自主访问控制

1、在访问控制中,如何理解user和principle,二者有何联系和区别?

principal

user 是真实世界的用户,principal是访问控制和授权的单元,原则广义上等价于进程。principle确保了user

行为的责任。一个user可以有多个principle,但是一个principle只和一个user相关。

2、试比较ACL(Access Control Lists)和访问能力列表capabilitiy list 的优缺点。

1.ACL:优点:访问控制策略设置集中,适合于保护数据导向的环境;实现起来比较简单。

缺点:较不适合多用户的环境,或者用户给其他用户授权的时候;它的效率不高,因为在运行时要进行安全检查,以便让操作系统知道是哪个用户正在运行程序,而不是哪个文件已被授权访问;查找某个用户具有访问权限的文件很繁琐,例如要解雇员工必须通过取消密码或其他身份验证机制来实现。

2.Capability:优点:对比与ACL,在运行时进行安全检查很有效率;能解决confused deputy problem。

缺点:改变文件的状态很困难,很难撤销能力,因为不容易找出哪些用户具有访问权限;对于谁可以被获

准访问给定的对象难以有一个全面的了解。

3、自主访问控制中,特洛伊木马如何完成信息泄露?

特洛伊木马是一种流氓软件,被授权用户无意中安装。它能做用户期望要做的事,但除此之外又利用用户合法权限导致安全漏洞。举例来看:

第8章安全策略(已留做课后作业)

1、安全策略要求学生不可以拷贝作业。计算机系要求学生在计算机上完成家庭作业,一个学生A看到另

一个学生B写的作业没有写保护,于是拷贝该作业,请问谁违背安全策略?并以此为例,说明安全策略和安全机制间的关系。

学生A违背安全策略,因为安全策略不允许抄袭作业。如果说学生A有复制文件的权力,因此行为是允许的,那么这就混淆了机制和策略的概念。如果反驳说A有复制文件的能力,因此行为是允许的,那么这就混淆了机制和策略这两个概念。二者区别是明显的:安全机制是实施安全策略的某些部分的实体或规程。在这个例子中,策略声明任何学生不得抄袭他人作业。这种策略的一种机制就是文件访问控制:如果B 设置权限,防止A 读他的作业文件,则A就不能复制该文件。

2、一个著名的计算机安全专家说,没有完整性系统就不能提供机密性,没有机密性系统能否提供完整性。

你同意该说法么?为什么?

不同意。系统的完整性和机密性是分开的。完整性的含义是所有成员都对客体信任,而保密性规定了客体不可以被泄露,没有指出是否该信任客体。这个意思就是说没有完整性,也可以提供保密性。第二个观点也是可以提供。未保证机密性,就是信息会泄露给未授权者,但他们不一定会对其进行篡改,可以保证信息是准确、正确、未篡改的。这也就说没有机密性情况下也可以提供完整性。

3、分析下面事例属于自主访问控制、强制访问控制、创建者控制策略、还是组合策略,分析你的判断:

1)unix操作系统的文件访问控制机制;2)没有作者同意,备忘录不能被散发;3)军事系统中只有将军可以进入指定的房间;4)一个大学的办公系统,学生给其系成员写访问许可情况下,系成员可以看指定学生的成绩a 自主型访问控制

b创建者访问控制

c强制型访问控制

d自主型访问控制

4、UC Davis 校园的读电子邮件策略,一个研究小组想获取该系所处网络上的原始数据,1)分析其收集

数据对电子邮件策略的影响;2)如何修改策略使得在保护电子邮件前提下允许收集数据

1)在电子邮件的完全策略中有一些通用的规定条款:在对待电子邮件时,只有在已列出的特殊情况下,还要副校长同意,才可以不经邮件拥有者同意查看邮件。如果条件不具备,只有在特殊紧急情况才能不经许可阅读

邮件,而且事后一定要取得授权。从网上获取传送到校内的网络包并未满足条件,没遵守政策要撤销其电子邮件服务。

2)可以改变一下策略,同时不放弃电子邮件策略的保护原则。首先注意到如果是已列出的特殊情况就可以。

就可以在条款中增加特殊情况:以研究网络包的原始数据为目的的获取电子邮件行为,是被允许的。还可以在第三部分——电子邮件策略的实现中更改。第三部分扩充了系统策略,就可以在这部分增加特定校园的需求和手段,加上该研究小组这类性质的需求,形成自己学校特殊的策略也是可以的。

第9章机密性

1、给定安全级:Top Secret、Secret、Confidential、unclassified;范畴:A、B、C;访问类型:读、写、读写、无;自主访问控制,判断下列情况的访问类型:

1)Paul的安全标签(TOP SECRET,{ A,C}),预访问文件其标签是(SECRET,{ B, C});

2)Anna的安全标签(CONFIDENTIAL,{ C}),预访问文件其标签是(CONFIDENTIAL,{ B});

3)Jesse的安全标签(SECRET,{ C}),预访问文件其标签是(CONFIDENTIAL,{C});

4)Sammi的安全标签(TOP SECRET,{A, C }),预访问文件其标签是(CONFIDENTIAL,{A});

5)Robin无安全标签UNCLASSIFIED,预访问文件其标签是(CONFIDENTIAL,{B});

2、在下图DG/UX系统中,为什么病毒防护区在用户区下面,管理区在用户区上面。

最高的管理区是为用户不能访问的数据预留的,如日志、MAC 标签定义等。因为向上读和向上写是不允许的,用户既不能读也不能修改本区的数据。管理进程,如服务器进程,使用该区的MAC标签执行,然而管理进程要使用用户区的MAC标签对发送到用户进程的数据进行无害化处理。

系统程序出于最低区(病毒防护区),用户进程不能写系统程序,因此也就不能改变他们,因为执行需要进行读访问,所以用户可以执行这些程序。

3、Bell-LaPadula模型中为什么要设置最大安全级maximum security level 和当前安全级current security level?

答:有时,一个主体必须与另一处处于较低等级上的主体进行通信。这就要求高等级的主体写信息到一个低等级的客体里去,以便低等级的主体可以读。这样设置最大安全级和当前安全级,最大的必须支配当前的。这样主体可以有效地从最高安全等级降低下来,以便与低安全等级的实体通信。

4、为30年后解密的文档设计一个安全模型。

第10章完整性

1、同机密性模型类似,Biba模型也采用完整性标签和范畴,在什么条件下主体可以读客体,主体可以写客体?

s S can read o O iff i(s)≤i(o)

s S can write to o O iff i(o)≤i(s)

2、在Clark-Wilson模型中,描述CDI、TP、IVP 间关系。

CDI:约数型数据项,有一系列完整性约束限制着CDI的值

TP:转换过程,将CDI从一个有效状态转换为另一个有效状态的过程。

IVP:完整性验证过程,它要检验CDI是否符合完整性约束。

3、在Clark-Wilson模型中,为什么要维护正确的审计日志,又是如何保证日志正确性的?

大部分基于事务处理的系统都要记录每次事务,使得审计人员可以审查这些事务。Clark-Wilson模型将系统日志看为一种CDI,每一个TP都可以添加这个日志,但是TP不可以重写日志。

第11章混合性

1、中国墙模型是如何控制信息间接流动的?中国墙模型模型中的*-property应当只指当前的读访问还是指任何

过去的读访问?

定义了利益冲突类COI包含相互竞争公司的数据集,还定义了公司数据集CD包含了与某家公司相关的若

干客体

*-属性指主体S能写客体O,当且仅当两个条件同时满足:

1、CW-简单安全条件允许S读O

2、对于所有有害客体O’,S能读取O’=>CD(O’)=CD(O)

因此是指当前的读访问

2、在一个控制对病历和处方访问的医疗信息系统中,要求:1)医生可以读写病历和处方,2)护士只能读写处

方,但不应当知道病历内容。问如何阻止病历流向处方?哪种安全模型最适合这种策略?

层次等级:High,Low

类别:病历,处方

医生安全等级:(High,{病历,处方})

护士安全等级:(High,{处方})

病历安全等级:(Low,{病历})

处方安全等级:(Low,{处方})

安全模型:BLP模型

主体集合由医生和护士组成,客体集合由病历和处方组成。安全级别由低到高依次为fC(护士)=fC (医生)? fO(处方)? fS(护士)? fO(病历)? fS(医生),根据ss-property,即无向上读策略,医生可以读病历和处方,护士只能读处方;根据?-property,即无向下写策略,医生、护士可以写病历和处方,且防止护士知道病历的内容。

3、参考基于角色的访问控制RBAC和互斥角色的定义,如何防止一个医生给自己开止疼片?

角色的集合为医生和病人,医生有开止疼片的权利,病人可以接受治疗。但是根据互斥角色的定义,一个医生在担任医生这个角色时不可以同时成为病人,此时只具有给其他人开止疼片的权利。并且当他成为病人的角色时,只能接受其他医生的处方。

4、安全模型间的比较

Clark-Wilson与Biba比较:

Biba为所有的主体和客体都关联上一个完整性等级。Clark-Wilson每个客体都有2 个等级:受约束的或高等级的(CDI),非受约束的或低等级的(UDI)。主体也有2个等级:已证明的(TP)和未证明的(其他程序)。区别在于证明规则,Biba没有证明规则,他断言存在“可信”主体来保证系统的操作遵守模型的规则,而没有提供任何机制或规程来验证这些可信实体或他们的行为。

Bell-Lapadula与中国墙:

中国墙的主体没有相关的安全标签,而Bell-Lapadula的主体有。Bell-Lapadula 没有“曾经访问”的概念,这是中国墙的核心概念。

用Bell-Lapadula仿真中国墙:为每一个(COI,CD)指派一个安全类别,并定义2个安全级别:S(无害数据),

U(有害数据)。根据假设S dom U,每一个客体都被转换成2 个客体,一个为无害客体,一个为有害客体。

赋予中国墙的每个主体一个安全等级,并要求同一个安全等级内不能包含多个类别(对应同一个COI类中的多个CD)。此时CW-简单安全条件明显满足。同样CW-*-属性也满足,因为Bell-Lapadula中的*-属性保证输入客体的类别是输出客体类别的子集。因此,输入客体要么是无害的,要么是和主体在同一个类别中(也就是同一个CD)。

Clark-Wilson和中国墙:

Clark-Wilson主要处理完整性问题,例如有效性、可验证性、访问控制等问题。由于中国墙只是处理访问控制,

因此他不能完全模拟Clark-Wilson。

Clark-Wilson中的第二条实施规则(ER2)表示了访问控制规则。该规则通过转换过程和用户操作的CDI将用户联系起来。如果某人按照惯例将“主体”和“过程”视为可互换的,那么他就可以使用多个过程来访问同一个COI类中的不同CD中的客体。因为中国墙将过程和过程的执行者视为互相独立的,因此不会违反任何限制条件,并且包含所有代表该主体的过程。

第12章数据库安全

1、数据库的可靠性和完整性从哪几个方面保证?

数据库完整性

元素完整性

元素正确性

2、解释数据库的两阶段更新,并解释为什么这么做?数据库的并发写有什么问题,如何解决的?

第一阶段为意向阶段,DBMS收集了所有执行更新需要的资源,但没有对数据库做任何改变。第一阶段最

后进行提交,进入第二阶段。

第二阶段实现永久更新,不能重复执行提交前的任何动作,但是在这个阶段可以根据需要重复执行更新操作。

如果在更新过程中,要修改的数据项是一个很长的域,可能一半的值已经被更新,而另一半保持原来的值。

不同的用户同时尝试修改同一个数据项时,有可能造成冲突。解决方法是把查询和更新周期看做一个原子操

作。

3、推测数据库中的敏感数据有哪些方法?数据库如何防止推测数据?

直接攻击

间接攻击:

和,计数,平均值,中值

追踪攻击:(使用额外的、产生更少结果的查询欺骗数据库管理器,从而找到想要的数据)

利用线性系统的脆弱性

控制统计推理攻击:查询控制、对数据库里的单个项进行控制(禁止查询和隐藏)

有限响应禁止

组合结果

随机样本

随机数据扰乱

查询分析

4、本章课后题

相关文档
最新文档