草庐IT

聊一聊什么是漏洞扫描器以及一些开源漏洞评估工具

雪竹频道 2023-03-28 原文

概述

计算机系统、软件、应用程序和其他网络接口容易受到各种威胁。因此,企业定期对其网站和网络进行漏洞评估,以确定现有的漏洞和弱点。 评估结果可以帮助开发人员和网络管理员了解安全问题并针对潜在威胁实施必要的防御措施。 本文将更深入地介绍什么是漏洞扫描器。我们还将介绍我们的顶级开源漏洞扫描工具,这些工具是免费的并且适用于各种操作系统。

什么是漏洞扫描程序?

顾名思义,漏洞扫描器是评估系统或应用程序中的漏洞。它通过扫描您的网站和网络以查找各种安全风险来自动执行安全审核并提高您的 IT 安全性。

扫描器还可以生成您应该修补的漏洞的优先列表,描述它是什么类型的漏洞,并提供修复它们的必要步骤。一些扫描仪还提供自动修补功能。

迅速修补任何漏洞至关重要,因为它们遭受网络攻击的风险要高得多。这些威胁让黑客进入您的安全系统并利用这些漏洞为自己谋取利益,从而可能给您的企业造成巨大损失。

漏洞扫描器依赖于已知漏洞的数据库并自动对其进行测试。就像安装 fail2ban或防病毒软件一样,这些扫描仪在维护您网站的最大安全性方面发挥着至关重要的作用。

漏洞扫描器的类型

漏洞扫描器分为四大类,它们是:

基于数据的漏洞扫描器

在当今的数字世界中,数据库承担着存储关键组织数据的沉重负担。丢失此类数据不仅会导致声誉受损,还会造成潜在的经济损失。

基于数据的扫描器会搜索数据库中的漏洞,例如缺少补丁、弱密码和错误配置。他们还实时向用户突出显示弱点,以便快速做出响应。

基于网络的漏洞扫描器

网络内的无缝和持续连接显著增加了数据泄露的风险,因此存在基于网络的漏洞扫描程序。

扫描仪可识别网络中的弱点,并实时查找有线和无线系统中可能存在的网络安全攻击。

基于主机的漏洞扫描器

在系统内的每台主机上安装基于主机的漏洞扫描器,可以深入了解具有访问权限的内部人员或外部人员造成的潜在漏洞和损害。

我们在此介绍的一些基于主机的漏洞扫描器示例包括 OpenVAS 和 Lynis。

基于云的漏洞扫描器

随着对云解决方案的依赖性增加,尤其是在这种新的正常远程工作方式下,也导致基于云的漏洞扫描程序的有着巨大需求。 这些扫描仪主要扫描和检测网站和企业拥有的其他在线资产可能存在的风险。

漏洞扫描工具

网上有许多漏洞扫描工具。它们可以是付费的、免费的或开源的。

在寻找漏洞扫描器时,您应该关注它的可靠性、行业声誉、独特的功能、易于设置和使用以及可扩展性选项。 本文将重点介绍提供大量功能且可免费使用的开源工具。

Aircrack-NG 开源漏洞扫描器

Aircrack-ng 是一款备受推崇的开源漏洞扫描器,专门检测 wifi 和无线漏洞。它的主要优势包括速度、准确性和灵活性,这使其成为安全专业人员的宝贵工具。

Aircrack-ng 在检测 wifi 和无线漏洞方面的一些主要优势包括:

  • 能够检测 wifi 网络和设备中的漏洞
  • 支持广泛的无线硬件和协议
  • 全面覆盖无线漏洞,包括 WEP 和 WPA-PSK 破解
  • 有大量文档和教程的提供支撑
  • 用户界面友好
  • 与其他安全工具和框架集成
Aircrack-ng 的独特之处在于其用于检测无线漏洞的高级算法和技术。它可以检测隐藏的无线网络并执行主动和被动扫描。其模块化架构允许轻松定制和与其他安全工具集成,使其成为安全专业人员的多功能和宝贵资产。该工具专注于 wifi 和无线漏洞,因此特别适合无线网络安全测试。

Anchore 开源漏洞扫描器

Anchore 是一个开源的Docker 容器策略合规性和静态分析工具。激活后,它会自动对容器内容进行图像扫描、分析和评估。结果为每个图像提供策略评估,并确定它是否通过了业务要求。

