Windows Azure 安全最佳实践 - 第 4 部分:需要采取的其他措施
那么,哪些安全威胁应由WindowsAzure环境缓解?哪些安全威胁必须由开发人员缓解?
开发 Windows Azure 应用程序的最佳安全做法一文说明了对于在
Windows Azure 中运行的应用程序而言,什么样的威胁应被视为主要威胁。它还专门说明了 Azure
能够缓解的威胁以及您需要调用 API的内容和您需要自己处理的内容。(它未涉及合规性问题。)
您应该处理的内容
我将选择一些威胁和您应该执行的操作,并提供一些参考,以便您可以了解有关如何在代码中进行实现的更多信息。该列表在Windows Azure 安全概述中提供。但是具体结果将取决于您。
这个列表并不全面。正如您从本系列文章的以前部分中了解的那样,您根据您自己的应用程序需求来调整您的安全做法。
篡改威胁
篡改/泄漏凭据或其他敏感应用程序数据。针对 SSL连接,使用
WindowsIdentity Foundation和 HTTPS
相互身份验证。
· 请参见如何管理服务证书,了解有关将证书添加到存储、将证书与服务关联以及更新证书的信息。在这些情况下,我们假设
IT 管理人员和服务开发者是两个不同的人,但是他们也可能是同一个人。
· 请参见Windows
Identity Foundation,帮助开发者简化用户访问,方法是通过claim将用户访问从应用程序外部化,以及使用预先构建好的安全逻辑和集成 .NET工具减少开发工作量。
否认威胁
审计日志收集、存储和分析。根据需要使用监控和诊断 API,将日志通过 HTTPS传输到私有
Blob 存储/表存储。请参见:
· 在 Windows Azure 中控制日志记录和跟踪(来源于
MSDN 杂志)。
· Azure Monitor(可获得用于实时监控
Azure 托管的应用程序的代码)。它包含用于将运行时进程信息捕获到云表存储的库,还包含用于实时查看捕获的信息的桌面应用程序。
· 使用 Windows Azure Diagnostics(大约从该网页页面的三分之一开始)。Windows
Azure 提供集成的功能,用于在部署的环境中进行监控、记录和跟踪,这通常称为诊断。虽然这些功能也可以用于调试目的,但是它们最适合于监控应用程序性能随时间的变化。
信息泄漏威胁
泄漏 Blob/表/队列存储中的任意机密。在上传之前预加密机密数据。不要在
Windows Azure 存储中存储解密密钥。
泄漏共享访问签名。使用 HTTPS将共享访问签名安全地传输给期望的接收方并针对容器设置适当的权限。请参见管理
Blob 和容器的访问权限了解如何使用共享访问签名。
拒绝服务威胁
客户代码/应用程序级别的超大量请求。如有必要,实施应用程序级别请求限制。请参见自动伸缩和
Windows Azure。
权限提升
服务/应用程序设置配置错误。必须将所有 Cookie和
document.domain属性的范围设置为服务子域(例如 http://contoso.cloudapp.net),而不是 *.cloudapp.net
针对 Web role的跨站点请求伪造攻击。使用 ASP.NET防御。请参见利用
ASP.NET 的内置功能抵御 Web 攻击。
针对 Web role的跨站点脚本攻击。使用Anti-XSS
库。
针对 Web role所暴露的接口进行 API模糊攻击。对暴露给
Web(或任何其他服务)的、对于代码唯一的所有接口和端点进行模糊测试
使用安全测试工具,包括模糊测试工具。“模糊”给软件应用程序编程接口
(API) 和网络接口提供结构化但无效的输入,从而最大程度地提高检测可能导致软件漏洞的错误的可能性。
针对应用程序提供的自定义文件解析器进行文件模糊攻击。对所有专有网络协议或文件格式解析器进行模糊测试。
在 Web Role/客户代码级修补安全漏洞。制定安全响应和更新计划。
可以从Microsoft 安全开发生命周期 (SDL)网站获取用于协助进行模糊测试的工具。SDL包括各种免费工具和流程。例如,您可以使用:
· MiniFuzz 基本文件模糊测试工具是一款用于简化模糊测试部署的简单模糊测试工具。
· 正则表达式文件模糊测试工具是一款用于测试潜在拒绝服务漏洞的工具。
SQL Azure
我增加了这一节有关 SQL Azure的内容,因为该平台提供您应该知道的用于缓解威胁的其他方法。
SQL Azure
安全管理。SQL Azure 数据库中的安全管理与
SQL Server 的内部部署实例的安全管理类似。管理数据库级别的安全性基本相同,唯一不同的是可用的参数。由于 SQL Azure数据库可以扩展到一个或多个物理计算机,因此 SQL Azure数据库对服务器级别管理使用不同的策略。
SQL Azure
防火墙。您可以锁定数据库以仅向获得授权的用户或计算机提供访问权限。为了帮助保护您的数据,在您指定哪些计算机具有权限之前,SQL
Azure 防火墙会阻止对您的 SQL Azure服务器的所有访问。防火墙会基于每个请求的起源 IP地址授予访问权限。
资源
下一篇文章
Windows Azure 安全最佳实践 - 第 5 部分:基于Claims的标识,单点登录。用户标识是在您的应用程序中访问数据和业务流程的关键。在这一部分中,我将介绍如何将您的用户标识和用户角色从您的应用程序中分离出来,如何更轻松地创建单一登录应用程序。
以下是本系列中的文章的链接:
· Windows
Azure 安全最佳实践 - 第 1 部分:深度解析挑战防御对策。
· Windows
Azure 安全最佳实践 - 第 2 部分:Azure 提供哪些现成可用的安全机制。
· Windows
Azure 安全最佳实践 - 第 3 部分:确定安全框架。
· Windows
Azure 安全最佳实践 - 第 5 部分:基于Claims的标识,单点登录。
· Windows
Azure 安全最佳实践 - 第 6 部分:Azure 服务如何扩展应用程序安全性。
· Windows
Azure 安全最佳实践 - 第 7 部分:提示、工具和编码最佳实践。
本文翻译自:
Windows Azure 安全最佳实践 - 第 4 部分:需要采取的其他措施的更多相关文章
- Windows Azure 安全最佳实践 - 第 7 部分:提示、工具和编码最佳实践
在撰写这一系列文章的过程中,我总结出了很多最佳实践.在这篇文章中,我介绍了在保护您的WindowsAzure应用程序时需要考虑的更多事项. 下面是一些工具和编码提示与最佳实践: · 在操作系统上运行 ...
- Windows Azure 安全最佳实践 - 第 6 部分:Azure 服务如何扩展应用程序安全性
多种Windows Azure服务可以帮助您将应用程序安全性扩展到云. 有三种服务可提供多个提供程序之间的身份标识映射.内部部署数据中心间的连接和相互发送消息的应用程序功能(无论应用程序位于何处). ...
- Windows Azure 安全最佳实践 - 第 5 部分:基于Claim 的标识,单点登录
基于Claim的身份标识是处理网站与 Web 服务的身份认证和访问一种简单而强大的方式,无论您是在本地工作还是面向云工作.您可以通过减少自定义实施和使用基于Claim的单一简化标识模型,创建更安全的应 ...
- Windows Azure 安全最佳实践 - 第 3 部分:确定安全框架
构建云应用程序时,安全始终是计划和执行Windows Azure的首要核心因素.第 1 部分提出安全是一项共同责任,Windows Azure为您的应用程序提供超出内部部署应用程序需求的强大安全功能. ...
- Windows Azure 安全最佳实践 - 第 2 部分:Azure 提供哪些现成可用的安全机制
在WindowsAzure安全最佳实践 - 部分:深度解析挑战防御对策中,我介绍了威胁形势以及在您的应用程序中采用深度防御的计划. 在本部分中,我将说明 Windows Azure的安全是一项共同责任 ...
- Windows Azure 安全最佳实践 - 第 1 部分:深度解析挑战防御对策
我每次与开发人员讨论将应用程序迁移到云时都围绕着两个主要问题. 1. 首先是业务.将应用程序迁移到云可以带来怎样的规模经济? 2. 其次是安全问题."云的安全性如何,尤其是Windows A ...
- [转]Android开发最佳实践
——欢迎转载,请注明出处 http://blog.csdn.net/asce1885 ,未经本人同意请勿用于商业用途,谢谢—— 原文链接:https://github.com/futurice/and ...
- Windows Azure系列公开课 - 第二课:为什么选择Windows Azure(上)
Windows Azure是微软的云平台,可以提供广泛服务.您可以通过它搭建.部署并管理解决方案,用于实现您可以想象的几乎任何目标.换言之,WindowsAzure是拥有无限可能的世界.无论您是需要运 ...
- (转)iOS 最佳实践
本文转自http://www.jianshu.com/p/b0bf2368fb95 感谢作者和译者 iOS最佳实践 iOS最佳实践 译者注 本文翻译自 futurice 公司的 iOS Good Pr ...
随机推荐
- 误mlogc.c:32:23: error: curl/curl.h: No such file or directory
出现以下错误: mlogc.c:32:23: error: curl/curl.h: No such file or directory mlogc.c:1091: error: expected ' ...
- Linux下which、whereis、locate、find 区别
我们经常在linux要查找某个文件或命令,但不知道放在哪里了,可以使用下面的一些命令来搜索.which 查看可执行文件的位置 whereis 查看文件的位置 locate 配合 ...
- css 基础(一)
一.css样式表的分类 首先介绍一下css中的样式表 a.外部样式表 将需要的样式放在单独的外部文件中,需要使用是直接调用,通常放在.css文件中.例如:/*以下部分是放在(my.css)自定义名 ...
- iOS原生App与H5页面交互笔记
文/MikeZhangpy(简书作者)原文链接:http://www.jianshu.com/p/4ed3e5ed99c6著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 最近在做一个项 ...
- Android访问网络(可以正常使用)
以下是MainActiviy.java,有必要的注释,里面用到了handler,以及线程,workThread如何更新mainThread才能够更新的内容. package com.wyl.httpt ...
- oracle常用函数以及调用入参为record的存储过程的方法,
转自:http://www.cnblogs.com/zhangronghua/archive/2007/08/20/862812.html SQL中的单记录函数1.ASCII返回与指定的字符对应的十进 ...
- vim的漫漫长征路
在系统的学习vim之前,先在网上找了些教程大概了解下,因为首先我们要先将vim给用起来,然后在系统的学习过程中不断的充实自己对vim的理解. ----------------------------- ...
- django-extensions
命令行: admin后台管理扩展 后面会出现个放大镜实现搜索补齐功能. 交互式的 Python Shells(shell_plus) 实现自动导入 如果遇到apps中包含的的models名字出现冲突, ...
- STRUTS2获得session和request
在struts1中,获得到系统的request或者session对象非常方便,都是按照形参传递的,但是在struts2中,request和session都被隐藏了struts提供两种方式访问sessi ...
- 插件化-开启另外应用的activity
1.清单文件 android:sharedUserId="com.zyh.tplugin" 2.视图 <LinearLayout xmlns:android="ht ...