业界评论

Toy vs tool
由 droplet 在 周四, 2010-08-12 18:57 提交 业界评论最近在www.youxia.org上看许多安全产品的介绍,感觉产品太多了,每一种都有许多厂家在做,而且还有很多oem等等。
很热闹,也很混乱。但是在这个行业能够立足,并且发展的,是那些做tool的公司,而不是做toy的公司。如果只是个玩具,
当然只要有基本的功能就可以了,但是要做在用户那里能够工作的产品,就需要很多产品化的东西。所谓的产品化,需要考虑
以下几个问题:
1)提供哪些功能,哪些是真正有用的功能?并不是功能越多就越厉害,多并不代表能用;在实验室里能用,并不代表在真实环境
里面能用;在小流量的情况下能用,并不代表在大流量下也能用。做出来的功能,不是为了当摆设,需要哪些,舍弃哪些,需要产品
定义的人好好考虑。
2)是否有可持续的roadmap。如果一个产品没有roadmap,那么认真的客户是不会考虑这个产品的。因为一个产品不可能一次就
做得很完美,不需要增加新的功能,不需要改善性能等等。出产品需要一个周期,在这个周期里面,需要给客户一些promise,一些
confidence,也就是说产品在不断改进之中。产品的未来是可预见的,这样用起来才放心。
3)持续改进的措施。需要从过去的错误或者经验里面学习。没一次产品升级,都能改进原来的不足和缺陷。在产品生命周期里面,对
bug/issue等等,有持续的跟踪。只有这样,才能学习和积累。否则当前做的事对未来一点帮助都没有,做了有什么意义。任何一个在
行业内领先的公司,都有比其他公司更多,更深的积累。不单是技术,也包括市场,服务等等。

云计算的是与否?
由 droplet 在 周二, 2010-07-13 11:46 提交 业界评论什么是云计算,在网上可以搜索到很多定义。我们参考这个来看看云计算的特性
http://csrc.nist.gov/groups/SNS/cloud-computing/cloud-def-v15.doc
1)On-demand self-service:提供给用户扩展服务的接口
2)Broad network access:多种接入手段(这个有什么意义?)
3)Resource pooling:虚拟资源,包括计算,存储,网络,平台等等,支持多租户(不是多用户,这个要注意)
4)Rapid elasticity:弹性,可扩展
5)Measured Service:服务可计量(为了收钱:))
再加一条 6)Internet based(天生是为全球用户服务?)
在现实世界里,也有很多云计算的服务提供商,但是,云计算和我们目前所用的服务,有哪些区别哪?
以SaaS(software as a service)为例。现有的一些服务,比如
1)Webmail。有很多Webmail提供商,但是他们提供的是云计算服务吗? 这是多用户,而不是多租户。因为一个租户
需要的是独立的域名,而不是诸如hotmail.com或者是gmail.com的帐号。就算是有vip.sina.com也不行。一个租户需要
对自己管理的用户有控制权,否则SaaS就不成立。这么说来,SaaS只是为企业用户服务的吗?对于个人用户怎么办?是不是
所有的软件都能SaaS化哪?常见的例子,比如CRM(salesforce.com)一般都是企业用户用。但是Google docs哪?这个对
个人用户是免费的,对企业用户是收费的。Google docs对个人用户的功能和企业用户是一样的吗?如果一样,企业用户有必要
买这个服务吗?

“云”杀毒如何工作?
由 droplet 在 周三, 2010-06-02 18:45 提交 业界评论国内杀毒厂商推出的“云”杀毒,没搞明白是怎么一回事。
把文件提交到厂商的服务器去杀毒,然后再传回来。这样可以避免在客户端保存病毒库,也可以减小客户端的CPU使用率。但这里面有几个问题:
1)对于内存病毒没有效果。所以在客户端的杀毒软件应该保留了一部分功能,比如检查启动项,检查内存等等。
2)最新文件进行查杀。假设系统在第一次杀毒之后,所有的文件都是干净的,那么只需要对新文件进行查杀。文件可以来源于网络,或者各种介质。这样做的前提是需要一次全面的杀毒,以后可以增量杀毒,但是对未知的病毒,第一次没查出来,以后是不是需要再来一次全面杀毒?如果服务器端的病毒库更新了,是不是需要再杀一次?
3)这种查杀必须是在线情况下才能施行。对网络连接明显有很高的要求。
4)传到厂商服务器上的文件如何保护?传输过程如何保护?
5)客户端能够检测到新病毒的破坏并且可以上报服务器,这个程序就非常智能了。这个能够自动进行吗?