Anchore 将通过分析容器镜像的内容来发现隐藏的漏洞。它还将扫描已知漏洞并确保图像遵循最佳安全标准和最佳行业实践。最重要的是,Anchore 集成了容器注册表和CI/CD工具。

Anchore 是一种开源漏洞扫描器,旨在帮助组织识别和管理其容器化环境中的漏洞。因此它特别适合在 DevOps 和容器化环境中使用,在这些环境中,应用程序部署在容器中,需要持续监控漏洞。

以下是您可能想要使用 Anchore 的一些原因:

  • 漏洞检测:Anchore 可以自动扫描容器镜像中的已知漏洞,并提供所发现漏洞的详细报告。
  • 镜像分析:Anchore提供了容器镜像内容的详细信息,包括软件包和依赖关系,可以帮助您识别潜在的安全风险。
  • 策略执行:Anchore 允许您为容器镜像定义自定义策略并执行这些策略以确保在您的环境中只使用受信任和安全的镜像。
  • 与 CI/CD 管道集成:Anchore 可以集成到您的 CI/CD 管道中,以在部署之前自动扫描容器镜像中的漏洞,帮助您在开发过程的早期发现漏洞。
总的来说,Anchore 是一个强大的工具,可以帮助您识别和管理容器化环境中的漏洞,并确保您的应用程序以安全可靠的方式部署。

Arachni 开源漏洞扫描器

Arachni 是一款备受推崇的开源漏洞扫描器,专门检测 Web 应用程序漏洞。它的主要优点包括速度、准确性和灵活性,这使其成为安全专业人员的宝贵工具。

Arachni 在检测 Web 漏洞方面的一些主要优势包括:

  • 全面覆盖 Web 漏洞,包括 SQL 注入、跨站点脚本和目录遍历
  • 能够扫描静态和动态内容
  • 可定制的扫描选项和报告
  • 与其他安全工具和框架集成
  • 具有大量文档和教程
Arachni 的独特之处在于其先进的扫描引擎,该引擎结合使用启发式和签名来识别漏洞。其模块化架构允许轻松定制和与其他安全工具集成,使其成为安全专业人员的多功能和宝贵资产。该工具专注于 Web 漏洞,使其特别适合 Web 应用程序安全测试。

Burp Suite 免费版开源漏洞扫描器

Burp Suite 免费版是一个开源漏洞扫描器,它提供了一套全面的 Web 应用程序安全测试工具,包括扫描漏洞、拦截和修改 HTTP 请求以及分析响应。

Burp Suite 免费版的一些主要优势包括:

  • 支持多种操作系统和平台
  • 强大的网络应用程序扫描功能
  • 能够识别各种类型的漏洞,包括 SQL 注入和跨站点脚本
  • 具有大量文档和教程的用户友好界面
  • 与其他安全工具和框架集成
Burp Suite 免费版的独特之处在于其广泛的功能和工具集,使其成为 Web 应用程序安全测试的一站式商店。它拦截和修改 HTTP 请求的能力允许测试复杂的 Web 应用程序和 API。此外,该工具的开源特性允许社区贡献和定制。

Clair 开源漏洞扫描程序

Clair 是一种基于 API 的漏洞扫描器,可让您检查每个开源容器层的任何已知安全漏洞。它使创建可以持续监视容器并查找安全漏洞的服务变得简单。

Clair 定期从各种来源收集漏洞元数据,索引容器图像,并提供一个 API。它还可以在漏洞元数据更新时提醒您,让您可以从以前扫描的图像中找到新的漏洞。

Clair 还提供了一个 API,您可以使用它来查询特定容器镜像中的漏洞。

它的主要优点包括速度、准确性和可扩展性,这使其成为安全专业人员的宝贵工具。

Clair 在检测容器漏洞方面的一些主要优势包括:

  • 全面覆盖容器镜像及其相关漏洞
  • 支持广泛的容器镜像格式和注册表
  • 与 Kubernetes 和 Docker Swarm 等容器编排系统轻松集成
  • 具有详细漏洞报告
  • 能够实时扫描容器
