搜索
查看: 10487|回复: 5

网络安全工程师的兵法法则

[复制链接]

432

主题

573

帖子

2543

积分

核心成员

Rank: 8Rank: 8

积分
2543
发表于 2014-1-20 10:29:36 | 显示全部楼层 |阅读模式
0x01 白帽子兵法


       互联网的安全核心其实就是数据安全的问题。在一个互联网公司中拥有对资产进行等级划分,也就是对数据进行等级划分。有的公司最关注的就是客户的数据,也有的是自己本身的员工数据信息,因为各自的业务不同。IDC关系的就是客户的数据安全,客户的安全保障就是他们的公司保障,也是一个公司是否能赢得客户的信任。当这些数据规划好等级的时候,我们对那些数据重要就有个大概的了解,接下来就是划分信任域和边界了。将等级高重要的数据放在安全信任域中,其他的放在信任域以外。

0x02 危险分析

       当数据被按等级规划放置后,我们怎么样才能确定危险是来自哪里的?危险的来源我们称为是威胁,面临可能存在的损失我们说他是风险。许多白帽子都把这个搞混了。

       ·威胁分析不得不提出微软的STRIDE的模型。

       STRIDE=Spoofing + Tampering + Repudiation + InformationDisclosure + Denial of Servce + Elevation of Privilege

       伪装 + 篡改 + 赖皮 + 泄露 + 拒绝服务 + 提权 = STRIDE

1.      伪装:通过冒充他人的身份鱼目混珠。 对应的解决方法:加一个认证

2.      篡改:通过修改数据或代码。 对应的解决方法:修改代码的完整性

3.      赖皮:不承认自己做过的事情。对应的解决方法:不可抵赖策略

4.      泄露:信息秘密都泄露了思密达。 对应解决方法:加密

5.      拒绝服务:加强可用性

6.      提权:没有通过管理的许可获得许可。 解决方案:授权

       白帽子花费大量时间去完成安全方案,只看重了一点,导致黑客利用事先白帽子没有注意到的漏洞发起攻击,原因很简单,白帽子在确定攻击面的时候想的还不够全面。就像某个学校来领导突击检查,我们的学校把风景都做在前院子里,但是领导却是从后门进来的,导致事件败露。

0x03 危险分析

       危险分析也就是判断漏洞对系统造成的影响的危害大小,就好比360库带计划平台,漏洞类型他也有漏洞等级低、中、高。

再给大家介绍一个也是由微软提出来的DREAD模型,也是首字母缩写。

等   级







Damage Potential

获取完全的验证权限;执行管理员操作;非法上传任意文件

泄露敏感数据信息

泄露其他不是太重要的信息数据

Reproduciblility

黑客可以发起第二次攻击

黑客在特定时间内可以重复攻击

黑客很难发起二次攻击

Exploitability

黑客可以在短时间内掌握攻击方法

经验丰富的老黑客可以完成这次攻击

漏洞利用条件有阻碍

Affected users

所有的用户,默认配置

部分用户,不是默认配置

极少数的匿名用户

Discoverability

漏洞暴露的很显眼,攻击起来so easy

在特定区域内,有些人能看,需要深入挖洞

发现漏洞特难

在这个模型中,所有的因素都可以分成低中高三个等级。

就说打群架,你们在一个院子里躲着,敌人从大门进来直接打我们定义的危险度最高,而后门很小,他们进来对我们的威胁度不高,我们可以单放。高危就是他们从大门一起冲进来对打,低危就是从后门进来。因为后门小,对我们的威胁不大,而且后门也非常隐蔽。所以我们主要就是要做好前门的防御。

0x04 我们的兵法 – SBD原则

       SBD就是Secure By Default默认安全。

0x04x01 黑名单 白名单

       服务器上有网站产生的环境,应该限制软件随意安装,需要定制统一的软件版本,这个规定可以使用白名单的思想,就应该列出一个那个是允许那个是不允许的。就好比说我们服务器提供web服务,使用的80和21端口,我们就可以屏蔽其他没有用的端口。假如我们用黑名单,可能会出现问题,假如你是linux系统,黑名单设置的策略是不允许ssh端口对net开放,那么审计就要从ssh默认端口22开始,但是有的时候为了偷下懒,我们的管理员可能会改变下ssh的默认端口,从而绕过安全策略。

