第一章 软件安全概述

news/2024/11/28 10:42:17/

1.1.1 信息的定义

信息论的创始人 香农 指出:信息是用来消除随机不定性的东西。
信息(Information)是物质运动规律总和,信息不是物质,也不是能量。
信息的重要特征:价值,即可用来消除不确定性。
信息有多种表现形式,可以打印书写到纸上,可以以电子数据的方式存储,可以通过邮寄或者电子邮件的形式传播,可以以胶片形式显示或者交谈表达。总之,信息无处不在。

1.1.2 信息的属性

信息是具有价值的,而其价值则是通过其具体属性来体现的。

信息的安全属性:
● 真实性
● 保密性
● 完整性
● 可用性
● 不可抵赖性
● 可控制性
● 可审查性

1.1.3 信息安全

信息的价值和流动性是信息安全问题存在的根源。
信息的直接或潜在价值使其成为攻击者实施攻击的重要目标,由于信息通常是流动的,信息在流动过程中,也大大增加了其价值被他人获取的隐患。

人们对信息安全的认识经历了数据保密阶段(强调保密通信)、网络信息安全时代(强调网络环境)和目前的信息保障时代(强调不能被动地保护,需要“保护-检测-反应-恢复”四个环节)。

信息安全的定义:
CIA:信息安全是对信息的保密性(confidentiality)、完整性(integrity)和可用性(availability)的保持。
信息安全的实质:要保护信息系统或信息网络中的信息资源免受各种类型的威胁,干扰和破坏,以维护信息的价值,促进业务的连续性。
信息保障机制PDRR:Protection + Detection + Reaction + Restoration
P2DR2:信息安全是研究在特定的应用环境下,依据特定的安全策略(policy),对信息及其系统实施保护(protection)、检测(detection)、响应(reaction)和恢复(restoration)的科学。

信息安全威胁方式:
● 信息中断:使得信息不可获得,如DDoS攻击。 破坏信息的可用性
● 信息截取:使得信息中途被人获取,如网络数据包嗅探攻击。 破坏信息的保密性
● 信息修改:使得信息被非法篡改,如网站首页被非法篡改。 破坏信息的完整性
● 信息伪造:使得信息来源和内容不可信,如邮件伪造。 破坏信息的真实性

信息系统

狭义定义:是以提供信息服务为主要目的的数据密集型、人机交互的计算机应用系统。
广义信息系统 ≠ 计算机应用系统。

网络空间

是信息时代人类赖以生存信息环境,是所有信息系统的集合,以计算机和网络系统实现的信息化为特征。

1.2 软件安全

软件安全是使软件在受到恶意攻击的情形下依然能够继续正确运行的工程化软件思想。
解决软件安全问题的根本方法就是改善我们建造软件的方式,以建造健壮的软件,使其在遭受恶意攻击时依然能够安全可靠和正确运行。
软件安全威胁主要包括三个方面:软件自身安全(软件缺陷与漏洞)、恶意软件攻击与检测、软件逆向分析(软件破解)与防护。

1.3.1 软件缺陷与漏洞

软件缺陷(defect),又被称作Bug,是指计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。缺陷的存在会导致软件产品在某种程度上不能满足用户的需要。
漏洞,是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而使攻击者能够在未授权的情况下访问或破坏系统。
软件漏洞,是指软件在设计、实现、配置策略及使用过程中出现的缺陷,其可能导致攻击者在未授权的情况下访问或破坏系统。

软件缺陷和漏洞被触发后的威胁:
● 软件正常功能被破坏
● 系统被恶意控制
任何软件都是存在漏洞的。
攻击者通过精心设计构造攻击程序(通常成为exploit),准确触发软件漏洞,并利用该软件漏洞在目标系统中插入并执行精心设计的代码(通常称作shellcode或payload),从而获得对目标系统的控制权。

1.3.2 恶意软件

恶意软件:指那些设计目的是为了实施特定恶意功能的一类软件程序。
最典型的恶意软件包括:计算机病毒、特洛伊木马、后门、僵尸、间谍软件等。

系统被植入恶意软件后的威胁:
● 已有软件的功能被修改或破坏
● 目标系统中的重要数据被窃取
● 目标系统中的用户行为被监视
● 目标系统被控制

1.3.3 软件破解

软件破解,即通过对软件自身程序进行逆向分析,发现软件的注册机制,对软件的各类限制实施破解,从而使得非法使用者可以正常使用软件。
软件破解是对版权和安全的一个重大挑战。