Clair 的独特之处在于它专注于容器化环境,并且能够为容器镜像提供详细的漏洞报告。虽然它不是专门为检测 wifi 和无线漏洞而设计的,但它在识别可能通过容器化 wifi 或无线攻击可能被利用的漏洞方面非常有效。

Lynis 开源主机漏洞扫描器

Lynis是一个开源的基于主机的漏洞扫描器,可用于识别基于 Linux 和 UNIX 的系统中的安全问题。它的设计轻巧、易于使用且高度可定制,允许用户根据自己的特定需求定制扫描过程。

使用 Lynis 的一些好处包括:

  • 全面扫描:Lynis 可以识别主机中的各种漏洞和错误配置,包括文件权限、系统设置和网络服务方面的问题。
  • 易于使用:Lynis 的设计宗旨是用户友好,输出清晰简洁,突出显示潜在的安全问题,并提供有关如何修复这些问题的指导。
  • 可定制:用户可以根据自己的特定需求定制 Lynis,定制扫描过程以专注于特定的关注领域或排除某些检查。
  • 开源:Lynis 是免费和开源的,这意味着它可以被任何人自由使用和修改,源代码可供审查和审计。
总的来说,Lynis 可以成为希望提高其基于 Linux 和 UNIX 的系统安全性的组织的宝贵工具,它提供了一种全面且可自定义的方法来识别和修复漏洞。

Metasploit 开源漏洞扫描器和框架

Metasploit 是一种渗透测试框架,可用于识别和利用计算机系统和网络中的各种类型的漏洞。Metasploit 可以检测到的一些漏洞包括:

  • 远程代码执行漏洞
  • SQL注入漏洞
  • 跨站点脚本 (XSS) 漏洞
  • 目录遍历漏洞
  • 缓冲区溢出漏洞
  • 身份验证绕过漏洞
  • 文件包含漏洞
  • 配置错误的服务和应用程序
除了检测漏洞,Metasploit 还可以模拟攻击并尝试利用已识别的漏洞。这允许安全专业人员测试其安全控制的有效性并评估实际攻击的潜在影响。Metasploit 还拥有一个大型漏洞利用模块和有效负载库,这使其成为安全专业人员和道德黑客的宝贵工具。

Nmap 开源漏洞扫描器

Nmap是一种流行的开源漏洞扫描程序,广泛用于安全社区。它允许用户发现网络上的主机和服务,识别潜在的漏洞,并执行各种与安全相关的任务。它的主要优势包括能够执行快速准确的扫描、检测各种类型的漏洞以及提供有关目标系统的详细信息。

由于其灵活性、可移植性和健壮性,它在开源安全社区中受到高度重视。它支持广泛的平台和操作系统,使其成为安全专业人员的多功能工具。它检测漏洞并提供详细报告的能力使其成为网络管理员和安全分析师的重要工具。此外,该工具的开源特性允许持续开发和定制,使安全社区能够领先于新出现的威胁。

OpenSCAP 开源漏洞扫描器

OpenSCAP 是一种开源漏洞扫描器,在安全社区中备受推崇。它为企业环境提供自动合规性检查、漏洞扫描和配置管理。该工具的主要优势包括其灵活性、可扩展性以及与各种安全框架集成的能力。

OpenSCAP 的一些主要优势包括:

  • 支持多种操作系统和平台
  • 自动检查各种安全标准的合规性,包括 PCI-DSS 和 CIS 基准
  • 大规模环境的配置管理功能
  • 与其他安全工具和框架集成
  • 开源性质允许持续开发和定制
OpenSCAP 的独特之处在于其全面的合规性检查功能以及跨多个系统管理配置的能力。它还可以扫描已知漏洞并建议修复步骤。该工具的模块化架构允许轻松定制和与其他安全工具集成,使其成为安全专业人员的多功能和宝贵资产。

OpenVAS 开源漏洞扫描器

OpenVAS 是一个全面的开源漏洞扫描器和管理系统。它是免费的,根据GNU 通用公共许可证 (GPL)获得许可,并支持不同的操作系统,包括多个 Linux 发行版。

OpenVAS 利用一个自动更新的社区源漏洞数据库,其中包含超过 50,000 个已知的网络漏洞测试。这意味着它会非常详细地查看整个系统并测试经过身份验证和未经身份验证的协议。

进行的漏洞测试非常详细,对计算机和服务器的保护程度进行了深入分析。

