0


安全见闻1-6

安全见闻1-6笔记

声明

学习视频笔记均来自B站UP主" 泷羽sec",如涉及侵权马上删除文章

笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负

1、编程语言

C语言: 一种通用的、面向过程的编程语言,广泛应用于系统软件和嵌入式开发。

C++: 在C语言基础上发展而来,支持面向对象编程,常用于游戏开发、高性能计算等领域。

Java: 一种广泛使用的面向编程语言,具有跨平台性、应用于企业级开发等。

Python: 简介易学,拥有丰富的库,适用于数据分析、人工智能、Web开发等。

JavaScript: 主要用于网页前端开发,也可用于服务器端开发(Node.js)。

C#: 由微软开发,主要用于Windows平台上应用的开发。

Ruby: 一种简介而富有表现力的编程语言,常用语Web开发。

PHP: 主要用于Web开发,尤其适合服务器端脚本编程。

Go: 一种高效、简介的编程语言,适用于网络编程和云计算等领域。

Swift: 苹果公司开发的编程语言,用于iOS和macOS应用开发。

Kotlin: 可与JAVA互操作,主要用于Android开发。

2、函数式编程语言

Haskell: 纯函数式编程语言,以强大的类型系统和数学上的严谨性著称。

Lisp(包括Common Lisp、Scheme等): 历史悠久的编程语言家族,以其高度的灵活性和宏系统闻名。

Clojure: 运行在JAVA虚拟机上的Lisp方言,结合了函数式编程和JAVA平台的优势。

3、数据科学和机器学习领域

R: 在统计分析和数据可视化方面应用广泛。

Julia: 设计用于高性能科学计算和数据分析。

4、Web全栈开发

TypeScript: 是Javascript的超集,增加了静态类型检查等特性,提高了大型项目的开发效率。

5、移动开发

Objective-C: 曾经是iOS开发的主要语言,现在逐渐被Swift取代。

6、嵌入式系统开发

Assembly Language(汇编语言): 不同的处理器有不同的汇编语言,用于对硬件进行底层控制。

7、其它

Pascal: 曾经在教学和早期软件开发中有广泛应用。
Delphi(基于Object Pascal): 用于快速应用开发。

Scala: 融合了面向对象编程和函数式编程,运行在JAVA虚拟机上。

Elixir: 基于Erlang虚拟机,具有高并发和容错性,适合构建分布式系统。

8、软件程序都有什么呢?

Web程序(网站)

二进制程序

驱动程序

上位机

脚本程序(lua、php、java等)

操作系统(操作系统也属于软件程序的一种,如ios、mac、linux、android、Windows、wince、vxworks、

RT-Thread)

裸板程序(一般的程序依靠操作系统存在,裸板程序没有操作系统、进程等概念、它就是一个代码组成的)

机器学习(一般用python去编写,但是像go之类的编程语言也可以写,本质上是一个程序)

量子计算

工控程序

9、网络通讯(无论做什么都需要网络通讯联网)

9.1、网络类型

局域网、城域网、广域网

9.2、网络协议

TCP/IP协议、HTTP协议,端口协议(FTP协议、SMTP、POP3和IMAP协议)

9.3、网络设备

路由器、交换机、网卡、无线接入点(AP)

9.4、网络安全

防火墙、加密技术、身份认证

10、硬件设备

10.1、计算机硬件

中央处理器(CPU)、内存、硬盘、显卡、主板

10.2、网络硬件

网络服务器、网络存储设备、网络打印机、网络摄像头

10.3、移动设备硬件

智能手机、平板电脑、可穿戴设备

10.4、硬件发展趋势

小型化、高性能、智能化、互联互通

11、人工智能

11.1、机器学习

11.1.1、工作流程

11.1.1.1、数据收集

来源: 可以从各种渠道获取数据,如数据库、文件、传感器、网络等。

类型: 包括结构化数据(如表格数据)、半结构化数据(如XML、JSON、格式的数据)和非结构化的数据(如文本、图像、音频等)。

11.1.1.2、数据预处理

数据清洗: 去除噪声数据、处理缺失值、纠正错误数据等。例如,对于包含缺失值的数据集,可以采用均值填充、中位数填充等方法进行处理。

