当前位置: 首页 > news >正文

渗透测试成功的8个关键

渗透测试 (penetration test)并没有一个标准的定义,国外一些安全组织达成共识的通用说法是:渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。

换句话来说,渗透测试是指渗透人员在不同的位置(比如从内网、从外网等位置)利用各种手段对某个特定网络进行测试,以期发现和挖掘系统中存在的漏洞,然后输出渗透测试报告,并提交给网络所有者。网络所有者根据渗透人员提供的渗透测试报告,可以清晰知晓系统中存在的安全隐患和问题。

我们认为渗透测试还具有的两个显著特点是:渗透测试是一个渐进的并且逐步深入的过程。渗透测试是选择不影响业务系统正常运行的攻击方法进行的测试。

作为网络安全防范的一种新技术,对于网络安全组织具有实际应用价值。但要找到一家合适的公司实施渗透测试并不容易。

No.1 知道为什么要测试

执行渗透测试的目的是什么?是满足审计要求?是你需要知道某个新应用在现实世界中表现如何?你最近换了安全基础设施中某个重要组件而需要知道它是否有效?或者渗透测试根本就是作为你定期检查防御健康的一项例行公事?

当你清楚做测试的原因时,你也就知晓自己想从测试中得到什么了,而这可以让测试规划工作更有效率。知道做测试的缘由可以让人恰当地确立测试的范围,确定测试结果将会揭露什么问题。

或许这一步中最重要的一部分,是让团队提前架设好准备从测试结果中得出正确的结论的心理预期。如果测试是要审查IT基础设施的某个特定方面(比如说新的Web应用),那就没必要着墨于公司整体安全。理解做测试的缘由可以让你问出正确的问题,得到能被恰当理解的结果。

No.2 测试方法

有些渗透测试人员通过使用两套扫描器进行安全评估。这些工具至少能够使整个过程实现部分自动化,这样,技术娴熟的专业人员就可以专注于所发现的问题。如果探查得更深入,则需要连接到任何可疑服务,某些情况下,还要利用漏洞。

商用漏洞扫描工具在实际应用中存在一个重要的问题:如果它所做的测试未能获得肯定答案,许多产品往往会隐藏测试结果。譬如,有一款知名扫描器就存在这样的缺点:要是它无法进入Cisco路由器,或者无法用SNMP获得其软件版本号,它就不会做出这样的警告:该路由器容易受到某些拒绝服务(DoS)攻击。如果不知道扫描器隐藏了某些信息(譬如它无法对某种漏洞进行测试),你可能误以为网络是安全的,而实际上,网络的安全状况可能是危险的。

除了找到合适工具以及具备资质的组织进行渗透测试外,还应该准确确定测试范围。攻击者会借助社会工程学、偷窃、贿赂或者破门而入等手法,获得有关信息。真正的攻击者是不会仅仅满足于攻击某个企业网络的。通过该网络再攻击其它公司往往是黑客的惯用伎俩。攻击者甚至会通过这种方法进入企业的ISP。

No.3 测试技巧

为了从渗透测试上获得最大价值,应该向测试组织提供尽可能详细的信息。这些组织同时会签署保密协议,这样,你就可以更放心地共享策略、程序及有关网络的其它关键信息。

还要确定的是,哪些系统需要测试。虽然你不想漏掉可能会受到攻击的某个系统,但可能仍想分阶段把渗透测试外包出去,以便每个阶段专注于网络的不同部分。

你还应该制订测试准则,譬如说:渗透测试人员可以探查漏洞并进行测试,但不得利用,因为这可能会危及到你想要保护的系统。

此外,你还要提供合适的测试途径。如果你想测试在非军事区(DMZ)里面的系统,最好的测试地方就是在同一个网段内测试。让渗透测试人员在防火墙外面进行测试听起来似乎更实际,但内部测试可以大大提高发现防火墙原本隐藏的服务器安全漏洞的可能性。因为,一旦防火墙设置出现变动,就有可能暴露这些漏洞,或者有人可能通过漏洞,利用一台DMZ服务器攻击其它服务器。还记得尼姆达病毒吗?它就是首次攻击得逞后、利用一台Web服务器发动其它攻击的。

