IIS 的一个不足和一个使用建议

经常借用别人公司的一台托管的服务器上传下载些资料,顺便也帮人盯着服务器的配置与安全,前两天发现,系统盘 10G 硬盘空间没剩多少了,进去一看,原来 IIS 的日志文件(%windir%\system32\logfiles)下有5-6个G的日志文件,每天的日志约有 30-40M,于是把这些日志文件备份出来,压缩存储了一下,立刻节省了大量磁盘空间出来。

这个网站的访问里并不大,但日志文件为什么这么大呢,打开一看,IIS 的日志记录是很详细完整,但是仔细一看,好多行信息都是 jpg 和 gif ,这可能由于这台服务器是公司/产品宣传的缘故,所以图像文件较多,因此当访问一个页面时,会记录 10-20 条日志信息,从日志的真正用处来看,这些多余的图像文件的访问日志并不需要,而且,这么多的日志信息显然消耗了服务器的计算、IO、存储资源,影响高并发时的性能。

于是想在 IIS 的日志里对记录的 URI 资源类型做一下限制,很遗憾,没有发现这样的选项,在 Google 上似乎也没有找到替代的做法,这样看来,这好象是 IIS 日志记录功能的一个不足之处。

更新:感谢思归提供的解决办法,我把 Images 目录的日志记录取消了之后,日志文件在大小见下图:

另外再次极力推荐一下 IIS 的 gzip 功能,最近一直在研究其对性能和带宽的影响,应该来说,对于绝大多数互联网上的服务器来说,CPU 的资源比带宽资源的利用率更低,因此应该利用这些闲置的 CPU 资源来压缩页面,降低带宽点用,提高响应速度,而且,对于静态内容来说,这种压缩可以生成临时文件,避免每次访问都对资源进行压缩,因此对 CPU 资源的影响也是非常小的。对于大型企业来说,要在集中位置部署一个 B/S 的系统,那么利用 gzip 能大大节省租用运营商通讯线路带来的成本(利用 Internet Security and Accelerator 提供的 HTTP 压缩和缓存功能,也可以达到同样的目的)

port80software 这个网站上,提供了一在线测试工具,可能对你的网站进行测试,以确定其是否提供 gzip 压缩以及压缩比重、传输速度的提升等。

ASP.NET 常见参考项目的 UI、BLL 、Model 、 DAL 分析

应用/项目名称 UI层实现 Business Model & Logic Layer 实现 Data Access Layer 实现
Personal Web Site Starter Kit 在ASP.NET页面上直接利用 ObjectDataSource 来绑定 PhotoManager 中的方法来获取数据、更新数据 两个数据实体类(Album、Photo),一个管理类(PhotoManager)
自行解决数据库连接、使用 SqlCommand 来调用存储过程来完成
Club Web Site Starter Kit 在ASP.NET页面上直接利用 SqlDataSource 来获取数据、更新数据 只有一些简单的 Helper/Utility类,业务逻辑大多在页面上实现 有一个DataSet,提取 Member表的数据,在自己的数据库中扩充了 SqlMembershipProvider的字段
Classifieds Site Starter Kit 在ASP.NET页面上,增/删/改主要是利用FormView调用BLL中的ModelDB来实现,数据列表主要利用ModelCache的List和ModelDB返回的ModelDataTable来绑定 1) BLL中实现了 ModelDB的类,调用DAL中的DataSet来进行数据更新,如果是查询数据(GetModelList),则得到 ModelDataComponent.ModelDataTable,这是数据集自动生成代码中的一个类

2) 在 App_Code 的Web目录中,主要实现了部分实体在 HTTP Context中的Cache功能,建立了 CachedModel(数据实体类)及其管理对象 ModelCache,后者主要是将BLL层的ModelDB的Retrive结果DataTable转成 List

全是ASP.NET 2.0 中的DataSet,实现了所有表数据的获取与更新,它是调用存储过程来实现的
Commerce Starter Kit 在ASP.NET页面上,有一些是直接调用 ModelManager对象来完成用户交互,有一些则是利用 ObjectDataSource 绑定 ModelManager 来达到同样功能

