安全建设之平台搭建

一、信息搜集类

基础信息

基础信息搜集包括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

三、知识分享

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

转载于:https://www.cnblogs.com/nongchaoer/p/10247301.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/364322.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BSTR、char*和CString转换

BSTR、char*和CString转换 (1) char*转换成CString 若将char*转换成CString,除了直接赋值外,还可使用CString::Format进行。例如: char chArray[] "This is a test"; char * p "This is a test"; 或 LPSTR p "T…

Java 8的8个新功能

注意:确保还检查了我们的详细教程Java 8 Features – ULTIMATE Guide 。 Jdk 1.8(又名Java 8)今天发布,这意味着它的通用发布版本已经公开发售,开发人员可以从早期发布版本切换到经过测试的版本以供生产使用。 但是&a…

第四章 生命周期函数--35 vue-resource发起get、post、jsonp请求

vue-resource 官网 https://github.com/pagekit/vue-resource 1 <!DOCTYPE html>2 <html lang"en">3 4 <head>5 <meta charset"utf-8">6 <meta name"viewport" content"widthdevice-width,initial-sc…

html边框为框,HTML 为元素设置边框

属性&#xff1a;border&#xff0c;可以为元素这是上右下左四条边框(顺序很重要)取值有三个&#xff1a;1.border-width:边框宽度&#xff0c;默认3px&#xff0c;可以手动设置&#xff0c;取像素值2.border-style:边框样式&#xff0c;必填项。可取&#xff1a; solid (实线边…

nginx配置返回文本或json

有些时候请求某些接口的时候需要返回指定的文本字符串或者json字符串&#xff0c;如果逻辑非常简单或者干脆是固定的字符串&#xff0c;那么可以使用nginx快速实现&#xff0c;这样就不用编写程序响应请求了&#xff0c;可以减少服务器资源占用并且响应性能非常快 如果要返回固…

Enterprise Library Step By Step系列(十一):异常处理应用程序块——入门篇

Enterprise Library Step By Step系列&#xff08;十一&#xff09;&#xff1a;异常处理应用程序块——入门篇 作者&#xff1a;Terrylee 一&#xff0e;概述 使开发人员和决策人员能够针对发生在企业应用程序体系结构层的异常处理创建一致的策略。它的实现方法如下&#xff1…

qt商业版和开源版的区别_微擎商业版系统V2.0.9全开源版纯净框架

微擎商业版系统V2.0.9全开源版纯净框架_全新界面无后门无任何限制。该源码不含任何安装模块&#xff0c;最重要的是该版本是一键安装版&#xff0c;主要你上传到服务器上&#xff0c;然后直接运行域名就会直接进入安装环境&#xff0c;不会像网络上的其他版本&#xff0c;还需要…

Jibx Jersey2集成

Jersey2为Jackson和JAXB提供内置支持。 但是默认情况下不支持Jibx。 要将Jibx与Jersey2结合使用&#xff0c;我们将XML输入作为流&#xff0c;并在接收到请求之后&#xff0c;使用Jibx对其进行解析。 但是实际上&#xff0c;有更好的方法可以使用MessageBodyReader和MessageBod…

js 的起源故事

"1994年&#xff0c;网景公司&#xff08;Netscape&#xff09;发布了Navigator浏览器0.9版。这是历史上第一个比较成熟的网络浏览器&#xff0c;轰动一时。但是&#xff0c;这个版本的浏览器只能用来浏览&#xff0c;不具备与访问者互动的能力。......网景公司急需一种网…

CMD命令也要用好

以前一些程序需要执行一些Dos命令&#xff0c;一般都是写成一个Bat文件&#xff0c;然后通过Shel来调用&#xff0c;实际上一些简单得用法完全可以这样用&#xff1a;VBA.Shell "cmd /c cmd /? > c:\cmdhelp.txt"VBA.Shell "cmd /c Type c:\cmdhelp.txt >…

网络上各台计算机语言,人类使用语言来交流,同样,网络上的各台计算机之间也用某种语言交换信息,这样的语言通常指()。...

