什么是世界上最简单的恶意软件
在我最近教的一节恶意软件分析课上,一个学生问我“世界上最简单的恶意软件”是什么。当然,这个问题的答案很大程度上取决于一个人对“最简单”和“恶意软件”的定义,以及目标硬件体系结构和操作系统(以及潜在的其他软件和因素),但我认为这在概念上非常有趣,值得今天讨论一下。
如果在代码的大小上讨论并定义“恶意软件”,根据NIST的定义“一个应用程序,旨在入侵目标数据、应用程序、或操作系统的机密性、完整性、可用性,或骚扰及阻碍受害者”。那么最简单的恶意软件可能是任何平台上的一个“Halt and Catch Fire”类型的指令,这条指令能够(有意设计或由于bug)停止CPU操作,并且可以单独执行。或者确切地说,最简单的恶意软件可能是这样平台上的代码,在这个平台上最短指令(可能只有一个字节)。然而,从历史的角度来看,这只是一个纯粹的理论回答。
如果我们超越这种情况,只关注能够在现代操作系统和当前硬件平台上运行的代码,情况就会变得复杂得多。虽然我花了一些时间思考最小的恶意软件可能是什么,我确实有一个潜在的答案,但我不完全确定它是正确的。如果你能想到一个运行恶意代码的小例子,请在评论中告诉我们。
无论如何,因为我无法想到,也没有找到任何“更小”的东西,我开始相信,Windows的叉子炸弹最常见的版本可能是现实世界中最小的恶意软件(至少是目前最小的)。
叉子炸弹,或“兔子”或“兔子”,因为他们有时也被称为,可能是最古老的类型的恶意软件,他们是相当简单的。它们唯一的功能是在每次运行时执行自己的两个副本。这意味着,一旦在系统上执行了fork bomb,在该系统上运行的fork bomb进程的数量将开始呈指数级增长,这将很快导致资源耗尽。
Windows中最著名的分叉炸弹,可能是作为一个独立的批处理文件实现的,只由以下5个ASCII字符(即,5字节)组成。
%0|%0
尽管它的大小很小,但它可能会产生一个快速且相当不愉快的效果——您可以自由地自己测试它(尽管,我建议您在VM中这样做,您不会介意之后重新启动)。
正如我所提到的,我不完全确定这个叉子炸弹是现代平台上最小的恶意软件,然而,它只有5字节长,它必须至少接近……它很好地表明,恶意软件不一定要复杂才能有效。
(完)
摘自:
https://isc.sans.edu/diary/What+is+the+simplest+malware+in+the+world%3F/28620
最常见的安全漏洞解释
我们来看看一些最常见的安全漏洞,并详细介绍开发人员如何最好地保护自己。
你知道吗,根据Secure Code Warrior的一项最新调查,令人惊讶的是,86%的开发人员并不把应用程序安全视为最优先考虑的问题?这值得关注,因为85%的代码库包含已知的开源漏洞。
“Secure Code Warrior”,全球开发者驱动的安全领导者,发布了其2022年度“开发人员驱动的安全状况”的调查结果,发现开发人员的行为和对软件安全的态度是冲突的。虽然许多开发人员承认在软件开发生命周期中应用安全主导的方法的重要性,但86%的人在编写代码时并不将应用程序安全视为最优先考虑的事项
我们想要改变这一点。GitHub安全实验室的愿景是发现漏洞、加强研究、教育,并使社区能够保护我们所有人都依赖的开源软件。实现这一目标的关键一步是对开发人员进行最新安全漏洞的培训。这将使开发人员能够积极地发现和报告生态系统中的新漏洞。为此,让我们看看我们最近看到的一些常见弱点,以及您可以采用的工具来克服它们。
根据一项新的“Secure Code Warrior”调查,开发人员对软件安全的态度和行为是矛盾的:
-
86%的人在编写代码时不将应用程序安全性视为最高优先级。
-
67%的人故意在他们的代码中发布漏洞。
-
36%的人将原因归于按时完成任务高于考虑安全。
-
33%的人不知道是什么让他们的代码存在漏洞
存在哪些类型的漏洞?
漏洞是代码中的缺陷,当被黑客利用时,可能导致个人数据泄漏、代码篡改甚至完全数据丢失。请注意,您将遇到的漏洞类型将根据开发框架和编程语言。也就是说,以下是一些你需要注意的最常见的漏洞类型:
SQL注入
这是一种代码注入攻击,当一个攻击者通过用户输入将有害的逻辑添加到您的SQL语句中时就会触发这种攻击。该漏洞源于未执行输入检查或执行不正确。影响包括未授权的数据访问、修改和数据丢失,以及应用程序内容和行为的更改。一些常见的SQL注入示例包括:
-
修改SQL查询,使其返回用户不应该访问的额外结果(如支付信息)。
-
UNION攻击,允许从其他表检索数据。
命令注入
这是另一种代码注入攻击,当恶意参与者将命令插入应用程序时,将使用系统级权限在主机系统中执行命令。命令注入攻击可能危及应用程序、数据、连接的服务器和其他基础设施。包括:
-
任意命令注入——应用程序直接从其他用户接收任意的系统命令。
-
任意文件上传—应用程序允许最终用户上传包含任意扩展名的文件。这使得恶意行为者能够在上传的文件被添加到webroot后注入命令。
-
XML外部实体注入—恶意参与者从服务器读取任意文件并导致拒绝服务(DoS)攻击。
跨站脚本(XSS)
这是一种web注入攻击,恶意脚本被注入到其他安全的网站。由于JavaScript脚本运行在受害者的浏览器上,XSS攻击能够窃取敏感数据,如认证cookie。这在公共网站上很常见,攻击者可以通过添加自己的广告和钓鱼提示来攻击网站的访问者。
伪造跨站请求(CSRF)
这种攻击迫使终端用户在当前身份验证的web应用程序上执行不想要的操作。不想要的行为可能包括资金转移或个人信息的更改。基本上,这些攻击利用了目标站点对通过身份验证的用户发起的请求的信任,而这些用户实际上是从其他地方发起的。CSRF的一个例子包括:
-
一个通过认证的在线银行网站用户将500美元转移到他们儿子的在线支票账户。然而,银行的网站很容易受到CSRF的攻击,所以他们没有把钱寄给儿子,而是寄到了其他地方。
GitHub如何免费保证你的软件安全
如果你在GitHub上开发,我们提供一套开发者优先的安全工具来帮助你发现和修复漏洞,我们还让我们的安全工具免费提供给开源项目。GitHub的代码扫描,由CodeQL支持,抓取代码中的常见特征。它还可以在你的pull请求中运行,在它们到达你的主分支之前检测漏洞。除了保护代码之外,CodeQL还告诉您将来要注意什么,因为每个查询都包含有关检测到的漏洞特征的信息,包括有漏洞代码的示例、实现相同代码的安全方法和外部引用。
GitHub的Dependabot会提醒你依赖库中的漏洞,并建议更新这些依赖库的安全版本。如果你启用了Dependabot报警,当一个新的github检查建议影响到你依赖的包时,你会自动收到通知。对于支持的生态系统,Dependabot甚至可以为你打开一个pull请求来合并更新。每个安全建议都包含有关漏洞的信息,包括描述、严重性、影响和可选细节(如引用、修复提交和解决方案)。
我们还提供加密凭证(secret)扫描功能,如果第三方服务的凭证意外地进入了你的源代码,我们会通知你,并与世界各地的公司合作,自动作废任何通过的凭证,让你快速轮换它们。我们现在识别超过69种不同的加密凭证令牌,但GitHub高级安全的客户也可以定制他们自己的加密凭证令牌。
(完)
摘自:
https://github.blog/2022-05-06-todays-most-common-security-vulnerabilities-explained
原文始发于微信公众号(安全行者老霍):最简单的恶意软件&最常见的安全漏洞解释
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论