对于某些操作,如果没有对应的 ModelManager 则直接使用 SqlDataSource

1) 在Objects目录下,定义了数据实体类,包含所有属性的Get/Set方法的定义,没有实例化方法,而是使用 void Load(IDataReader)来初始化,其中有一个对象(ShoppingCartItems),则继承至DataTable,利用BuildDataTable()来进行初始化

2) 利用数个 ModelProvider 将与数据库的主要交互功能封装起来,提供了实体层次的CRUD

3) 在 BLL 目录下,有数个 ModelManager,提供从业务层面对 Model 的操作,其中主要是调用 ModelProvider来完成具体的操作

在 ModelProvider项目中中,先定义ModelProvider抽象类,再由 SqlModelProvider 来继承,后者中利用 SqlHelper 来完成数据访问,主要是调用存储过程
Duwamish 7.1
(.NET 1.1)
调用BusinessFacade中的 OrderSystem 和 ProductSystem 中的方法完成用户交互,这主要是调用DAL层的相关对象来完成的 1) ModelData,继承自System.Data.DataSet,在构造函数里调用BuildDataTables()来初始化一个DataTable用来存储Model数据

2) 在BusinessFacade和BusinessRule中,实现了与业务逻辑有关的内容,调用数据层的 Models 来完成数据访问

实现了数个 Models对象,提供了对于 ModelData的CRUD方法,它也是调用 SqlHelper 来完成与数据库的交互
Jobs Site Starter Kit 利用 ObjectDataSource 绑定 Model 类,Command 主要是调用 Model 的 CRUD方法 在 Model 对象中定义了所有属性和CRUD方法,实现时调用了 DAL 的 DBAccess 对象,也使用了诸如 SqlParameter 等对象 只有一个类 DBAccess ,属于工具类,类似于 SqlHelper,它是利用 System.Data.SqlClient 来实现的,如果向其他数据库移植,代码量不大
Timer Tracker Starter Kit 利用 ObjectDataSource 绑定 Model 类,Command 主要是调用 Model 的 CRUD方法 在 Model 对象中定义了所有属性和CRUD方法 DataAccess:抽象类,定义了DAL层需要实现所有 Model 的 CRUD 对应的数据访问方法

DataAccessHelper:工厂类,利用配置创建相应的 DataAccess 对象

SqlDataAccess:DataAccess 的 SQL Server 实现,其中也包含一些类似于SqlHelper 的通用方法以简化代码

.Text 0.95
(.NET 1.1)
大多数是调用 Model有直接调用 SqlDataProvider 来获取数据、更新数据 在Dottext.Framework 的 Component 中定义了业务实体 Model 和 ModelCollection,在在Dottext.Framework定义了 Models 类,主要用提供 Model 的 CRUD 方法,其中的 R 返回 ModelCollection 在Dottext.Framework 的 Data 中定义了 IDbProvider和 IDTOProvider 接口,然后提供了 DataDTOProvider 和 SqlDbProvider 的实现,其中调用了 SqlHelper 类
Community Server 2.1 SDK
(.NET 1.1 & 2.0)
直接调用 Models 的方法来获取数据、更新数据等 在 CommunityServerComponents 项目的 Components 中定义 Model 类,其中仅包含属性定义及构造函数,另外定义了 Models 类,其中实现了 Model 的 CRUD 方法,它是调用 Provider 下的 CommonDataProvider 来完成数据访问的 在 CommunityServerComponents 项目的 Proivder 中,利用抽象类CommonDataProvider 定义了所有 BLL & Model 层需要的数据访问方法,然后在 SqlDataProvider 中项目中使用 SqlDataProvider 继承此类,完成与 SQL Server 数据库的交互
.Pet Shop 4.0 在 ASP.NET 的页面上,大多是利用代码来调用 BLL 层的 Model 对象来获取数据、更新数据 Model 项目 中定义了所有的业务实体 ModelInfo
BLL 项目中定义业务实体 Model ,其中包含业务视角的 CRUD 方法,它们是调用 IDAL 中的 IModel 的 CRUD 方法来实现的
IDAL 项目中有多个接口定义 IModel,其中定义了需要实现的 Model 的 CRUD 方法
SqlServerDAL 和 OracleDAL 分别在两种数据库上实现了 IDAL
DALFactory 为工厂类,负责根据配置返回相应的 IDAL 的 IModel 实现类
DBUtility 是 SQL Server 和 Oracle 数据库操作的工具类,主要是 SQLHelper 和 OracleHelper

