试题一
阅读下列说明,回答问题1至问题3。
【说明】
访问控制是保障信息系统安全的主要策略之一,其主要任务是保证系统资源不被非法使用和非常规访问。访问控制规定了主体对客体访问的限制,并在身份认证的基础上,对用户提出的资源访问请求加以控制。当前,主要的访问控制模型包括:自主访问控制(DAC.模型和强制访问控制(MAC.模型。
1、【问题1】
针对信息系统的访问控制包含哪三个基本要素?
2、【问题2】
BLP模型是一种强制访问控制模型,请问:
(1)BLP模型保证了信息的机密性还是完整性?
(2)BLP模型采用的访问控制策略是上读下写还是下读上写?
3、【问题3】
Linux系统中可以通过Is命令查看文件的权限,例如:文件net.txt的权限属性如下所示:
-rwx-------1 root root 5025 May 25 2019 /home/abc/net.txt
请问:
(1 ……此处隐藏20725个字…… 就会溢出,溢出部分就会覆盖其他变量的值,从上图堆栈中的数据存储方式可以看出,buffer数组一旦溢出,溢出部分就会覆盖authenticated的值;根据题目意思,只要令溢出部分的值为0即可令 authenticated=0,最终使得valid—flag为0,从而满足条件。所以可以先任意输入8个字符堆满buffer数组,再输入时就是溢出部分,可以输入空字符,因authenticated为整形数据,所以将字符赋给整形变量时,会按其ASCII码值进行处理,空字符的ASICC值为0,从而可以把authenticated值变成0满足条件。
19、使用批准的工具来编写安全正确的程序;禁用不安全的函数来防范因数组没有边界检查而导致的缓冲区溢出;通过静态分析进行程序指针完整性检查。
[考点] 网络安全基础——漏洞攻击
[解析] 使用批准的工具来编写安全正确的程序,只要在所有拷贝数据的地方进行数据长度和有效性的检查,确保目标缓冲旦中数据不越界并有效,则就可以避免缓冲区溢出,更不可能使程序跳转到恶意代码上。禁用不安全的函数来防范因数组没有边界检查而导致的缓冲区溢出,C语言中存在缓冲区溢出攻击隐患的系统函数有很多。例如gets(),sprintf(),strcpy(),strcat( ),fscanf( ),scanf( ),vsprintf( )等。可以禁用这些不安全函数。通过静态分析进行程序指针完整性检查,在每次在程序指针被引用之前先检测该指针是否己被恶意改动过,如果发现被改动,程序就拒绝执行。