热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Linux安全吗?

文章标题:Linux安全吗?。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  计算机系统及信息安全问题是进入信息社会所必须解决的问题,大量Internet应用的出现使这一问题更加突出。近来,随着PIII的序列号和微软操作系统中后门密钥等事件的发生,使我们认识到信息安全“事关重大,刻不容缓”。从事计算机安全领域研究的沈昌祥院士指出:“信息安全保障能力是21世纪综合国力、经济竞争实力和生存能力的重要组成部分,是世纪之交世界各国在奋力攀登的制高点。”
  
    众所周知,我们的计算机系统和网络系统从硬件到软件大多是国外的产品,包括一些相关的安全产品。许多产品在设计时都会留有一些后门供产品测试,也可能存在一些设计缺陷,同时存在有意埋伏安全陷阱的可能,所有这些犹如千里之堤中的蚁穴,甚至更甚于此。记得有这样一个故事,A国在B国使用当地建筑材料修建使馆,结果发现在建筑物中有大量的窃听装置,最后只得不惜代价使用本国工人和建筑材料重新修建。因此“信息安全要打中国牌”,在安全系统中必须采用我们自己的产品。
  
    计算机系统及信息安全可分为安全技术和密码技术两方面,两者缺一不可。具体来说安全技术中关键是操作系统、CPU等,然而我们不具备自己的操作系统和CPU,短期内也不会有,但最终应该有,笔者认为这一事情应该从战略意义上考虑。幸运的是,Linux的出现为建立我国安全、自主的操作系统提供了机遇和挑战,发展自主版权的操作系统具有很大的经济效益和社会效益,笔者认为同时一定要把安全放在首位。
  
    源代码公开就不安全吗?
  
    Linux是一个自由、开放的操作系统软件,其最初设计目标并不是一种安全操作系统,因此Linux在安全方面存在一些不足、漏洞和后门。关于操作系统的安全性,目前除Windows NT是被确定为达到美国安全标准的C2级外,其它都难以定性而论,Linux也是如此。目前关于计算机系统安全的讨论中有许多并非操作系统本身的问题而是应用软件或某些协议带来的,如Sendmail中MIME以及TCP/IP本身的安全问题等,这里只简单介绍Linux内核存在的几个主要问题,借以指出建立安全、自主的操作系统应注意的几个方面。
  
    Linux属于自由软件,其源代码是公开的,有人认为这是不安全因素。其实不然。首先,这种开放源码的系统软件恰有非自主的黑箱操作系统所不具备的一个安全特点,就是用户可以对它有较深的理解,发现问题可很快解决,而不必苦苦等待软件补丁和升级版;其次说句题外话,在密码算法安全性研究中,前提是算法公开———即假设攻击者已知算法,细节需要保密的算法没有研究和利用价值。
  
    Linux哪儿不安全?
  
    Linux的第一个问题是利用启动盘可以启动计算机,或利用LILO进入单用户模式,无须root口令而获得root用户具有的权限。这一点已被许多Linux文章书籍中作为忘记root口令时的解决方案介绍。这是个很大的安全问题,因为它使root口令失去了意义。
  
    其次是Linux的口令问题。Linux存放的是用户口令明文的One Way Hash运算结果,加上用户选择易记口令等因素,容易采用词典攻击,同时用户远程登录时传送的是口令明文,易于窃听。目前Linux的发行版本中都采用了Shadow技术,首先将口令作扩充(Padding)处理再作One Way Hash计算,结果存放在只有root用户可访问的文件中,其中Padding的数据是伪随机数。这样提高了口令的安全性。但密码学的有关研究表明,仅仅采用对称密码算法或Hash算法是不够的,不能构成安全的口令认证方案。
  
    第三,SETUID问题。SETUID是为解决某些普通用户执行的但执行时须暂时获得root特权的程序的执行问题,这也是一个安全隐患。黑客可以在有root权限时将其黑客程序设置SETUID,以后就可以以普通用户登录运行该程序,此举具有很大的隐蔽性,不易觉察。
  
    第四,缓冲区溢出问题。当输入数据超出所分配存储空间而系统又没有对此作直接处理时导致缓冲区溢出问题。缓冲区溢出会导致程序退出、数据丢失以及其它不可预计的结果。由于C、C++编译器对缓冲区溢出、指针越界等不作检查,因此会发生缓冲区溢出问题。如果缓冲区溢出发生在可执行堆栈中,则会覆盖堆栈中原有的程序执行信息,导致系统执行错误的指令。因此,黑客程序可以故意安排堆栈溢出时,系统就可能转而执行黑客程序,该黑客程序获得正在执行的程序的权利(通常是root特权),系统被破坏或失去控制权。
  
    第五,计算机病毒和特洛伊木马程序问题。如今PC平台计算机病毒和特洛伊木马程序层出不穷,破坏力增大,人们对其防不胜防,Unix/Linux上的病毒却不是很多,这除与操作系统机制有很大关系外,也与Unix/Linux未广泛流行有关。由于Linux存在SETUID问题和缓冲区溢出等问题,这为计算机病毒和特洛伊木马程序提供了入口。
  
    另外还有其它一些问题以及具体操作、设置中存在的问题,在此不一一列举。
  
    如何保证Linux的安全?
  
    针对Linux存在的一些安全问题,在建设安全、自主的操作系统时应注意把握以下几点:首先是系统引导问题,必须保证对用户的身份认证。其次是口令机制,应该研究结合公钥密码算法的安全口令认证方案。第三,Linux中用简单的方法实现进程管理和调度,从安全和完成复杂任务角度看都略嫌不足。需要研究更好的文件权限、进程管理和执行权限管理方案。解决缓冲区溢出问题一方面是严格编译器的检查,另一方面是寻求动态解决方案,确保系统的控制权,并力求减少损失。
  
    同时笔者认为安全的操作系统应该具有一定的防病毒和特洛伊木马程序的能力,在设计操作系统内核时要结合反病毒的有关技术,使之在根本上具有一定的免疫力。
  
    Linux出现为我国建立安全、自主的操作系统提供了机遇和挑战,但是,Linux到底安全不安全?安全在哪儿?不安全在哪儿?我国在发展Linux的时候如何扬长避短?本栏目欢迎广大读者就Linux的安全问题进行广泛深入的探讨。
  
    E-mail:lyh@ciw.com.cn
  
  作者:王汉强、魏庆福 
  
