raysonx

談聯通此次大範圍網絡緩存劫持的危害

  •  
  •   raysonx · Jan 20, 2016 · 5775 views
    This topic created in 3768 days ago, the information mentioned may be changed or developed.
    聯通近日在全國範圍內大建緩存服務器,並將用戶正常訪問 HTTP 的請求劫持到緩存服務器以達到節省骨幹網帶寬與網間流量的問題。抛開此舉是否違法不談,我們今天討論一下這種劫持行為的危害。

    一、可能造成網站和 APP 功能故障。
    1. 緩存更新及失效時間對用戶及网站不可控,緩存的舊數據和新數據無法在時間上保持一致性,可能引發一些「奇怪」的問題。比如好多軟件的最新版本下載地址是不變的,如 http://www.example.com/download/latest.exe ,由于緩存的原因會讓你一直下載到舊版本。這可能會影響到部分軟件的自動更新、自動升級功能。還有如網頁中部分資源引用到舊數據導致網頁排版和功能異常,驗證碼被緩存導致驗證碼怎麼都輸不對等問題。另外,由于劫持的方式是使用 HTTP 302 重定向指令,有的應用可能只接受 HTTP 200 為正確的響應,不會識別 302 指令,造成通信故障。
    2. 從技術上緩存系統只能通過 URL 來區別不同的資源,不能識別具有相同 URL 的不同資源。這會導致資源加載錯誤,針對某一用戶的資源被所有人共享等問題。比如看視頻時,出現前一段和後一段內容不一致,帶有用戶敏感信息的資源被所有人看見等安全問題。
    二. 緩存服務器具備篡改或出售緩存數據的隱患,對信息安全不利。
    三. 緩存服務器故障時,會造成大量用戶「部分斷網」。
    四. 緩存服務器帶寬和處理性能有限,據網上反映由於緩存服務器經常報 403 、 502 錯誤,導致資源無法加載,或由於緩存服務器超載導致加載速度緩慢。
    五. 緩存服務器可能觸發部分網站的反爬蟲(反機器人)、反盜鏈機制,緩存的內容是服務器報錯信息,導致資源無法加載。
    六. 破壞了 URL 對用戶的透明性。假設用戶將劫持後的鏈接分享給其他人,而聯通對緩存服務器做了訪問控制,將會導致鏈接無法在外部打開;另外如果緩存失效而又沒有及時更新的話,可能導致用戶無法通過此 URL 訪問被引用的資源。
    七. 損害了 IDC 和 CDN 的利益,此種網絡劫持使 IDC 和 CDN 的流量大幅減少,影響 IDC 和 CDN 的流量收入。題外話,話說聯通為何不提供商業 CDN 服務而偏要搞劫持?
    八. 目前聯通的劫持依靠 TCP 搶答的方式,但原始數據包還是會到達目標服務器並被正確響應。就我抓包的情況來看,雖然你訪問資源時被 HTTP 302 數據包重定向到了聯通的緩存服務器,但原目標服務器的 HTTP 200 響應還是會被送到用戶端,且由於得不到用戶端的確定不斷觸發超時重傳,極大地浪費了用戶帶寬。

    有人說這是聯通為提升用戶體驗而做的好事,不應該去反對。我是持相反意見的。就目前來看,聯通的骨幹網帶寬和國際出口帶寬還算充足,劫持帶來的問題要比好處大得多。聯通要真想向用戶提供一流的用戶體驗,只能靠擴充骨幹網帶寬和國際出口帶寬,像部分小區寬帶運營商一樣搞緩存劫持是沒有出路的。
    37 replies    2016-01-21 14:47:17 +08:00
    gaoxt1983
        1
    gaoxt1983  
       Jan 20, 2016
    工信部不作为!
    Andy1999
        2
    Andy1999  
       Jan 20, 2016 via iPhone
    能打简体字吗
    a84945345
        3
    a84945345  
       Jan 20, 2016
    。。。。这繁体字我真看不过来
    raysonx
        4
    raysonx  
    OP
       Jan 20, 2016
    @Andy1999
    @a84945345
    我現在用的電腦上面沒有簡化字輸入法,抱歉。
    我用工具轉換了一份簡化字版本。

    *************

    谈联通此次大范围网络缓存劫持的危害
    =====================

    联通近日在全国范围内大建缓存服务器,并将用户正常访问 HTTP 的请求劫持到缓存服务器以达到节省骨干网带宽与网间流量的问题。抛开此举是否违法不谈,我们今天讨论一下这种劫持行为的危害。 

    一、可能造成网站和 APP 功能故障。 
    1. 缓存更新及失效时间对用户及网站不可控,缓存的旧数据和新数据无法在时间上保持一致性,可能引发一些「奇怪」的问题。比如好多软件的最新版本下载地址是不变的,如 http://www.example.com/download/latest.exe ,由于缓存的原因会让你一直下载到旧版本。这可能会影响到部分软件的自动更新、自动升级功能。还有如网页中部分资源引用到旧数据导致网页排版和功能异常,验证码被缓存导致验证码怎么都输不对等问题。另外,由于劫持的方式是使用 HTTP 302 重定向指令,有的应用可能只接受 HTTP 200 为正确的响应,不会识别 302 指令,造成通信故障。 
    2. 从技术上缓存系统只能通过 URL 来区别不同的资源,不能识别具有相同 URL 的不同资源。这会导致资源加载错误,针对某一用户的资源被所有人共享等问题。比如看视频时,出现前一段和后一段内容不一致,带有用户敏感信息的资源被所有人看见等安全问题。 
    二. 缓存服务器具备篡改或出售缓存数据的隐患,对信息安全不利。 
    三. 缓存服务器故障时,会造成大量用户「部分断网」。 
    四. 缓存服务器带宽和处理性能有限,据网上反映由于缓存服务器经常报 403 、 502 错误,导致资源无法加载,或由于缓存服务器超载导致加载速度缓慢。 
    五. 缓存服务器可能触发部分网站的反爬虫(反机器人)、反盗链机制,缓存的内容是服务器报错信息,导致资源无法加载。 
    六. 破坏了 URL 对用户的透明性。假设用户将劫持后的链接分享给其他人,而联通对缓存服务器做了访问控制,将会导致链接无法在外部打开;另外如果缓存失效而又没有及时更新的话,可能导致用户无法通过此 URL 访问被引用的资源。 
    七. 损害了 IDC 和 CDN 的利益,此种网络劫持使 IDC 和 CDN 的流量大幅减少,影响 IDC 和 CDN 的流量收入。题外话,话说联通为何不提供商业 CDN 服务而偏要搞劫持? 
    八. 目前联通的劫持依靠 TCP 抢答的方式,但原始数据包还是会到达目标服务器并被正确响应。就我抓包的情况来看,虽然你访问资源时被 HTTP 302 数据包重定向到了联通的缓存服务器,但原目标服务器的 HTTP 200 响应还是会被送到用户端,且由于得不到用户端的确认不断触发超时重传,极大地浪费了用户带宽。 

    有人说这是联通为提升用户体验而做的好事,不应该去反对。我是持相反意见的。就目前来看,联通的骨干网带宽和国际出口带宽还算充足,劫持带来的问题要比好处大得多。联通要真想向用户提供一流的用户体验,只能靠扩充骨干网带宽和国际出口带宽,像部分小区宽带运营商一样搞缓存劫持是没有出路的。
    Andy1999
        5
    Andy1999  
       Jan 20, 2016 via iPhone
    其实劫持这事吧。。。怎么说呢 如果直接像香港一些运营商会后端自动匹配 md5 那也就算了,但是我们这边劫持还带改内容的。。。
    a84945345
        6
    a84945345  
       Jan 20, 2016
    劫持得不要不要的,天天给我打广告
    zaqxsw123nm
        7
    zaqxsw123nm  
       Jan 20, 2016
    又一个大坑
    dreamcountry
        8
    dreamcountry  
       Jan 20, 2016
    这是违法行为,谁去举报
    tobyxdd
        9
    tobyxdd  
       Jan 20, 2016
    现在似乎停止了?
    aivier
        10
    aivier  
       Jan 20, 2016
    /t/252039

    扒皮向,劫持任意网站到携程代码解密
    oott123
        11
    oott123  
       Jan 20, 2016
    TCP 也能抢答?
    不是说是 HTTP 劫持么…
    raysonx
        12
    raysonx  
    OP
       Jan 20, 2016 via Android   ❤️ 1
    @oott123 HTTP 是應用層協議, TCP 是傳送層協議。 HTTP 運行於 TCP 之上的。
    oott123
        13
    oott123  
       Jan 20, 2016
    @raysonx 哦哦,好像确实如此,暴露了我基础知识不扎实…
    那再请教一下,为何联通作为 ISP 是否可以直接拦截 TCP 然后伪造响应(而不用抢答)呢?
    raysonx
        14
    raysonx  
    OP
       Jan 20, 2016 via Android
    @oott123 當然可以,但搶答可以用旁路設備實現,直接攔截需要在骨幹路由器上做,後者會嚴重影響性能
    Khlieb
        15
    Khlieb  
       Jan 20, 2016 via Android
    @zaqxsw123nm 耍流氓
    br00k
        16
    br00k  
       Jan 20, 2016
    国内带宽互通问题太严重了。
    hggg
        17
    hggg  
       Jan 20, 2016 via Android
    之前我们遇到过用户反馈下载 app 为老版本的问题,后来发现用户使用的是艾普,长城这种宽带,宽带运营商做了缓存。后来修改下载链接,带上版本号才解决问题。
    没想到了联通也这么干!
    buddha
        18
    buddha  
       Jan 20, 2016
    个人怎么做能规避这种缓存呢, 是只有 http 的会吗 还是说 https 的也会?
    raysonx
        19
    raysonx  
    OP
       Jan 20, 2016
    @buddha 屬於中間人都攻擊( Man-in-the-middle attack, MITM )的一種, HTTPS 可以防劫持,因為網站證書不可偽造,否則會報證書錯誤。
    macdino
        20
    macdino  
       Jan 20, 2016
    有些运营商现在已经拒绝 HTTPS 的服务了。。
    965380535
        21
    965380535  
       Jan 20, 2016
    对于联通的行为,我本人表示极为遗憾。
    test0x01
        22
    test0x01  
       Jan 20, 2016 via Android
    写得很不错 表扬
    raysonx
        23
    raysonx  
    OP
       Jan 20, 2016
    @tobyxdd 今晚測試了一下,發現好像不對境內網站劫持了,境外網站依舊劫持。
    不過我沒有花時間仔細去確認是不是真的不劫持境內網站了。
    cmxz
        24
    cmxz  
       Jan 20, 2016
    关于 7 ,有可能劫持就是为了让大家使用联通的 CDN 业务…
    至少我见过移动有一点点这样的意思
    VmuTargh
        25
    VmuTargh  
       Jan 20, 2016
    嗯……看完我默默地打开了自己的 CloudFlare 页面,把 SSL 和 HSTS 开了再说
    tobyxdd
        26
    tobyxdd  
       Jan 20, 2016
    @raysonx 我试了...似乎已经全没了?
    raysonx
        27
    raysonx  
    OP
       Jan 20, 2016
    @tobyxdd 我今晚測試時只打開了 imgur.com 的首頁,依然會發現一大堆 302.
    Kisesy
        28
    Kisesy  
       Jan 20, 2016
    山东 联通,没发现这种问题
    aivier
        29
    aivier  
       Jan 20, 2016
    @raysonx 不是早就墙了?
    raysonx
        30
    raysonx  
    OP
       Jan 20, 2016 via Android
    @aivier 北京聯通,一直都能打開啊
    linjuyx
        31
    linjuyx  
       Jan 20, 2016
    @raysonx 只劫持境外还能接受,反正都需要扶墙
    raysonx
        32
    raysonx  
    OP
       Jan 20, 2016 via Android
    @linjuyx 我還不能確定,我投訴的時候是通通劫持的,連自家聯通機房也劫持。最近劫持頻率低了,我也沒仔細去測試。
    aprikyblue
        33
    aprikyblue  
       Jan 20, 2016
    山东联通没有发现此问题
    a656088752
        34
    a656088752  
       Jan 21, 2016
    广东联通已经全没了电脑手机都试了
    billytv
        35
    billytv  
       Jan 21, 2016
    劫持不是一直存在吗? 广东联通在更新 directX runtime 时会被劫持到缓存, 下载速度很快, 然而缓存服务器上的文件有损毁, 签名跟 Mircrosoft 的对不上, 不管重新下载多少次安装时都会出错. 这状况已经半年多, 每次重装都要扶墙
    leavic
        36
    leavic  
       Jan 21, 2016
    缓存本身没有错,但缓存没有合适的更新机制和管理机制就错了。
    raysonx
        37
    raysonx  
    OP
       Jan 21, 2016
    @leavic 個人感覺維護好一套緩存系統太難了,需要很高的技術、運維和管理成本。這次聯通搞這麼大規模的緩存,不知道是為了搞什麼大動作。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2938 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 71ms · UTC 14:41 · PVG 22:41 · LAX 07:41 · JFK 10:41
    ♥ Do have faith in what you're doing.