软件安全概述

news2025/1/13 7:35:46

软件定义是:计算机程序、规则和可能相关的文档。

        软件是程序、数据和文档的集合体。

零日漏洞、零日攻击

  1. 零日漏洞是指未被公开披露的软件漏洞,没有给软件的作者或厂商以时间去为漏洞打补丁或是给出建议解决方案,从而攻击者能够利用这种漏洞破坏计算机程序、数据及设备

  2. 利用零日漏洞开发攻击工具进行的攻击称为零日攻击。

软件面临哪些安全威胁?

1)软件漏洞

        软件漏洞通常被认为是软件生命周期中与安全相关的设计错误、编码缺陷及运行故障等。

2)恶意代码

        恶意代码(Malicious Software,Malware)是在未被授权的情况下,以破坏软硬件设备、窃取用户信息、干扰用户正常使用、扰乱用户心理为目的而编制的软件或代码片段。

3)软件侵权

        主要指侵犯版权(著作权)

用信息安全的基本属性理解软件安全

保密性(Confidentiality)

        信息安全中的保密性,也称为机密性,是指信息仅被合法的实体(如用户、进程等)访问,而不被泄漏给未授权实体的特性。

        保密性还包括保护数据的存在性,有时候存在性比数据本身更能暴露信息。

        软件产品保护信息和数据的能力,以使未授权人员或系统不能阅读或修改这些信息和数据,而不拒绝授权人员或系统对它们的访问

        对系统各项的保护,使其免于受到偶然的或恶意的访问、使用、更改、破坏及泄露。

        实现保密性的方法一般是通过物理隔离,信息加密,或是访问控制

完整性(Integrity)

        信息安全中的完整性是指,信息在存储、传输或处理等过程中不被未授权、未预期或无意地篡改、销毁等破坏的特性。

         不仅仅要考虑数据的完整性,还要考虑操作系统的完整性,即保证系统以无害的方式按照预定的功能运行,不被有意的或者意外的非法操作所破坏。

        可以将软件完整性理解为软件产品能够按照预期的功能运行,不受任何有意的或者无意的非法错误所破坏的软件安全属性。

        实现完整性的方法一般分为预防和检测两种机制。 预防机制通过阻止任何未经授权的方法来改写数据的企图,如加密、访问控制,以确保数据的完整性。

         检测机制并不试图阻止完整性的破坏,而是通过分析数据本身或是用户、系统的行为来发现数据的完整性是否遭受破坏,如数字签名、哈希(Hash)值计算等。

可用性(Availability)

        信息安全中的可用性是指,信息、信息系统资源和系统服务可被合法实体访问并按要求使用的特性。 例如,对信息资源和系统服务的拒绝服务攻击就属于对可用性的破坏。

        为了实现可用性可以采取备份与灾难恢复、应急响应、系统容侵等许多安全措施。

PDRR 模型

        人、技术和操作是3个核心因素,包括了主机、网络、系统边界和支撑性基础设施等多个网络环节之中,如何实现保护(Protection)、检测(Detection)、响应(Reaction)和恢复(Restore)有机结合的动态技术体系,这就是所谓的PDRR(或称PDR2)模型

软件安全防护的基本方法

        漏洞是引发信息安全事件产生的根源,软件漏洞尤其如此。恶意代码通常也是针对漏洞而编写出来的,软件侵权的成功往往跟软件漏洞也有密切的关系。因此,软件安全防护围绕漏洞消除展开。 将安全保障措施置于软件发布运行之时:采用多种检测、分析、挖掘技术对安全错误或是安全漏洞进行发现、分析、评价,然后采取多种安全控制措施进行错误修复和风险控制,如传统的打补丁、防病毒、防火墙、入侵检测、应急响应等。 该方法在时间和经济上投入产出比低,信息系统的安全状况很难得到有效改善。

        分析软件安全错误发生的原因,将安全错误的修正嵌入到软件开发生命周期的整个阶段。通过对需求分析、设计、实现、测试、发布,以及运维等各阶段相关的软件安全错误的分析与控制,以期大大减少软件产品的漏洞数量,使软件产品的安全性得到有效提高。 该方法是将安全保障的实施开始于软件发布之前,尤其强调从软件生命周期的早期阶段开始安全考虑,从而减少软件生命周期的后期系统运行过程中安全运维的工作量,提高安全保障效果。 从系统开发需求阶段就引入安全要素要比在系统维护阶段才考虑安全问题所花费的错误修复成本要低很多。

