【信息安全案例】——应用软件安全(学习笔记)

news2024/11/16 3:21:35

📖 前言:随着应用软件日益增多,与我们的生活深度绑定,应用软件的安全性问题愈发凸显。针对恶意代码、代码漏洞等安全风险,必须加强安全意识,采取有效措施进行防范。合理有效的安全措施能够确保用户的信息安全、网络安全以及保证企业的商业机密得以安全保护。本篇博客将介绍应用软件安全的概念、恶意代码的防范、代码漏洞的防范、安全软件工程等方面。

在这里插入图片描述


目录

  • 🕒 1. 恶意代码的概念
    • 🕘 1.1 计算机病毒
    • 🕘 1.2 蠕虫
    • 🕘 1.3 木马
    • 🕘 1.4 后门
    • 🕘 1.5 Rootkit
    • 🕘 1.6 勒索软件
  • 🕒 2. 恶意代码的防范
    • 🕘 2.1 法律惩处
    • 🕘 2.2 可信验证
      • 🕤 2.2.1 概述
      • 🕤 2.2.2 特征可信验证
      • 🕤 2.2.3 身份可信验证
      • 🕤 2.2.4 能力可信验证
      • 🕤 2.2.5 环境可信验证
  • 🕒 3. 代码漏洞防范
    • 🕘 3.1 软件漏洞
      • 🕤 3.1.1 概念
      • 🕤 3.1.2 成因
      • 🕤 3.1.3 分类
        • 🕞 3.1.3.1 基于漏洞补丁是否已发布
        • 🕞 3.1.3.2 基于漏洞成因
        • 🕞 3.1.3.3 基于漏洞利用位置
        • 🕞 3.1.3.4 基于威胁类型
    • 🕘 3.2 软件侵权
      • 🕤 3.2.1 软件知识产权的概念
      • 🕤 3.2.2 软件侵权行为
      • 🕤 3.2.3 软件逆向工程概念
      • 🕤 3.2.4 软件逆向分析的方法
        • 🕞 3.2.4.1 动态分析
        • 🕞 3.2.4.2 静态分析
    • 🕘 3.3 安全软件工程
      • 🕤 3.3.1 软件安全开发模型
      • 🕤 3.3.2 SDL模型
  • 🕒 4. 案例分析:拼多多利用漏洞提权事件

🕒 1. 恶意代码的概念

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

定义指出,恶意代码是软件或代码片段,其实现方式可以有多种,如二进制执行文件、脚本语言代码、宏代码或是寄生在其他代码或启动扇区中的一段指令。

依据定义,恶意代码包括:

  • 计算机病毒(Computer Virus)
  • 蠕虫(Worm)
  • 特洛伊木马(Trojan Horse)
  • 后门(Back Door)
  • 内核套件(Rootkit)
  • 间谍软件(Spyware)
  • 恶意广告(Dishonest Adware)
  • 流氓软件(Crimeware)
  • 逻辑炸弹(Logic Bomb)僵尸网络(Botnet)、垃圾信息(Spam)等恶意的软件及代码片段。

🕘 1.1 计算机病毒

定义:指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,且能自我复制的一组计算机指令或者程序代码。

特点:寄生、传染性、潜伏性、破坏性

典型代表:熊猫烧香

🕘 1.2 蠕虫

定义:网络蠕虫是一种智能化、自动化,综合网络攻击、密码学和计算机病毒技术,不需要计算机使用者干预即可运行的攻击程序或代码,它会扫描和攻击网络上存在系统漏洞的节点主机,通过局域网或因特网从一个节点传播到另外一个节点。

与病毒的区别:
传统计算机病毒主要感染计算机内的文件系统,而蠕虫传染的目标则是计算机。

计算机网络条件下的共享文件夹、电子邮件、网络中的恶意网页、大量存在漏洞的服务器等都是蠕虫传播的途径

因特网的发展使得蠕虫可以在几个小时内蔓延全球,而且蠕虫的主动攻击性和破坏性常常使人手足无措。

组成:
网络蠕虫的功能模块可以分为主体功能模块辅助功能模块。主体功能模块通常由信息搜集、扫描探测、攻击渗透、自我推进等子模块构成。实现了主体功能模块的蠕虫能够完成复制传播流程。

辅助功能模块通常包括:实体隐藏、宿主破坏、信息通信、远程控制以及自动升级等功能。包含辅助功能模块的蠕虫程序则具有更强的生存能力和破坏能力。

