安全建设之平台搭建

摘要:
1、 信息收集基本信息基本信息收集包括IP、域名、端口、框架和组件信息。Ip和域名可由甲方通过运维同事获取,其他获取方式因人而异。对于端口,我们需要根据获得的域名和IP扫描端口。在这里,我们推荐mascan和nmap,为仓库、记录和比较编写调度脚本。这是一项永久性作业,并在端口上执行服务检测。有时,我们会得到不同的结果。框架和组件信息可能对许多架构师和程序员来说并不清楚,这需要我们积极收集。更直接的方法是收集

一、信息搜集类

基础信息

基础信息搜集包括ip,域名,端口,框架,组件信息。Ip、域名甲方可通过运维同事获取,其他获取方式仁者见仁智者见智。端口,需要我们根据获取的域名、ip进行端口扫描,这里推荐masscan、nmap,写调度脚本入库处理,记录并对比是一个持久的工作,并对端口做服务探测,有时会有不一样的收获。框架、组件信息,也许很多架构师、程序员都无法理清,这就需要我们去主动搜集。比较直接的办法是收集php.ini、pom.xml,收集相关的组件信息查看组件是否存在漏洞,比如imagemagick、fastjson等等。

敏感目录、文件

敏感目录、文件的收集,防止目录出现非项目文件,比如sql、rar、test等。曾经遇到一个test页面,直接甩出admin表所有数据。建议根据自家公司的特点,完善字典,可以借用姐姐的神器(BBScan),定期监控,会有收获。此外,还有搜索引擎大法,对大型公司有奇效,因为大型公司迭代会有下架不及时、历史老页面无人维护的现象,存在漏洞可能性会更高。通过特定语法,可以让你眼前一亮,通过爬取入库,可掌握对外暴露信息,提前发现问题,走在hacker前面。

Github监控

Github监控,现在市面上有许多github监控脚本,各有各的长处,个人觉得要知其然知其所以然,坚持亲自动手。因为在探索的过程中,可以了解到更多的姿势点。比如防爬策略、绕过方法等。Github监控已经成为各大公司必备神器,因为很多人提交github信息泄露类都会被反馈,“内部已知晓,感谢反馈”的提示。但还是会有漏网的,这就需要优化自己的策略,让爬取更精准,更全面。比如精准查找、ua变化、失败重试策略等等,尽最大的努力把误差降到最小。一样的功能,你能做到更好,就能在赛跑中胜出!

威胁情报

威胁情报,现在有很多羊毛论坛、QQ群。比如之前出现过外卖红包机器人自动抢最大红包、某咖啡被薅千万等等,很多人会把薅羊毛的方法发送到论坛或羊毛群里。如果业务方能提前发现风险,并做及时响应,可及时止损,减小损失,比如某住之前的用户信息泄露。上个直观的历史图举个例子:

威胁情报.png网盘监控

网盘方便存储、分享资料。个别员工把工作相关内容如员工资料、公司资料传上网盘,这就带来了信息泄露的风险。网盘监控自动化实现会遇到各种问题,历史的可以通过各个网盘分享站爬取,比如pansoso,panduoduo。但很难做到实时,目前没有相关接口可查,更多的在于教育宣导、限制。

二、扫描工具

漏洞扫描,是每个企业必需的部分。我将扫描任务分为四类:主动扫描、被动扫描(代理扫描)、插件扫描、端口扫描。

主动扫描

主动扫描,可以自主开发扫描器加以商用扫描器辅助的形势。可以编写动态爬虫,抓取url去重后放入扫描队列,但目前很少有爬虫能做到全覆盖。借助市面优秀的扫描器比如awvs、appscan、arachni等,可以根据个人喜好,嵌入主动扫描。这里我主要介绍下awvs,老版本有命令行接口,可以调度爬虫、扫描,可以定制xml文件配置不同的扫描策略,扫描结果相对比较全面。我们可以通过对比扫描,优化自主开发的工具。曾在14年写了一个调度脚本,多线程调用扫描器,并把结果读取入库统计,在一个人的安全部可以极大的简化工作。当年稚嫩的调度架构如下:

jia1.png

个人觉得扫描器的核心是爬虫,爬虫像一个向导,在一个好的向导的指引下,可以少走很多弯路,更快到达目的地!所以,要做好扫描器,首先要写好一个好的爬虫。目前有很多动态爬虫组件,比如phantomjs(封存归档暂停开发)、Chrome Headless等等。这里用phantomjs实现了一版。分为调度、执行、探测模块。

执行模块负责:

1.javascript动态解析,触发click等操作;

2.hook所有的网络请求;

3.静态页面链接分析,如href、frame等等;

4.自动分析表单幷提交。

执行模块获取数据后反馈给调度,调度根据去重算法、爬虫深度判断是否继续发送到执行模块。探测模块其实就是用字典去探测是否存在特定目录、文件,执行结束后发送给调度深入挖掘。测试了爬取http://demo.aisec.cn/demo/,结果只能说还算可以,还有很大的改进空间。

爬虫.png

被动扫描