简单个人评价:

  1. Personal Web Site Starter Kit:简单,供初学者参考之用
  2. Club Web Site Starter Kit:对标准 MemberShip 的扩充值得一看
  3. Classifieds Site Starter Kit:结构较为清晰,利用 DataSet 简化了大量 SQL 代码的编写
  4. Commerce Starter Kit: 利用了 Provider 模型,有些小瑕疵,如界UI层有 SqlDataSource,Model 中有 DataTable
  5. Duwamish 7.1:架构比较清晰,但Model 继承自 DataSet ,因此其 BuildDataTables 和 Models 中的CURD 方法较为麻烦,代码量较大
  6. Jobs Site Starter Kit:简单实用,有些缺点,如 Model 的 CRUD 方法的 SqlParameter 造成 BLL 和 DAL 无法完全隔离
  7. Timer Tracker Starter Kit:一种架构清晰、较好的实现模式,只是代码量稍大
  8. .Text 0.95:基于 .NET 1.1 ,因此 BLL 层稍显复杂,DAL 层代码量也较大
  9. Community Server 2.1:它同时兼容 .NET 1.1 和 .NET 2.0 ,因此没有利用 .NET 2.0 的许多特性,但其 Provider 的模式较为清晰
  10. .Pet Shop 4.0:架构清晰

注:上述分析以数据访问为主,本 Post 是使用 Windows Live Write 来编写完成

数据访问层实现的一些个人想法

个人感觉数据访问层应该实现以下几个主要目的:

1) 分离业务层与数据层

2)屏蔽具体数据库的差异(如SQLServer、Oracle、OLEDB、ODBC等)

3)简化数据访问层的代码,经常写一些 Parameter 的设定是很无聊的事情)

先下载并研究了一下Enterprise Library 2.0 ,发现其中的Data Access Application Block有点复杂了,有近 40 个类文件,还需要引用 Configuration、Common、ObjectBuilder 等项目,本身就是一个很大的项目了… 个人觉得还不如上一个版本中的 SQLHelper 对象那么简单方便(Pet Shop 4.0 中的 DabaAccess 项目里就是用 OracleHelper和SQLHelper来实现的)

再来研究Pet Shop 4.0 ,其中主要对象层次一般是(假设Model是业务对象):

ModelInfo <- Model -> IDAL <- SQLServerDAL(或OracleDAL)

其中:

  • ModelInfo 是瘦的业务实体数据对象
  • Model 实现 ModelInfo 的管理(增、删、改、查询)等,调用 IDAL 来实现
  • IDAL 是数据访问层的接口定义
  • SQLServerDAL 是 IDAL 在 SQLServer 上的实现,如果是 Oracle,可以利用 OracleDAL 来实现

貌视还不错的结构,只是 DAL 层的里面的代码还是比较多,好多SQL、好多Parameter的操作

再看看 Visual Studio 2005 中带的”个人网站的初学者工具包”的数据访问代码,它只是简单在App_Code中有 Model(瘦的业务实体数据对象)、ModelManager(管理对象,数据层的访问也在其中实现)的两个对象,数据库也只是SQL Server,较为简单,但也不易扩展。

我的一点想法:

1)Enterprise Library 2.0 有些庞大和重量级,学习曲线太长,谨慎使用

2)Visual Studio 2005 中的数据集对象(DataSet)是个好东西,可以简化很多SQL语句的编写和参数的设定