OpenVAS 也可以从外部服务器操作,为您提供黑客的视角。这使您可以识别暴露的服务或端口并快速解决它们。

OpenVAS 的一些主要优势包括:

  • 支持多种操作系统和平台
  • 能够扫描超过 50,000 个已知漏洞
  • 可定制的扫描选项和报告
  • 与其他安全工具和框架集成
  • 开源性质允许持续开发和改进
OpenVAS 的独特之处在于它能够提供有关漏洞的详细报告并建议修复步骤。它还可以扫描配置问题并检查是否符合 CIS 基准等安全标准。该工具的模块化架构允许轻松定制和与其他安全工具集成,使其成为安全专业人员的多功能和宝贵资产。

Trivy 开源漏洞扫描器

Trivy 是一种开源漏洞扫描程序,可检测开源软件中的CVE 。它提供了风险的快速解释,让开发人员决定是否在他们的容器和应用程序中使用该组件。

虽然通常的容器安全协议使用静态图像扫描来查找漏洞,但 Trivy 更进一步,将漏洞扫描工具无缝合并到集成开发环境 (IDE)中。

借助庞大的开源社区,许多集成和附加组件都支持 Trivy,例如利用Helm chart将 Trivy 安装到Kubernetes 集群,以及利用Prometheus exporter提取漏洞指标。

Wapiti 开源漏洞扫描器

Wapiti是一款备受推崇的开源漏洞扫描器,旨在识别 Web 应用程序漏洞。它的主要优点包括准确性、速度和灵活性,这使其成为安全专业人员的宝贵工具。

Wapiti 在检测 Web 漏洞方面的一些主要优势包括:

  • 全面覆盖 Web 漏洞,包括 SQL 注入、跨站点脚本和文件包含漏洞
  • 支持静态和动态内容
  • 可定制的扫描选项和报告
  • 与其他安全工具和框架集成
  • 具有大量文档和教程的用户友好界面
Wapiti 的独特之处在于其先进的扫描引擎,它使用启发式和签名的组合来识别漏洞。其模块化架构允许轻松定制和与其他安全工具集成,使其成为安全专业人员的多功能和宝贵资产。虽然 Wapiti 并非专门设计用于检测 wifi 和无线漏洞,但它在识别可能通过 wifi 或无线攻击可能被利用的 Web 漏洞方面非常有效。

sqlmap 开源漏洞扫描器

Sqlmap 是一种渗透测试工具,但具有自动检测和评估漏洞的功能。它不仅仅是简单地发现安全漏洞并尝试利用它们并创建详细的结果报告。

Sqlmap 是用 Python 开发的。因此它支持任何安装了 Python 解释器的操作系统。它将自动识别密码散列值,并使用六种不同的方法利用 SQL 注入漏洞。

SQL 注入 (SQLi) 攻击是一种基于 Web 的攻击,它通过 Web 应用程序的输入表单或其他用户输入字段将恶意代码插入到 SQL 语句中,从而以数据库为目标。

SQL 注入攻击的目标是以 Web 应用程序开发人员无意的方式操纵数据库,从而允许攻击者提取敏感信息、修改或删除数据,甚至控制整个系统。

SQL 注入攻击可能发生在多种环境中,包括:

  • 依赖于用户输入的 Web 应用程序,例如搜索表单或登录页面。
  • 允许用户创建和编辑内容或产品列表的内容管理系统 (CMS) 和电子商务平台。
  • 使用过时的数据库技术或编程语言的遗留系统。
  • 通过 API 与后端数据库交互的移动应用程序。
SQL 注入攻击可以通过各种安全措施来防止,例如输入验证和参数化查询。对于开发人员和系统管理员来说,了解与 SQL 注入攻击相关的潜在风险并采取主动措施来保护他们的系统非常重要。

该工具有一个全面的数据库,支持OraclePostgreSQLMySQLSQL ServerAccess

OnSecurity 漏洞扫描器

Scan by OnSecurity 是一种漏洞扫描工具,可以对缺失的补丁、安全配置错误、默认密码和危险密码执行超过 40,000 次检查。它会定期监控和扫描您的面向互联网的资产。它在攻击者有机会利用它们之前识别漏洞。漏洞扫描不仅有助于确定您可以改进的领域,还可以提供资产清单。此外,OnSecurity 门户仪表板使用 CVSS 分数对每个漏洞进行评级,帮助您确定风险的优先级并了解您的风险。一旦发现发现,OnSecurity 将通过短信或 Slack 在门户中通知您,以便您立即采取行动。