数据归一化: 将数据的特征值缩放到一个特定的范围内,以提高算法的性能和稳定性。常见的归一化方法有最小-最大归一化、Z-score标准化等。

特征提取: 从原始数据中提取出有用的特征,以便机器学习算法能够更好地处理和理解数据。例如,在图像识别中,可以提取图像的颜色、纹理、随机森林等算法。

11.1.1.3、模型选择与训练

根据任务类型和数据特点选择合适的机器学习算法。例如,对于分类问题可以选择决策树、支持向量机等算法;对于回归问题可以选择线性回归、随机森林等算法。

将预处理后的数据分为训练集和测试集。训练集用于训练模型,训练集用于评估模型的性能。

使用训练集对模型进行训练,通过调整模型的参数使得模型在训练集上的损失函数最小化。

11.1.1.4、模型评估与优化

使用测评集对训练好的模型进行评估,常用的评估指标有准确率、精确率、召回率、F1值、均方误差等。

根据评估结果对模型进行优化,可以调整模型的参数、更换算法、增加数据量等。例如,如果模型在测试集上的准确率较低,可以尝试增加训练数据的数量或调整模型的超参数。

11.1.1.5、模型应用

将优化后的模型应用到实际问题中,进行预测、分类、聚类等任务。

对模型的应用结果进行监控和评估,不断改进模型以提高性能。

11.1.2深度学习

深度学习的基本原理主要包括以下几个方面:

11.1.2.1、神经网络基础
11.1.2.1.1、神经元模型

深度学习的基础是人工神经网络,其灵感来源于生物神经系统。神经网络的基本单元是神经元,它接收多个输入信号,对这些输入信号进行加权求和,然后通过一个激活函数处理得到输出。

例如,典型的神经元接收来自其他神经元或输入层的数据,每个输入都有一个对应的权重。

具体来说,如果我们有 n 个输入 x1,x2,…,xn,对应的权重为 w1,w2,…,wn,偏置项为 b,那么神经元的加权输入总和 z 可以表示为:

z=w1x1+w2x2+…+wnxn+b

激活函数 f 可以是多种不同的函数,例如sigmoid函数、ReLU(Rectified Linear Unit)函数或tanh函数等。这个函数决定了神经元是否应该被激活,以及它的输出值是多少。神经元的输出 y 可以通过将加权输入总和 z 代入激活函数来计算:

y=f(z)

例如,如果使用的是sigmoid激活函数,那么输出将是:

y=1/(1+e^−z)

这个输出值通常在0和1之间,表示神经元的激活程度。如果 z 的值很大,那么 y 将接近1,表示神经元高度激活;如果 z 的值很小,那么 y 将接近0,表示神经元几乎不激活。

在多层神经网络中,每个神经元的输出可以成为下一层神经元的输入,这样信息就可以在网络中“流动”,从而进行复杂的计算和决策。

11.1.2.1.2、多层神经网络

深度学习中的神经网络通常由多个层次组成,包括输入层、隐藏层和输出层。

输入层接收原始数据,隐藏层对数据层进行多层次的特征提取和变换,输出层产生最终的预测结果。

例如,在图像识别任务重,输入层接收图像的像素值,隐藏层逐步提取图像的边缘、纹理、形状等特征,最后输出层给出图像所属的类别。

12、什么是软件程序代码

软件程序是一种计算机程序,用于计算机计算和其他可编程设备。其实就是我们常说的代码,无论是什么软件程序都是由代码组成的,以后我们会见到许多类型的软件程序,比如网页设计,网站开发,软件开发,软件工程,其实本质都是代码,不需要去刻意区分;很多的专业名词都是这样的,都是代码,只是这些代码能够完成特定的作用罢了,例如鉴权中间件、跨域中间件、其本质就是iis那些中间件,明白本质才不会被名词所混淆。

究其根本无论是什么样的语言你只要能够告诉计算机要做什么,计算机给你做了什么,这个就是我们的程序,所以无论是哪个方向,究其根本不过是一行又一行的代码,那么这个代码转换成二进制我们底层的硬件它就知道要干什么了,程序就是告诉计算机我们要做什么事,比如我要发个包,写个发包程序,这个程序就是告诉计算机我要发包的一些代码组成。

