作为一家公司,我们如何防止渗透测试人员破坏我们的系统?

信息安全 渗透测试
2021-09-07 21:28:07

公司可以使用哪些工具或技术来防止渗透测试人员进行恶意行为并泄露数据或破坏系统?我无法想象公司使用的唯一保护措施是合同保护。

4个回答

您正在寻找法律问题的技术解决方案。这行不通。

您担心的主要是法律问题。渗透测试人员在保密协议下运作,这在法律上相当于“对你在这里看到的任何事情闭嘴”。保密协议(简称 NDA)是阻止渗透测试人员谈论他们在上周测试 ACME Corp. 时发现的很酷的漏洞的原因。

但是为什么渗透测试人员会尊重 NDA 呢?因为不这样做基本上会毁掉他们的职业生涯。如果公司得知渗透测试人员泄露了内部信息,他们将起诉渗透测试人员要求赔偿,赔偿金额可能高达数百万。

此外,它将彻底破坏渗透测试人员的声誉,确保没有人会再雇用他们。对于渗透测试人员来说,这意味着他们花费数年或数十年积累的知识基本上一文不值。即使这个想法对道德败坏的渗透测试者来说似乎很甜蜜,但惩罚要严重得多。

此外,大多数渗透测试人员对妥协客户没有兴趣。他们为什么会?确保客户满意符合他们的最大利益,以便他们一次又一次地雇用他们。


至于为什么不进行技术限制,有几个原因。首先,作为一名渗透测试人员,你会觉得自己被当作罪犯对待。许多渗透测试者为他们所做的工作感到自豪,像对待罪犯一样对待他们只会在他们的嘴里留下酸味。渗透测试员了解一家公司有某些政策,但如果一家公司超越并用武装警卫护送他们去厕所,只是为了确保他们不会在路上寻找带有密码的便利贴回来,他们会感到不信任。这可能而且很可能会降低士气,并可能导致渗透测试者无法尽其所能。

此外,荒谬的技术限制也只会让渗透测试人员感到困难。例如,如果他们公司提供的域帐户在他们启动 Wireshark 或 nmap 后立即被阻止,则该帐户需要一段时间才能重新激活。它会阻止渗透测试者启动所有工具以尽可能有效地发现漏洞,并浪费大量时间。

这对渗透测试者和客户都是不利的,并且可能会导致他们双方的整体体验更差。

我在问公司是否可以使用一些工具,一些技术来避免渗透测试人员的恶意行为可能会泄露一些数据或永久破坏系统。

您可以记录防火墙后面的所有流量,或者整夜保持清醒观看 Wireshark 输出,但如果没有技术技能,将很难理解在您面前飞来飞去的比特。数据丢失预防系统可能是您的想法,但它会干扰渗透测试,除非这正是您要测试的设备。


答案是尽职调查在雇用公司之前,请查看他们的凭据。提出问题,也要求提供样本报告。有些服装只会在模板表上运行自动扫描和勾选框。这不是我们想要的。我们想要的是有才华的渗透测试者,他们跳出框框思考并根据他们的侦察工作(大部分是自动化的)设计原创手动攻击。一次好的渗透测试应该是量身定制的操作,而不是千篇一律的练习。

我不会与不提供样本报告(当然是策划报告)的公司做生意。
我最大的担心不是不诚实,而是缺乏能力,这意味着你要为无用的交付物付出代价。
所以这是我的第一个过滤器。在我看来,一家卖票的公司不太道德,因为它故意提供价值可疑的服务。可能总比没有好,但你想要物有所值。

我不记得有一个被渗透的公司被用于犯罪活动的例子。然而,有一些人因“渎职”而被起诉。示例:Affinity Gaming 与 Trustwave

合同应该清楚地说明什么是允许的,什么是不允许的。确保没有误解,并且雇用您的人拥有完全的权力。可能出问题的地方:爱荷华州 vs Coalfire

当然,想要闯入您的系统的“流氓渗透测试人员”(矛盾修饰法)不会请求您的测试许可,然后超出任务范围。他们只会邀请自己。

