软件开发架构师

Linux系统安全(一):什么是安全?-InfoQ

运维 24 2019-09-02 23:13

著名网站技术调查公司 W3Tech 于 2018 年 11 月 17 日发布调查报告 指出,Linux 在网站服务器操作系统中比例高达 37.2%。除了被广泛使用在网站平台上以外,Linux 也常常作为 FTP 服务器、电子邮件服务器、域名解析服务器和大数据分析服务器等而部署在互联网上。

Linux 作为互联网基础设施的一个重要组成部分,保障其安全性的重要性不言而喻。虽然 Linux 是一款被大量部署的优秀的开源操作系统,但是这并不意味着不需要关注其安全性。在互联网上,也有许许多多针对 Linux 系统的攻击。例如,中国国家计算机病毒应急处理中心 在《病毒预报 第七百六十九期》中指出,“通过对互联网的监测,发现了一款旨在感染 Linux 设备的加密货币挖矿恶意程序 Linux.BtcMine.174。该恶意程序在不经过设备所有者同意的情况下使用 CPU 或 GPU 资源来进行隐蔽的加密货币挖掘操作。”

如果缺乏缜密细致的防御措施,如果缺乏积极主动的安全扫描,如果缺乏行之有效的入侵检测系统,如果缺乏切实到位的安全管理制度和流程保障,那么 Linux 系统也同样很容易被黑客入侵利用,此时保障业务和数据安全将成为空话一句。

什么是安全

一千五百多年前由从梵文译成汉文的《百喻经·愿为王剃须喻》讲述了亲信救王的故事。故事中写到“昔者有王,有一亲信,于军阵中,殁命救王,使得安全。”这里的安全就是指的“平安、不受威胁”。

同样,我认为,安全是指一种状态,在这种状态下,某种对象或者对象的某种属性是不受威胁的。《中华人民共和国网络安全法》第五条中指出网络安全的目的之一就是“保护关键信息基础设施免受攻击、侵入、干扰和破坏”,也就是保护关键信息基础设施不受威胁。

什么是信息安全

对于什么是信息安全(Information Security),不同的组织和个人可能有着不同的定义。

ISO/IEC、美国国家安全系统委员会和国际信息系统审计协会对信息安全的定义是被大部分信息安全从业人员所认可并支持的。《ISO/IEC 27001:2005 信息安全管理体系规范与使用指南》中对信息安全的定义是“保护信息的机密性(Confidentiality)、完整性(Integrity)、可用性(Availability)及其他属性,如:真实性、可确认性、不可否认性和可靠性。”

美国国家安全系统委员会(Committee on National Security Systems,CNSS)在《 Committee on National Security Systems: CNSS Instruction No. 4009 》对信息安全的定义是,“为了保障机密性、完整性和可用性而保护信息和信息系统,以防止未授权的访问、使用、泄露、中断、修改或者破坏。”

国际信息系统审计协会(Information Systems Audit and Control Association,ISACA)对信息安全的定义是,“在企业组织内,信息被保护,以防止被泄露给未授权用户(机密性)、防止非恰当的修改(完整性)、防止在需要的时候无法访问(可用性)”。

通过以上这 3 个定义,我们可以看出,保障信息安全的最重要目的保护信息的机密性、完整性和可用性这 3 个属性:

  • 机密性:信息仅仅能够被已授权的个人、组织、系统和流程访问到。例如,个人的银行账户交易流水和余额信息,除了账户持有人、经账户持有人授权的第三方组织、依相关法律法规规定有查询权限的组织以外,不应该被任何其他实体获取到。另外,商业组织的客户联系信息往往也具有较高的价值,也需要保护其机密性。在某些对安全要求较高的行业,甚至特别强调了对机密性的保障。例如,在《支付卡行业数据安全标准 3.2.1 版本( Payment Card Industry Data Security Standard,Version 3.2.1 )》3.2.2 条中明确指出,在授权完成后,不能在诸如日志、数据库等位置存储信用卡验证码(CVV2、CVC2、CID、CAV2 等)。这是强调信用卡验证码机密性的一个例子。

  • 完整性:保护信息的一致性(Consistency)、准确性(Accuracy)和可信赖性(Trustworthiness)。例如,A 公司向 B 公司提供的数据报告是通过电子邮件附件的形式来传输的,那么 A 公司就需要和 B 公司预先确定一种机制来检查和确认 B 公司收到的电子邮件附件确实是和 A 公司发送的一模一样的,是未被在传输过程中篡改的。

  • 可用性:当需要访问的时候,信息是可以提供给合法授权用户访问的。没有了可用性的保障,信息的价值就难以持续体现出来。

在学习信息安全的机密性、完整性和可用性这 3 个属性时,我们可以使用图 1-1 帮助记忆:

Linux系统安全(一):什么是安全?-InfoQ-1

图 1-1 信息安全的 C.I.A 金三角记忆图

在考虑信息安全的时候,必须把保障信息的机密性、完整性、可用性作为最重要目标,才能建立完善和有效的保护机制,避免顾此失彼。例如,在华为公司 2019 年一号文《全面提升软件工程能力与实践,打造可信的高质量产品——致全体员工的一封信》(电邮讲话【2019】001 号 签发人:任正非)指出,“公司已经明确,把网络安全和隐私保护作为公司的最高纲领。”其同时指出,“安全性(Security)”的要求就是“产品有良好的抗攻击能力,保护业务和数据的机密性、完整性和可用性。”

信息安全的木桶原理

一般来说,信息安全的攻击和防护是严重不对称的。相对来说,攻击成功很容易,防护成功却极为困难。信息安全水平的高低遵循木桶原理(Bucket effect),如图 1-2 所示:

Linux系统安全(一):什么是安全?-InfoQ-2

图 1-2 信息安全的木桶原理

如图 1-2 所示,虽然有多种多样的防护措施,但是信息安全水平有多高,却是取决于防护最薄弱的环节。木桶理论体现了安全体系建设中对整体性原则的要求。整体性原则要求我们从宏观的、整体的角度出发,系统地建设信息安全体系,一方面全面构架信息安全技术体系,覆盖从通信和网络安全、主机系统安全到数据和应用安全各个层面。另一方面,还要建立全面有效的安全管理体系和运行保障体系,使得安全技术体系发挥最佳的保障效果。

Linux 系统安全与信息安全的关系

“Linux 系统安全”与信息安全是什么样的关系呢?

首先,我们需要认识到,只有保障了 Linux 系统安全,才能保障依赖于其提供服务的信息安全。信息是有生命周期的,从其产生、收集、处理、传输、分析到销毁或者存档,每个阶段都可能有大量的设备、平台、应用介入。而为这些设备、平台、应用提供底层支持的,往往有大量的 Linux 系统(包括服务器和嵌入式设备等),其为信息的整个生命周期提供源源不断的动力支撑。

其次,我们也需要认识到,保障 Linux 系统安全是手段,保障信息安全是目的。如果一个 Linux 系统上没有存储任何有价值的信息,不生产或者传输有价值的信息,不处理和分析有价值的信息,那么这个系统也就失去了保护的价值。对 Linux 系统安全的关注,实际上是对真正有价值的信息的关注。

本文内容来自作者图书作品《Linux 系统安全:纵深防御、安全扫描与入侵检测》,点击购买

文章评论