安全建设之平台搭建

一、信息搜集类

基础信息

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

网盘监控

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

二、扫描工具

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

主动扫描

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

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

执行模块负责:

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

2.hook所有的网络请求;

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

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

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

被动扫描

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

Web界面:

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

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

插件扫描

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

端口扫描

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

三、知识分享

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

原文地址:https://www.cnblogs.com/nongchaoer/p/10247301.html

时间: 2024-10-31 09:31:25

安全建设之平台搭建的相关文章

厦门微信公众平台搭建

厦门微信公众平台搭建找哪家做?很多企业老板或市场经营主管在比划很久后都难以抉择.难免出现这样的疑问:到底开发一个公众平台要花多少钱?报低价的公司靠不靠谱? 厦门云颠科技多年来致力于为企事业单位搭建微信公众平台,我们在工作中也时常遇到顾客有这样的疑虑,于是终结经验,为客户排忧解难. 微信公众平台随着微信软件的普及广泛其重要性日益凸显,但搭建平台需要懂相应的程序和图形编辑,因此造成了一道技术壁垒.许多企事业不得不委托相关团队搭建平台.那么多少钱才是搭建平台的合理价格呢?答案是价格以委托者的功能实现模

Jenkins Gitlab持续集成打包平台搭建

相关概念 Jenkins Jenkins,一个用Java编写的开源的持续集成工具,提供了软件开发的持续集成服务,可监控并触发持续重复的工作,具有开源,支持多平台和插件扩展,安装简单,界面化管理等特点.更多介绍参考[维基](https://en.wikipedia.org/wiki/Jenkins_(software)介绍. Gitlab GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目,更多介绍参考维基

Openstack平台搭建之第三天

Openstack平台搭建之第三天 Author :xxbAndy If you have any question ,please contact me by [email protected] or 371990778(qq) 注意:主控节点为server10.example.com: 新增nova节点为desktop10.example.com 在实验环境中已经对各个主机做了DNS解析 1.管理neutron节点服务,为nova-compute节点进行配置网络服务 [[email prot

微信公众平台搭建与开发(二)开发模式的搭建和关键词回复

在第一部分介绍了编辑模式,但是编辑模式有较大局限性,下面主要开始介绍开发模式,这一部门先简单介绍下开发模式的环境搭建和关键词回复. 开发模式首先要有一个虚拟主机,本人使用的是新浪开发者平台的虚拟主机,使用云豆计算流量,若成为新浪开发者用户基本上就可以免费使用了,本人注册用户所赠送的云豆不知道能用多久.当然国内比较大还有就是百度开发者平台,注册后发现部署还没有新浪的方便,并且在BAE3.0以后好像也是要收费的.有兴趣的朋友可以研究下google的开发者平台,不知道是否要收费. 在注册新浪开发者平台

cocos2d-x v3.0的window平台搭建和编译成andriod程序

首先添加这个地址到系统环境变量,path 然后打开CMD,输入如下语句 现在就可以创建一个新项目了 这样一个空的cocos2d-x v3.0的项目就创建好了 接下来编译andriod程序 先在系统环境变量中添加一个NDK_ROOT 然后打开cmd 然后就开始编译了 接下来打开ADT中的eclipse 再添加andriod文件夹到工程里 cocos2d-x v3.0的window平台搭建和编译成andriod程序,布布扣,bubuko.com

Zigbee 2530芯片学习(一) 背景了解及zigbee开发平台搭建

一.了解Zigbee基础知识 1)三种节点.三种角色--cc2530 协调者coordinator:(只有一个)从它开始启动,分派网络地址,允许设备加入或退出,传输数据报. 路由器rooter:大面积网络或树形网络,用于寻找最佳路径,其他同协调器(不能构建网络) 终端enddivice:加入或退出网络,传输数据 2)网络拓扑结构 星形拓扑(最简单,只有终端和节点,准备使用).树形拓扑.网状拓扑 3)协议和协议栈 协议:广义上讲的一种协定,双方必须都符合才能通讯 协议栈:协议的具体实施方法,Zig

源代码实现LAMP的平台搭建

1.LAMP简介 Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台.随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注.从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强

Cacti监控平台搭建

作为一名Linux SA,日常最重要的就是保证网站正常稳定的运行,我们需要实时监控网站.服务器的运行状态,这时需要借助开源软件(cacti.nagios.zabbix等)监控来实现. Cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户.因此,snmp和rrdtool是cacti的关键. Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成.snmp抓到数据不是存

基于rhel7.2的Zabbix平台搭建和部署(一)

基于rhel7.2的zabbix平台搭建和部署(一) 一.实验环境: (1)虚拟机:rhel7.2 x86_64 (2)数据库:mysql5.7.13 (3)nginx1.10.2 (4)PHP5.6.27 (5)zabbix 二.安装编译工具及库文件 [[email protected] ~]# yum-y install make apr* autoconf automake curl-devel gcc gcc-c++  openssl openssl-devel gd kernel ke