不知道您是否属于其中之一,但有些公司/政府机构需要安全许可这提高了一点标准:重罪犯不太可能获得许可。也有像斯诺登先生这样的例外,0% 的风险是不存在的。

如果您的公司参与了令人反感的活动、破坏环境、向暴君出售武器,那么您可能有理由担心举报人。这是一个难题——您拥有敏感信息并希望对其保密,但为了保护它,您必须允许外人访问它。您应该选择一个在您的活动领域有与公司合作的经验并且对您的工作感到满意的提供商。也许您的贸易机构或商业伙伴可以提供建议。口口相传。

如果您认为您的公司可能因数据泄露(意外或其他原因)而遭受财务损失/罚款,请与您的保险公司联系。顺便说一句,渗透测试公司也应该有责任保险。这是一个要问的问题。

违规是生活中的事实。几乎所有公司都至少被黑客入侵过一次,或者将来会被黑客入侵。这是需要考虑的事情。无论您是否决定继续进行渗透测试,您都应该准备好灾难恢复计划。我认为这是一个好主意:如果出现问题,至少您可以证明您已采取合理的措施来防止违规行为。被发现有疏忽的公司可能会在以下方面受到更严厉的制裁:监管罚款、诉讼、消费者反弹、负面媒体曝光、股东反抗等。

如果您正在开发产品,您应该有一个具有不同环境(如 DTAP)的 SDLC 管道,您应该让渗透测试人员在验收环境中进行测试。将环境与生产环境完全分离是一种安全最佳实践。因此,您的验收环境应该是生产环境的功能副本,但不应包含生产凭据、来自用户的数据、与生产环境的连接等。

为公司创建验收环境通常是网络和服务器级别的挑战。如果是这种情况,您可以制定一个条款,说他们应该在遇到生产系统的那一刻停止。如果渗透测试人员确实设法在某个地方找到了生产凭据,或者意外入侵了生产服务器,那么您就像发生了真正的违规行为——除了报警——并且更改了登录凭据/监控服务器/等等。

其他答案已经涵盖了概念/合同方面,这非常重要。

但是,也有技术方面的问题,特别是在“最坏情况影响”和限制不必要的访问方面。公司应该做好迎接渗透测试的准备。

这里有些例子:

  • 应该可以在不访问无关系统 Y 的情况下测试系统 X

    这听起来很明显,但许多公司为员工提供了一个单一的登录系统,可以访问所有系统——换句话说,X 的测试凭证对于访问 Y、Z 等也是有效的。

    相反,该公司应该能够发行“有限访问”令牌。在设计凭证系统时,即使起初无用,也应添加此要求(员工很少,每个人通常都值得信任,......)。

  • 渗透测试应该发生在真实的环境中

    同样,听起来很明显,但是……您的测试环境是否包含真实的数据/脚本/程序/等?你有自动生成器吗?是否涵盖了所有有趣的案例?如果不是,对真实数据进行快照和匿名化是否可行?

    在空壳上进行测试是非常不现实的,虽然您可以要求渗透测试人员为您填充数据库,但他们不会知道关心的所有案例。

    也许令人惊讶的是,您的测试系统应该比真实系统更完整——您应该添加所有想到的棘手案例,即使您还没有真正遇到过。

  • 应事先建立沟通渠道和期望

    如果出现问题,渗透测试人员应该联系谁?您准备好快速恢复测试(或生产!)系统并将其重新启动吗?

    您是否希望在发现关键问题后立即收到通知?您是否要在测试进行时修补系统?你期望持久性被尝试吗?跨服务器攻击/“横向移动”?社会工程学?

    更棘手的是:渗透测试者是否应该读取可疑数据,他们能确认情况吗?(“这是测试数据,继续”与“我们没想到这些数据会在那里/可以访问,立即停止”)

  • 范围是什么?密切相关:您的威胁模型是什么?

    虽然您可以要求渗透测试者“弄清楚”,但这可能不是您想要的——请记住,结果需要对有用并代表您的安全边界。

    通常最好与渗透测试者一起解决这个问题,并在必要时准备好在努力过程中发展事物。

顺便说一句,我相信大多数渗透测试者会很乐意就此事提供建议。没有人真正想要处理意外损坏或隐私影响的后果。