软件安全防护的主要技术

1)软件安全属性的认知

2)系统安全工程

        运用系统工程的思想和方法,系统地分析信息系统存在的安全漏洞、风险、事件、损失、控制方法以及效果之间复杂的对应关系,对信息系统的安全性进行分析与评价,以期建立一个有效的安全防御体系,而不是简单的安全产品堆砌。 系统安全工程可以在系统生命周期的不同阶段对安全问题提供指导,例如,对于已经发布运行的软件,可以采用系统测试、风险评估与控制等方法构建安全防御体系;而对于尚待开发的系统,也可以应用系统安全工程的思想方法来提高目标系统的安全性。这是一项具有挑战性的工作,也是本书的出发点

3)软件安全开发

        软件安全开发关注的是如何运用系统安全工程的思想,以软件的安全性为核心,将安全要素嵌入软件开发生命周期的全过程,有效减少软件产品潜在的漏洞数量或控制在一个风险可接受的水平内,提高软件系统的整体安全性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/601774.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ROS:话题消息(Message)的定义与使用

目录 一、话题模型二、自定义话题消息2.1定义msg文件2.2在package.xml中添加功能包依赖2.3在CMakeLists.txt中添加编译选项2.4编译生成C头文件或Python库 三、创建代码并编译运行(C)3.1创建代码3.2编译 四、运行 一、话题模型 自定义一个消息类型“Pers…

python接口测试之测试报告

在本文章中,主要使用jenkins和编写的自动化测试代码,来生成漂亮的测试报告,关于什么是CI这些我就不详细的介绍了,这里我们主要是实战为主。 首先搭建java的环境,这个这里不做介绍。搭建好java的环境后,在h…

Python:Python编程:从入门到实践__超清版:Python标准库:线程

Python线程与安全 实现线程安全有多重方式,常见的包括:锁,条件变量,原子操作,线程本地存储等。 💚 1. 锁2. 条件变量3. 通过 join 阻塞当前线程4. 采用 sleep 来休眠一段时间5. 原子操作5.1 使用 threading…

【I2C】Linux I2C子系统分析

文章目录 一、I2C体系架构二、主要的结构体1. i2c_adapter2. i2c_algorithm3. i2c_driver4. i2c_client4.1 方式一:通过I2C bus number静态方式来创建4.2 方式二:通过Device Tree来创建4.3 方式三:直接通过i2c_new_device来创建4.3 方式四&am…

openEuler22.03制作openstack平台使用的镜像

系列文章目录 第一章 openEuler22.03制作openstack平台使用的镜像 文章目录 系列文章目录前言一、virt-manager上的准备工作1、网卡类型切换为virtio2、IDE驱动设置成Virtio3、Display设置成vnc3、虚拟机系统分区 二、安装普通工具包三、安装云化工具包1、安装工具包2、修改配…

数字化转型,企业为什么要转型?如何转型?

数字化转型是利用数字化技术(例如云计算、大数据、人工智能、物联网、区块链等)和能力来驱动组织商业模式创新和商业生态系统重构的途径和方法即是数字化转型。其目的是实现企业业务的转型、创新、增长。 核心强调了两点,其一是数字化技术的应…

每日一练 | 华为认证真题练习Day51

1、如下图所示,IPSec传输模式中AH的头部应该插入到以下哪个位置? A. 1 B. 2 C. 3 D. 4 2、以下哪种远程登录方式最安全? A. Telnet B. Stelnet v100 C. Stelnet v2 D. Stelnet v1 3、以下业务模块的ACL默认动作为permit的是&#xff1…

玩转 ChatGPT,看这条就够了,Prompt 最全中文合集