小结

漏洞扫描是组织如何保护自己免受威胁行为者攻击的关键组成部分,因为它有助于识别组织网络、系统和应用程序中的弱点和漏洞。如果没有漏洞扫描程序,组织可能不会意识到可能被攻击者利用的潜在漏洞,从而导致数据泄露、系统受损和其他安全事件。使用开源漏洞工具特别有利,因为它们是免费的,而且通常有一个强大的用户社区来促进它们的开发和维护。这意味着它们会不断更新和完善,从而更有效地检测和应对新出现的威胁。此外,开源工具通常更加透明和可定制,允许安全从业者根据他们的特定需求和工作流程调整它们。

有关聊一聊什么是漏洞扫描器以及一些开源漏洞评估工具的更多相关文章

  1. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  2. ruby-on-rails - Rails - 子类化模型的设计模式是什么? - 2

    我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

  3. ruby - 什么是填充的 Base64 编码字符串以及如何在 ruby​​ 中生成它们? - 2

    我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%

  4. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  5. ruby - 为什么 4.1%2 使用 Ruby 返回 0.0999999999999996?但是 4.2%2==0.2 - 2

    为什么4.1%2返回0.0999999999999996?但是4.2%2==0.2。 最佳答案 参见此处:WhatEveryProgrammerShouldKnowAboutFloating-PointArithmetic实数是无限的。计算机使用的位数有限(今天是32位、64位)。因此计算机进行的浮点运算不能代表所有的实数。0.1是这些数字之一。请注意,这不是与Ruby相关的问题,而是与所有编程语言相关的问题,因为它来自计算机表示实数的方式。 关于ruby-为什么4.1%2使用Ruby返

  6. ruby - ruby 中的 TOPLEVEL_BINDING 是什么? - 2

    它不等于主线程的binding,这个toplevel作用域是什么?此作用域与主线程中的binding有何不同?>ruby-e'putsTOPLEVEL_BINDING===binding'false 最佳答案 事实是,TOPLEVEL_BINDING始终引用Binding的预定义全局实例,而Kernel#binding创建的新实例>Binding每次封装当前执行上下文。在顶层,它们都包含相同的绑定(bind),但它们不是同一个对象,您无法使用==或===测试它们的绑定(bind)相等性。putsTOPLEVEL_BINDINGput

  7. ruby - Infinity 和 NaN 的类型是什么? - 2

    我可以得到Infinity和NaNn=9.0/0#=>Infinityn.class#=>Floatm=0/0.0#=>NaNm.class#=>Float但是当我想直接访问Infinity或NaN时:Infinity#=>uninitializedconstantInfinity(NameError)NaN#=>uninitializedconstantNaN(NameError)什么是Infinity和NaN?它们是对象、关键字还是其他东西? 最佳答案 您看到打印为Infinity和NaN的只是Float类的两个特殊实例的字符串

  8. ruby-on-rails - 如果 Object::try 被发送到一个 nil 对象,为什么它会起作用? - 2

    如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象

  9. ruby - 为什么 SecureRandom.uuid 创建一个唯一的字符串? - 2

    关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion为什么SecureRandom.uuid创建一个唯一的字符串?SecureRandom.uuid#=>"35cb4e30-54e1-49f9-b5ce-4134799eb2c0"SecureRandom.uuid方法创建的字符串从不重复?

  10. ruby - 当使用::指定模块时,为什么 Ruby 不在更高范围内查找类? - 2

    我刚刚被困在这个问题上一段时间了。以这个基地为例:moduleTopclassTestendmoduleFooendend稍后,我可以通过这样做在Foo中定义扩展Test的类:moduleTopmoduleFooclassSomeTest但是,如果我尝试通过使用::指定模块来最小化缩进:moduleTop::FooclassFailure这失败了:NameError:uninitializedconstantTop::Foo::Test这是一个错误,还是仅仅是Ruby解析变量名的方式的逻辑结果? 最佳答案 Isthisabug,or

随机推荐