所以无论是什么网页设计、前端后端,底层逻辑都是代码,不要去分辨它,没有必要去分,哪个能快速上手 我们就用哪个,python能做到的就不要用C++,越简单的编程语言越实用,因为其本质都是让计算机去做同样一件事,不要把事情复杂化。

13、Web程序

13.1、通常构成

前端-后端-数据库-服务器,基本就是这些。浏览器前端url,请求到后端需要执行什么样的命令,这时候就要调用数据库里的数据,而数据库就放在服务器上。

13.2、语言

13.2.1、前端语言

潜在漏洞: 信息泄露、xss、csrf、点击劫持、访问控制、web缓存漏洞、跨域漏洞、请求走私

html(点击劫持)

css(前端语言,也有注入)

Javascript(xss[dom型、反射型、存储型]、点击劫持,请求走私)

语言是相辅相成的东西,假如你不懂这三门语言,那你xss、点击劫持、web缓存漏洞这些你也不可能会,请求走私跨域这些问题也不可能会。

13.2.2、后端语言

潜在漏洞: 信息泄露、xss、csrf、ssrf、反序列化漏洞、sql注入漏洞、命令注入漏洞、服务端模板注入、跨域漏洞、访问控制

php

java

python

golang

c/c++

lua

nodejs

ruby

后端语言有很多,比如php就有反序列化漏洞、sql注入漏洞、命令注入漏洞等问题,所以后端语言是很重要的。如果你连后端语言都没学过,那你怎么知道啥叫反序列化漏洞呢,所以想要进行测出漏洞,以上语言必须学会至少一种,比如请求走私就涉及到协议的问题了。

13.3、代码库

JQuery

Bootstrap

elementui

代码库是干什么的,我们写代码不可能用原生的语言去写,这样太废精力了。我们可以将一些代码封装成库,之后就可以很方便的去调用。

13.4、框架

vue

react

angular

框架无论怎么写都是基于最本质的三种语言写的html,css,javascript,如果单纯从纯粹的Javascript去分析很费时间,一般都是通过框架去分析xss,框架的种类特别多。

13.5、数据库

潜在漏洞: sql注入、xss、命令注入等

13.5.1、关系型数据库

mysq

sqlserver

access

postgresql

13.5.2、非关系型数据库

mongodb

couchdb

neo4j

redis

如果你想学SQL注入却不知道啥叫数据库,就好比你想上学却不知道学校是啥一样,所以说想学漏洞之前对以上的要有所了解,起码得会一点

13.6、服务器程序

潜在漏洞:信息泄露、文件上传漏洞、文件解析漏洞、目录遍历、访问控制

apache

nginx

iis

tengine

tomcat

weblogic

web程序,看起来似乎很多,其实确实是,想要对什么语言编写的程序进行渗透,就得先学会这个语言,这个是避不开的。做到懂进攻,会防守。

14、脚本程序

lua

php

go

python

Javascript

这些都算是脚本性的语言,那么什么是脚本性的语言呢?脚本通俗理解就是我拿过来以后可以直接看见它的源代码,可复制性高,我们打开浏览器随便进一个网站按F12,可以看到前端代码基本上在这个调试器上都是可以看到的,这种就是典型的脚本性质的程序。

golang(脚本性)

python(脚本性)

nodejs(脚本性程序)

这种主流脚本就很多了,这些编程序语言都可以写一些脚本性的病毒,python可以编写木马,js也可以编写木马,比如beefxss了解本质的人都知道那个就相当于js写的木马,再比如php写的一句话木马,asp也可以写一句话木马,所以说这些脚本它可以编写脚本病毒木马。那么想要写这些病毒木马,python、php、js这些起码得会一些。

当然就算你会了编程语言基础,你还得去了解这个脚本木马构成,它是怎么写的。比如你学会了英语你要用这个英语写作文。最起码你这个写作构成、语法你得会。你会写中文,但你不一定写得来小说,就是这个意思。你会了js后,不一定能编写出病毒,因为你对病毒的写法不了解。

