从宽宏售票谈资安

从宽宏售票谈资安

戴夫寇尔部落格停载了快两个月,非常抱歉,让各位常常催稿的朋友们久等了 <>

今天就乘着全台疯买票的浪头,来谈谈一些常被忽略的资讯安全小概念吧!

从宽宏售票谈资安

江蕙引退演唱会一票难求,隔岸观了两天火, 也忍不住想要当个键盘孝子。无奈运气不好一直连不上主机,『Service Unavailable』画面看腻了,只好看看暂存页面的网页原始码,不看还好,一看我惊呆了!

从宽宏售票谈资安

在结帐网页原始码当中竟然看到了疑似资料库密码 SqlPassWord 在表单里面!这件事从资安的角度来看,除了表面上洩漏了资料库密码之外,还有两个我想讲很久但苦无机会谈的资安议题,分别是金流串接常见的弱点以及骇客的心理。藉着宽宏售票网页洩漏密码这件事情,顺道与大家分享分享吧!

谈台湾网站的金流串接

在本篇的例子中,宽宏售票网页表单出现了疑似资料库密码,这状况就好像去银行缴款,柜檯给你一把钥匙跟你说:『这是金库的钥匙,麻烦你到对面那个柜檯把钥匙给服务员,请他帮你把钱放进金库里面』。

是不是有点多此一举,银行本来就会有一份钥匙,干嘛要请你帮忙转交?
如果今天坏人拿到了这把钥匙,是不是只要绕过保全的视线,就可以打开金库为所欲为?

从宽宏售票谈资安

  • 金流服务商依据单据跟恶意使用者收取 20 元费用,并且告诉电子商务网站:『订单 123 已成功缴款,款项 20 元』
  • 最后电子商务网站看到『订单 123 已成功缴款』的讯息,就告诉使用者说订单 123 购买成功。也就是恶意使用者只花取 20 元就购买到原价 456 元的产品。
  • 不管是宽宏售票出现密码栏位还是上例电子商务网站的金流串接,最大的问题在于他们都相信使用者会正常帮忙转交,即靠客户端的浏览器来转址传值。要知道,利用浏览器转址传值是不可靠的,一来,重要的资讯就会被客户知道,例如宽宏售票疑似洩漏资料库密码;二来中间的内容可以修改,例如修改订单金额。另外,可能有人会发现到,在恶意使用者的步骤三里面,电子商务网站竟然没有确认付款金额是否正确,没错,这是会发生的事情,在过去经验中,像这样没有比对付款金额的台湾系统比例还不少,这些疏忽都会造成企业很多成本损失,不可不注意。

    台湾目前还满常见到这种根据使用者传来单据来收费的状况,导致单据可窜改造成企业损失,某部分原因可以归咎到早期第三方金流的範例都是这样写的,工程师也就直接延续这样的写法直到现在。以金流串接为例,比较好的处理方式有下面两种:

    以上两种作法,将可以有效防止恶意使用者修改订单金额。此外,建议电子商务网站在收到金流回传的付款资讯后,能够比对收取款项与订单款项是否相符,如此双重检查,能大大避免恶意行为,减少企业处理恶意金流问题的成本。

    谈骇客心理

    很明显的,宽宏售票洩漏密码的状况是工程师的小疏漏。在不知道资料库确切位置的前提下,知道疑似资料库密码的东西确实也无法做什幺,顶多就是了解了一家公司制定密码的策略。然而,看在骇客眼里,这点疏失会代表着一个网站面对资安的态度。连显而易见的问题都没有注意,那后端程式应该也有可能出现漏洞。一旦骇客决定要攻击这个网站,势必会搬出比平常还要多的资源去尝试,因为他们认为这个投资报酬率很高。

    一般骇客基本上会不断的从所看到的网页资讯来调整自己攻击的强度,如果他们不断看到了奇怪的登入画面:

    从宽宏售票谈资安

    或是防火墙的登入画面

    从宽宏售票谈资安

    就很有可能会增加攻击的力道。上面这种登入页面就是就是一种常见的资讯洩漏,在今年台湾骇客年会的议程-「被遗忘的资讯洩漏」就提及了这类资讯洩漏在台湾是很普及的。注意,出现这样的页面并不意味着网站会有漏洞,只是网站容易因此多受到一些攻击。反之,如果一个网站前端页面写的乾净漂亮,甚至连 HTTP 安全 header 这种小细节都会注意到,骇客可能就会认为这个网站写的很严谨,甚至连尝试的慾望都没有了。

    一个经验丰富的骇客,通常光看首页就能够判断该网站是否可能存有漏洞,凭藉的就是这些蛛丝马迹。为了不让自家网站常被路过的恶意使用者攻击,加强网页前端的呈现、网页原始码乾净有架构、没有太多资讯洩漏,这些都是很好的防御方法。

    结论

    在使用最近热门的宽宏售票网站时,我们发现网页原始码存在一些疑似密码的资讯。从这件事情出发,我们分别延伸探讨了两个工程师应该注意的议题:

    希望开发者看到上面这两个议题有掌握到『别相信客户端』、『骇客会因网站前端写法不严谨而尝试去攻击』的重点,提昇自家网站的安全度吧!

    最后说个题外话,身为一个工程师,我认为资讯系统该带给世界的好处是节省大家的时间,而这次抢票却让无数人彻夜排队或守在电脑前不断的『连不上、买票、失败』循环。这也许能够赚到大量的新闻版面,最终票也能全部卖光,但想到台湾有数十万小时的生产力浪费在无意义的等待上,就觉得这个系统好失败。现在的技术已经可以负荷这样大规模的售票,今年 KKTIX 更是十秒就将 COSCUP 一千多张票售完!世界在进步,过去的技术也许就该让它留在过去。有人说:『真正幸福的人:不是抢到票,是可以像江蕙一样选择人生』,希望我也可以变成一个幸福的人,可以选择一个不塞车的售票系统。