0x04x02 Flash跨域

       白名单的例子,Flash跨域请求访问,它是通过检查服务器上的crossdomain.xml文件来验证是否允许黑客发起flash的跨域请求。

http://www.hao123.com/crossdomain.xml



这样的就是它指定了只能从这几个域中的Flash发起请求。

<cross-domain-pokicy>

<allow-access-from domain=”*”> 这就允许所有的域都可以发起请求,明显不安全。

</cross-domain-pokicy>

0x04x03 SBD最低权限

       SBD还有一层意思就是最低权限。最低权限只给授予主体必要的权限,如果过度的授权,就会增加出错的平率。

       在Linux系统中,一般都是用普通号登陆的,在执行需要root的操作时,再通过sudo命令完成,这样能降低一些操作的风险,如果普通号被别人盗用时,与root账号被盗,两个完全是不一样的后果,你懂得。

0x05 数据代码分离原则

       缓冲区溢出也可以说是程序违背了数据代码分离原则所造成的后果,混淆了数据与代码的边界导致了严重的后果,在WEB安全中,由Injection引起的问题到处都是,比如xsssql注入、CRLF注入等等,也是如此。

       XSS:html注入和javascript注入所产生的XSS,如下面的页面

<html>

<haed>XSS injection</head>

$var

</body>

</html>

Psvar就是用户所能控制的一个变量,对于这个代码它的执行段就是

<html>

<haed>XSS injection</head>

</body>

</html>

$var就是程序的用户数据片段。

如果把这个片段来解释、执行就会引发安全问题。

假如$var的值是:<script src =http://bbs.lfssi.org></script>

这时,用户的数据就被注入到代码片段中,解析这个脚本并执行了,把<script>当做代码来解释了。

       根据数据代码的分离原则,这应该把用户的数据片段$var安全处理,比如过滤之类的,把可能造成代码混淆的数据都清除了,就是对<>做处理。

<html>

<haed>XSS injection</head>

<body>

<script>

Alert(“$var0”);

</script>

</body>

</html>

在这种情况下,<script>也变成了代码片段的一个部分,用户数据只能由$var0来控制了。

0x06 你不能预测的事

       我们广大的Windows系统用户常年生存在缓冲区溢出的痛苦中,因此微软公司在更新windows的时候增加了许多对抗缓冲区溢出的功能,但是微软他没法让在windows上运行的软件没有漏洞,所以说这个方法是失效的。通过实践来说,DEP保证堆栈不可能执行,使用ASLR让栈基址随机变化,从而使攻击程序无法准确地猜到内存地址,提高了攻击的障碍。微软的思路确实是有用的,即使无法恢复代码,如果有一种防御可以使攻击方法无效,那么才是正确成功有效的防御。

       假如我们的网站的文章序号,是按照数字的升降序来排的话,id=100,id=102……

如果说黑客要删除这些文章,只需要写个代码:

For (a=0;a<10000;a++){

       Deletel(url+”?id=”+a);

}

就可以很快就del了。

如果把这些id值变成你不能猜到的呢?

Id=bbslfssiorg,id=fuckbaiducom,id=fuckscanvcom …….

Id值变的你完全猜不到他是什么规律,黑客们再想删除文章,只能通过sitemap bug把所有的页面都抓取了,然后慢慢计算,作用呢有效的防止黑客有这个耐心去攻击。

您可以更新记录, 让好友们知道您在做什么...
专业回帖 该用户已被删除
发表于 2014-1-20 10:30:22 | 显示全部楼层
找到好贴不容易,我顶你了,谢了
专业回帖 该用户已被删除
发表于 2014-1-20 10:36:59 | 显示全部楼层
有竞争才有进步嘛

3

主题

16

帖子

34

积分

我是新手

Rank: 1

积分
34
发表于 2017-4-23 07:43:02 | 显示全部楼层
怎么收藏自己喜欢的帖子?问一下各位。
您需要登录后才可以回帖 登录 | Join BUC

本版积分规则

Powered by Discuz!

© 2012-2015 Baiker Union of China.

快速回复 返回顶部 返回列表