软件安全最基本的要求
淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】
- 基本概念
- 病毒和木马
- 病毒(computer Virus)
- 特性
- 满足两个条件
- 蠕虫(worm)病毒
- 普通病毒和蠕虫病毒的区别
- 木马
- 病毒和木马的区别
- 软件漏洞
- 软件安全漏洞
- 缺陷和漏洞
- 电脑肉鸡
- 漏洞产生的原因
- 漏洞分类
- 0Day漏洞
- 1Day漏洞
- 已公开漏洞
- 漏洞产业链
- 漏洞库
- CVE
- NVD
- CNNVD
- CNVD
- 渗透测试
- 实验环境
- 两个显著特点
- 渗透测试方法
- 黑箱测试
- 白盒测试
- 隐秘测试
- linux基本命令
- 堆栈基础
- 问题回顾
- 内存区域
- 堆区和栈区
- 栈区
- 堆区
- 堆区和栈区的区别
- 堆结构
- 堆块
- 堆表
- 堆块的分配和释放
- 函数调用
- 函数调用例子
- 函数调用步骤
- 函数栈帧中包含的信息
- 常用寄存器
- 与栈相关的寄存器
- 指令寄存器EIP
- 主要寄存器
- 数据寄存器
- EAX
- EBX
- ECX
- EDX
- 变址寄存器
- 指针寄存器
- 段寄存器
- 指令指针寄存器
- 标志寄存器
- 汇编语言
- 汇编―寻址方式
- 指令寻址
- 顺序寻址方式
- 跳跃寻址方式
- 操作数寻址
- 立即寻址
- 直接寻址
- 间接寻址
- 相对寻址
- 基址变址寻址
- 相对基址变址寻址
- 汇编―主要指令
- 数据传送指令
- 位运算指令
- 算数运算指令
- 程序流程控制指令
- 条件转移命令
- 字符串操作指令集
- 汇编―函数调用示例
- 函数调用前
- 函数调用时
- Add函数的汇编代码
- 栈帧切换
- 函数状态保存
- 栈帧切换
- 执行函数体
- 栈帧情况
- 恢复状态
用csdn记录软件安全知识,方便复习以及为挖掘漏洞打好基础 由于是在本地写的,导入到csdn时由于gitee图床不能使用,文章的图片加载不出来,后续找到合适的图床,会更新。 后续考虑直接在csdn的编辑器里写文章 附上.md文件和图片的网盘链接: 提取码:kcef
”指编制或者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码“。
特性
- 感染性
- 潜伏性
- 特定的触发性
- 破坏性
满足两个条件
-
自我执行
它通常将自己的代码置于另一个程序的执行路径中
-
自我复制
它可能用受病毒感染的文件副本替换其他可执行文件,病毒既可以感染个人计算机,也可以感染网络服务器。
蠕虫病毒是一种常见的计算机病毒,它利用网络进行复制和传播。蠕虫病毒是自包含的程序(或是一套程序),它能传播自身功能的拷贝或自身的某些功能到其他的计算机系统中(通常是经过网络连接)。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2zxn9Nr3-【【QQ微信】】61)(【【微信】】3747【【微信】】.png)]
-
复制方式
普通病毒需要传播受感染的驻留文件来进行复制,而蠕虫不使用驻留文件即可在系统之间进行自我复制。
-
传染目标
普通病毒的传染能力主要是针对计算机内的文件系统而言,而蠕虫病毒的传染目标是*互联网内的所有计算机。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MRtpUQ5T-【【QQ微信】】62)(【【微信】】984350【【微信】】.png)]
木马(Trojan Horse),是指那些表面上是有用的软件,实际目的却是危害计算机安全并导致严重破坏的计算机程序。
-
是一种基于远程控制的黑客工具
-
具有非授权性
是指一旦控制端与服务端连接后,控制端将窃取到服务端的很多操作权限,一旦中了木马,你的系统很可能门户大开,毫无秘密可言。
-
具有隐蔽性
是指木马的设计者为了防止木马被发现,会采用多种手段隐藏木马,这样服务端即使发现感染了木马,也难以确定其具体位置。
- 木马不具有感染性,它不能像病毒那样复制自身,也并不刻意地感染其他文件,它主要通过将自身伪装起来,吸引用户下载执行。
- 木马一般主要以窃取用户相关信息或隐蔽性控制为主要目的。
相对病毒而言,可以简单地说,病毒破坏你的信息,而木马窥视你。
缺陷和漏洞
计算机软件是由计算机程序员开发出来的,不同程序员的编程水平不一样,就会造成软件存在这样或者那样的问题,这些问题可能会造成软件崩溃不能运行,我们称这些问题为软件缺陷(Bug)。
软件中存在的一些问题,可以在某种情况下被利用来对用户造成恶意攻击,比如给用户计算机上安装木马病毒,或者直接盗取用户计算机上的秘密信息,等等。这个时候软件的这些问题就不再是bug,而是一个软件安全漏洞,简称”软件漏洞“。
电脑肉鸡
受别人控制的远程电脑。肉鸡可以是各种系统,如windows,linux,unix等;更可以是一家公司、企业、学校甚至是政府军队的服务器。如果服务器软件存在安全漏洞, 攻击者可以发起“主动”进攻,植入木马,将该服务器变为一个任人宰割的“肉鸡”。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3eueq9Q9-【【QQ微信】】63)(124【【微信】】4830822【【微信】】.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NM【【微信】】【【QQ微信】】64)(【【微信】】92e8cdc73326.png)]
按照漏洞生命周期的阶段进行分类:
0Day漏洞
指还处于未公开状态的漏洞。这类漏洞只在攻击者个人或者小范围黑客团体内使用,网络用户和厂商都不知情,因此没有任何防范手段,危害非常大。
0day漏洞也是当前网络战中的核武器。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZJkn0E2G-【【QQ微信】】66)(79【【微信】】27738943112d77.png)]
1Day漏洞
通常指发布补丁时间不长的漏洞。由于了解此漏洞并且安装补丁的人还不多,这种漏洞仍然存在一定的危害。
已公开漏洞
已公开漏洞是指厂商已经发布补丁或修补方法,大多数用户都已打过补丁的漏洞。这类漏洞从技术上因为已经有防范手段,并且大部分用户已经进行了修补,危害比较小。
网络黑客产业链是指黑客们运用技术手段入侵服务器获取站点权限,以及各类账户信息并从中谋取非法经济利益的一条产业链。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HdRYxo72-【【QQ微信】】67)(55【【微信】】3353732【【微信】】.png)]
大量软件漏洞需要一个统一的命名和管理规范,以便开展针对软件漏洞的研究,提升漏洞的检测水平,并为软件使用者和厂商提供有关软件漏洞的确切信息。
漏洞信息数据库,可以找到操作系统和应用程序的特定版本所包含的漏洞信息,甚至针对某些漏洞的专家建议、修复办法和专门的补丁程序。极少的漏洞库还提供检测、测试漏洞的POC。POC(proof-of-concepts,为观点提供证据): 样本验证代码。
CVE
MITRE公司建立的通用漏洞列表CVE(【【微信】】s and Exposures)相当于软件漏洞的一个行业标准,实现了安全漏洞命名机制的规范化和标准化。
NVD
美国国家漏洞数据库NVD(【【微信】】ies Database)
NVD同时收录三个漏洞数据库的信息,CVE漏洞公告、【【微信】】漏洞公告、【【微信】】安全警告,也自己发布的漏洞公告和安全警告,是目前世界上数据量最大, 条目最多的漏洞数据库之一。
CNNVD
中国国家信息安全漏洞库CNNVD(China 【【微信】】y Database of Information Security)
CNVD
国家信息安全漏洞共享平台CNVD(China 【【微信】】y Database)
CNVD是【【微信】】联合国内重要信息系统单位、基础电信运营商、 网络安全厂商建立的信息安全漏洞信息共享知识库,致力于建立国家 统一的信息安全漏洞收集、发布、验证、分析等应急处理体系。
渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。
换句话来说,渗透测试是指渗透人员**在不同的位置 **(比如从内网、从外网等位置)利用各种手段对某个特定网络进行测试,以期发现和挖掘系统中存在的漏洞,然后输出渗透测试报告,并提交给网络所有者。网络所有者根据渗透人员提供的渗透测试报告,可以清晰知晓系统中存在的安全隐患和问题。
Kali Linux(Kali)是专门用于渗透测试的Linux操作系统。在Kali和DVWA(【【微信】】lication)环境下,演示渗透测试及Web安全的实验。
Kali是基于Debian类型的Linux系统版本。其包含在线、离线两种软件包管理工具,dpkg和apt。
-
dpkg(Debian Package)管理工具,软件包名以.deb后缀。这种方法适合系统不能联网的情况下。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Tn【【微信】】【【QQ微信】】68)(【【微信】】7b581eff686.png)]
-
APT(Ad【【微信】】)高级软件工具。这种方法适合系统能够连接互联网的情况。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LyxG3kFo-【【QQ微信】】68)(59【【微信】】99bb84d128.png)]
- 渗透测试是一个渐进的并且逐步深入的过程。
- 渗透测试是选择不影响业务系统正常运行的攻击方法进行的测试。
黑箱测试
黑箱测试又称为所谓的“Zero-Knowledge Testing”,渗透者完全处于对系统一无所知的状态, 通常这类型测试,最初的信息获取来自于DNS、 Web、Email及各种公开对外的服务器。
白盒测试
测试者可以通过正常渠道向被测单位取得各种资料,包括网络拓扑、员工资料甚至网站或其它程序的代码片断,也能够与单位的其它员工(销售、程序员、管理者…)进行面对面的沟通。
隐秘测试
通常情况下,接受渗透测试的单位网络管理部门会收到通知:在某些时段进行测试。因此能够监测网络中出现的变化。隐秘测试则被测单位也仅有极少数人知晓测试的存在,因此能够有效地检验单位中的信息安全事件监控、响应、恢复做得是否到位。
基本指令 | 功能 |
---|---|
ls | 显示文件或目录 |
mkdir | 创建目录 |
cd | 切换目录 |
touch | 创建空文件 |
cat | 查看文件内容 |
cp | 拷贝 |
mv | 移动或重命名 |
find | 在文件系统中搜索某文件 |
stat | 显示指定文件的详细信息,比ls更详细 |
who | 显示在线登陆用户 |
whoami | 显示当前操作用户 |
hostname | 显示主机名 |
uname | 显示系统信息 |
top | 动态显示当前耗费资源最多进程信息 |
ps | 显示瞬间进程状态 ps -aux |
du | 查看目录大小 du -h /home带有 单位显示目录信息 |
df | 查看磁盘大小 df -h 带有单位显示磁盘信息 |
ifconfig | 查看网络情况 |
ping | 测试网络连通 |
netstat | 显示网络状态信息 |
man | 命令不会用了?用man指令,如:man ls |
clear | 清屏 |
kill | 杀死进程,可以先用ps或top命令查看进程的id,然后再用kill命令 |
编制程序的四个步骤
编辑、编译、链接、运行
编译――检查语法并对单个文件产生可执行程序
链接――多个可执行文件进行关联(函数调用信息),增加启动程序等
如何认识BUG和漏洞
BUG就是缺陷,一种表现就是用户部分操作导致程序崩溃,比如输入过长、除以0等。
程序崩溃就意味着用户的输入会影响程序正常执行,意味着可能通过BUG提供的入口输入构造的恶意程序让程序做非法的事情。因此,在安全人眼中,BUG是一种软件漏洞。
漏洞是网络安全的源起之地。
一个进程可能被分配到不同的内存区域去执行:
-
代码区
通常是指用来存放程序执行代码的一块内存区域,这个区域存储着被装入执行的二进制机器代码,处理器会到这个区域取值并执行。
-
静态数据区
通常是指用来存放程序运行时的全局变量、静态变量等的内存区域。通常,静态数据区包括初始化数据区(Data Segment)和未初始化数据区(BSS Segment)两部分。未初始化数据区存放的是未初始化的全局变量和静态变量,特点是可读写,在程序执行之前BSS段会自动清0。
-
堆区
用于动态地分配进程内存。进程可以在堆区动态地请求一定大小的内存,并在用完之后归还给堆区。动态分配和回收是堆区的特点。
-
栈区
用于支持进程的执行,动态地存储函数之间的调用关系、局部变量等,以保证被调用函数在返回时恢复到母函数中继续执行。
进程内存的精确组织形式依赖于操作系统、编译器、链接器以及载入器,不同操作系统有不同的内存组织形式。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zY6GjWvP-【【QQ微信】】70)(81bb【【QQ微信】】328【【微信】】.png)]
程序在执行的过程需要两种不同类型的内存来协同配合,即栈区和堆区。
栈区
栈(stack)区主要存储函数运行时的局部变量、数组等。栈变量在使用时不需要额外的申请操作,系统栈会根据函数中的变量声明自动为其预留内存空间; 同样,栈变量的释放也无需程序员参与,由系统栈跟随函数调用的结束自动回收。
栈区是向低地址扩展的数据结构,是一种先入后出的特殊结构。栈顶的地址和栈的最大容量是系统预先规定好的,在WINDOWS下,栈的默认大小是2M,如果申请的空间超过栈的剩余空间时,将提示溢出。
堆区
堆(heap)区是一种程序运行时动态分配的内存。所谓动态,就是说所需内存的大小在程序设计时不能预先确定或者内存过大无法在栈区分配,需要在程序运行的时候参考用户的反馈。
堆区在使用的时候需要程序员使用专有的函
从零学股票
- 播报 编辑 锁定 讨论 上传视频 创建人物关系 特型编辑
- 作 者
- 常敏
- 出版时间
- 2011年7月
- 出版社
- 电子工业出版社
- 页 数
- 257 页
- ISBN
- 9787121137648
- 定 价
- 38 元
-
跟我从零学
【书名】跟我从零学 ? 【推荐理由】 本书由资深电脑教育项目组以初学者为切入点,精心策划编写而成,内容涵盖电脑基础操作的各个方面,从零起步,循序渐进,讲解清晰明了,深入浅出,简单易学,让读者一看就懂,一练就会. ? 【图书核心观点】书注重培养读者
- 参考资料
-
- 1 跟我从零学 .豆瓣读书[引用日期2013-06-27]