🔎 蠕虫病毒Prometei介绍

🕘 1.3 木马

定义:一个有用的、或者表面上有用的程序或者命令过程,实际上却包含了一段隐藏的、激活时会运行某种有害功能的代码,它使得非法用户达到进入系统、控制系统和破坏系统的目的。

特点:它是一种基于客户机/服务器方式的远程控制程序,由控制端和受控端两个部分组成。“中了木马”就是指被安装了木马的受控端程序。具有隐蔽性和非授权性

木马对系统具有强大的控制功能。一个功能强大的木马一旦被植入某台机器,操纵木马的人就能通过网络像使用自己的机器一样远程控制这台机器,甚至能远程监控受控机器上的所有操作。

与蠕虫的区别:
一般而言,这两者的共性是自我传播,都不感染其他文件。在传播特性上,它们的微小区别是:木马需要诱骗用户上当后进行传播,而蠕虫不是。蠕虫包含自我复制程序,它利用所在的系统进行传播。
一般认为,蠕虫的破坏性更多的体现在耗费系统资源的拒绝服务攻击上,而木马更多体现在秘密窃取用户信息上。

典型代表:🔎 灰鸽子远控木马

🕘 1.4 后门

定义:后门是指绕过安全控制而获取对程序或者系统访问权的方法。后门仅仅是一个访问系统或者控制系统的通道,其本身并不具有其他恶意代码直接攻击的行为。

后门的产生有两种情况:一种是软件厂商或者开发者留下的,另一种是攻击者植入

🔎 苹果Xcode后门事件

🕘 1.5 Rootkit

最初,Rootkit是攻击者用来修改Unix操作系统和保持根权限(Root)且不被发现的工具,正是由于它是用来获得root后门访问的kit工具包,所以被命名为“root”+“kit”。

目前通常所说的Rootkit是指:一类特洛伊木马后门工具,通过修改现有的操作系统软件,使攻击者获得访问权限并隐藏在计算机中。

典型代表:ZeroAccess,创建ZeroAccess僵尸网络的rootkit恶意软件,该僵尸网络在挖掘比特币和向用户发送广告时会消耗资源。

Rootkit与特洛伊木马、后门等既有联系又有区别。

  • Rootkit属于特洛伊木马的范畴,它用恶意的版本替换运行在目标计算机上的常规程序来伪装自己,从而达到掩盖其真实的恶意目的,而这种伪装和隐藏机制正是特洛伊木马的定义特性。
  • 各种Rootkit通过后门口令,远程Shell或其它可能的后门途径,为攻击者提供绕过检查机制的后门访问通道,而这正是后门工具的定义特性。
  • 作为一类特殊形态的木马后门工具,一个恶意代码之所以能够被称为Rootkit,就必须具备替换或修改现有操作系统软件进行隐藏的特性,而这才是Rootkit的定义特性。
  • Rootkit强调的是强大的隐藏功能、伪造和欺骗的功能,而木马、后门强调的是窃取功能、远程侵入功能。两者的侧重点不一样,两者结合起来则可以使得攻击者的攻击手段更加的隐蔽、强大。

从硬盘上分出一块完全在受害机器上隐藏着的新分区(盘符),这把对它进行的传统磁盘扫描变成不可能的。
修改了被害操作系统的驱动,让病毒代码可以依此来启动。

🕘 1.6 勒索软件

定义:勒索软件是黑客用来劫持用户资产或资源并以此为条件向用户勒索钱财的一种恶意软件。

WannaCry勒索病毒
2017年5月12日,WannaCry勒索病毒全球大爆发,至少150个国家、30万用户中招,影响到金融、能源、医疗、教育等众多领域,造成损失达80亿美元。
WannaCry是借用了永恒之蓝漏洞利用工具的代码。漏洞是MS17-010 SMB协议远程代码执行漏洞。
在这里插入图片描述

【网络安全大事记】第二期-WannaCry勒索病毒事件

🕒 2. 恶意代码的防范

🕘 2.1 法律惩处

  • 对计算机病毒的法律惩处:破坏计算机信息系统罪
  • 对恶意代码等计算机侵害的法律惩处:非法侵入计算机信息系统罪

🕘 2.2 可信验证

🕤 2.2.1 概述

面对恶意代码攻击手段的综合化、攻击目标的扩大化、攻击平台的多样化、攻击通道的隐蔽化、攻击技术的纵深化,采用单一技术的恶意代码检测变得越来越困难。