Firewall: the first line
由 droplet 在 周四, 2010-05-20 16:12 提交 业界评论Firewall是信息安全的标准配置,但是firewall要解决什么问题哪?一句话:access control,而且是network access control。不管是内到外,还是外到内的访问,firewall都是第一道防线。所以firewall的policy都是基于5元组的,有的也会加上mac address,interface,zone等信息。但5元组是最基本的。
更进一步的发展,firewall又增加了application access control,访问控制的对象变成了URL/domain/resource等等。但是firewall里面没有identity的信息,所有做更细粒度的控制有点难度。一般来说,application access control都是由application来做的,需要结合identity management系统,权限管理等来实现。
其他的access control的产品,比如SSL VPN/IPSEC VPN/PPTP VPN等等,在访问控制的同时,还能够提供安全通道。但是,一般这些产品都会部署在firewall之后,做为second line的控制。
由此可见,access control是分层的:
1st line: firewall
2st line: vpn
3st line: application
当然也不排除把1,2,3都做到firewall里面。但是从安全设计的角度来看,application都需要access control,这个是不会省略的。而且application的access control都死role-based,要比firewall复杂。如果firewall能够获得identity/role的信息,可以在policy加上这些信息,不过相对复杂一点。

Ironport web reputation and google pagerank
由 droplet 在 周三, 2010-05-19 10:59 提交 业界评论Ironport 用web reputation来分类URL/domain的威胁等级,并依此来过滤威胁。Ironport用全球部署的sensor来收集botnet和spam的信息,并根据规则生成每个url/domain的repuation。这个思路,看起来和google的pagerank技术很相似。我认为它有以下几个特点
1)自动化。web reputation的生成,或者pagerank的生成,没有人为干预,完全是机器来计算,以保证公平。但是如果解决误伤的几率,这个是不是还需要一些补救算法。web repuation的输入据说有200多个。这在一定程度上可以避免误伤,不过计算的复杂度会提高。所以计算web reputation需要借助分布式计算的能力,有可能把这部分部署到云里面。如果这个数据能够共享,那是中小公司的福音。
2)海量数据。前面也说了,ironport要在全球范围内收集攻击的数据,包括netflow/log/virus/span等等。这种规模的部署和计算,不是一般公司可以做的。这需要资金和市场的支持。处理海量数据需要很多计算资源和存储资源,放到云里面是顺理成章。
http://en.wikipedia.org/wiki/PageRank

Random thoughts on cloud security
由 droplet 在 周二, 2010-05-18 14:55 提交 业界评论1) netflow或者jflow对网络监控很有用,但是它里面只包含了3/4层的信息,没有application的信息,如果有app flow或者
session flow,对分析7层的攻击很有用处。但是有几个问题
a) app flow里面要扩展哪些信息?netflow/jflow有标准的格式,很多工具都支持,在router/switch上用的很多。如果能搞一个
app flow的标准,在security device上支持,会很有帮助。
b) netflow是stateless的,做session flow需要是stateful,这个对设备来说,消耗太大。一般netflow都是通过router/switch的
mirror port或者tap port收集的,一个网络里面有很多个sensor,有专门分析netflow/jflow的工具。日志,网络流量,在这些数据里面挖掘出一些有用的信息,不容易。
2) botnet detection
botnet detection还有很多可以研究的话题。对server的保护,没有server profile,没法做有针对性的保护。也就是gateway对server不了解,
server的capacity,load等等。如果能够和server有联动,是不是识别更精确一点。有几个问题
a) 与server联动,还是与ids/idp联动?
b) 与server联动,用什么通讯方式?
c) 有了通讯,就有了代价和潜在的攻击后门。
3) virtualization
cloud computing一个很重要的特性就是virtualization,security device也必须支持virtualization的功能。怎么支持,是个问题。

Cloud security and botnet detection
由 droplet 在 周一, 2010-05-17 15:27 提交 业界评论Cisco的新名词“云火墙”,搭着卖自己ironport产品
http://www.ironport.com/company/about.html,看来半天,不知所云。
“云火墙”要监控,检测全球范围内的botnet,cisco在全球的很多isp的网络里面,放上botnet sensor,监测botnet。并把这些监测结果汇总起来,做成一个数据库。“云火墙”可以下载或者更新这个数据库,并根据这个数据库的信息来决定是否阻断连接。
这个和病毒的检测网络很像,比如病毒厂商还提出来一个“云查杀”,“云监测”。不知道这个“云监测”里面,有没有把用户的电脑当做一个监测的节点,如果是这样的话,那杀毒厂商要补贴用户了。白利用我的计算资源,偷偷干自己的事情。
病毒的监测这个好做一点。毕竟病毒的signature是静态的。病毒库更新了,就可以防所有已知的病毒。(当然,杀毒也不只有signature match一种方法,不过病毒库里面应该不包括查杀逻辑,如果库本身是可以执行的,那有可能引入新的安全问题)。
botnet如何监测,又如何生成一个数据库,让所有的查杀节点来阻断botnet?是ip地址?domain?还是其他?
从Client角度来说,重要的是能防止fishnet和被挂马的网站。如果有一个域名或者URL的数据库,阻止或者警告用户去访问fishnet或者被挂马的网站,这个当然是不错的。这样来看,这个“云火墙”更像是一个企业网的产品,而不是给运营商用的。
从Server角度来看,如果能够知道源地址来自botnet而直接阻断的话,就能避免C&C攻击。这里是否需要检查Client的URL是否是合法的哪?这个貌似比较困难,需要扫描server的URL,这个会对server造成更大的伤害。

