大家好啊
今天, 我们不再像往常那样讨论黑客攻击和侵入系统, 而是讨论安全性,
特别是如何保护网站､ Web应用程序､ 移动应用程序等｡
显然, 黑客攻击和漏洞对公司有着巨大的负面影响, 从客户信任的丧失到财务损失｡
泄露用户数据､ 法律问题等等｡
现在, 如果你在谷歌上快速搜索一下如何保护你的网站或应用程序,
你会得到很多垃圾｡
我实际上是如此失望, 在点击诱饵的文章, 实际上没有解释或给出任何有用的信息｡
他们中的大多数人建议你使用备份, 你的强密码, 并确保你使用HTTPS｡
但是备份并不能保护您的网站, 它们只是帮助您恢复｡
此外, 使用ETP加密通信, 但它并不能真正保护网站｡
唯一有用的提示是使用强密码｡
但大多数黑客不会像你在好莱坞电影中看到的那样坐下来试图猜测密码｡
他们将依赖于您的应用程序中的漏洞和弱点, 并将利用这些漏洞和弱点来获得对应用程序的访问权限,
而不管您使用什么密码｡
即使你有一个非常非常复杂的密码, 即使你使用HTTPS, 即使你有备份, 很多这实际上是无关紧要的｡
此外, 将应用程序托管在何处､ 是否使用A并不重要｡ W的｡ 或任何其他云提供商,
无论您如何部署此应用程序｡
如果您使用的是Kubernetes或Docker, 这并不重要｡
其实非常非常简单｡
如果您有一个易受攻击的Web应用程序, 那么黑客就会利用这些漏洞或弱点来访问此应用程序｡
总之, 别再咆哮了｡
让我们来谈谈如何真正保护网站和应用程序｡
首先, 在我们开始讨论它之前, 了解实现100%的安全性是不可能的,
这一点非常重要｡
我们所要做的就是提高应用程序的安全性, 并确保它们尽可能安全｡
话虽如此, 以下四种方法将帮助您提高应用程序的安全性, 而不管它们是什么类型的应用程序,
也不管它们安装在哪里｡
就像我说的, 不管你是在亚马逊上还是在WIC或其他任何地方安装它们,
如果你使用Docker等, 你如何部署它也不重要｡
因此, 您应该做的第一件事是确保您以这种方式编写安全代码｡
您的应用程序是从头开始构建的, 它是安全的, 不会引入任何漏洞或漏洞, 黑客可以利用这些漏洞或漏洞来获得访问权限｡
现在, 如果你能做到这一点, 那就太好了, 但问题是说起来容易做起来难,
因为开发人员需要接受教育, 学会黑客利用系统和获得访问权限的方法｡
即使您这样做了, 很多时候开发人员依赖于第三方库, 整个应用程序可能是由其他人编写的｡
因此, 您无法编写安全代码, 因为您实际上不是该应用程序的编写者或开发人员｡
这就引出了第二点｡
审查代码｡
这实际上非常好, 即使您自己编写了应用程序, 并且确保编写了安全的代码,
让其他开发人员或其他团队对代码进行审查也是一个非常好的主意｡
万一开发人员编写的应用程序遗漏了一些东西或忽略了一些东西, 那么它将在审查阶段被发现｡
此外, 如果您使用的是其他开发人员或第三方库编写的代码, 那么再次强调, 代码评审将解决此问题,
因为您可以评审和所有内容｡
同样, 这真的非常非常好, 因为您实际上检查了每一行, 并确保没有任何内容是易受攻击的,
也没有任何内容会允许黑客利用您的应用程序并获得访问权限｡
这里的主要缺点是, 如果你有一个大的代码库, 这可能是非常耗时的,
也可能是非常昂贵的｡
第三种方法, 在我看来是非常必要的, 那就是做一次笔测｡
在笔测验中｡
你基本上雇佣了一个有道德的黑客团队来尝试和黑客你的应用程序｡
这些有道德的黑客将以与黑帽黑客相同的方式处理您的应用程序｡
他们会尝试收集尽可能多的信息, 发现所有的弱点和漏洞, 看看他们是否可以利用它们来获得访问权限｡
最后, 当他们完成时, 他们会给你一个详细的报告, 报告他们发现的一切,
这样你就可以把它传给你的开发人员, 并修补他们发现的任何漏洞｡
这种方法的主要优点是, 您可以测试其他方法无法测试的攻击面,
例如运行Web应用程序的服务器和最薄弱的环节（即员工）｡
所以这些黑客, 道德黑客, 甚至可以使用社会工程学, 并将其与其他更简单的攻击或更简单的漏洞链接起来,
他们可能会在您的系统上找到这些漏洞, 看看他们是否可以利用它们来获得访问权限｡
这里的缺点是, 它可能有点贵, 它不是未来的证明｡
我的意思是, 如果你让你的应用程序今天测试了一个真正好的道德黑客, 然后确保你修补他们发现的每一个漏洞,
这只意味着你的Web应用程序是安全的｡
它并不能保证在下个月或下一年仍然安全, 因为您所做的每一个更改､ 您所推出的每一个功能,
甚至您所修复的每一个显示bug都可能引入其他bug或安全漏洞, 这些bug或安全漏洞随后可能被用来入侵您的应用程序｡
不仅如此, 如果你再次更新第三方软件或插件, 所有这些都可能会引入漏洞,
而测试将无法捕捉到这一点, 因为你今天只做了黑豹, 这些未来的变化不会被测试｡
第四种方法, 实际上可以解决这个问题, 是有一个错误奖励计划｡
漏洞奖励计划基本上是邀请全世界所有有道德的黑客测试您的应用程序并提交他们的发现｡
而且你只会为有效的错误或有效的报告付费｡
正如您可能已经猜到的, 主要的优势在于, 您的应用程序正在接受大量黑客的测试,
因此他们发现漏洞的可能性更高｡
它实际上是未来的证据, 因为只要你有那个bug赏金列表, 这些黑客就会一直测试你的应用程序,
你用赏金来激励他们｡
所以这可以是任何东西, 从一件T恤到实际上的金钱奖励｡
以确保他们真的会继续测试您的应用程序｡
因此, 即使你在推动新的变化, 新的功能或更新的东西, 这真的不重要,
因为黑客将继续测试您的应用程序, 希望找到错误, 并获得奖金, 他们的发现｡
这就是为什么像Facebook和谷歌这样的大公司使用这些漏洞奖励计划, 尽管他们遵循了所有其他的方法｡
就像我说的, 他们仍然使用这个来确保他们的系统总是尽可能安全,
尽可能没有bug｡
其缺点是, 首先, 很难保证覆盖所有攻击面｡
第二, 很多公司没有谷歌和Facebook那样的影响力, 所以他们不能像大公司那样宣传他们的bug奖金｡
他们不能让很多有道德的黑客来测试他们的网站｡
对他们来说, 制定这些漏洞奖励计划并验证提交的报告是一项挑战｡
但这是解决的错误赏金平台, 我们这些天, 如错误赏金, 互联网和其他平台｡
Bug Bounty实际上是该证券公司的姊妹公司｡
所以我的意见可能有点偏颇, 但我敢肯定, 我们的价格是最有竞争力的, 我们提供同样的服务｡
所以不管怎样, 我被包括在那里的一切｡
你有选择权｡
你可以查任何你想查的东西, 如果我把你和秋季的方法搞混了, 我很抱歉｡
就是我刚才提到的, 但在我看来, 理想的情况下, 你会希望遵循所有这四种方法,
如果你可以的话｡
这可能会很贵｡
这就是为什么很多公司不这样做｡
他们会妥协, 只选择3和4｡
所以他们只会做一个补丁测试, 并有一个错误奖励计划｡
而其他公司有时会做出更大的让步｡
然后在两个中选一个要么做一个bug赏金计划要么做一个笔测试｡
在我看来, 笔测试不是bug赏金程序的替代品, 反之亦然｡
我会建议你做这两个, 因为就像我说的, 每一个都有它的优点和缺点｡
但是如果你真的不能同时做两件事, 那么至少做其中一件作为最低限度｡
作为网站所有者或应用程序所有者, 您要对用户信任您的用户数据负责,
因此您至少需要做最低限度的工作, 以确保他们的数据得到安全处理｡