还是那句话,你在写任何病毒之前,你得先去编程基础,基本的语法,库的调用你会了再去了解病毒的一个原理构成,再尝试编写病毒。

macro(宏病毒)

比如利用metasploit生成宏病毒,将病毒植入office文件或者产品,常见的就是微软的word,ppt等这些可以植入病毒的产品。wps是不行的,一般植入的都是微软的产品,这个需要了解一下。不能说写个针对微软的脚本你要用到wps里面执行,这个是执行不了的。

想要写宏病毒,就必须了解宏的代码结构(前面说了不管任何软件,都是代码构成的,包括病毒)

宏代码是由哪个编程语言写的呢?VB/C#类似于这样的语言去写的,这个我们需要了解一下。

bat、powershell

这两个也是微软搞的,这都是Windows上边的程序,这个程序的作用是作用于内网渗透,所以得先有了解。就像上边说的,想写宏病毒,首先得会VB或者C#这些编程软件的语法。

内网渗透并不是单指内网渗透中的域渗透,这么讲太狭隘了。

虽然总的来说内网渗透就是比外网渗透多了一个域渗透,但是要清楚,域渗透代表不了内网渗透。域渗透是内网渗透的一个重要组成部分,域渗透通常指的是在已经获得内网访问权限的情况下,进一步获取域控制器的权限,因为域控制器是内网中的核心管理单元,控制了域内的用户账号和安全数据库。一旦控制了域控制器,就可以对整个内网进行更深入的控制和数据访问。

总的来说,域渗透是内网渗透的一个高级阶段,它需要更深入的知识和技巧。而内网渗透则涵盖了从初始访问到权限维持的整个过程,包括但不限于域渗透的各种技术和策略。

CAD Lisp(脚本病毒)

cad很多人玩过,写图纸画图纸的时候,可能会用到一些脚本,就好比我们要做excel表格一样,会用一些宏,因为它可以自动化帮助我们完成一些工作。但是我们可以写一些正常的脚本,也可以写一些不正常的脚本,比如脚本病毒。很多搞cad的人不懂,他懒得画图纸,直接拿别人的,后边发现中毒了(当然即使中毒了他们也可能不知道,毕竟他们不是专业的)。并且,很多杀毒软件不会进行检测,因为它不会去查杀cad这种病毒的。

这种病毒有什么危害?它可以盗取cad机密图纸。如果你们有一天想接触这个病毒首先你们要会这个lisp语言,它这个语法和c、c++都不一样。

AUtolt3(脚步病毒)

这种语言都是大家不常见的语言,我们的杀软针对的都是主流的编程语言代码病毒,对这种语言的查杀程度低,我不是说这种语言不能杀,只是说越冷门的计算机编程语言编写的病毒就越难查杀。

bios程序(bios病毒)

你想搞一个这样的病毒,就得会写这个程序,就比如有人说会内网渗透,那么他一定也会bat、powershell,如果他不会,那么他说会内网渗透肯定是假的。

总的来说,各种编程语言、脚本程序并不分高下,而是看我们使用哪个编程语言、脚本程序更容易达到我们的目的,这才是最适合自己的。(会的越多,选择越多。)

15、操作系统

学了它能够掌握一个什么样的技能呢?例如Windows系统,假设你懂Windows系统,那你起码就掌握了内网渗透域渗透,又或者说你懂了Windows的一些操作机制,那么你就懂得逆向分析了。也就是说,你会了这个技术你就会分析潜在的问题点,潜在的漏洞点,潜在的安全问题,那就可以搞逆向分析和内网渗透了。

但是得注意,学了操作系统就可以搞web渗透吗?那肯定是搞不了的,因为它们两者不搭边。那么操作系统我们究竟要学些什么呢?它的构成很复杂,需要了解的东西很多。而我们这种从事网络安全的人员,也不太可能什么东西都懂,所以我们只需要懂得常规的问题,然后把自己的主要方向学精通就行。那如果我们遇到非常规的怎么办呢?那我们就以后慢慢研究,先把常规的弄懂再说,操作系统这块要去了解,因为这是为后续的内网渗透做基础。