3)Pet Shop 4.0 的总体架构还是不错的(Model <- ModelInfo -> IDAL <- SQLServerDAL),值得参考,但是在SQLServerDAL 和 OracleDAL 不用手动去编写代码,而是调用利用 DataSet 自动生成的代码来实现(SQLServer、Oracle、OLEDB或ODBC等),简单的业务对象管理动作应該是能直接利用DataSet提供的方法直接实现,如果是复杂的数据层操作,可以自己编写代码来实现(如多个表之间的数据操作)

4)musiclandJGTM 2006 也提供了一种不错的实现方式,具体参考这篇Post

这样的话,开始提到的三个目的都能达到了。

新名词 – Ransomware 勒索软件

先列出大家都了解的一些常见的与安全相关的名人堂:

  • 病毒 - Virus
  • 蠕虫 - Worm
  • 木马 - Trojan Horse
  • 假病毒 - Hoax
  • 恶作剧 - Joke
  • 后门 - Backdoor
  • 间谍程序 - Spyware
  • 规模传播的邮件病毒 - Mass Mailer
  • 僵尸程序 - Bot
  • 广告软件 - Adware
  • 恶意代码/脚本/代码 - Malware/MalScript/MalCode
  • 网络钓鱼 - Phishing
  • 键盘记录软件 - KeyLogger
  • 行为记录软件 - Track Ware
  • 窃取程序 - Stealer
  • 垃圾邮件 - Spam
  • 拨号软件 - Dialer
  • 逻辑炸弹 - Logic Bomb
  • 漏洞利用代码 - Exploit Code
  • 流氓软件

现在又有新成员Ransomware - 勒索软件加入了,大家鼓掌欢迎,这里简要介绍一下它的政治面貌:

勒索软件(RansomWare)是黑客用来劫持用户资产或资源并以此为条件向用户勒索钱财的一种恶意软件。勒索软件通常会将用户系统上多种类型的文件,如文档、邮件、数据库、源代码、图片、压缩文件等,进行某种类型的加密操作,使这些文件不可用。勒索软件还可能通过修改系统配置文件,干扰用户正常使用系统的方法使系统的可用性降低。然后,通过弹出窗口、对话框或生成文本文件等的方式向用户发出勒索通知,要求用户向指定帐户汇款来获得解密文件的密码或者获得恢复系统正常运行的方法。

查看:勒索软件详细介绍全国首例传播电脑病毒敲诈案告破 

新书预告:《数据库加密-最后的防线》

function act(no)
{
if(document.all.item(“x”+no).style.display==””) document.all.item(“x”+no).style.display=”none”;
else document.all.item(“x”+no).style.display=””;
}

前几天,思归提到数据库安全是个大问题,我深有同感,感觉现在大家在外围、应用安全上做的工作比较多,往往忽视了数据库的保护,而这部内容恰恰是最关键的信息资产,正好本人与同事最近刚翻译完成了一本这方面的著作,《数据库加密——最后的防线》近期将由电子工业出版社出版,本书中详细介绍了如何对数据库的数据进行加密,同时给出了 Java 样例代码。

译序节选>>   (单击显示/隐藏)

安全性本身涉及的内容和范围非常广泛,从整体层次上来说,包括安全策略、安全管理、物理安全、网络安全、主机安全、应用安全、数据安全等许多领域,针对这些主题,业界已经提供了大量成熟的解决方案和最佳实践,从微观上来说,安全基础技术——密码学的发展也相当成熟。通过在以上各个层次中合理地使用密码技术,能够有效地满足绝大多数安全需求,关于这些内容的安全资料和书籍非常丰富,但是唯一令人遗憾的是,关于密码学在数据库中的应用这个领域,即数据库加密,却被很多安全专家和技术人员所忽视,很少有人去研究,因此也鲜有相关著作,其主要原因是大家一般寄希望于数据库管理系统来保护数据的安全性,但是在实际应用中,数据库管理系统所能提供的保护作用是有限的。

大多数情况下,应用系统中最有价值的资产就是商业数据,尤其对一些特定行业,如金融行业来说,数据的机密机至关重要,甚至事关企业的命运和发展。例如去年美国付款信息处理公司CardSystems遭受黑客入侵,造成了美国史上最大一起的数据泄露事件,此次泄密事件波及的信用卡用户多达4000万人,严重影响了全世界范围的数千万客户,甚至包括中国的数千名用户,这使得银行和信用卡公司不得不为所有客户重新换发所有信用卡,这不但带来了巨大的业务损失,更重要的是,对公司的声誉、客户的信心带来了沉重的打击。