Prompt 最全中文合集 玩转 ChatGPT,看这条就够了! 🚀 简化流程:ChatGPT Shortcut 提供了快捷指令表,可以快速筛选和搜索适用于不同场景的提示词,帮助用户简化使用流程。 💻 提高生产力&#…

CSDN打出各种数学符号和数学公式

目录 1、基本四则运算2、指数对数3、根号、省略号、向量4、大(小)于等于号5、特殊符号、希腊字母符号6、累加累乘7、矩阵8、更改公式中的颜色 我们在用CSDN打出各种数学符号和数学公式时,需要学习一些关于LaTex的语法,在此做一个记…

java数组学习

一、数组的概述 1.数组的理解:数组(Array),是多个相同类型数据按一定顺序排列的集合, 并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。 2.数组相关的概念: >数组名 >元素 >角标、下标、索引 >数组的长度:元素…

联通云数据库CUDB:基于openGauss打造新一代自主创新云原生数据库

总体概述 联通云彰显央企担当,围绕国家对信息技术基础软件的政策要求,开展数据库自主研发。在openGauss开源社区版软件基础上,聚焦政企市场,坚持内核创新,完善工具生态,基于海量云存储能力、存算分离架构…

React中的懒加载以及在Ice中实践

您好,如果喜欢我的文章,可以关注我的公众号「量子前端」,将不定期关注推送前端好文~ 前言 对于页面性能优化,组件懒加载是个比较不错的方案,并且在整个项目打包后,如果未做代码分割,构建出的文…

代理ip的优势、用途及注意事项

随着互联网的高速发展,代理ip的名气和地位也随着水涨船高。那么是什么让它们被我们所知悉的呢?下面我们就代理ip的优势、用途和注意事项来分析一下它为什么能迎合着互联网的发展而壮大自己的。 一、优势 每一个脱颖而出的产品必然有它的优势,…

Axure教程—菜单(中继器)

本文将教大家如何用AXURE中的中继器制作菜单(自动折叠其他菜单) 一、效果介绍 如图: 预览地址:https://iuek50.axshare.com 下载地址:https://download.csdn.net/download/weixin_43516258/87854640?spm1001.2014.30…

知识图谱简介

什么是知识图谱? 参考:知识图谱1、知识图谱2 本质上,知识图谱主要目标是用来描述真实世界中存在的各种实体和概念,以及他们之间的关系,因此可以认为是一种语义网络。 主要作用:通过数据,建立图…

智能自动化助力业务升级:探究低代码开发和业务流程自动化

当我们开始探索业务流程自动化(BPA)时,就证明我们已经真正进入到企业数字化转型的核心领域了——企业越来越关注如何通过创新技术来提高效率、降低成本并实现业务流程的自动化。在这个背景下,低代码开发平台和业务流程自动化成为了…

vue 滚动加载

在 Vue中,如果一个组件是一个 button,那就可以直接调用 input ()方法,将组件的 button放入到v-ui中。 然而在v-ui中,一个组件可能不止一个 button,而这些 button还需要从浏览器加载到 DOM树中。…

一个投喂ChatGPT大内容的小技巧

大家好,我是五竹。心血来潮整理了一份手册:《ChatGPT学习指南》并且将为小白们持续更新和GPT相关的资源和教程,专注于打造一部最好的GPT入门指南,欢迎大家转发、收藏、点赞支持!谨防失联! 至今还有很多人都…

渗透测试适合小白学习吗会让人感觉到无聊吗?

渗透测试是一项复杂的技能,需要具备扎实的计算机知识,对网络和系统安全有深入的理解和认识。对于初学者来说,建议先学习计算机网络、操作系统、编程语言等相关基础知识,了解渗透测试的概念、流程和常用工具。同时,需要…

HMR API及其原理

很久之前,遇到一个面试题:【在代码变更之后,如何实时看到更新后的页面效果呢?】 在传统的方案中,我们可以通过 live reload 也就是自动刷新页面的方式来解决的,不过随着前端工程的日益庞大,开发…