以外部需要访问的Web或应用服务器为例,你应该考虑与渗透测试人员共享这些应用的源代码,如果测试涉及这些脚本或程序的话。没有源代码,很难测试ASP或CGI脚本,事先认定攻击者根本不会看到源代码是不明智的。Web服务器软件里面的漏洞往往会把脚本和应用暴露在远程攻击者面前。如果能够获得应用的源代码,则可以提高测试该应用的效率。毕竟,你出钱是为了让渗透测试人员查找漏洞,而不是浪费他们的时间。

No.4 做好计划

了解测试目的并确定测试范围后,就可以开始制定测试计划了。定出详细明确的测试条件和需求最为重要,任何松散或须经解释的测试要求都会削减渗透测试的效率。需做好详尽计划的原因有很多,其中最主要的原因与成本控制和提升测试结果可用性有关。

良好的测试计划应分为多个部分。一个部分帮助委托公司巩固其测试方案的要求。一个部分确认测试返回数据的类型。还要有一部分内容为向公司执行委员会解释测试开销做准备。

测试计划不是制定好后就固定不变的,测试过程中可能需作出修订。测试团队被聘用后,他们可能会针对某些测试元素提出一些能产生更好结果的建议。其中关键就在于,公司内部就该测试计划达成一致后 ,安全团队就能判断渗透测试员的建议是否能满足测试需求了,不用什么都依靠测试团队的力量。

No.5 雇佣正确的团队

提供渗透测试服务的公司和顾问很多。这些公司都有各自的优势和弱点,他们的技术技巧各有千秋,呈现测试结果的方式也有好有坏。公司有必要确保所选测试团队的能力尽可能地符合测试需要。

要注意的是,测试需求应高于客户要求。确实,有些团队在导引征求建议书(RFP)过程或挤进获批供应商列表上颇有心得,但他们执行测试计划所需渗透测试动作的技术未必比得上这些在应付客户上的技巧。选择渗透测试团队时应将测试技术放在第一位,会计和行政管理方面的能力次之。

可以考察测试团队的老辣程度,看他们如何在不推翻原计划的条件下提出建议,改进客户的测试计划。这也是为什么前期要做好测试计划的一个重要原因。因为可以检查测试过程中的种种改动。

No.6 不要干预

渗透测试的目的就是要展现出公司企业安全状态的实际情况,所以,尽量不要为了得到一个好看的结果而人为干扰渗透测试员,给防御方提供不公平的优势。

事实上,红队几乎总能渗透进公司网络边界。我们当前的技术和操作就是这样的。很多情况下,真正的问题存在于蓝队到底什么时候才能发现已被攻破,会如何响应。

无论测试结果如何,都要让测试过程正常进行,以便结果真实、准确、有用。管理层的任何干预都会毁了渗透测试的有效性,请一定记得在测试完成前不要插手。

No.7 注意结果

测试完成后,你会得到一份完整的报告,需仔细研读。渗透测试员应向你呈现出测试的结果,如果你有机会根据测试结果改进安全系统,别放过这种机会。

或许渗透测试是为了满足监管合规要求而做的。也有可能你就没想找任何理由来改变你的安全防御。这都没关系。你的安全防御如今已被攻破,而你可以看清安全计划的成功之处与失败的地方。

如果测试结果被用于做出有意义的改变,渗透测试就是划算的。而划算的渗透测试也更有可能在未来获得公司高层的安全预算。

No.8 沟通结果

对大多数公司来说,渗透测试的结果不局限在安全团队范围内。至少,对整个IT部门都有影响,而很多情况下还有高管们需要看到的信息。

很多安全人员都觉得,向非安全专业的经理传达渗透测试结果是过程中最难的部分。不仅需要说明都做了什么,为什么要这么做,还要用他们能听懂的语言解释需要作出什么改动。这往往意味着要用商业术语沟通,而不是以技术语言阐述。

正如渗透测试可被视为真实攻击的预演,将其他部门的同事纳入结果阐述和操作展示的受众范围,也有助于确保被接收的信息确实是你想要传达的。