影响软件可信的因素包括:软件危机、软件缺陷、软件错误、软件故障、软件失效以及恶意代码的威胁等。

可信验证模型定义:一个可信的组件、操作或过程的行为在任意操作条件下是可预测的,并能很好地抵抗应用软件、病毒以及一定的物理干扰造成的破坏。

在这里插入图片描述

🕤 2.2.2 特征可信验证

软件的可信性要求其独有的特征指令序列总是处于恶意软件特征码库之外,或其Hash值总是保持不变。

其技术核心是特征码的获取和Hash值的比对

特征码扫描技术,首先提取新恶意软件的独有特征指令序列,并将其更新至病毒特征码库,在检测时将当前文件与特征库进行对比,判断是否存在某一文件片段与已知样本相吻合,从而验证文件的可信性。

在这里插入图片描述

🕤 2.2.3 身份可信验证

通常,用户获得的软件程序不是购自供应商,就是来自网络的共享软件,用户对这些软件往往非常信赖,殊不知正是由于这种盲目的信任,将可能招致重大的损失。

传统的基于身份的信任机制主要提供面向同一组织或管理域的授权认证。如PKI和PMI等技术依赖于全局命名体系和集中可信权威,对于解决单域环境的安全可信问题具有良好效果。

然而,随着软件应用向开放和跨组织的方向发展,如何在不可确知系统边界的前提下实现有效的身份认证,如何对跨组织和管理域的协同提供身份可信保障已成为新的问题。

因此,代码签名技术应运而生。

在这里插入图片描述
在这里插入图片描述

🕤 2.2.4 能力可信验证

软件的可信性要求软件系统的行为和功能是可预期的,其技术核心是软件系统的可靠性和可用性,如源代码静态分析法、系统状态建模法等,统称为能力(行为)可信问题。

在这里插入图片描述

🕤 2.2.5 环境可信验证

软件的可信性要求其运行的环境必须是可知、可控和开放的,其技术核心是运行环境的检测、控制和交互。

在这里插入图片描述

🕒 3. 代码漏洞防范

🕘 3.1 软件漏洞

🕤 3.1.1 概念

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

  • 一方面,造成软件在运行过程中出现错误结果或者运行不稳定。
  • 另一方面软件漏洞可能会被黑客发现、利用,进而窃取隐私信息,破坏系统等攻击行为。

软件系统或者产品在设计、实现、配置、运行等过程中,由操作实体有意或者无意产生的缺陷、瑕疵或者错误,它们以不同形式存在于信息系统的各个层次和环节中,且随着信息系统的变化而改变。

漏洞是贯穿于软件生命周期的各个环节的。

🕤 3.1.2 成因

计算机系统结构决定了漏洞的必然性。

软件趋向大型化,第三方拓展增多

  • 常用大型软件为了充分使软件功能得到扩充,通常会有第三方拓展,这些拓展插件的存在,增加系统功能的同时也导致的安全隐患的存在

软件新技术、新应用产生之初即缺乏安全意识

  • 比如大多数网络协议,在设计之初就没有考虑过其安全性。

软件使用场景更具威胁

  • 网络技术是发展,软件被用于各行各业,遍及各个社会层次。

软件安全开发重视度不够,开发者缺少安全意识。

🕤 3.1.3 分类

🕞 3.1.3.1 基于漏洞补丁是否已发布

  • 0 day漏洞:0 day漏洞得名于漏洞发现时补丁存在的天数:零天,就是指已经被发现(有可能未被公开)但官方还没有相关补丁的漏洞。注意,0 day漏洞并不是指软件发布后被立刻发现的漏洞。
  • 1 day漏洞:是厂商发布安全补丁之后但大部分用户还未打补丁时的漏洞,此类漏洞依然具有可利用性。
  • 历史漏洞(n day漏洞):是距离补丁发布日期已久且可利用性不高,故用虚线表示。

在这里插入图片描述

通俗理解:
0day:银行的所有金库上都有一个洞,可以钻进去,但是银行那边还没人知道
1day:有洞的问题银行的人知道了,但是正在组织人员补洞
nday:那个洞怎么补已经公布,但是不排除有些银行懒得补
🔎 通俗理解什么是0day漏洞,1day漏洞和nday漏洞?

