
是的,您企业的Web应用从第一天起就需要网络安全
如果您的生意离不开一个Web应用,答案很明确:Web应用安全能让您的应用不停摆,也能让客户的数据不被偷走。Web应用就是在浏览器里运行的程序,比如网店、预约系统,或者学生登录用的门户网站。这个程序全天都开在互联网上,任何能上网的人都可以来敲它的门。网络安全是一整套措施,它把陌生人挡在门外,发现他们的尝试,并在出问题时让业务尽快恢复。
我们的看法很直接:不要等到被入侵才想起防护。入侵的意思是,一个没有权限的人进入了您的系统,读取、修改了数据,或者让系统瘫痪。事后修复往往要停工几天甚至几周,而且有些客户的信任可能再也回不来。从一开始就建好的防护会在后台默默工作,客户感受到的只是一份安心。
生意小也一样。通过网站卖药的药店老板、保管病人档案的诊所经理、在网上公布成绩的校长,他们手里的数据对黑客来说都有价值。受损的人和平安无事的人,区别往往在于几个及时做好的简单步骤:安全的登录、按时的更新、经过测试的备份。下面几个部分会用简单的话讲清楚这些步骤;遇到不懂的词,可以在我们的术语表里查到意思。
黑客为什么也会盯上小企业?
很多老板以为黑客只找银行和大公司。这种想法让他们一年又一年地推迟做防护。事实上,小公司是很省事的目标,因为它的防护通常更弱,老板也不会留意系统里发生了什么。
想象一条街上有十家店。小偷不会挑最有钱的那家,而是挑没锁门的那家。网上也是一样,不同的是,这里的小偷能在很短的时间里试遍成千上万扇门。
攻击是自动进行的,不会按名字挑对象
大多数攻击并不是有人专门坐在您的网站前面发起的。它们来自叫作机器人程序的自动工具,这些程序一个网站接一个网站地转。它们寻找能接受简单密码的登录页面,或者带有已知漏洞的老旧软件。
一旦找到敞开的门,它们就直接进去,根本不管公司大小、叫什么名字。所以,安静街区里的一家小诊所,遇到的攻击尝试和大网站是一样的。真正该问的不是会不会有人来试,而是来试的时候,门是不是锁好的。
您的数据对别人有价值
您也许觉得客户名单没什么特别,但在黑客眼里那是宝藏。客户的姓名、电话和地址会被卖掉,用来发诈骗信息。病人档案、学生成绩和员工资料都是敏感信息,可能被拿来勒索主人。
还有一种攻击什么都不偷,而是把您的文件锁住,要您付钱才解锁。这叫勒索软件,专门打击没有完好备份的公司。这时候,就算一个文件都没被偷,每停工一天都是直接的损失。
入侵会留下这些损失
谈论入侵总显得很抽象,直到您看到第二天早上发生的事。损失不只是一台设备或一个文件,还会波及客户、员工和名声。把这些损失看清楚,能帮您实事求是地估量防护的价值。
下面的例子并不夸张,而是一个没有准备的老板在应用被入侵时真实会遇到的情况。每一种都可以用后面介绍的常见方法来预防或减轻。
客户数据落到别人手里
最常先发生的是数据泄露,也就是数据被无权查看的人拿到。在网店里,客户的地址、电话和购买记录都可能泄露。接着,您的客户会收到冒用您店名的假消息,要他们提供银行卡信息或手机收到的验证码。
客户分不清黑客和您,因为他在消息上看到的是您的名字。所以网店系统本身就必须有良好的防护,比如Storek店铺管理系统,它把销售、库存和客户数据集中放在一个受保护的地方。
业务在最糟糕的时候停摆
攻击不会挑清闲的日子。您的网站可能在节日旺季、学校报名周,或者诊所预约排满的那天停掉。最常见的一种攻击,是用海量请求把网站淹没,直到它无法响应,真正的客户根本打不开。
停摆期间,没有新订单进来,客户生气地打电话,员工忙着道歉而不是干活。如果问题不只是流量过大,而是真的被入侵,系统可能要关闭好几天,直到调查、清理并安全地重新启动。
信任丢失,法律麻烦也可能随之而来
在您网站上被偷了数据的客户,会记很久。有的客户默默离开,有的会把经历写到社交媒体上。搜索引擎也可能在被入侵的网站旁边显示警告,新访客进来之前就会犹豫。
很多国家都有法律要求企业保护个人数据,比如欧洲的数据保护条例,也就是大家说的GDPR。忽视防护的公司,可能要解释发生了什么、通知受影响的人,并证明自己采取过必要措施。这些文书、精力和时间,本来都可以省下。
Web应用的弱点通常藏在哪里?
弱点,也叫漏洞,是系统里的一个小错误,让某人能做他本不该做的事。您每天用系统时看不到它,因为一切看起来都很正常。但对专门在找它的人来说,它很快就会暴露出来。
根据我们的经验,漏洞总是反复出现在几个常见的地方。知道了这些地方,您就能点名向团队或服务商询问。
只靠一个密码登录
登录页面是应用的大门。如果登录只靠密码,偷到一个密码就足以把门打开。员工常常选简单的密码,或者在多个网站用同一个密码,一旦在别处被盗,您的系统也跟着被打开。
常用的解决办法是多步验证登录。输入密码后,系统还会要求一个验证码,发到员工的手机上或手机里的某个应用中。就算黑客知道密码,没有手机也进不来。我们还会在连续多次输错后暂时锁定账号,让机器人程序没法试上几千个密码。
没有更新的软件和插件
每个Web应用都建立在其他软件之上:服务器的操作系统、编程语言、数据库和现成的插件。服务器就是让您的网站在互联网上运行的那台机器。当有人发现这些软件里的漏洞,厂商会发布更新把它堵上,而漏洞的说明也随之公开,黑客也能看到。
真正的危险就在这里。几个月没更新的网站,带着早已公开的漏洞,黑客早就知道怎么利用。所以更新必须是有固定时间和专人负责的例行工作,而不是出了事才想起来。像Hostrena主机这样有人管理、有人监控的托管服务,可以在服务器层面替您分担这个负担。
过于开放的表单和权限
搜索框、联系表单和上传文件的地方,都是访客可以随便输入内容的位置。如果系统不检查输入的内容,黑客就能输入命令而不是文字,进而读取或修改数据库。这是OWASP Top 10中最出名的错误之一,这份清单在全球公认,列出了Web应用最危险的缺陷。
权限开得太大也是类似的风险。诊所前台不需要删除病人档案,网店里录入商品的员工也不需要改全部商品的价格。当每个账号的权限都超出工作所需,任何一个账号被盗都会从小问题变成大灾难。
我们在每个应用里都会建好的基础防护层
好的防护从不只靠一把锁。它是一层叠一层的,黑客越过一层,前面还有下一层。就像一栋房子,门上有锁,墙上有摄像头,屋里还有保险柜。
在Linkysoft,我们从规划阶段就把这些防护层建进Web应用和管理系统里,而不是等编程结束后再补。原因很简单:给已经做好的系统加防护,比一开始就一起建要难,也更慢。
加密让被偷的数据毫无用处
加密就是把数据变成只有拿着正确钥匙的人才看得懂的代码。我们在数据传输途中加密,也就是数据在客户设备和服务器之间来回时,这样谁也没法在网上读到。数据存放在数据库里时,我们同样加密。
它的好处在最糟的那天才看得出来。就算有人拿到了数据库文件,看到的也只是一堆没有意义的代码,而不是客户的姓名和电话。我们把加密钥匙放在专门的保险库里,和数据分开存放,这样钥匙和数据不会被一起偷走。
每个员工只看自己需要的内容
我们按工作角色分配权限。医生看自己病人的档案,会计看账单,前台看预约。这种做法叫基于角色的权限,它让任何失误或账号被盗都只影响系统的一小部分。
这在存有敏感数据的系统里尤其重要,比如Docmz诊所和医院管理系统,或者存有孩子信息的学校系统。我们还会给重要账号加上多步验证登录,特别是权限更大的管理者账号。
经过测试的备份和每一步操作的记录
备份就是把数据复制一份放在别处,原数据丢了还能找回来。但从没试过的备份,可能在您最需要的那天让您失望。所以我们会给备份加密、做好保护,并真正测试恢复,在需要之前就确认它能用。
最后一层是审计日志,也就是记录谁在什么时间做了什么的日志。如果一个订单不见了,或者某个价格变了,日志会告诉您是哪个账号、在几点做的。这份记录能帮您发现入侵,也能帮忙解决员工之间日常工作上的分歧。
渗透测试怎样发现您团队看不到的问题?
搭建系统的程序员知道它该怎么运行,所以很难想到所有能把它弄坏的办法。渗透测试正好解决这个问题。它是一次安全的、事先约定好的攻击,由一位像黑客一样思考的专家来做,但他的目的,是在别人之前找到漏洞并交给您。
我们认为,任何存有客户数据或涉及付款的应用,上线前都应该通过这项测试。这是我们网络安全服务的核心部分,新系统和已经在用的系统都适用。
测试过程中会发生什么?
专家会先和您确定测试范围:测系统的哪些部分、在哪几天测、哪些地方不能碰。然后,他会在网页、手机应用、网络以及连接各系统的接口上,尝试真正的黑客会尝试的手段。他把快速扫描的自动工具和人工分析结合起来,人工分析能找出工具发现不了的错误。
测试遵循OWASP和NIST等全球公认的方法,不靠心情,也不靠运气。而且测试是安全的:它不会删除您的数据,也不会让您的业务停下来,因为它的目的是证明漏洞存在,而不是利用漏洞搞破坏。
最后您会拿到什么?多久该再测一次?
最后,您会拿到一份用平实语言写成的清单,列出发现的每一个漏洞。每个漏洞都附有简单说明:它可能导致什么后果、严重程度如何、怎么修复。修好之后,我们会再测一遍,确认每个漏洞是真的堵上了,而不只是纸面上的。
测一次不能管一辈子。系统每增加一个大功能,比如新的支付通道或新的手机应用,都可能打开一扇原本没有的门。所以我们建议,每次重大改动后都重新测试,即使没有改动也要定期测试,因为软件里总会不断发现新的漏洞。
上线那天之后,防护还要继续
很多系统建得不错,然后就没人管了。几个月后,软件里出现新的漏洞,员工换了人,新功能匆忙加上去也没人检查。上线那天安全的系统,不会自己一直安全下去。
所以我们把防护当作一项持续的工作,有专门的工具,也有专门的负责人。接下来几部分说明每天、每周应该做什么,以及真的出事时应该怎么办。
持续扫描和全天候监控
持续扫描是指工具定期检查您的系统,查找已知漏洞,一发现就提醒团队。这就像定期给车做保养,而不是等它在路上抛锚。扫描能在别人之前发现过时的软件和错误的设置。
监控则是一双日夜都睁着的眼睛。如果有人在几分钟内尝试登录几百次,或者某个管理者账号半夜从一个陌生国家登录,警报会马上发出。一小时内发现入侵和几周后才发现,就是小问题和大灾难的区别。
挡在应用前面的盾牌
Web应用防火墙是一面挡在互联网和您的应用之间的盾牌。每个访问您网站的请求都要先经过它,正常的请求放行,恶意的请求拦下。比如,它会拦住往表单里写命令的尝试,也会拦住试密码的机器人程序。
这面盾牌也能帮忙应对请求洪水,它能分清促销日真实客户的拥挤和想把网站搞瘫的攻击。它不能代替修复应用内部的漏洞,但能为您争取时间,并把大部分自动攻击挡在门外。
出事时有现成的预案
防护做得再好,您也得知道出事时该怎么办。没有预案的公司,会把最初几个小时浪费在慌乱和打电话上。有准备的公司则按大家都知道的清楚步骤行动:
- 控制:把受影响的部分隔离出来,防止损害扩散到系统其他部分。
- 调查:弄清黑客是怎么进来的、什么时候进来的、动了什么。
- 清理:清除他留下的所有痕迹,并从完好的备份中恢复数据。
- 堵漏:修好他进来的那扇门,让他没法从同一条路再回来。
员工是第一道防线
最成功的攻击往往不是从代码漏洞开始,而是从一条消息开始。员工收到一封看起来来自银行或老板的邮件,让他点开链接并输入密码。这种手法叫网络钓鱼,只要有一个员工上当,再好的系统也会被绕过。
安全意识培训教员工识别假消息的特征,并教他们无论对方怎么说,都不要把登录验证码告诉任何人。培训还教他们发现可疑消息时马上报告,而不是因为犯错而不好意思开口。几个小时的培训,可能就挡住了您的生意会遇到的最危险的攻击。
防护的工作量和费用由什么决定?
没有一种方案适合所有公司,因为每个系统的工作量都不一样。一个五页的企业介绍网站,比一个有支付功能、有成千上万用户的平台需要的工作少得多。知道哪些因素会增加或减少工作量,能帮您看懂收到的任何报价。
总的规律是:系统的门越多,里面的东西越敏感,保护它需要的工作就越多。下面这些,是任何认真的团队在估算工作量之前都会看的。
应用的规模和数据的敏感程度
页面数量、用户类型和连接到应用的系统数量,都会扩大检查的范围。一个有客户门户、员工门户、手机应用,还接了支付通道的系统,每个部分都要检查。只有一个登录页面、给几个员工用的系统,就简单得多。
数据的敏感程度会改变整个局面。病人档案、学生成绩和支付信息需要更严格的加密、更完整的审计日志,有时还需要合规文件。像Acad学习管理系统这样的教育平台存有学生数据,所以比只展示菜单的网站需要更多关照。
新应用,还是别的团队做好的旧应用?
新应用更容易保护,因为防护层从一开始就按计划一起建好。已经在用的应用,尤其是开发团队已经不在了的,要先弄清里面是什么情况。代码可能没有文档,软件可能已经过时,权限可能一团乱。
这种情况下,我们先做一次检查,看清真实状况,再按风险高低排出修复顺序。先堵上可能导致数据泄露或业务停摆的问题,再分阶段处理风险较低的问题。这样您的业务不会停,也不会在严重问题之前把精力花在次要的事情上。
签约前要问任何服务商的问题
好的方案会回答清楚的问题,差的方案会回避。在同意任何安全服务之前,请对方书面回答这些问题:
- 检查到底包括什么:只有网站,还是也包括应用、手机端和连接接口?
- 会不会给您一份看得懂的书面报告,并写明每个漏洞怎么修?
- 修复后的复测包含在合同里,还是要另外算?
- 晚上和节假日谁来监控系统,收到警报后多久响应?
- 出事后的最初几个小时会怎么处理,谁打电话给谁?
- 如果您结束合作,代码和数据是不是完全归您所有?
老板们关于应用防护常问的问题
这里收集了我们经常从店主、诊所和学校管理者那里听到的问题。回答简短直接,帮您在不懂技术的情况下也能做决定。
如果这里没有您的问题,可以看文章末尾的问题列表,或者去我们网站的帮助中心找找。
好的主机服务就足够保护我的应用吗?
好的主机服务保护的是运行您应用的服务器,这很重要,但不是全部。如果应用本身有漏洞,比如能接受命令的表单或开得太大的权限,再好的服务器也挡不住黑客利用它。真正的防护是受保护的服务器加上安全构建的应用。就像住在治安好的小区,自己家的门还是得锁上。
怎么知道我的应用被黑了?
有些迹象很明显,比如页面内容被改了、出现谁也不认识的账号,或者客户抱怨收到以您名义发出的奇怪消息。有些迹象很隐蔽,比如说不清原因的变慢,或者访客被跳转到其他网站。问题是,很多入侵会悄无声息地持续好几周。所以持续监控和审计日志是及早发现的唯一途径。
渗透测试期间我的业务会停吗?
不会,大多数情况下什么都不会停。专家会事先和您约定测试哪些部分、在什么时间测,并避开任何可能影响业务或删除数据的操作。对敏感系统,测试可以在系统的完全复制版上进行,而不是在客户正在使用的那个系统上。这样您能拿到结果,客户却完全察觉不到。
给一个已经在用的应用做安全加固要多久?
这取决于应用的规模和现状。小应用的第一次检查可能几天就能完成,部分很多的大平台则需要几周。检查之后是修复,按严重程度排序:严重的漏洞通常最先处理,一般几天内就能堵上,其余的分阶段完成。
我需要在公司内部建一个安全团队吗?
大多数中小企业不需要在内部配一个完整团队。通常公司里有一个负责人,再加上一个专业的外部合作方负责检查、监控和应急处理,就够了。关键是职责要写清楚、分明白,免得双方都以为是对方在管。系统越大、数据越敏感,跟进就要越紧密。
这周就从这三步开始
开始并不需要一个庞大的计划。第一步:列出您的生意在网上的所有东西,包括网站、网店、预约系统和手机应用,以及每一个谁能登录。第二步:给每个管理者账号开启多步验证登录,并删掉已离职员工的账号。第三步:问负责您系统的人一个问题:我们上一次真正试着恢复备份是什么时候?
接下来就是专业检查。Linkysoft提供免费的安全检查和咨询,我们会查看您的应用,清楚告诉您最严重的弱点是什么、应该先修什么,不管系统是我们做的还是别的团队做的。您可以在我们的联系页面提出申请;如果想在决定前多了解一些,可以在我们的帮助中心找到实用的解答。