Security issues in data center
由 droplet 在 周五, 2010-05-14 11:03 提交 业界评论在一个public data center里面,主要的工作是托管客户的服务器,或者是提供VPS服务。所以,最重要的是web server/app server/database/email/ftp/dns等等。防护首先针对的是来自于外部的威胁,比如很常见的,针对web的攻击,XSS, SQL injection等等。当然,比较传统的access control, flood等,也是必须的。传统的安全产品,应该都还适用。但是,这些设备必须支持虚拟化,而且可以和router/switch的网络虚拟化功能结合起来。在这些设备上,如何创建用户的执行环境(sandbox),是需要考虑的一个问题。如果做成vmware那种虚拟机,从性能上来说,是没法接受的,而且也没看见哪个厂商这么做。control plane可以用虚拟机,但是data plane不能。
一旦虚拟主机被攻陷,如何发现并报告问题也是需要关注的。常见的就是日志,从日志里面发现问题。但日志一般关心的是外部的威胁,对内部到外的连接就不怎么关心。为了避免成为botnet里面的肉鸡,一是要防止被攻击,二是要在被攻陷后,及时告警和恢复。在配置firewall或者ips/ids策略时,应该考虑这一点。
当一台服务器被攻陷时,为避免这个危险扩散,在服务器之间,也应该有相应的策略。当然,用网关做access control,这个代价有点高。但至少应该有证书认证,密码保护等措施。不要在所有的服务器上设置相同的密码。这个用起来相对麻烦一点。

Data center and virtualization
由 droplet 在 周四, 2010-05-13 14:21 提交 业界评论Virtualization在data center里面很重要。比较常见的,比如
apache的virtual host; mysql的database;vsftpd的virtual host,还有unix系统的多账户等等。
这属于软件的虚拟化,或者说,这是软件创建的sandbox或者user context。在这个sandbox里,用户可以做一些事情。但是用户的控制边界不能超出了这个context,否则就会给系统带来安全隐患。所以在VPS里面,一般需要禁止sudo,而且要为每个用户创建一个组。很显然,这种虚拟化还很原始,用起来也不方便。
有了虚拟机以后,可以为每个用户创建一个虚拟机。但是虚拟机的开销很大,为每个用户创建一个虚拟机,成本太高,也没有太大必要。用户有时需要的并不是虚拟机,而是一个执行环境。就目前来说,还没有哪个厂商把,web/ftp/mail/database等软件统一到一个虚拟执行环境里面来。很多VPS提供商做的只是整合,并且fix problem one by one。
网络的虚拟化也很重要,这里面最常见的就是ethernet里面的VLAN技术。网络虚拟化可以在二层做,也可以在三层做。比如vlan, vpls, mpls和ipsec vpn等vpn技术。如果cloud computing提供网络虚拟功能,大网套小网,小网又要划分成更小的网。这个如何划分,管理,是个头疼事。如何在虚拟网络里保证服务质量,更是个头疼事,当然,对于虚拟化来说,服务质量都是个难题。
Cloud computing提供一个执行环境,能够把目前用户应用跑在这个虚拟环境里面,这已经是个很不错的开始。现在用户还是托管服务器,购买带宽。如果以后能够直接购买服务,别的不用考虑,管理,维护的成本至少会节省下来。

Data center and large scale web site
由 droplet 在 周四, 2010-05-13 13:31 提交 业界评论这几天看了一些关于如何构建大型网站的文章:
http://www.blogjava.net/BlueDavy/archive/2008/09/03/226749.html?allyesid=81216_39113
http://www.docin.com/p-23547569.html#
这些知识对理解云计算的需求很有帮助。在这些大型网站的发展过程中,随着用户的增长,需要在两个方面进行扩展:硬件扩展和软件扩展。
硬件扩展包括更多的存储,更多的内存,更强劲的CPU,当然也包括带宽,负载均衡等等。
软件扩展包括负载均衡,缓存,业务和数据分离,高可用性,分布式文件系统,分布式数据库等等。
虽然各大网站的业务各不相同,平台也可能不一样。但是优化和扩展的思路却大同小异。那么,为什么不能把这些最佳实践综合起来,做成统一的平台哪?
以IaaS为例例,IaaS包括了计算单元,存储,网络,还有CDN等等,或者还有分布式的data center。在网站初期,不需要很多的资源,用户可以更加关注自己的业务,而把infrastructure交给cloud computing提供商去做。当业务扩展的时候,再增加更多的资源。
更进一步,在Paas里面,那些基础的软件,比如web/database/app framework等,都可以使用线程的,而用户只关注自己的逻辑。这里面就有一个平台选择的问题,在LAMP/java/.net之间选择,并不那么容易。而且很多公司以前都是倾向于自己做这部分工作。而且也把这个当做自己的核心竞争力。但是,未来做业务,就不需要再走老路了,有现成的东西用,何乐而不为哪?

最新评论
21 小时 29 分钟 前
1天 5 小时 前
2 天 1 小时 前
2 天 23 小时 前
5 天 21 小时 前
5 天 21 小时 前
6 天 1 小时 前
1周 1天 前
1周 1天 前
2 周 2 天 前