🕞 3.1.3.2 基于漏洞成因

  • 内存破坏类:非预期的内存越界访问。攻击者利用这些漏洞可执行指定的任意指令或是导致拒绝服务或信息泄露。如缓冲区溢出。

缓冲区溢出的概念
简单的说,缓冲区溢出(Buffer Overflow)就是通过在程序的缓冲区写入超出其长度的内容,从而破坏程序的堆栈,使程序转而执行其他指令,以达到攻击的目的。
案例:🔎 如何评价2023年4月23日晚,微信打开发送图片出现闪退现象?

  • 逻辑错误类:涉及安全检查的实现逻辑上存在的问题,导致设计的安全机制被绕过。CWE-22:路径名到受限目录的不正确限制
    案例:🔎 Windows 11 截图工具隐私错误暴露裁剪的图像内容
  • 输入验证类:对来自用户输入没有充分的检查过滤就用于后续操作。如SQL注入。

SQL注入漏洞
SQL攻击通常是发生在应用程序和数据库层之间的安全漏洞。
如果在输入的查询字符串中注入SQL语句,而设计不良的程序中忽略了对其进行检查,那么这些注入的指令就会被数据库服务器误认为是正常的SQL指令而执行,造成数据泄露。

🔎 IBM所提供的Web安全漏洞演示网站

  1. Web应用有一个登录页面,这个登录页面控制着用户是否有权访问应用,它要求用户输入一个名称和密码,登录页面中输入的内容将直接用来构造动态的SQL命令 或者直接用作存储过程的参数
System.Text.StringBuilder.query = new System.Text.String.Builder(“SELECT * from Users WHERE login =“).Append(txtLogin Text).Append(“'AND password=“').Append(txtPassword.Text).Append(“”)
  1. 攻击者在用户名字和密码输入框中输入 'or'1'='1 的内容
  2. 服务器运行上面的ASP NET代码构造出查询用户的SQL命令,最后得到的SQL命令变成
SELECT * from Users WHERE login =or '1'='1'  AND  password ‘or '1'='1'

在这里插入图片描述

  • 设计错误类:系统设计上对安全机制考虑不足。如DDOS攻击
    🔎 1.35TB超大流量DDoS攻击 GitHub遭遇memcrashed DDoS放大攻击
  • 配置错误类:系统运行维护过程中以不正确的设置参数进行安装,或者安装在不正确位置。
    案例:🔎 了解 Facebook 如何从互联网上消失

🕞 3.1.3.3 基于漏洞利用位置

  • 本地漏洞:需要系统级的有效账号登录到本地才能利用的漏洞。
  • 远程漏洞:无需系统级的有效账号,通过网络访问目标进行的漏洞,如永恒之蓝。

🕞 3.1.3.4 基于威胁类型

  • 获取控制。
  • 获取信息。
  • 拒绝服务。

🕘 3.2 软件侵权

🕤 3.2.1 软件知识产权的概念

知识产权:是权利主体对智力创造成果工商业标记等知识产品依法享有的专有民事权利的总称。

对一个软件的知识产权主要是该软件的研发者对其依法享有的各种权利,通常包括5个方面:版权(著作权)、专利权、商标权、商业秘密和反不正当竞争

🕤 3.2.2 软件侵权行为

  • 未经软件著作权人许可,发表、登记、修改、翻译其软件。
  • 将他人软件作为自己的软件发表或者登记,在他人软件上署名或者更改他人软件上的署名。
  • 未经合作者许可,将与他人合作开发的软件作为自己单独完成的软件发表或者登记。
  • 复制或者部分复制著作权人的软件。
  • 向公众发行、出租、通过信息网络传播著作权人的软件。
  • 故意避开或者破坏著作权人为保护其软件著作权而采取的技术措施。
  • 故意删除或者改变软件权利管理电子信息。
  • 转让或者许可他人行使著作权人的软件著作权。

软件的版权保护实际上主要是防范软件的逆向分析

🕤 3.2.3 软件逆向工程概念

  • 软件逆向分析工程的定义。软件逆向分析工程简称逆向工程,是一系列对运行于机器上的低级代码进行等价的提升和抽象,最终得到更加容易被人所理解的表现形式的过程。
    • 使用W32Dasm 等反汇编工具打开目标软件的EXE文件,将其由不可读的机器语言 反汇编为 可读的汇编语言;对该汇编代码进行静态分析,找出与软件注册相关的语句
  • 软件逆向工程的作用。逆向工程对于软件设计与开发人员、信息安全人员,以及恶意软件开发者或网络攻击者,都是一种非常重要的分析程序的手段。
  • 软件逆向工程的正确应用。合理利用逆向工程技术,将有利于打破一些软件企业对软件技术的垄断,有利于中小软件企业开发出更多具有兼容性的软件,从而促进软件产业的健康发展。