对很多业务经理而言,网络安全是个令人望而生畏的高难度领域;尽量别用过多的行话让业务经理们在座位上一头雾水坐卧不宁。

既然都已经花大力气做了计划并执行了切实的渗透测试,那就努力让测试结果对整个公司有用吧。

相关文章:

渗透测试成功的8个关键

渗透测试 (penetration test)并没有一个标准的定义,国外一些安全组织达成共识的通用说法是:渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析&#x…...

【leetcode】链表part2

24. 两两交换链表中的节点 迭代方法 public static ListNode swapPairs(ListNode head) {// 输入:head [1,2,3,4]// 输出:[2,1,4,3]ListNode dummy new ListNode(0);dummy.next head;ListNode cur dummy;while (cur.next ! null && cur.ne…...

C#数据类型转换

目录 1.常用的数据类型: ​编辑1.1别名概念例子: 输出结果: 2.数值类型之间的相互转换: 2.1举例: ​编辑输出结果: 1.常用的数据类型: 1.1别名概念例子: 输出结果: 用GetType来获取数据类型的时候,就是指向System.Byte和System.Char这个…...

mybatis-plus逻辑删除的坑

一旦在逻辑字段上加了TableLogic逻辑删除的配置,并且使用mybatis-plus自带的方法时(如果自己用xml写SQL不会出现下面的情况) 查询、修改时会自动排除逻辑删除的数据 当使用mybatis-plus自带的查询方法时,就不用每次查询的时候跟…...

SQL Server基础之游标

一:认识游标 游标是SQL Server的一种数据访问机制,它允许用户访问单独的数据行。用户可以对每一行进行单独的处理,从而降低系统开销和潜在的阻隔情况,用户也可以使用这些数据生成的SQL代码并立即执行或输出。 1.游标的概念 游标是…...

(二)结构型模式:4、组合模式(Composite Pattern)(C++实例)

目录 1、组合模式(Composite Pattern)含义 2、组合模式应用场景 3、组合模式的优缺点 4、组合模式的UML图学习 5、C实现组合模式的简单示例(公司的OA系统) 1、组合模式(Composite Pattern)含义 组合模…...

flask接口请求频率限制

pip install Flask-Limiter Flask-Limiter官方文档 基本使用 默认是用IP作为key进行计数的,你也可以自定义key,具体看官网 from flask import Flask from flask_limiter import Limiter from flask_limiter.util import get_remote_addressapp Flas…...

javaweb监听器和juery技术

监听servlet创建 package com.hspedu.listener;import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener;/*** 老韩解读* 1. 当一个类实现了 ServletContextListener* 2. 该类就是一个监听器* 3. 该类可…...

C++并发多线程--std::unique_lock的使用

目录 1--std::unique_lock的使用 1-1--std::adopt_lock参数 1-2--std::try_to_lock参数 1-3--std::defer_lock参数 1-4--互斥量所有权转移 1--std::unique_lock的使用 常用成员函数: ① lock(): 加锁; ② unlock(): 解锁; ③ try_lock()…...

【ChatGLM】ChatGLM-6B模型Win+4GB显卡本地部署笔记

ChatGLM-6B是清华大学知识工程和数据挖掘小组发布的一个类似ChatGPT的开源对话机器人,由于该模型是经过约1T标识符的中英文训练,且大部分都是中文,因此十分适合国内使用。 预期环境 本机电脑备注: Win10专业版 32G内存256固态系统…...

青翼科技自研2路250MSPS DA回放FMC子卡模块

FMC150_V30是一款基于VITA57.1规范的2路125MSPS采样率16位分辨率AD采集、2路250MSPS采样率16位分辨率DA回放FMC子卡模块。该模块遵循VITA57.1规范,可直接与符合VITA57.1规范的FPGA载卡配合使用,板卡ADC器件采用ADI公司的AD9268芯片,板卡DAC器…...

硬件产品经理:从入门到精通(新书发布)

目录 简介 新书 框架内容 相关课程 简介 在完成多款硬件产品从设计到推向市场的过程后。 笔者于2020年开始在产品领域平台输出硬件相关的内容。 在这个过程中经常会收到很多读者的留言,希望能推荐一些硬件相关的书籍或资料。 其实,笔者刚开始做硬…...

Opencv-C++笔记 (17) : 模板匹配

文章目录 1--概念2-- 方法3 结果3.1 ROI区域的获取使用自适应目标匹配 1–概念 opencv 提供了一个专门用于模板匹配的函数 cv::matchTemplate();其调用方式如下: void cv::matchTemplate(cv::InputArray image, // 用于搜索的输入图像, 8U 或 32F, 大小 W-Hcv::Inpu…...

Maven(四)常用命令大全

目录 一、mvn 命令参数二、mvn 插件命令1.介绍2.查看插件的使用文档3.常用的插件命令 官网地址: https://maven.apache.org/官方插件清单: https://maven.apache.org/plugins/index.html Maven 是一个强大的构建工具,它提供了许多命令来进行项…...

13.3 目标检测和边界框

锚框的计算公式 假设原图的高为H,宽为W 详细公式推导 以同一个像素点为锚框,可以生成 (n个缩放 m个宽高比 -1 )个锚框 锚框的作用: 不用直接去预测真实框的四个坐标,而是: 1.先生成多个锚框。 2.预测每个锚框里是否含有要预测…...

TCP/IP网络江湖初探:物理层的奥秘与传承(物理层上篇-基础与本质)

〇、引言 在这个数字时代,计算机网络如同广袤的江湖,数据在其中畅游,信息传递成为了生活的常态。然而,在这个充满虚拟奇观的网络江湖中,隐藏着一个不容忽视的存在,那就是物理层,这个江湖的基石。就如同江湖中的土地一样,物理层作为计算机网络的基础,承载着数据的最初转…...

计算机视觉五大核心研究任务全解:分类识别、检测分割、人体分析、三维视觉、视频分析

目录 一、引言1.1 计算机视觉的定义1.1.1 核心技术1.1.2 应用场景 1.2 历史背景及发展1.2.1 1960s-1980s: 初期阶段1.2.2 1990s-2000s: 机器学习时代1.2.3 2010s-现在: 深度学习的革命 1.3 应用领域概览1.3.1 工业自动化1.3.2 医疗图像分析1.3.3 自动驾驶1.3.4 虚拟现实与增强现…...

linux -- centos -- cmake 留坑

安装Cmake 在Linux一个目录下: touch poj.cpp touch CMakeLists.txtpoj.cpp的内容:随便输出一点东西啦 CMakeLists.txt的内容: cmake_minimum_required(VERSION 3.6) project(Test) add_executable(Test test.cpp)cmake_minimum_required:c…...

【100天精通python】Day33:使用python操作数据库_SQLite数据库的使用与实战

目录 专栏导读 1 SQLite 简介 2 SQLite数据库安装及使用 2.1 检查 SQLite 支持 2.2 创建数据库文件 2.2.1 使用 Python 创建数据库文件: 2.2.2 使用命令行创建数据库文件: 2.3 连接到 SQLite 数据库: 3 SQLite 中常用的SQL语句…...

通过将信号频谱与噪声频谱进行比较,自动检测适当的带通滤波器转折频率研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage)&#xff1a…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线, n r n_r nr​ 根接收天线的 MIMO 系…...

安卓基础(aar)

重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案

在大数据时代,海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构,在处理大规模数据抓取任务时展现出强大的能力。然而,随着业务规模的不断扩大和数据抓取需求的日益复杂,传统…...

Vue 3 + WebSocket 实战:公司通知实时推送功能详解

📢 Vue 3 WebSocket 实战:公司通知实时推送功能详解 📌 收藏 点赞 关注,项目中要用到推送功能时就不怕找不到了! 实时通知是企业系统中常见的功能,比如:管理员发布通知后,所有用户…...

Python异步编程:深入理解协程的原理与实践指南

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 持续学习,不断…...

7种分类数据编码技术详解:从原理到实战

在数据分析和机器学习领域,分类数据(Categorical Data)的处理是一个基础但至关重要的环节。分类数据指的是由有限数量的离散值组成的数据类型,如性别(男/女)、颜色(红/绿/蓝)或产品类…...