由此可以看出,数据安全在整个系统安全中非常重要的一个环节,虽然应用程序和数据库管理系统可以为数据提供相当程度的安全保证,但是要看到,由于数据在物理上一般存储在单独的服务器上,攻击者可以很容易破解或绕过应用程序而直接访问数据库,另外,由于数据库管理系统使用不当或者攻击者绕过数据库管理系统来直接访问数据库所对应的原始文件,数据库管理系统所提供的安全保护也失效了,除此之外,那些合法的用户,如数据库管理员、应用开发人员都有可能轻易读取数据库中的内容,从而破坏数据的机密性。因此,如果不在数据库内部实施额外的安全措施,如数据库加密,就难以完全保证数据的安全性。

考虑到数据库系统的复杂性,因此保护数据库并对其进行加密也是一个非常错踪复杂的问题,如密码算法和模式的选择、密钥的管理等,如何才能有效地入手呢?《数据库加密——最后的防线》,这本来自业界领先的安全公司 Symantec IT应用与数据库安全项目主管的著作,将带给你这些问题的答案。

在本书中,作者Kevin Kenan全面地介绍了与数据库加密这个主题有关的方方面面的问题。包括了解保护数据的必要性,如何构建一个真正的数据库威胁模型,加强数据库安全的需求分析、对数据进行分类、如何编写与密码系统安全交互的数据库应用程序、避免常见的威胁数据库安全的漏洞和问题,以及如何在测试、部署、保护及终止过程中保护数据库应用的安全性等。

本书分为四大部分,第一部分首先介绍了安全性的基本含义及其在数据库中的具体体现,随后讲述了密码学和数据库的一些基础知识和密码学在数据库中的应用。在第二部分中,介绍了密码系统的基础架构和密码系统中的各个组件,如密钥库、密钥管理器、密码提供者、密码引擎等。

第三部分介绍了密码系统的项目管理,描述了一个项目开发生命周期的各个阶段应該注意的安全问题,如在需求阶段进行需求定义、确定策略、标准及算法,在设计阶段,提到了应該遵循的安全设计指南及最佳实践,并介绍了威胁建模及安全模式方面的内容。在开发阶段,介绍了应該注意的最主要的安全开发实践;在测试阶段,主要介绍了安全功能测试和穿透测试,前者是从正面的角度测试各种功能是否存在,而后者是从攻击者的角度来测试系统安全措施的有效性如何,是否存在任何漏洞。最后,介绍了应用程序在部署、运行及终止阶段应該注意的安全问题,这是一部分很容易被忽视的重要内容。