🕤 3.2.4 软件逆向分析的方法

针对软件的逆向分析方法通常分为3类:动态分析、静态分析以及动静结合的逆向分析,实际应用中常根据目标程序的特点以及希望通过分析达到的目的等因素来选择。

🕞 3.2.4.1 动态分析

将目标代码变换成易读形式的逆向分析过程,在调试器中加载程序,一边运行程序一遍对程序行为进行观察和分析。

调试器:IDE、WinDbg、OllyDbg

以WinDbg为例:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

启动后界面如图所示,选择【File】-【Symbol File Path】,设置Dump所需的符号库

输入“SRV*C:\websymbols*http://msdl.microsoft.com/download/symbols”,单击【OK】

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在下方的命令行输入“!analyze -v”开始分析,等待一段时间后分析结果如下图所示
在这里插入图片描述

🕞 3.2.4.2 静态分析

不执行代码而使用反编译、反汇编工具,把程序的二进制代码翻译成汇编语言。
工具:IDA Pro、C32ASM、Win32Dasm等

以Win32Dasm为例:

W32Dasm 分析出的软件基本信息,如软件的各个寄存器段、区块、引用函数等
在这里插入图片描述
W32Dasm 分析出的程序调用的外部dll文件,以及各dll文件中具体的函数名称
在这里插入图片描述
反汇编出的目标程序的源代码“ASSEMBLY CODE LISTING”
在这里插入图片描述

🕘 3.3 安全软件工程

程序的正确性和安全性都应当是由程序的编写者来保证的。

作为一个程序员,必须认识到每一个应用软件的安全问题,即使只是一个小的漏洞,也有可能会被黑客发现并被利用来进行攻击,由此造成巨大的损失。

忽略了软件的安全性大致来说有两种。

第一种是直接进行设计、编写、测试,然后发布,忘记了程序的安全性。或者设计者自认为已经考虑到了,而做出了错误的设计。

第二种错误是在程序完成以后才考虑添加安全因素,在已经完成了的功能外包裹上安全功能。
为防止软件安全问题的发生,之前介绍了软件可信验证技术,这实际上属于对软件的事后验证。

本节介绍4种安全开发模型。

🕤 3.3.1 软件安全开发模型

1)微软的软件安全开发生命周期模型(SDL),以及相关的敏捷SDL和ISO/IEC 27034标准。
2)McGraw的内建安全模型(BSI),以及BSI成熟度模型(BSIMM)。
3)美国国家标准与技术研究院(NIST)的安全开发生命周期模型。
4)OWASP提出的综合的轻量级应用安全过程(CLASP),以及软件保障成熟度模型(SAMM)。

🕤 3.3.2 SDL模型

在这里插入图片描述

基本原则:

  • 安全设计(Secure by Design)。在架构设计和实现软件时,需要考虑保护其自身及其存储和处理的信息,并能抵御攻击。
  • 安全配置(Secure by Default)。在现实世界中,软件达不到绝对安全,所以设计者应假定其存在安全缺陷。
  • 安全部署(Security by Deployment)。软件需要提供相应的文档和工具,以帮助最终用户或管理员安全地使用。此外,更新应该易于部署。
  • 沟通(Communication)。软件开发人员应为产品漏洞的发现准备响应方案,并与系统应用的各类人员不断沟通,以帮助他们采取保护措施(如打补丁或部署变通办法)。

🕒 4. 案例分析:拼多多利用漏洞提权事件

在这里插入图片描述

2023年3月27日,卡巴斯基实验室的安全研究人员证实拼多多 App 包含恶意代码,初步分析显示,至少两个非 Play 版本的拼多多应用利用了漏洞 CVE-2023-20963。

据悉,拼多多 APP 包含利用该漏洞的恶意代码版本可追溯至2020年。其利用该0 day漏洞提权,下载并执行额外的恶意模块,窃取用户隐私以逃避合规监管,盗取竞争对手软件数据,防止自身被卸载等。该漏洞非常强大,基本可完全控制手机(可以无视bootloader),整个过程不需要用户交互。近期谷歌才将修复补丁提供给终端用户。