相关题目与解析计算机语言是一种人与计算机之间交换信息的工具。案例2&#xff1a;计算机网络漫谈所谓计算机网络&#xff0c;就是把分布在不同地理区域的计算机与专门的外部设备用通信计算机语言是用来解决人和计算机交换信息的。关于汇编语言的说法错误的是()计算机语言是用来…

og4j日志文件乱码问题的解决方法

现象&#xff1a;在默认语言非中文&#xff08;或者说默认语言不支持中文的&#xff09;的Windows、Linux、Unix上&#xff0c;用log4j打印日志&#xff0c;出现乱码&#xff0c;常见的就是一堆问号。 解决方法&#xff1a; 如果是log4j.properties为配置文件&#xff0c;比如&…

设计模式中的六大基本原则

软件设计中的基本共识&#xff1a; 1&#xff0c;高内聚&#xff0c;低耦合&#xff1a;如果想使软件系统架构稳定&#xff0c;那么我们期望软件的各模块内元素结合的紧密&#xff0c;而模块之间的耦合度&#xff08;关联性&#xff09;越低越好。高内聚不仅体现在模块上&#…

广元南山隧道南河互通立交图_广元城区一隧道工程竣工时间已定,今后出行更加方便了!...

4月15日&#xff0c;伴着轰隆的机械声&#xff0c;记者踏入国道212线南山隧道工程项目建设现场&#xff0c;突然眼前飘来一阵细密小雨&#xff0c;抬头望去&#xff0c;原来是建设边坡上一排白色雾炮机正在进行降尘作业。记者看到&#xff0c;数控钢筋加工厂内工人们正抓紧预制…

Java EE 7:新增功能???

我有点“晚点”&#xff0c;可以这么说……就Java EE 7的 “博客”而言。 自2013年6月发布以来&#xff0c;已经差不多10个月了 &#xff0c;但是它仍然相对较新。 就我个人而言&#xff0c;仅仅是因为它的易用性和所购买的功能范围之广&#xff0c;我对此感到很兴奋。但是&…

浏览器的同源策略及跨域解决方案

同源策略 一个源的定义 如果两个页面的协议&#xff0c;端口&#xff08;如果有指定&#xff09;和域名都相同&#xff0c;则两个页面具有相同的源。 举个例子&#xff1a; 下表给出了相对http://a.xyz.com/dir/page.html同源检测的示例: URL结果原因http://a.xyz.com/dir2/ot…

sass继承

extend sass中&#xff0c;选择器继承可以让选择器继承另一个选择器的所有样式&#xff0c;并联合声明。使用选择器的继承&#xff0c;要使用关键词extend&#xff0c;后面紧跟需要继承的选择器。 scss.style css.style 从sass 3.2.0以后就可以定义占位选择器%。 这种选择器…

论中国传统辩证推理科学理论范式(ZZ)

摘要&#xff1a;西方科学的形式逻辑以一系列相互独立的公理、设定、经验模型等为大前提&#xff0c;以不矛盾的逻辑为推理手段&#xff0c;构建其系统的科学理论&#xff0c;决定了其理论体系下的世界是众多不连续的带状、绳索状或网状结构的共存体&#xff0c;而不可能是一个…

计算机病毒及其防治评课,区初中信息技术教研活动公开课评课感想

今天上午&#xff0c;在我校成功举行了区初中信息技术教研活动&#xff0c;总共开设了三节课&#xff0c;都是由我校老师执教的。听后受益匪浅&#xff0c;感受颇深&#xff0c;以下是本人的评课感想。一、首先说一下三位老师的共同点&#xff1a;1、三位老师都用了导学案&…

Django—路由层,视图层

路由层urls 浏览器会自动给url后加一个“/” django会自动给路由的正则表达式前面加一个“/” django会给任何不带“/”结尾的url语句添加“/”&#xff08;可设置&#xff09; 短路路由规则&#xff1a;匹配到第一条就忽略后面所有&#xff01; 所以路由顺序很重要&#xff01…