学习笔记和视频来自B站UP主 【泷羽sec】****如涉及侵权马上删除文章。
笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。
安全见闻-开拓眼界
学无止境,网络安全包罗万象永远在学习中!
一、计算机语言
一、编程语言
C 语言:一种通用的、面向过程的编程语言,广泛应用于系统软件和嵌入式开发。
C++:在 C 语言基础上发展而来,支持面向对象编程,常用于游戏开发、高性能计算等领域。
Java:一种广泛使用的面向对象编程语言,具有跨平台性,应用于企业级应用开发等。
Python:简洁易学,拥有丰富的库,适用于数据分析、人工智能、Web 开发等。
JavaScript:主要用于网页前端开发,也可用于服务器端开发(Node.js)。
C#:由微软开发,主要用于 Windows 平台上的应用开发。
Ruby:一种简洁而富有表现力的编程语言,常用于 Web 开发。
PHP:主要用于 Web 开发,尤其适合服务器端脚本编程。
Go:一种高效、简洁的编程语言,适用于网络编程和云计算等领域。
Swift:苹果公司开发的编程语言,用于 iOS 和 macOS 应用开发。
Kotlin:可与 Java 互操作,主要用于 Android 开发。
二、函数式编程语言
Haskell:纯函数式编程语言,以强大的类型系统和数学上的严谨性著称。
Lisp(包括 Common Lisp、Scheme 等):历史悠久的编程语言家族,以其高度的灵活性和宏系统闻名。
Clojure:运行在 Java 虚拟机上的 Lisp 方言,结合了函数式编程和 Java 平台的优势。
三、数据科学和机器学习领域
R:在统计分析和数据可视化方面应用广泛。
Julia:设计用于高性能科学计算和数据分析。
四、Web 全栈开发
JavaScript是 Web 的编程语言。所有现代的 HTML 页面都可以使用 JavaScript。
TypeScript:是 JavaScript 的超集,增加了静态类型检查等特性,提高了大型项目的开发效率。
ArkTS 语言是鸿蒙生态的应用开发语言。它在保持TypeScript(简称TS)基本语法风格的基础上,进一步通过规范强化静态检查和分析,使得在程序运行之前的开发期能检测更多错误,提升代码健壮性,并实现更好的运行性能。
五、移动开发
Objective-C:曾经是 iOS 开发的主要语言,现在逐渐被 Swift 取代。
六、嵌入式系统开发
Assembly Language(汇编语言):不同的处理器架构有不同的汇编语言,用于对硬件进行底层控制。
七、其他
Pascal:曾经在教学和早期软件开发中有广泛应用。
Delphi(基于 Object Pascal):用于快速应用开发。
Scala:融合了面向对象编程和函数式编程,运行在 Java 虚拟机上。
Elixir:基于 Erlang 虚拟机,具有高并发和容错性,适合构建分布式系统。
选择大于努力,样样精通不可能,确定自己语言的学习方向和用途。
二、软件程序
web程序网站
Web应用程序B/S、C/S架构的程序等等
二进制程序
用于逆向等
驱动程序
可能就是二进制程序写的,那他的本质也是二进制程序,所以说很多东西都是混杂在一起的,驱动程序也属于软件 以Windows为例后缀为sys结尾的都属于驱动程序范围内
上位机
上位机指可以直接发送操作指令的计算机或单片机,一般提供用户操作交互界面并向用户展示反馈数据。
脚本程序
脚本程序就太多了,lua,php,java(也可以算是脚本)
操作系统
操作系统也属于软件程序的一种,只不过是很大的一个软件,但是从本质来讲也属于软件程序的范畴,这是我们要理解的,不要觉得操作系统就很厉害很神秘,它确实技术含量高但也是个软件
裸板程序
比如说搞web渗透,搞二进制的,写代码都是基于操作系统去写的,没有操作系统你们什么都写不了,这就是事实,但是还有一种程序也就是裸板程序,直接在stm32上写一段代码,或者我们的单片机上写一个代码,这就是裸板程序,裸板程序是没有操作系统的概念的,也没有进程这种概念,所以有些东西需要我们自己去模拟才行,有操作系统就特别方便,裸板程序也是软件程序的一种,它就是一个代码组成的
机器学习
一般用python去编写,但是像go之类的编程语言都是可以写的,但是归根结底它也就是个程序而已,
量子计算、工控程序、bios程序等等
三、操作系统
非实时操作系统
ios
mac
linux
android
Windows
实时操作系统
wince
vxworks
RT-Thread
非实时操作系统主要致力于在各种情况下提供良好的整体性能、用户体验和多任务处理能力,但不能保证在严格的时间限制内对事件作出响应。与之相对的是实时操作系统(RTOS),实时操作系统能够在确定的时间内对外部事件作出响应并完成特定的任务,具有严格的时间确定性和可预测性,常用于对时间要求极为严格的嵌入式系统、工业控制等领域
四、网络通讯
一、硬件设备
计算机硬件
中央处理器(CPU):计算机的核心部件,负责执行指令和处理数据。它的性能决定了计算机的运行速度。
内存:用于存储正在运行的程序和数据,它的容量和速度对计算机的性能有很大影响。
硬盘:用于长期存储数据,包括操作系统、应用程序、文件等。硬盘的容量和读写速度也是影响计算机性能的重要因素。
显卡:用于处理图形和图像数据,它的性能决定了计算机的图形处理能力。对于游戏玩家和图形设计师来说,显卡的性能非常重要。
主板:是计算机的核心电路板,连接着各种硬件设备,如 CPU、内存、硬盘、显卡等。主板的质量和性能对计算机的稳定性和扩展性有很大影响。
网络硬件
网络服务器:提供网络服务,如文件存储、电子邮件、Web 服务等。网络服务器通常具有较高的性能和可靠性,以满足大量用户的需求。
网络存储设备:用于存储网络中的数据,如网络附加存储(NAS)和存储区域网络(SAN)。它们提供了大容量、高可靠性的数据存储解决方案。
网络打印机:可以通过网络连接被多台计算机共享,方便用户打印文件。
网络摄像头:用于视频监控和远程会议等应用。它可以通过网络将视频信号传输到其他设备上。
移动设备硬件
智能手机:集成了多种功能,如通信、拍照、娱乐、办公等。智能手机的硬件包括处理器、内存、存储、屏幕、摄像头等。
平板电脑:类似于智能手机,但屏幕更大,适合阅读、浏览网页、观看视频等。平板电脑的硬件也包括处理器、内存、存储、屏幕、摄像头等。
可穿戴设备:如智能手表、智能手环等,它们可以监测用户的健康数据、运动数据等,并与智能手机等设备进行连接和交互。可穿戴设备的硬件包括传感器、处理器、内存、存储、屏幕等。
硬件发展趋势
小型化:硬件设备越来越小型化,便于携带和使用。例如,智能手机、平板电脑等移动设备的体积越来越小,性能却越来越强。
高性能:随着技术的不断进步,硬件设备的性能不断提高。例如,CPU 的处理速度越来越快,内存和存储的容量越来越大,显卡的图形处理能力越来越强。
智能化:硬件设备越来越智能化,能够自动适应不同的环境和用户需求。例如,智能手机可以根据用户的使用习惯自动调整屏幕亮度、音量等设置。
互联互通:硬件设备之间的互联互通越来越紧密,形成了一个庞大的物联网。例如,智能家居设备可以通过网络连接实现自动化控制,智能汽车可以与其他车辆和交通设施进行通信。
二、网络
网络类型
局域网(LAN):覆盖范围较小,一般在一个建筑物或一个校园内。例如,公司办公室内的网络就是一个局域网,用于员工之间共享文件、打印机等资源。
城域网(MAN):覆盖范围较大,一般在一个城市内。例如,城市的有线电视网络、宽带网络等。
广域网(WAN):覆盖范围非常大,可以跨越国家和地区。例如,互联网就是一个广域网,连接了全球各地的计算机和网络设备。
网络协议
TCP/IP 协议:是互联网的基础协议,包括传输控制协议(TCP)和网际协议(IP)。TCP 负责数据的可靠传输,IP 负责数据的路由和寻址。
HTTP 协议:超文本传输协议,用于在 Web 浏览器和 Web 服务器之间传输超文本数据,如网页、图片、视频等。
FTP 协议:文件传输协议,用于在计算机之间传输文件。
SMTP、POP3 和 IMAP 协议:用于电子邮件的发送和接收。(端口协议)
网络设备
路由器:连接不同的网络,实现网络之间的数据转发。它根据 IP 地址和路由表来确定数据的传输路径。
交换机:在局域网中连接多台计算机,实现数据的快速交换。它根据 MAC 地址来转发数据帧。
网卡:安装在计算机上,用于连接网络。它将计算机的数据转换为网络信号进行传输,并接收网络信号转换为计算机可识别的数据。
无线接入点(AP):提供无线网络连接,使无线设备能够接入局域网或广域网。
网络安全
防火墙:用于保护网络免受外部攻击,它可以根据预设的规则过滤网络流量。waf等等
加密技术:对数据进行加密,防止数据被窃取或篡改。例如,SSL/TLS 协议用于在 Web 浏览器和 Web 服务器之间进行加密通信。
身份认证:确保只有授权用户能够访问网络资源,常见的身份认证方式有用户名和密码、数字证书、生物识别等。
软件程序
通讯协议 tcp ip udp 等
五、人工智能
机器学习 python
工作流程
数据收集
来源:可以从各种渠道获取数据,如数据库、文件、传感器、网络等。
类型:包括结构化数据(如表格数据)、半结构化数据(如 XML、JSON 格式的数据)和非结构化数据(如文本、图像、音频等)。
数据预处理
数据清洗:去除噪声数据、处理缺失值、纠正错误数据等。例如,对于包含缺失值的数据集,可以采用均值填充、中位数填充等方法进行处理。
数据归一化:将数据的特征值缩放到一个特定的范围内,以提高算法的性能和稳定性。常见的归一化方法有最小 - 最大归一化、Z-score 标准化等。
特征提取:从原始数据中提取出有用的特征,以便机器学习算法能够更好地处理和理解数据。例如,在图像识别中,可以提取图像的颜色、纹理、形状等特征。
模型选择与训练
根据任务类型和数据特点选择合适的机器学习算法。例如,对于分类问题可以选择决策树、支持向量机等算法;对于回归问题可以选择线性回归、随机森林等算法。
将预处理后的数据分为训练集和测试集。训练集用于训练模型,测试集用于评估模型的性能。
使用训练集对模型进行训练,通过调整模型的参数使得模型在训练集上的损失函数最小化。
模型评估与优化
使用测试集对训练好的模型进行评估,常用的评估指标有准确率、精确率、召回率、F1 值、均方误差等。
根据评估结果对模型进行优化,可以调整模型的参数、更换算法、增加数据量等。例如,如果模型在测试集上的准确率较低,可以尝试增加训练数据的数量或调整模型的超参数。
模型应用
将优化后的模型应用到实际问题中,进行预测、分类、聚类等任务。
对模型的应用结果进行监控和评估,不断改进模型以提高性能。
深度学习
深度学习的基本原理主要包括以下几个方面:
一、神经网络基础
神经元模型
深度学习的基础是人工神经网络,其灵感来源于生物神经系统。神经网络中的基本单元是神经元,它接收多个输入信号,对这些信号进行加权求和,然后通过一个激活函数处理得到输出。
例如,典型的神经元接收来自其他神经元或输入层的数据,每个输入都有一个对应的权重。假设输入为
,对应的权重为,则神经元的加权输入总和为,其中是偏置项。然后,通过激活函数
得到神经元的输出。
多层神经网络
深度学习中的神经网络通常由多个层次组成,包括输入层、隐藏层和输出层。
输入层接收原始数据,隐藏层对数据进行多层次的特征提取和变换,输出层产生最终的预测结果。
例如,在图像识别任务中,输入层接收图像的像素值,隐藏层逐步提取图像的边缘、纹理、形状等特征,最后输出层给出图像所属的类别
了解计算机的科普见解
安全见闻-web程序
web程序
一般由 前端-后端-数据库-服务器
前端语言
前端潜在漏洞:信息泄露,xss,csrf,点击劫持,访问控制,web缓存漏洞,跨域漏洞,请求走私
html (点击劫持)
css (也有注入,有人会说哎呀这是xss,新手是这样)
JavaScript (xss dom型 反射型 存储型 点击劫持,请求走私)
可能存在xss 点击劫持 ,web缓存漏洞、请求走私跨域
代码库 JQuery BOOtstrap elementui 封装方法调用
前端框架vue react angular框架不论怎么写都是基于最本质的的三种语言写的html,css,javascript,如果单纯从纯粹的Javascript去分析很费时间,一般都是通过框架去分析xss
后端语言
后端潜在漏洞:信息泄露,xss,csrf,ssrf,反序列化漏洞,sql注入漏洞,命令注入漏洞,服务端模板注入,跨域漏洞,访问控制
php、java、python、golang、c/c++、lua、nodejs 、ruby
数据库
数据库潜在漏洞:sql注入,xss,命令注入等
关系型数据库 mysql 、sqlsever、access、postgresql
非关系型数据库redis 、mongodb、neo4j、couchdb
服务器程序
潜在漏洞:信息泄露,文件上传漏洞,文件解析漏洞,目录遍历,访问控制
apache、nginx、iis、tengine、tomcat、weblogic
安全见闻-脚本程序
常见脚本性语言
lua php python javascript go node js
macro(宏病毒)bat 、powershell (内网渗透)
CAD LISP设计 脚本冷门不好查杀 盗取机密图纸
AUtolt3 等冷门不好查杀另辟蹊径
bios程序病毒
安全见闻-操作系统
注册表(regedit)
windows特有,是Windows集中存放配置的地方,注册表是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息。注册表是windows的一个综合数据库。对比Linux,windows的软硬件配置等数据库是放置在注册表这一个大的“数据库”中,而Linux则是分散开来的。注册表是windows操作系统中的一个核心数据库,其中存放着各种参数,直接控制着windows的启动、硬件驱动程序的装载以及一些windows应用程序的运行,从而在整个系统中起着核心作用。注册表中保存有应用程序和资源管理器外壳的初始条件、首选项和卸载数据等,联网计算机的整个系统的设置和各种许可,文件扩展名与应用程序的关联,硬件部件的描述、状态和属性,性能记录和其他底层的系统状态信息,以及其他数据等。
HKEY_USERS
该根键保存了存放在本地计算机口令列表中的用户标识和密码列表。每个用户的预配置信息都存储在HKEY_USERS根键中。HKEY_USERS是远程计算机中访问的根键之一。
**HKEY_CURRENT_USER **
该根键包含了本地工作站中存放的当前登录的用户信息,包括用户登录名和存放的口令(注意,这个密码在输入的时候是隐藏的。)用户登录windos操作系统的时候,其信息从HKEY_USERS 中相应的项复制到HKEY_CURRENT_USER中。
HKEY_CURRENT_CONFIG
该根键存放着当前用户桌面配置的数据、最后使用的文档列表和其他有关的当前用户的windows版本的安装信息等。
**HKEY_CLASSES_ROOT **
该根键根据windows操作系统中所安装的应用程序的扩展名,来指定文件类型。
**HKEY_LOCAL_MACHINE **
该根键存放本地计算机的硬件信息,该根键下的子关键字包含在SYSTEM.DAT中用来提供HKEY—LOCAL—MACHINE所需要的信息,或者在远程计算机中可访问的一组键盘中。该根键下的许多与System.ini中的设置项类似。
计划任务:如果主机存在安全软件,计划任务的创建会被阻止,命令行无法成功创建。(可通过 计划任务API 绕过,工具化利用此点)
win7
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\
win10
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\TestTask
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree
%systemroot%\System32\Tasks
%systemroot%\Tasks
Index 修改
- 修改
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\{TaskName}
下对应任务的 Index 值为 0 - 以 Windows 10 为例,新建计划任务
cmd
的高级安全设置中所有者为 SYSTEM,默认无法更改注册表键值。
防火墙
数据通过所谓的端口流入和流出设备。 防火墙控制允许哪些端口通过这些端口,更重要的是,不允许通过这些端口。 你可以把它想象成一个保安站在门口,检查试图进入或退出的所有内容的 ID。
防火墙 & Windows Security 中的网络保护使你可以查看 Windows Defender 防火墙的状态,并查看设备连接到的网络。 防火墙可帮助控制允许进出网络或设备的流量。 理想情况下,防火墙仅允许在你请求的流量中允许,或者你已决定允许,因为你在计算机或有问题的网络上提供了服务。
种类
包过滤防火墙、代理防火墙(应用层防火墙)、状态检测防火墙和下一代防火墙(NGFW)。
防火墙作为网络安全的核心组件,其基本原理是通过预定义的安全策略来监控和控制网络流量,允许合法流量通过,阻止非法流量进入或离开网络 [1]。其核心功能包括数据包过滤、连接跟踪、代理服务和深度包检测。
操作命令: Linux:Linux系统中firewalld防火墙常用的操作命令 - 谢友海 - 博客园 (cnblogs.com)
windows有图形化的:Windows 防火墙概述 | Microsoft Learn
自启动
四种方法
1自启动文件夹
windows下
C:\用户\[你的用户名]\AppData\Roaming\Microsoft\Windows\「开始」菜单\程序\启动 //放入原脚本的快捷方式或自己写脚本,指向原服务路径
2计划任务
3添加本地组策略方式
开始->运行->gpedit.msc->计算机配置->Windows设置->脚本(启动/关机)。 选择启动、属性、添加、浏览(打开脚本所在位置),点击确定。
4添加服务自动运行
sc create ServiceTest binPath= D:\WorkPlace\编译打包版本文件\start.bat start= auto //创建
sc delete ServiceTest //删除
计划任务
windows :计算机管理>创建任务,添加任务名称和描述(根据需要随便填写)>新建触发任务,开机启动时>选择新建操作,加载启动程序的脚本(在服务对应路径下的脚本)
Linux:通过crontab定时执行脚本任务
可以用于权限维持等
事件日志
windows: win+r_eventvwr.msc
linux
系统启动时的日志通常记录在/var/log/boot.log 通过dmesg命令查看内核环形缓冲区的信息
查找特定服务的日志通常可以在/var/log/服务名/
内核驱动
内核,是一个操作系统的核心。是基于硬件的第一层软件扩充,提供操作系统的最基本的功能, 是操作系统工作的基础,决定着整个操作系统的性能和稳定性。
内核按照体系结构分为两类:微内核(Micro Kernel) 和 宏内核(Monolithic Kernel)。 在微内核架构中,内核只提供操作系统核心功能,如实现进程管理、存储器管理、进程间通信、I/O设备管理等, 而其它的应用层IPC、文件系统功能、设备驱动模块 则不被包含到内核功能中,属于微内核之外的模块,所以针对这些模块的修改不会影响到微内核的核心功能。 微内核具有动态扩展性强的优点。Windows操作系统、华为的鸿蒙操作系统就属于这类微内核架构。
系统调用是操作系统内核与应用程序之间的接口, open(),close(),read(),write()等系统调用。管理硬件设备和提供操作系统与硬件之间的接口。在 Windows 中,计算机管理里面看到一些。 Linux 中,内核模块可以通过命令 lsmod 查看和 modprobe 加载。
系统服务
系统服务是指执行指定系统功能的程序、例程或进程,以便支持其他程序,尤其是底层 (接近 硬件)程序。 通过网络提供服务时,服务可以在Active Directory(活动目录)中发布,从而促进了以服务为中心的管理和使用。
Windows:服务services.msc 命令行获取所有 Windows 服务及其详细信息的列表sc queryex state=all type=service
Linux:chkconfig/service/systemctl命令
进程线程
一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程,进程中的一个执行任务(控制单元),负责当前进程中程序的执行。一个进程至少有一个线程,一个进程可以运行多个线程,多个线程可共享数据。
系统编程
系统编程就是利用系统调用提供的这些接口、或者说函数、去操作磁盘、终端、网络等硬件
安全见闻-驱动程序
驱动程序:内核驱动,设备驱动
驱动程序是一个软件组件,它允许操作系统和设备进行通信。 例如,当应用需要从设备读取数据时,它会调用操作系统实现的函数。 然后,操作系统调用驱动程序实现的函数。 驱动程序通常由设备制造商开发,知道如何与设备硬件通信以获取数据。 驱动程序获取数据后,它会将其返回给操作系统,然后操作系统将其返回给应用。
在内核模式下运行的所有代码共享单个 虚拟地址空间。 因此,内核模式驱动程序不会与其他驱动程序或操作系统隔离。 如果内核模式驱动程序错误地写入错误的虚拟地址,则可能会泄露属于操作系统或其他驱动程序的数据。 如果内核模式驱动程序崩溃,则会导致整个操作系统崩溃。
安全见闻-人工智能
⼈⼯智能是指计算机模拟⼈类智能的技术和科学。旨在使计算机系统能够执⾏通常需要⼈类智能才能完成的任务,如学习、推理、解决问题、理解⾃然语⾔、识别图像和语⾳等。
数据安全问题:
⼈⼯智能系统通常需要⼤量的数据进⾏训练。这些数据可能包含敏感信息,如个⼈信息、财务信息等。如果这些数据在⼿机、存储、传输或使⽤过程中没有得到妥善保护,就可能被泄露、窃取或滥⽤。
对抗攻击:
对抗攻击是指通过对输⼊数据进⾏微笑的修改,使得⼈⼯智能系统产⽣错误的输出,例如,在图像识别中,通过在图像上添加⼀些⼈眼难以察觉的噪声,可以使⼈⼯智能系统错误地识别图像
对抗攻击可能对安全关键领域的⼈⼯智能系统造成严重危险,如⾃动驾驶汽⻋(特斯拉 fsd 纯视觉⾃动驾驶⽅案)、⼈脸识别(电信诈骗)等。
模型窃取和知识产权问题
攻击者可以通过逆向⼯程等⼿段拿到模型的具体参数(关键参数)和结构,从⽽复制
或者改进商业模型。这种做法不仅侵犯了知识产权,也会导致商业机密泄露(想象⼀下闭源模型 chatgpt4o 或者 4o preview 的参数和结构,会引发怎样的轰动)此外,攻击者还可以利⽤窃取的模型进⾏恶意攻击,⽣成虚拟数据来欺骗其他⼈⼯智能系统。
恶意使⽤⼈⼯智能:
攻击者可以利⽤⼈⼯智能技术来发动更复杂、更难以检测的⽹络攻击。⽐如,利⽤⼈⼯智能⽣成的恶意软件可以⾃动适应不同的环境和机制,提⾼攻击的成功率。
⼈⼯智能还可以被⽤于⾃动化的⽹络钓⻥、垃圾邮件发送等恶意活动。(可以通过多次对话触发漏洞,让⼤模型为你编写恶意代码)
安全见闻-协议安全
通讯协议涉及的安全问题主要包括以下几个方面:
一、保密性问题
数据泄露风险 许多通讯协议在设计时可能没有充分的考虑安全性,导致在传输过程中数据容易被窃听。例如, HTTP 协议明文传输,攻击者可以通过网络监听获取传输中的敏感信息,如用户名、密码、信用卡号等。弱加密算法的使用也可能导致保密性不足。一些老旧的加密算法可能存在已知的漏洞,容易被攻击者破解。例如,早期的 DES 加密算法,其密钥长度较短,容易受到暴力破解攻击。DES作为对称加密算法,依赖相同的加密和解密密钥,但其64位的分组大小和短密钥已经不再安全。
密钥管理不善 加密通讯协议通常依赖密钥来保证数据的保密性。然而,如果密钥管理不善。如密钥泄露、密钥存储不安全等,就会使通讯的保密性受到严重威胁。 密钥的分发过程也可能存在风险。如果密钥在分发过程中被窃取或算改,那么后续的通讯将不再安全。加密传输需要严格管理密钥的分发及存储才能确保通信安全。
二、完整性问题
数据篡改风险
攻击者可以篡改在通讯过程中传输的数据,破坏数据的完整性。例如,在网络购物中,攻击者可以修改订单金额或商品数量等信息,给用户和商家带来损失。 缺乏有效的数据完整性校验机制的通讯协议客易受到此类攻击。一些简单的通讯协议可能只进行基本的错误检测,而没有对数据的完整性进行严格的校验。 重放攻击 重放攻击是指攻击者记录通讯过程中的数据,并在稍后的时间重复发送这些数据,以达到欺骗系统的目的,例如,在身份验证过程中,攻击者可以记录用户的登录请求,然后重复发送该请求,从而冒充含法用户登录系统。 通讯协议如巢没看菜取看效的防范重放攻击的措施,就容易受到这种攻击的影响。
三、身份验证问题
假冒身份风险
攻击者可以假冒合法用户或设备的身份进行通信,获取敏感信息或进行非法操作。例如,在网络钓鱼攻击中,攻击者伪装成银行或其他合法机构,骗取用户的敏感信息。
通讯协议没有安全的身份验证机制,系统难以区分合法用户和攻击者。
身份验证漏洞
一些通信协议的身份验证机制中可能存在漏洞,可能被攻击者利用。在某些协议的身份验证中对简单用户名和密码进行爆破,或者尝试中间人攻击。通常使用强身份验证。
四、可用性问题
拒绝服务攻击
攻击者可以通过发送大量无效数据包,使通讯系统来不及处理,进入瘫痪,无法为正常用户提供服务。例如,分布式拒绝服务攻击(DDoS)可以利用大量的僵尸主机向目标服务器发送海量的数据包,耗尽服务器的资源,导致服务不可用。一些通讯协议没有很好的办法来防御这样的攻击,DDoS就是资源的消耗战。
协议漏洞导致的可用性问题
某些协议的设计缺陷可能导致在特定情况下出现故障影响可用性,如协议的死锁、资源泄露问题等都有可能导致系统无法运行。
五、协议实现问题
编程错误
协议在实现过程中可能会因为编程错误导致严重的安全漏洞。例如,缓冲区溢出和内存泄漏等问题会给攻击者留下可乘之机。因此,开发人员需要严格遵循安全编程规范(等保2.0),并进行代码审查和测试。
协议的实现过程中可能存在编程错误,导致安全漏洞、例如、缓冲区溢出漏洞、内存泄漏等问题都可能被攻击者利用,从而破坏系统的安全性。 开发人员在实现通讯协议时,需要严格遵循安全编程规范,进行充分的测试和代码审查,以减少此类漏洞的出现。 第三方库的安全问题 许多通讯协议的卖现依赖于第三方库和组件:如果这些第三方库和组件存在安全漏洞,就会影响到通讯协议的安全性。 开发人员需要对使用的第三方库和组件进行严格的安全评估,及时更新和修复发现的安全问题。
六、协议设计缺陷
缺乏安全考虑的设计 有些通讯协议在设计之初可能没有充分考虑安全因素,导致存在先天的安全漏洞。例如,某些协议可能没有对数据的长度、类型等进行严格的限制,使得攻击者可以利用这些漏洞进行缓冲区溢出攻击等。 协议的设计可能过于复杂,增加了出现安全漏洞的可能性。复杂的协议往往难以理解和实现正确,容易出现错误和漏洞。 协议升级带来的安全风险 当通讯协议进行升级的时候,可能会引入新的安全问题。例如,新的功能可能会带来新的攻击面,或者旧版本的协议与新版本的协议之间的兼容性问题可能导致安全漏洞。 在进行协议升级时,需要进行充分的安全评估和测试,确保新的协议不会引入新的安全风险。
七、移动通讯协议安全问题
无线网络的特殊性 移动通讯通常通过无线网络进行,使得通讯更容易受到窃听、干扰和攻击。无线网络的信号可以在一定范围内被接收,攻击者可以通过监听无线信号获取通讯内容。WiFi攻击、蓝牙攻击。 移动设备的移动性也增加了安全管理的难度,例如设备可能会连接到不可信的无线网络,或者在不同的网络环境之间切换。不要连陌生的WiFi。
移动应用的安全风险 移动应用通常使用特定的通讯协议与服务器进行通信。如果这些应用的开发过程中没有充分考虑安全问题,可能会导致通讯协议被滥用或攻击。例如,应用可能会泄露用户的敏感信息,或者被恶意软件利用进行攻击。 移动应用的更新和管理也可能存在安全问题。如果应用的更新过程不安全,可能会被攻击者篡改,从而安装恶意软件。
八、物联网通讯协议安全问题
大量设备的管理难题 物联网中通常包含大量的设备,这些设备的管理和安全更新是一个巨大的挑战。如果其中一个设备被攻击,可能会影响到整个物联网系统的安全。 许多物联网设备的计算能力和存储资源有限,难以实现复杂的安全机制。 异构性带来的安全问题 物联网中的设备可能使用不同的通讯协议和技术,这增加了安全管理的复杂性。不同的协议可能存在不同的安全漏洞,需要采取不同的安全措施。 物联网中的设备可能来自不同的厂商,这些厂商的安全标准和实践可能不同,也会增加安全风险。
九、工业控制系统通讯协议安全问题
实时性要求与安全的冲突 工业控制系统通常对实时性要求很高,这可能与安全机制的实施产生冲突。例如,一些安全措施可能会导致通讯延迟,影响系统的实时性能。 在保障工业控制系统安全的同时需要平衡实时性和安全性的要求。
与传统 IT系统的融合带来的风险 随着工业互联网的发展,工业控制系统越来越多地与传统的 IT 系统进行融合。这使得工业控制系统面临来自传统 IT 系统的安全威胁,如病毒、恶意软件等。工业控制系统的安全防护需要考虑与传统 IT 系统的集成,采取相应的安全措施。
版权归原作者 xiyusec 所有, 如有侵权,请联系我们删除。