在这里插入图片描述

根据调查,通过谷歌应用商店和苹果官方商店下载的拼多多应用是安全的。尽管如此,谷歌还是选择将其从官方应用商店中下架。但通过第三方市场下载的 Android 用户则没有那么幸运了,且国内手机厂商在系统更新上不够积极,鉴于拼多多有数亿用户,受影响的用户数量可能非常惊人。
在这里插入图片描述
作为普通安卓用户,当前解决方案有:①升级至安卓13,②使用谷歌商店版安装包,③使用2020年之前的官方安装包。

🔎 卡巴斯基实锤拼多多App恶意代码


OK,以上就是本期知识点“应用软件安全”的知识啦~~ ,感谢友友们的阅读。后续还会继续更新,欢迎持续关注哟📌~
💫如果有错误❌,欢迎批评指正呀👀~让我们一起相互进步🚀
🎉如果觉得收获满满,可以点点赞👍支持一下哟~

❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页

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

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

相关文章

(数字图像处理MATLAB+Python)第九章图像形态学运算-第一、二节:形态学基础和二值形态学运算

文章目录 一:形态学基础(1)结构元素(2)程序 二:二值形态学的基础运算(1)基本形态变换A:膨胀运算①:概述②:示例③:程序 B:…

CleanMyMac X4.13.4中文版下载及使用教程

随着Mac电脑的广泛普及,越来越多的用户开始关注如何保持自己电脑的快速运行。众所周知,Mac电脑的性能和稳定性得到了广泛认可。但是,随着使用时间的增加和数据的增加,任何电脑都可能变得缓慢和难以使用。为了解决这一问题&#xf…

2-《Java进阶》

2-《Java进阶》 一. java多线程(非常重要)1.1. 线程java多线程实现方式主要有:1.继承Thread 2.实现Runnable3.实现CallableRunnable 与 Callable的区别:1.2. 线程的状态有哪些?1.3. 线程的状态转换及控制1.4. Java如何…

SeaweedFs使用-通过http接口实现文件操作

通过http接口实现文件操作 SeaweedFs可通过filer的http接口/master中的http接口来进行文件上传 1.通过master的接口进行上传文件 通过各种方式进行请求接口:http://localhost:9333/submit, ip和端口号是master服务的信息。此接口通过post请求方式将文件的二进制流…

3-《安卓基础》

3-《安卓基础》 1.Android系统架构2.四大组件1Activity1.1 生命周期1.2. Activity四种启动模式1.3.Activity任务栈的概念1.3.Activity的显示启动和隐示启动1.4.scheme使用场景,协议格式,如何使用?1.5.activty间传递数据的方式1.6.跨进程启动A…

网络安全-kail linux渗透测试(基础篇)

渗透测试是一个非常广的课程,我们首先要做的是在某个方向精通,再在其他方面也要有涉猎。 大部分的漏洞是国外挖掘的。 一、推荐研究书籍: Metasploit浚透测试指南》肯尼(行业经典) 诸葛建伟翻译 《Metasloit渗透测试魔鬼训练营》诸葛建伟…

运用pyecharts制作可视化大屏(代码展示及效果图-动图)

一、Matplotlib绘图 折线图 import matplotlib.pyplot as plt # 调用画图库 plt.rcParams[font.sans-serif] [SimHei] # 设置成可以显示中文,字体为黑体 plt.figure(figsize(12,8)) # 调整图片尺寸 x [周一,周二,周三,周四,周五,周六,周日] # 设置x轴数据 y [401…

物联网网络通讯知识

RTU是什么 RTU英文全称Remote Terminal Units,中文全称为远程终端单元。远程终端设备(RTU)是安装在远程现场的电子设备,用来监视和测量安装在远程现场的传感器和设备。通俗理解就是能够编程的还可以将数据传输到服务器的工具。RTU内部是包含通讯模块的&…

4、详细版易学版TypeScript - 元组 枚举

一、元组(Tuple) 数组&#xff1a;合并了相同类型的对象 const myArr: Array<number> [1, 2, 3]; 元组(Tuple)&#xff1a;合并了不同类型的对象 // 定义元组时就要确定好数据的类型&#xff0c;并一一对应 const tuple: [number, string] [12, "hi"]; // 添…

QT客户端外包开发的特点