注册表

我们一般只听到过Windows注册表,那么Linux有没有呢?确实没有。但是如果说Linux有没有类似的?那肯定是有的。

防火墙、自启动、计划任务、事件日志、内核驱动、系统服务、进程线程、系统编程

以上这些都是操作系统中一些常规的东西,虽然Linux、Windows、macos各有各的特点,但是它们基本该有的东西都会有的。比如说自启动,所有的操作系统都是有的,没有这种东西的话,操作系统甚至连运行都无法进行。

如果你只是作为一个web渗透(初级),那么可以不去了解操作系统的相关操作,但如果想成为一个红队人员,这些东西必须了解。

16、驱动程序(了解即可)

驱动程序也是软件程序的一种,只不过大家可能没听过。

潜在漏洞:内网渗透、逆向工程、病毒分析、安全对抗、外挂保护(比如说腾讯的外挂保护,你怎么去绕过外挂保护?可能就需要用到驱动底层逻辑去进行对抗)。

也就是说你要搞内网渗透、逆向工程、病毒分析、安全对抗、外挂保护,就必须要对驱动程序有所了解。当然如果你不搞这个,那也可以不学。对于安全对抗来说,不学驱动程序,就没法进行下去。因为无法进行分析,bug也无法利用,怎么去分析人家怎么进行防御的呢?

内核驱动、设备驱动

驱动主要是干什么的?主要是操控硬件、操作系统内核的。你们可能没有看过Windows内核,因为它是exe程序,总的来说操作系统只是一个软件而已,只不过这个软件运行在底层。

17、人工智能

一、人工智能简介

人工智能(Artificial Intelligence,简称 A1)是指让计算机模拟人类智能的技术和科学。它旨在使计算机系统能够执行通常需要人类智能才能完成的任务,如学习、推理、解决问题、理解自然语言、识别图像和语音等。

人工智能工智能的发展可以追溯到上世纪 50 年代,经过几十年的研究和发展,如今已经在许多领域取得了重大突破和广泛应用。例如:

医疗领域: 辅助医生进行疾病诊断、医学影像分析、药物研发等。

金融领域: 风险评估、欺诈检测、智能投资顾问等。

交通领域: 自动驾驶汽车、交通流量预测和优化等

客户服务: 智能聊关机器人可以快速回答客户的问题,提高服务效率。

图像识别和语音处理: 人脸识别、语音助手等技术已经深入人们的日常生活。

二、人工智能涉及的安全问题

数据安全问题:

人工智能系统通常需要大量的数据进行训练。这些数据可能包括敏感信息,如个人身份信息、财务数据等。如果这些数据在收集、存储、传输或使用过程中没有得到妥善保护,就可能被泄露、窃取或盗用。

攻击者可能会通过攻击数据存储系统、网络传输通道或利用人工智能算法的漏洞来获取数据。

对抗攻击:

对抗攻击是通过对输入数据进行微笑的修改,使得人工智能系统产生错误的输出。例如,在图像识别中,通过在图像上添加一些人眼难以察觉的噪声,可以使得人工智能系统错误地识别图像。

对抗攻击可能会对安全关键领域的人工智能系统造成严重威胁,如自动驾驶汽车,人脸识别系统等。

模型窃取和知识产权问题:

攻击者可以通过逆向工程等手段窃取人工智能模型的参数和结构,从而复制或改进该模型。这不仅会侵犯知识产权,还可能导致商业秘密泄露。

此外,攻击者还可以利用窃取的模型进行恶意攻击、如生成虚假数据来欺骗其他人工智能系统。

恶意使用人工智能:

攻击者可以利用人工智能技术来发动更复杂、更难以监测的网络攻击。例如,使用人工智能生成的恶意软件可以自动适应不同的环境和防御机制,提高攻击的成功率。

人工智能还可以被用于自动化的网络钓鱼、垃圾邮件发送等恶意活动。

三、人工智能学习路径和方法

学习基础知识:

掌握数学基础知识,如线性代数、概率论、统计学等。这些知识对于理解人工智能算法和模型非常重要。