1.4 软件安全防护

  1. 强化软件工程思想,将安全问题融入到软件的开发管理流程之中,在软件开发阶段尽量减少软件缺陷和漏洞的数量。即安全设计应该贯穿到软件的整个发开过程之中。
    最典型和成功的是微软推出的SDL开发模式,即信息技术安全开发生命周期流程(SDL-IT)。

  2. 保障软件自身运行环境,加强系统自身的数据完整性校验。
    可信计算平台的基本思想:首先建立一个信任根,信任根的可信性由物理安全和管理安全确保(目前是以TPM作为信任根),再建立一条信任链,从信任根开始到硬件平台、到操作系统、再到应用,一级认证一级,一级信任一级,从而把这种信任边界扩展到整个计算机系统。

  3. 加强系统自身软件的行为认证——软件动态可信认证
    在确保软件数据完整性的前提下,如何确保软件的行为总是以预期的方式,朝着预期的目标运行,这是软件动态运行可信问题。软件动态行为可信性是衡量软件是否可信的重要依据,是可信软件追求的最终目标。
    我国,国家自然科学基金委2007年启动了“可信软件基础研究”重大研究计划。

  4. 恶意软件检测与查杀
    反恶意软件主要用来对外来的恶意软件进行检测。通常采用病毒特征值检测、虚拟机、启发式扫描、主动防御、云查杀等方法对病毒进行检测。

  5. 黑客攻击防护——主机防火墙、HIPS
    主机防火墙(如天网、OutPost等)可以依据黑客防护策略对进出主机的网络流量进行有效拦截,
    HIPS(Host-based Intrusion Prevention System,如SSM等)可以有效拦截主机上的可疑软件行为,从而有效拦截恶意软件的攻击。

  6. 系统还原
    系统还原技术的核心思想是将关键系统文件或指定磁盘分区还原为之前的备份状态,从而将已有系统中的恶意程序全部清除,以保护系统安全。

  7. 虚拟机、沙箱隔离技术等
    虚拟机:用户可以通过在不同的虚拟机中分别进行相关活动(如上网浏览、游戏或网银等重要系统登录),从而将危险行为隔离在不同的系统范围之内,保障敏感行为操作的安全性。
    沙箱,也叫沙盘或沙盒,在沙箱之中的软件行为及其产生的系统修改是被隔离起来的,因此沙箱通常用于运行一些疑似危险样本,从而隔离安全威胁,也可以用于恶意软件分析。


http://www.ppmy.cn/news/132444.html

相关文章

R软件下载与安装

1. R软件的下载 官方网址:https://cran.r-project.org/ 进入网站之后,会有针对不同系统的R软件可供选择,这里以Windows系统为例做下载介绍: 点击 Download R for Windows 之后进入下图所示的界面,点击base 进入下图…

分享一份适合练手的软件测试实战项目

最近,不少读者托我找一个能实际练手的测试项目。开始,我觉得这是很简单的一件事,但当我付诸行动时,却发现,要找到一个对新手友好的练手项目,着实困难。 我翻了不下一百个web网页,包括之前推荐练…

软件工程发展史

2010年-2020年软件工程发展史 世界软件工程发展史引言:特点:1、全球化:2、模块化:3、开发化: 软件工程的新发展: 中国软件工程发展史引言:发展现状:成绩:问题&#xff1a…

软件安全设计

文章目录 一、软件设计与软件安全设计1、软件设计的主要工作2、软件安全设计的主要工作 二、软件安全设计原则1、经典的设计原则2、通用安全设计原则介绍 三、软件安全功能设计1、应用安全功能设计2、基于安全模式的软件安全设计 四、威胁建模1、威胁建模的概念2、威胁建模的流…

软件安全概述

文章目录 1、软件安全的重要性2、软件安全面临的威胁3、软件安全的概念用信息安全基本要素解读软件安全相关概念辨析 4、软件安全的研究内容信息保障的概念软件安全的主要方法和技术 1、软件安全的重要性 相关定义: 零日漏洞:未被公开过的漏洞&#xf…

电脑能正常上网上网,某些软件不能上网

一、问题描述 某些时候电脑能,正常上网,可是有些软件就是不能连接到网络,比如搜狗输入法不能连接到网络。(例如:下图) 二、解决方案 2.1 打开Internet软件 2.2 进入Internet 选项 2.3 连接 --> 局域网…

什么是D3.js

D3js是什么 D3js 是一个可以基于数据来操作文档的 JavaScript 库。可以帮助你使用 HTML, CSS, SVG 以及 Canvas 来展示数据。D3 遵循现有的 Web 标准,可以不需要其他任何框架独立运行在现代浏览器中,它结合强大的可视化组件来驱动 DOM 操作。 D3 可以将…

D3教程

1. 第一步&#xff0c;‘安装’D3 D3 是一个 JavaScript 函数库&#xff0c;并不需要npm那种安装&#xff0c;它只有一个文件&#xff0c;在 HTML 中引用即可。在d3官网可以下载所需文件。或者直接引入cdn链接。 <!DOCTYPE html> <html lang"en"> <…