推荐阅读
  • Linux系统快捷键大全及使用技巧
    本文详细介绍了Linux系统中的各种快捷键,包括命令行和VIM编辑器中的常用快捷键,帮助用户提高操作效率。同时,文章还提供了关于字体配置、软件安装等方面的实用信息。 ... [详细]
  • 1.前言PAP和CHAP协议是目前的在PPP(MODEM或ADSL拨号)中普遍使用的认证协议,CHAP在RFC1994中定义,是一种挑战响应式协议&#x ... [详细]
  • 对象存储与块存储、文件存储等对比
    看到一篇文档,讲对象存储,好奇,搜索文章,摘抄,学习记录!背景:传统存储在面对海量非结构化数据时,在存储、分享与容灾上面临很大的挑战,主要表现在以下几个方面:传统存储并非为非结 ... [详细]
  • CentOS7通过RealVNC实现多人使用服务器桌面
    背景:公司研发团队通过VNC登录到CentOS服务器的桌面实现软件开发工作为防止数据外泄,需要在RealVNC设置禁止传输文件、访问粘贴板等策略过程&# ... [详细]
  • 本文详细介绍了Sleep函数的基本概念、使用方法及其背后的实现原理。适合对Sleep函数的使用和实现感兴趣的开发者阅读。通过本文,您将了解如何在不同操作系统中使用Sleep函数,以及其在多线程编程中的重要性。 ... [详细]
  • Win10蓝屏错误代码 DRIVER_IRQL_NOT_LESS_OR_EQUAL (Netwbw) 的解决方法
    本文介绍了如何解决 Win10 系统中出现的蓝屏错误代码 DRIVER_IRQL_NOT_LESS_OR_EQUAL (Netwbw),包括软件和硬件方面的解决方案。 ... [详细]
  • 花生壳内网穿透:实现企业智能网关远程管理和维护
    随着物联网技术的发展,企业对智能网关的需求日益增加。本文介绍如何利用花生壳内网穿透技术,实现企业智能网关的远程管理和维护,提高效率,降低成本。 ... [详细]
  • Vulnhub DC3 实战记录与分析
    本文记录了在 Vulnhub DC3 靶机上的渗透测试过程,包括漏洞利用、内核提权等关键步骤,并总结了实战经验和教训。 ... [详细]
  • 本文将详细介绍如何配置JDK 8u101的环境变量,包括下载、安装和环境变量的设置步骤。适用于64位和32位操作系统。 ... [详细]
  • 本文详细探讨了Spring框架中遇到的NoSuchBeanDefinitionException异常,具体涉及com.thinkplatform.dao.UserLogDao Bean未定义的问题,并提供了相应的解决方案。 ... [详细]
  • 本文介绍了读写锁(RWMutex)的基本概念、实现原理及其在Go语言中的应用。读写锁允许多个读操作并发执行,但在写操作时确保互斥,从而提高并发性能。 ... [详细]
  • 深入解析Linux中的slabtop命令
    本文将详细介绍如何在Linux系统中使用slabtop命令,帮助读者更好地理解和监控内核slab缓存的使用情况。通过本文的学习,您将掌握slabtop命令的基本用法及其高级功能。 ... [详细]
  • Linux bash 命令行下实现可视化文件或文件夹浏览
    Linuxbash命令行下实现可视化文件或文件夹浏览  有时候部署环境,需要配置文件路径或者载入相应的配置文件。这种情况下,如果用传统的手动修改配置的方式配置,会比较容易出意外(比 ... [详细]
  • Android 属性 allowBackup 的安全风险分析
    在 Android API Level 8 及以上版本中,系统提供了一种机制来备份和恢复应用程序数据。通过设置 allowBackup 属性,开发者可以控制是否允许这种备份和恢复功能。然而,这一功能也带来了潜在的安全风险。 ... [详细]
  • 列表生成式虽然简洁高效,但在处理复杂算法时存在局限性。本文将介绍生成器(generator)的概念及其优势,探讨如何通过生成器解决列表生成式的局限性,并提供实际示例。 ... [详细]
author-avatar
卢太爽
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有