学习编程语言,如 Python。Python是人工智能领域最常用的编程语言之一,有丰富的库和工具可供使用。

了解机器学习和深度学习的基本概念,包括监督学习、无监督学习、神经网络等。

在线课程和教程:

利用在线学习平台,如Coursera、Udemy、edX等,参加人工智能相关的课程。这些课程通常由知名大学或专业机构提供,内容丰富,教学质量高。

阅读相关的书籍和博客,如《深度学习》《机器学习实战》等书籍,以及一些知名的人工智能博客,如Medium 上的人工智能专栏。

实践项目:

参与开源项目或自己动手实践人工智能项目。可以从一些简单的项目开始,如手写数字识别、图像分类等,逐渐提高难度。

参加人工智能竞赛,如KaggIe 上的各种竞赛。这些竞赛可以让你接触到真实的数据集和问题,提高你的实践能力和竞争力。

持续学习和交流:

关注人工智能领域的最新研究进展和技术趋势,可以通过阅读学术论文、参加学术会议、关注行业新闻等方式实现。

加入人工智能社区或论坛,写真他学习者和专业人士交流经验、分享知识、解决问题。

总之,学习人工智能需要掌握扎实的基础知识,通过实践项目不断提高自己的能力,并持续关注领域的最新发展。同时,也要关注人工智能带来的网络安全问题,加强安全意识和防范措施。

18、通讯协议

通讯协议涉及的安全问题主要包括以下几个方面:

一、保密性问题

数据泄露风险

许多通讯协议在设计时可能没有充分考虑数据加密,导致在传输过程中数据容易被窃听。例如,未加密的HTTP 协议,攻击者可以通过网络监听获取传输中的敏感信息,如用户名、密码,信用卡号等。

弱加密算法的使用也可能导致保密性不足。一些老旧的加密算法可能存在已知的漏润,容易被攻击者破解。例如,早期的DES加密算法,其密钥长度较短,容易受到暴力破解攻击。

密钥管理不善

加密通讯协议通常依赖密钥来保证数据的保密性。然而,如果密钥管理不善,如密钥泄露、密钥存储不安全等,就会使通讯的保密性受到严重威胁。

密钥的分发过程也可能存在风险。如果密钥在分发过程中被窃取或篡改,那么后续的通讯将不再安全。

二、完整性问题

数据篡改风险

攻击者可以篡改在通讯过程中传输的数据,破坏数据的完整性。例如,在网络购物中,攻击者可以修改订单金额或商品数量等信息,给用户和商家带来损失。

缺乏有效的数据完整性校验机制的通讯协议容易受到此类攻击。一些简单的通讯协议可能只进行基本的错误检测,而没有对数据的完整性进行严格的校验。

重放攻击

重放攻击是指攻击者记录通讯过程中的数据,并在稍后的时间重复发送这些数据,以达到欺编系统的目的。例如,在身份验证过程中,攻击者可以记录用户的登录请求、然后重复发送请求,从而冒充合法用户登录系统。

通讯协议如果没有采取有效的防范重放攻击的措施,就容易受到这种攻击的影响。

三、身份验证问题

假冒身份攻击

攻击者可以假冒合法用户或设备的身份进行通讯,获取敏感信息或进行非法操作。例如,在网络钓鱼攻击中,攻击者伪装成合法的银行网站,骗取用户的登录信息。

通讯协议如果没有严格的身份验证机制,就难以区分合法用户和攻击者。

身份验证漏洞

一些通讯协议的身份验证机制可能存在漏洞,被攻击者利用。例如,某些协议可能使用简单的用户名和密码进行身份验证,容易受到暴力破解攻击。

身份验证过程中的中间人攻击也是一个常见的问题。攻击者可以在通讯双方之间插入自己,窃取身份验证信意,然后冒充其中一方与另一方进行通讯。

四、可用性问题

拒绝服务攻击

攻击者可以通过发送大量的无效请求或恶意数据包,使通讯系统陷入瘫痪、无法为合法用户提供服务。例如,分布式拒绝服务攻击(DDOS)可以利用大量的僵尸主机向目标服务器发送海量的数据包,耗尽服务器的资源,导致服务不可用。