曾经遇到过这样的情况,每天大量检测任务,纯手工又慢又累,而且容易遗漏。像XSS,xxe等常规漏洞,可以把检测方法脚本化,是知识的积累的积累过程。把重复的工作做简单,把简单的事情做好是必须具备的能力。做测试的同学可能有比较深刻感触。因此,被动扫描是刚需。设计原理大同小异,选用mitmproxy作为代理,截取流量,去重后发送到后端任务队列。分享下扫描器设计思路,希望能给需要的朋友带来灵感。扫描器采用纯python实现,前端flask展现、mitmproxy代理、redis消息队列、celery任务队列、mongodb存储。大致架构如下:

扫描架构.png

Web界面:

扫描.png

Celery队列调用特定的检测函数(xxe、端口扫描等等),实现检测。此处有一个tips,在使用流量时,有部分字段是不能带入扫描的,否则检测可能失效,比如content-length。此处只举一个例子,检测方法仁者见仁智者见智。但不管主动、被动、端口、插件扫描调度方法是一样的。

接口.png接口2.png

接口3.png

具体实现如上图,SQL注入调用了sqlmapapi,其他检测都是根据特定漏洞定制。比如平行越权,首先根据基准页面的反馈,查找相关的敏感字段(手机号、订单号、身份证号等等),然后根据id左右偏移,看返回。越权类很难做到通用,但可以发现70%以上的问题。曾经见到过比较鸡贼的订单号,订单号为订单号1001111202+用户id后2位,组合订单号即为100111120288。显然这种订单号遍历难度就比较大。

插件扫描

0day的泛滥,特定漏洞检测已经成为常规需求,快速定位发现问题,插件扫描应运而生。世面上有不少优秀的插件,如bugscan、xunfeng,目前收集的插件大概2k个左右。曾经有个哥们让我帮忙把插件改成符合他的调用模式,其实摸清插件的运行规则,返回数据套路,写一个集成调用函数,完美运行!

插件扫描.png

端口扫描

端口扫描的目的是为了防止端口异常开放。如22,3306,6379异常开放,可能导致破解、未授权等风险。定期的扫描,可以让业务方及时发现问题,规避风险。

端口.png

三、知识分享

漏洞多数是因为疏忽、无知导致,安全教育和培训是必不可少的。持久的知识输出,可以加强员工的安全意识,减少人为因素导致的安全问题。赏罚公告、知识分享、小课堂、漏洞预警,让员工意识到安全和自己并不遥远。

免责声明:文章转载自《安全建设之平台搭建》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇table 隔行变色启动dubbo消费端过程提示No provider available for the service的问题定位与解决下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

智能威胁分析之图数据构建——关联数据为环境数据图:如资产、资产脆弱性、文件信息、用户信息、IT系统架构信息等 行为数据图:如网络侧检测告警、终端侧检测告警、文件分析日志、应用日志、蜜罐日志、沙箱日志等 情报数据图:各类外部威胁情报 知识数据图:各类知识库(如ATT&CK,CAPEC,CWE)等

智能威胁分析之图数据构建 安全运营 绿盟科技研究通讯 2019-05-24   随着数据的丰富和检测、关联能力的提升、响应能力更自动化,各大厂商也逐渐开始思考智慧安全能力的构建,以针对安全数据实现更通用的自动化推理能力。 RSAC大会的热度似乎持续了一整个北京的春天,直播、新闻、技术解读、研讨活动让人应接不暇。从RSA大会官网上查询今年“Bette...

app微信支付-java服务端接口 支付-查询-退款

个人不怎么看得懂微信的文档,看了很多前辈的写法,终于调通了,在这里做一下记录。 首先来定义各种处理类(微信支付不需要特殊jar包,很多处理需要自己封装,当然也可以自己写完打个jar包) 参数要用jdom解析   自行导入jar包    或者在maven pom.xml中导入  <dependency> <groupId>org...

.NET、NET Framewor以及.NET Core的关系(二)

什么是CLR,.NET虚拟机? 实际上,.NET不仅提供了自动内存管理的支持,他还提供了一些列的如类型安全、应用程序域、异常机制等支持,这些 都被统称为CLR公共语言运行库。 CLR是.NET类型系统的基础,所有的.NET技术都是建立在此之上,熟悉它可以帮助我们更好的理解框架组件的核心、原理。在我们执行托管代码之前,总会先运行这些运行库代码,通过运行库的代...

微信公众平台开发教程(七)安全策略

微信公众平台开发教程(七)安全策略尽管处理微信请求的服务器,处于微信服务器的后端,但是安全问题依然不可小觑。 大概总结以下几个方面,希望引起注意。 一、设置高复杂度的Token,尽量隐藏服务地址URL URL:即为处理微信请求的链接地址Token:用户身份凭证 申请成为开发者或者修改URLToken时,微信会通过Get请求访问URL,验证签名,其中需要To...

端口扫描工具nmap

nmap 使用介绍 nmap是目前为止最广为使用的国外端口扫描工具之一。我们可以从[url]http://www.insecure.org/[/url]进行下载,可以很容易的安装到Windows和unix操作系统中,包括mac os x(通过configure、make 、make install等命令)也可以直接从http://www.insecure....

YY 数据库平台化建设实践

钟建辉,YY基础运维经理,负责数据库及服务器基础运维工作,在数据库领域有超过10年的工作经验,见证了YY数据库平台化从”0”到”1”的整个历程,目前主要致力于推动YY数据库、服务器平台化建设。 以下为钟建辉老师演讲实录: 我的侧重点主要在运维DBA的角度介绍我们数据库系统。前面周老师就是研发的角度怎么看我们数据库平台系统。 一、YY数据库团队面临问...