zoukankan      html  css  js  c++  java
  • 用Nginx分流绕开Github反爬机制

    用Nginx分流绕开Github反爬机制

    0x00 前言


    如果哪天有hacker进入到了公司内网为所欲为,你一定激动地以为这是一次蓄谋已久的APT,事实上,还有可能只是某位粗线条的员工把VPN信息泄露在了Github上恰巧被一个好奇的计算机junior发现了而已。

    0x01 意识缺失


    先贴张图:

    p1

    有记者给溧阳卫生局局长拨通电话,该局长面对记者的采访慌张答道:
    “你看到我们发微博的啊?呵呵,你怎么看到的啊?这个都能看得到啊?!这不可能吧?我们两个发微博你都能看得到啊?不可能吧?”……

    同样,互联网企业的员工流动性很强,各自的安全(隐私)意识也参差补齐。庞大的企业难免有些人由于无知或由于偷懒把含有敏感信息(如数据库连接串,邮箱账号,VPN信息)的代码直接丢到github上去。如果这些信息被有心人看到了,那就能让黑客花最小的成本,达到APT的效果了。

    另附一篇漏洞盒子关于github泄露企业机密信息的报告:
    https://www.vulbox.com/news/detail-15

    0x02 反爬机制


    于是,我们想实现github代码的监控,定制诸多关键词如password,mysql,account,email,希望通过爬虫程序来实现对github上敏感代码的监控,如果有可疑信息泄露,程序通过邮件通知负责人,负责人去进行二次人工审核。这样,能在第一时间发现敏感代码的泄露,并及时联系提交者进行处理。

    期望是美好的,但是在连续高频访问若干次github.com之后:

    p2

    触发了github的反爬机制,难道项目要流产?

    0x03 绕开


    机智的楼主想起之前团队购买了5台阿里云机器,何不用阿里云机器搭建一套代理实现分IP访问绕开反爬机制?

    于是就有了下图。

    p3

    一次敏感代码爬取的流程:

    1. Github爬虫引擎发起一次爬虫请求
    2. 请求发送到负载均衡Nginx,Nginx将请求按照同权重的方式转发到流量转发Nginx

      注:负载均衡Nginx设置为两台,防止出现单点故障。

    3. 收到负载均衡Nginx发过来的流量,流量转发Nginx将请求转想github.com

    4. github.com返回的内容通过Nginx原路返回给Github爬虫引擎

    这样,对于github.com而言,他看到的是三台机器在一样频率的交替访问,频率是原先的1/3,巧的是,这个频率就不会触发反爬机制。从而实现了Github爬虫引擎的连续访问,效率大大提升。

    同时,这套方案的扩展性还很强,如果再次被github.com反爬机制封锁,可以通过平行加流量转发Nginx机器的方式来实现水平扩展。

    附负载均衡Nginx的核心配置:

    p4

    附流量转发Nginx的核心配置:

    p5

    0x04 携程SAAS平台


    现在,该服务已经上线到携程云安全了,欢迎大家试用:https://security.ctrip.com/

  • 相关阅读:
    该伙伴事务管理器已经禁止了它对远程/网络事务的支持
    HDU 4883 TIANKENG’s restaurant (贪心)
    Android:创建可穿戴应用
    debian支持ll命令
    mongodb进阶一之高级查询
    Hadoop之——又一次格式化hdfs系统的方法
    J2EE的13个规范之(二) JDBC 及其使用
    2015欧冠决赛--脑力劳动结硕果
    运行计划之误区,为什么COST非常小,SQL却跑得非常慢?
    QVariant与自定义数据类型转换的方法
  • 原文地址:https://www.cnblogs.com/xdans/p/5412710.html
Copyright © 2011-2022 走看看