—些通讯协议可能对这种攻击缺乏有效的防范措施,容易受到影响。

协议漏洞导致的可用性问题

某些通讯协议的设计缺陷可能导致系统在特定情况下出现故障,影响可用性。例如,协议中的死锁问题、资源泄漏问题等都可能导致系统无法正常运行。

五、协议实现问题

编程错误

通讯协议的实现过程中可能存在编程错误,导致安全漏洞。例如,缓冲区溢出漏洞、内存泄漏等问题都可能被攻击者利用,从而破坏系统的安全性。

开发人员在实现通讯协议时,需要严格遵循安全编程规范,进行充分的测试和代码审查,以减少此类漏洞的出现。

第三方库和组件的安全问题

许多通讯协议的实现依赖于第三方库和组件。如果这些第三方库和组件存在安全漏洞,就会影响到通讯协议的安全性。

开发人员需要对使用的第三方库和组件进行严格的安全评估,及时更新和修复发现的安全问题。

六、协议设计缺陷

缺乏安全考虑的设计

有些通讯协议在设计之初可能没有充分考虑安全因素,导致存在先天的安全滑洞。例如,某些协议可能没有对数据的长度、类型等进行严格的限制,使得攻击者可以利用这些漏洞进行缓冲区溢出攻击等。

协议的设计可能过于复杂,增加了出现安全漏洞的可能性。复杂的协议往往难以理解和实现正确,容易出现错误和漏洞。

协议升级带来的安全风险

当通讯协议进行升级时,可能会引入新的安全问题。例如,新的功能可能会带来新的攻击面,或者旧版本的协议与新版本的协议之间的兼容性问题可能导致安全漏洞。

在进行协议升级时,需要进行充分的安全评估和测试,确保新的协议不会引入新的安全风险。

七、移动通讯协议安全问题

无线网络的特殊性

移动通讯通常通过无线网络进行,这使得通讯更容易受到窃听、干扰和攻击。无线网络的信号可以在一定范围内被接收,攻击者可以通过监听无线信号获取通讯内容。

移动设备的移动性也增加了安全管理的难度,例如设备可能会连接到不可信的无线网络,或者在不同的网络环境之间切换。

移动应用的安全风险

移动应用通常使用特定的通讯协议与服务器进行通信,如果这些应用的开发过程中没有充分考虑安全问题,可能会导致通讯协议被滥用或攻击。例如,应用可能会泄据用户的的感信息,或者被恶意软件利用进行攻击。

移动应用的更新和管理也可能存在安全问题。如果应用的更新过程不安全,可能会被攻击者篡改,从而安装恶意软件。

八、物联网通讯协议安全问题

大量设备的管理问题

物联网中通常包含大量的设备,这些设备的管理和安全更新是一个巨大的挑战。如果其中一个设备被攻击,可能会影响到整个物联网系统的安全。

许多物联网设备的计算能力和存储资源有限,难以实现复杂的安全机制。

移动应用的安全风险

物联网中的设备可能来自不同的厂商,这些厂商的安全标准和实践可能不同,也会增加安全风险。

物联网中的设备可能使用不同的通讯协议和技术,这增加了安全管理的复杂性。不同的协议可能存在不同的安全漏洞,需要采取不同的安全措施。

九、工业控制系统通讯协议安全问题

实时性要求与安全的冲突

工亚控制系统通常对实时性要求很高,这可能与安全机制的实施产生冲突。例如,一些安全措施可能会导致通讯延迟,影响系统的实时性能。

在保障工业控制系统的安全时,需要平衡实时性和安全性的要求。

与传统T系统的融合带来的风险

随着工业互联网的发展,工业控制系统越来越多地与传统的II_系统进行融合。这使得工业控制系统面临来自传统IT系统的安全威胁,如病毒、恶意软件等。

工业控制系统的安全防护需要考虑与传统IT系统的集成,采取相应的安全措施。

标签: 网络安全

本文转载自: https://blog.csdn.net/weixin_44030810/article/details/143063491
版权归原作者 未完结的牵挂 所有, 如有侵权,请联系我们删除。

“安全见闻1-6”的评论:

还没有评论