QT是一种跨平台的C应用程序开发框架&#xff0c;主要用于开发图形用户界面(GUI)应用程序。它提供了一套丰富的类库和工具&#xff0c;可以帮助开发者快速构建高质量、可扩展、易于维护的应用程序。今天和大家分享一下QT的主要特点和注意的问题&#xff0c;希望对大家有所帮助。…

探索LeetCode【0011】盛最多水的容器(已懂)

目录 0. 题目1. 官方解答一&#xff08;已懂&#xff09;2. 精简解答二&#xff08;已懂&#xff09;3. 正确性解释 0. 题目 题目链接&#xff1a;【0011】盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i,…

From Java To Kotlin:空安全、扩展、函数、Lambda很详细,这次终于懂了

From Java To Kotlin, 空安全、扩展、函数、Lambda 概述&#xff08;Summarize&#xff09; Kotlin 是什么&#xff1f;可以做什么&#xff1f;Android 官方开发语言从Java变为Kotlin,Java 有哪些问题&#xff1f;Kotlin的优点Kotlin 特性&#xff08;Features&#xff09; K…

有名的国外CRM系统有哪些?如何选择?

CRM系统可以帮助企业获得更多地潜在客户&#xff0c;优化销售流程&#xff0c;提高工作效率&#xff0c;增强客户服务水平&#xff0c;是如今企业不可或缺的工具。那么&#xff0c;国外CRM的知名厂商有哪些&#xff1f;下面小编来为大家进行推荐。 Zoho CRM&#xff1a; Zoho…

快手国际化 后端开发面经一面

目录 1.JMM内存模型2.堆怎么管理内存3.垃圾回收算法4.跨代引用问题怎么解决5.垃圾回收器6.CMS回收过程7.G1和CMS区别 1.JMM内存模型 计算机存储结构&#xff0c;从本地磁盘到主存到CPU缓存&#xff0c;也就是从硬盘到内存&#xff0c;到CPU。 问题&#xff1f;和推导出我们需要…

全国节能宣传周知识答题活动

全国节能宣传周知识答题活动 若想在短期内&#xff0c;进行安全生产知识的传播&#xff0c;那么答题无疑是有效方式之一。 答题活动小程序v3.0&#xff0c;基于微信原生小程序云开发实现。主要包含六大功能模块页面&#xff0c;首页、活动规则页、排行榜页、答题页、结果页、…

每日一个MySQL问题: MTS 高并发下主从表空间不一致的问题

简单记录原因&#xff0c;最近我也遇到这样的问题&#xff0c;涉及的知识点其实很多&#xff0c;我也仅仅是简单分析了一下&#xff0c;供参考。模拟版本8.0.28。 一、问题说明和模拟方式 就是主从一个表&#xff0c;主库大约600M&#xff0c;从库大约900M&#xff0c;当然主从…

推荐一个网络安全网站(HTML)

废话不多&#xff0c;直接上链接https://www.hackthissite.org/ 这不是一个新手向的网站&#xff0c;建议有一定基础的同学访问&#xff0c;里面大部分都是黑客实操&#xff0c;对大部分希望学习网络安全并有一定基础的人都可以有较大提升 全区英文&#xff0c;这对各位应该不…

Java面试题汇总(包含算法题及底层知识)

花了很久时间整理了Java领域互联网公司常考的面试题&#xff0c;主要包含六大类: 第一类:Java及Javaweb常考基础题及高级题&#xff0c;包含了很多公司爱问的非常冷门的知识点&#xff0c;很多面试官喜欢通过问非常冷门的知识来判断面试者的基础掌握程度。 第二类:Java虚拟机以…

EasyRecovery16电脑硬盘数据恢复软件功能讲解

硬盘是很常见的存储数据的设备&#xff0c;硬盘中很多重要的数据一旦丢失会很麻烦&#xff0c;不过现在有硬盘数据恢复软件可以自行在家恢复数据。今天的文章就带大家来看看硬盘恢复数据的软件EasyRecovery。 EasyRecovery 是一款专业的数据恢复软件&#xff0c;支持恢复不同存…

【Proteus仿真】51单片机Blink点灯实验

【Proteus仿真】51单片机Blink点灯实验 &#x1f516;Proteus仿真基础实验-点亮第一个LED灯。&#x1f33f;Proteus8.12平台&#x1f33f;本实验代码基于VSM Studio&#xff0c;采用SDCC编译器。&#x1f3ac;仿真演示&#xff1a; ⛳头文件使用说明 ⚡第一次调用STC89.h头文…