在第四部分中,作者针对之前描述的各种理论、技术与实践,给出了一个数据库加密系统的Java实现,这是本书中非常有价值的一部分内容,通过这部分代码,读者可以更准确、更深入地了解本书中的内容,最后,给出了这个示例系统的运行演示。这些代码可以在少量修改后,就可以应用到实际的项目中去。这部分代码可以从作者的网站(http://www.kevinkenan.com)上下载,其中包括了相关的使用说明,包括如何建立初始数据库等。

目录节选>>   (单击显示/隐藏)

第一部分:数据库安全
1、数据库安全问题
1.1、数据库面临的攻击
1.2、保护数据库的外部需求

2、使用加密保护数据库
2.1、数据库知识的快速复习
2.2、密码学是什么
2.3、密码学应用
2.4、加密的风险
2.5、加密面临的攻击
2.6、混淆
2.7、传输加密

第二部分:加密基础设施
3、加密基础设施概述
3.1、应用程序架构
3.2、加密系统加构
3.3、加密密钥

4、加密引擎和算法
4.1、本地引擎
4.2、专用引擎
4.3、加密算法

5、密钥存储库、清单和管理组件
5.1、密钥存储库
5.2、密钥清单
5.3、密钥管理组件

6、加密提供者和使用者
6.1、提供者
6.2、使用者

第三部分:加密项目
7、加密项目的管理
7.1、安全意识
7.2、客户参与
7.3、项目范围
7.4、项目角色

8、增强需求的安全性
8.1、安全需求、策略和标准
8.2、一般需求
8.3、需求复查
8.4、确定加密标准
8.5、数据分类

9、提高设计的安全性
9.1、数据流图
9.2、设计指南
9.3、威胁建模
9.4、安全模式
9.5、设计密码系统

10、安全开发
10.1、安全开发指南

11、测试
11.1、安全功能测试
11.2、穿透测试

12、部署、保护与终止
12.1、部署
12.2、保护
12.3、终止

第四部分:示例代码
13、示例说明
13.1、工具和通用服务
13.2、引擎与密钥库示例

14、密钥库
14.1、本地密钥
14.2、本地密钥的存储
14.3、访问本地密钥

15、清单
15.1、密钥别名

16、密钥管理程序
16.1、密钥工具-KeyTool

17、引擎
17.1、本地引擎

18、票据与提供者
18.1、加密请求与解密结果
18.2、票据
18.3、提供者

19、使用者
19.1、客户信息
19.2、信用卡信息
19.3、客户管理对象

20、异常

21、示例系统运行演示
21.1、设置密钥
21.2、操作客户信息
21.3、替换密钥
21.4、替换加密密钥的密钥

查看Amazon 原版信息

网银大盗的作案手法

之前提到的网银安全的事有结果了,大家了解一下网银大盗的作案手法,很有教育意义,希望大家可以举一反三,不,说错了,是很有警示意义,希望大家可以以此为戒,加强防范,呵呵。

某报讯,在互联网上兴风作浪将近一年的“新网银大盗”电脑病毒作者已经被捕。这位16岁的电脑高手通过在被害人电脑中“种植”电脑病毒的形式,盗窃工行网上银行用户密码账号,然后通过多次转账的形式提取现金。截至案发时,刘某已经窃取现金62500余元。

  据悉,犯罪嫌疑人刘某系厦门市某中专校在校生,被捕时年仅16岁。刘某入侵了吉林搜狐网,将其中部分网页链接改造成可偷偷打开事先设定的恶意网页的“陷阱”链接,从而在点击者的电脑中“种植”电脑病毒。他制作的电脑病毒“新网银大盗”一旦发现用户登录工行个人网上银行的界面,就开始记录用户的键盘输入内容。如果卡号长度为19个字符,并以“95588”开头时,病毒就会将记录下的卡号、密码和验证数字等信息加密后自动传送给电脑病毒作者。通过这种形式,刘某盗窃工行网上银行用户密码账号,然后通过多次转账的形式提取现金。据警方介绍,仅仅通过侵入吉林搜狐网传播木马病毒,刘某就获取了124张银行卡的网上银行资料。网络警察在一个与他相关的网站上还发现了数百张银行卡资料,最终查明刘某前后一共盗走12名受害者银行卡内的钱款62500多元。

一位少年就可以对资产达几千亿的超大银行的系统造成威胁,这种不对称就来自于满山遍野的黑客工具和银行科技人员的不作为,要不是警察叔叔帮忙,真为这些银行的客户担心。

参考:微软平台在金融行业应用案例

参照Microsoft网站及一些搜索引擎的结果,总结如下:

微软平台 金融行业应用案例
地域 机构/公司名称 系统名称 平台与技术 备注
国外 纽约银行 BNY 所有应用基础平台转向 Windows 和 .NET  Windows , .NET 为了提高可靠性、生产力以及成本效益,纽约银行正在Microsoft Windows Server 2003和Microsoft .NET Framework进行标准化工作,将其作为公司的分布式系统集成构架平台和Web服务、Web应用程序以及智能客户端应用程序的基础。
纽约银行 欧洲基金服务集团
BNY EFS
关键的基金服务系统 Windows, .NET, SQL Server 使用了智能客户端(Smart Client)技术,即 GUI + Web Service
新墨西哥银行 核心银行业务系统(Alnova .NET)  Windows, .NET  
伦敦证券交易所 市场信息和数据访问系统 Windows, .NET, SQL Server SQL Server 2000 上每秒处理 3,000 次交易
JPMorgan Chase  构建基于 FIX.NET 的自动交易系统 Windows, .NET  
加拿大丰业银行
Bank of Nova Scotia
汽车金融融资系统 Windows, .NET, ASP.NET -BNS
Bank One Online Banking Windows, .NET  
美林公司
Merrill Lynch
Call Center (800) Windows, .NET, ASP.NET 设计容量:2500万用户,7500万笔交易/日
路透社 产品集成与递送(RAPID), Windows, .NET, ASP.NET 主要用于数据的自动分发与自动集成
世界银行 数据仓库系统 Windows, SQL Server  
J.P. Morgan Mortgage Capital 贷款系统 Windows, SQL Server  
SWX 瑞士交易所 交易系统与会员接口 Windows, SQL Server 欧洲的第三大股票交易所,系统为撮合所有的交易订单的核心系统(Exchange System)和交易会员的接口(Trading System)
John Hancock 金融服务公司 核心会计核算系统 Windows, SQL Server  
巴西银行 商业智能(BI) Windows, SQL Server  
巴西期货交易所(BM&F) 外汇交易系统 Windows, SQL Server , .NET , Biztalk 每日交易数额达50亿
花旗集团 金融行业数据发布(CitiVision) Windows, .NET 数据源有270个,为全球12000名用户提供服务
Bear Stearns(投行与证券) 整合 AS/400 上的交易系统 Windows, .NET  
通用汽车金融服务公司
GMAC Financial Services
商业贷款流程自动化 Windows, .NET , SQL Server MortgageRamp为包括Deutsche Bank、JP Morgan、Allied Capital和Morgan Stanley在内的 14个主要贷款方充当了一个贷款交换所和提供起点服务
CheckSpace 电子支付 Windows, .NET , SQL Server  
马德里证券交易所 证券交易系统 Windows, SQL Server  
国内 浦发银行 SAP Banking Windows  64位Windows, HP Superdome主机
日盛金融控股公司 核心银行业务系统(T24 for Windows )  Windows 每小时交易量10万笔以上,(台湾)
招商银行 Online Banking Windows, .NET, ASP.NET 包括对公与对私
中国人寿 综合业务处理系统前端 Windows  全国范围

欢迎大家补充。

注:这里主要指的是行业应用,并没有列出一些一般的非关键应用、小型应用或桌面应用,如OA等,如果这样列,那就多了去了,那家金融机构没有用Windows呀。

查看Microsoft Customer Evidence (这里可以查找微软的行业解决方案与应用案例)

推荐两个很有价值的安全工具

今天看到微软发布了两个与安全有关的非常有价值的工作,下面一一列出。

1. Microsoft Private Folder 1.0

微软刚刚发布了一个个人隐私保护工具Microsoft Private Folder 1.0,它可以帮助用户电脑中建立一个Private Folder并进行密码保护,在其他们用到电脑时,这个工具会帮助保护隐私和文件安全,比起复杂的NTFS、用户帐户权限或加密文件系统(EFS)来说,这个工具非常方便好用。

从目前了解的内容来看,Private Folder似乎是使用了加密来对文件进行保护,算法未知,但应該是对称算法,密钥来自用户的设置,虽然不如 EFS 那么安全,但是非常适用于共享同一Windows帐户的用户保护自身的文件,在使

用 EFS 时,经常由于证书的问题,会带来一些额外的问题,如证书管理/导入/导出,而使用密码则简化了这些问题。

其缺点是不能将其他任意目录设置为 Private Folder,每个用户只能有一个 Private Folder,而且也只能在用户的主目录下(Documents And Settings\[UserName]\My Private Folder)。注意,下载和安装此工具都需要正版验证。

2. Microsoft Threat Analysis & Modeling v2.0

近几天,微软在安全开发的方面关注非常多,最有名的当属于SDL(安全开发生命周期),其中非常有用的一个安全评估方法论就是威胁建模(Threat Modeling),它是一套非常完整的方法论,具有完备的文档,已被业界许多公司和专家所采用。

这次微软推出的 Microsoft Threat Analysis & Modeling v2.0 已不仅仅停留在理论层面,而是以工具的形式具体体现的方法论,例如定义系统中的数据、角色、架构特征、系统组件等时,同时在里面已经预定了攻击库(pre-defined attack library),包括SQL、XML、HTTP、网络协议、SOAP等各种技术所面临的特定威胁已经包含在里面。例如,如果你在定义系统组件时,指定你的系统是基于Web的系统,而且里面有数据库查询,那一定会面临SQL注入式攻击。

当你定义了所有要素之后,Microsoft Threat Analysis & Modeling v2.0 将会产生数据访问控制矩阵,组件访问控制矩阵、受攻击的区域、信任流、调用流程、数据流程等信息,同时将会针对特定的项目团队中的角色(如系统分析、设计、开发、测试、运行维护等)分别提供不同的报表,以帮助他们关注各身需要解决的重点安全问题。

个人感觉这个工具具有非凡的价值,对于系统安全、应用安全领域的人员来说具有重要的作用,它把可以对纷繁复杂的安全问题进行形式化、数量化、结构化的定义(不知此词的用法是否准确…),并且帮助我们进行风险分析和评估,个人感觉是由算盘的时代进行了计算机时代。

下载:Microsoft Private Folder 1.0
下载:Microsoft Threat Analysis & Modeling v2.0

小技巧:快速杀掉流氓DLL

现在流氓软件越来越多,所以自己平时也很谨慎,不乱下载和运行不明来源的软件,也不太喜欢装杀毒软件,觉得有点影响系统的效率。

前一段时间忙于交一份差,随便下了几个小软件用了,之后就发现系统中有好几个流氓软件,有随机打开 IE 窗口显示广告的,有从网上偷偷下载东西的,还有得经常导致 Explorer.exe 出错。

一般来说,对付这些软件有以下一些手段: 

  • Regedit/msconfig 检查注册表
  • Services.msc 检查服务
  • Ctrl + Alt + Delete 检查进程

对于那些 Inject 到系统服务或应用程序中的 DLL ,都好对付,结合 “Who Lock me”工具,先杀掉进程,再删除 DLL。但是如果 DLL Inject 到 Explorer.exe 上,那就删不掉了,除非重启进行安全模式,这来回一折腾,至少得10分钟 …

无意间发现一个好办法:调用任务管理器,把 Explorer.exe 给结束掉,这时候屏幕上只剩下任务管理器了,单击其”文件“-”新建任务“菜单,再点击”浏览“,这时候可以把这个定位文件的对话框当 Explorer 来用,找到那个罪恶的 DLL, 删除之,然后再在任务管理里输入 Explorer ,这样不用重启进入安全模式,就能删除那些 Inject 到 Explorer 上的流氓 DLL 了,有点象“刮骨疗毒”,呵呵。

微软雅黑——华文细黑的变体?

在 Microsoft 最新的操作系统 Windows Vista 及办公软件 Office 2007 中,出现了一种新的ClearType字体——“微软雅黑”(msyh.ttf),目前版本为0.7x,在我的笔记本上显示效果还不错,不过以前习惯了宋体,估计还需要一段时间来进行审美转换。

在 Word 大概试了一下,这个新字体和原有的“华文细黑”有点像(如下图),但在由于笔划比较厚,所以显得更清晰一些,此外在边缘处理上也比“华文细黑”要好一些,更圆滑,有点书法的感觉,可以通过附图中“民”字的比较看出来这一点。

不过,有一点疑惑,我们是不是都忙着开发“汉芯”,忘记了我们的汉字,而让微软来给我们开发中文字体?

注:

  • 图中第一行字体为宋体,第二行为微软雅黑,第三行为华文细黑
  • 右边的小图是利用老罗的做法,将两种字体叠在一起对着太阳找差异,其中黑色为微软雅黑,浅绿色为华文细黑,注意“软”字最后几笔的差异。