粉扑和渗透



信息安全的现代方法



我喜欢信息安全。一方面,企业经常需要推出半熟的原型,每小时部署一次。另一方面,它是信息安全人员的苛刻和无法接近的据点。一切都取决于他们。甚至在以S为安全的物联网领域,在其监督下的发展也变得更加可靠。



估计产品中加工孔孔径的关键问题是时间。我想再次谈谈经典的测试金字塔,但是要在信息安全的背景下。当开发人员不必等待数周的信息安全批准,并且该软件不会向外界发出所有可能的漏洞时,我还将尝试分享我在组织便捷流程的过程中的经验。剧透:未经批准可以推出。



和清单。每个人都喜欢清单。我将提供一些必要的软件,以极大地改善我的日常生活。



如果无聊,您需要自动化





经典的测试金字塔。在底部的某个地方,有大量的单元测试,涵盖了各种小事情,例如确保用户输入印地语密码时应用程序不会崩溃。或发送其他奇怪的东西。如果您还记得的话,iPhone上也有先例,其中有“多变”的例子。这种类型的测试非常适合自动化,但只适用于狭窄的情况,这些情况通常无法提供完整的图像,并确保应用程序不会在意想不到的地方流动。



最重要的是,它已经完全是手工测试。除了检查标准案例之外,当专家被赋予以他喜欢的任何方式打破某些事物的任务时,它还可以提供“自由创造力”。与往常一样,这种创新方法导致这种测试也是最昂贵的。当您需要在昨天已经正确承诺的会议上推出新功能时,不仅在金钱方面,而且还有臭名昭著的上市时间。



许多公司面临的一个传统问题是在每个项目的信息安全方面长期而悲伤的协调。不是因为他们如此生气和不友好。他们的任务只是最大程度地降低风险。因此,他们将最大程度地最小化,同时在检查的瓶颈中停止了一半的过程。实际上,在入狱之前,当您可以缓慢地完善代码时,此方法就可以了。现在,来自竞争对手和猴子编码器的47个半熟原型已经发布到您的第一个版本的完善解决方案中。就这样。您已经失去了市场,所有用户都陷入了另一个Tick-Tock。



一切管道



实际上,最常见的问题是信息安全流程无法很好地集成到开发人员已经熟悉的管道中。出于某种原因,每次推送都伴随着来自同一flake8和mypy的许多检查,它本身被组装成一个包装,上传到GitLab运行器的容器中,并乐意飞走在Artifactory中进行测试。或阶段失败并返回以进行修订。



而且,每次发布时,只有用手将放大镜放在放大镜下,才能翻阅代码,然后将一根魔杖插入应用程序的开放端口中。在我看来,最好的解决方案之一是将安全检查的主要部分移至自动过程,并限制及时进行手动测试。如果IB发现严重漏洞,IB保留否决权,但默认情况下,如果没有异议,则应用程序将投入生产。乍一看听起来令人恐惧,但是这种过程结构促使尽可能多地使所有例行过程自动化,并且只花时间在真正复杂的事情上。



这些缩写(例如DevSecOps和其他TriCeraTops)使我有些害怕,但这正是最经常需要组织以减少时间成本的东西。让我们看一个python示例。值得从短绒棉开始。我认为几乎每个人都已经拧紧了诸如flake8和mypy之类的基本Linter变种。我仍然会推荐flake8的扩展版本-wemake-python-styleguide。



它是按传统安装和启动的:



pip install wemake-python-styleguide
flake8 your_module.py


这种短绒的主要问题在于,它可能会让您首先想用键盘破坏显示器。特别是在旧的旧项目中,刻录比修复容易。但是,如果排除不必要的检查,您将获得对底层代码质量的相当严格的控制。



在检查了代码本身是否有歪斜的结构,差的可读性和较高的循环复杂性之后,我们应该运行静态安全linter。是的,在松散类型的语言中,这样的短毛狗不太好,但是它们使您可以识别代码中的典型问题,例如password ='qwerty123'。您可以在此处使用相同的强盗



这一切都很好,但是免费解决方案的问题通常出现在最新的漏洞数据库中。通常,添加其他类似内容很有意义安全



图片


来源



相似的结帐选项通常可以与同一公司的GitLab完美集成。

话虽如此,控制台通常会有一个很好的信息输出:



safety check --full-report





理想情况下,在完成所有操作之后,您应该拥有一个完整的管道,逐步检查应用程序的所有安全要求。



图片


来源



典型检查:



git secret check-检查

SCA代码中是否存在开放秘密-检查外部依赖项和库是否没有漏洞。冻结旧版本的

SAST库非常重要-漏洞的静态代码分析

容器审核-审核将用于部署的容器映像。它们也常常充满漏洞。特别是当您使用来自许多杂色层的奇异三明治时。

DAST-应用程序部署,注册,作为合法用户登录并在前端进行典型攻击



信息安全还剩下什么



现在,我们已经从日常工作中卸载了人类无用的肉类生物,我们可以将需要真正创造性的工作转移给他们。



将会有同样古老的工具库可供用于分析,网络测试和密码猜测。Wireshark,Hashcat,Hydra和其他实用程序从未淘汰。



但是,即使在熟悉的工具中,也会出现一些新的东西,有时甚至很有用。我建议注意其中一些。



Nikto2



github.com/sullo/nikto

Nikto是一个开源Web服务器扫描程序。他一点也不安静。严重的是,如果您是从工作场所启动它的,并且在15分钟之内还没有朝下躺在安全人员包围的地板上,那么入侵检测就会遇到问题。



该软件在Web服务器上针对许多元素执行复杂的测试,包括6700多个潜在危险的文件/程序。它还会检查服务器配置项(例如HTTP服务器设置),并尝试识别已安装的Web服务器和软件。扫描项目和插件会经常更新,并且可能会自动更新。



模糊数据库



对于使用典型模式和漏洞对Web应用程序进行自动攻击来说,它也是一个非常酷的工具。他会愉快地用一系列标准攻击来轰炸您的应用程序,同时检查您是否忘记了以较小的权限访问管理面板和日志文件。使您减轻许多头痛和例行检查。



Nmap + Vulners





Vulners是各种CVE,供应商安全公告,Metasploit中的漏洞利用的聚合器,而仅仅是在主题论坛中手动捕获漏洞的结果。基本上,它们提供用于查询数据库的API。他们的插件让我着迷了著名的nmap,它立即为Web服务提供了现成的攻击向量。我强烈建议您仔细看看。



类似于输出





人类的死亡-机器人的荣耀!



但是,认真地尝试将例程最小化,并将其传递给真正应该执行的例程-无灵魂的脚本和管道。并让人们从事创造力。这是更正确的。










All Articles