软件安全实验.docx
《软件安全实验.docx》由会员分享,可在线阅读,更多相关《软件安全实验.docx(26页珍藏版)》请在冰点文库上搜索。
软件安全实验
电占询拔丈曹
软件工程专业类课程
课程名称:
软件安全技术
学院:
信息与软件工程学院
专业:
软件技术
学生姓名及学号:
杨川疆2011222010018
指导教师:
郭建东
评分:
日期:
2014年12月26日
电子科技大学
实验报告
一、实验名称:
TAM2应用试验
二、实验时间和地点
2014年12月6日;4学时;实验楼303
三、实验目的
掌握利用该
了解微软公司TAM2.0的主要功能,初步掌握其基本使用技术,软件进行软件安全分析的方法,掌握软件安全系统分析的基本内容。
四、实验设备与环境
1)基本环境要求
计算机实验室,40台以上计算机
2)最低设备要求
硬盘:
10G以上;
内存:
512M以上;
CPUINTEL,讯驰或酷睿平台
3)系统平台要求
WINDOWSX以上。
4)软件、硬件及相应工具要求
TAM2.0以上版本。
五、实验内容及要求
1)实验基础(必要的基础知识)
TAM的全称是MicrosoftApplicationSecurityThreatAnalysis&
Modeling(威胁分析与建模),其主要功能是识别威胁,并针对所定义的系统,定义安全策略。
利用TAM生成安全模型包括三个步骤的过程。
首先,定义应用程序的环境。
其次,在应用程序的顶层环境中建模。
第三,衡量与每个危险伴随的风险。
当完成上述三个步骤后,通过TAM的分析,可视化和报告,形成系统的安全威胁模型。
TAM能够基于用户提供的已知的知识,自动生成潜在的威胁报告。
同样的,TAM也能够通过用户提供的知识,通过访问控制矩阵,数据流图和信任流图等构建安全的产品,并给出用户化的报告。
目前为止,TAM仍然是一个发展中的软件,但是其主要的理念,体现了当前软件安全研究中的重要概念。
2)实验注意事项
要求实验中,对系统的需求和架构建立尽量完整,这样有利于得到更多的结论。
六、实验步骤
1)安装TAMv2・1・2,并熟悉其界面,主要过程如下:
图5-1,同意该软件用户协议,下一步;
丄+MicrosoftThreatAnalysisandModellingv2A
LicenseAgreement
Pleaselakeamomenttoreadthelicenseagreementnow.Ilfyouacceptthetermsbelow,click"IAgree'then"Next11.Otherwiseclick''CanceP.
Imicrosoftsoftwareucenseterms
MICROSOFTTHREATANALYSISANDMODELING
These(licensetermsareanagreementbetweenMicrosoftCorporation(orbasedonwhereyoulive,oneofitsaffiliates)andyou.Pleasereadthem.Theyapolvtothesoftv^arenamedabove,whichincludesthemediaonwhich
IDoNotAgreeoIAgree
Cancel
图5-1
图5-2,选择安装路径,下一步;
Foldei:
|p|:
\FrogrFil«£\Hicrosofttorporation\MicrosoftThreat
Cancel
图5-2
图5-3,正在安装,下一步;
MicrosoftThieaitAnalysisandModelingv2.1isbeinginstalled
Please⑷mil..
图5-3
图5-4
2)定义软件需求
此次我用于威胁建模的软件是在线图书管理系统,在此将图书借阅管理
系统定义为在学校范围内使用的管理系统,因此涉及到的使用者是学生、教师及超级管理员,并不包括社会人员。
在线图书借阅管理系统是为了使学生与教师能够通过自助而非人工等待图书管理员的帮助的方式完成借阅图书等事宜,大大的提高了借阅图书的效率,减轻了图书管理员的负担。
定义业务目标
业务目标包括两方面:
图书管理信息化,如图5-5,图书借阅自主化,
如图5-6。
在线圈书管理敘融建模>Olieehv®>圉书管理信息化
BusinessObjective
*Nsme:
丽管理信息花
JJescripti
on:
I将囹书与读者的if息癡忻;便于毎管断
图5-5
BusinessObjective
+:
[B书借阅自爾化
Uescripti
on:
韓欝歸蠡疇驟蠱幽SW隔欝借阅图书的般:
图5-6
定义数据
数据有:
借阅者信息,如图5-7;超级管理员信息,如图5-8;图书信息,如图5-9;预定图书信息,如图5-10;借阅信息,如图5-11;网页表单,如图5-12。
详细信息如下。
在线團书管理裁咸鮭複>Data,借阅者信息
tName:
|借阅者信息
Usscripti
on:
[借阅者信息是一些基本的信息
U^ta
Elements:
[姓茗、柱别;出生毎月;身份证昌;序号H昔闻亲号
Fl^di-umBusiiiessImpact
Ace&ssControl
Role
Cre也te
Read
Update
DeleteCondition
普通借阅者
F厂
|7
17
厂
$
超级管理员
17
17
EH
米
z\厂
厂
r
厂
在察圉书管理裁融建模>Ddta,超细管理员信宜
*W卯色:
超羽管理
JJescrxptiL
on:
超级管理员的一些基本信息
Data
ElevnentE:
I姓宅、性别、出生年可、身份证号
DataClassi£ic^tion:
|KighBusinessImpact
AcceEEControl
Role
CreateRe&dUpdate|DeleteConditio史
超级管理员D
P1717p
*
厂厂厂厂
图5-8
N则豆:
I圉蘇息
Descript1on:
I包括圈书的一些基本駆
data
Eluents:
|图书名称;图书芬类;応咏出版社「出版曰期「其祂信息、
图5-9
在线圏书管理裁朋建靈>WO-预定图书信息
+Mme:
预定囹书信息
Descripti
on:
Uata
ElfementE:
图书ID>借阅者页v锁定日期
D^t电Classificallon^
MediumBusiness鲨亡t
-Access
Contrcl-
Rnla
Cr«4tA
R«ad
Update
I41et4C^ndition
►
晋通借阅者D
I;
P
17
P
来
r
厂
r
r
图5-10
在线圉书置理系绫咸關建桎>Data>借阴信皇
*Kama*
[借阅信息
JJescripti
on:
Data
Eleiments:
借阅者如借湎百翱
DataClassi£ication.:
|MediujftBusinessImpact
AccessControl
图5-11
在线图书管理系翔吹模■Date■网页克单
+Kame:
网页表单
Uescripti
on:
I用于向册务器发送信息I
JJAti
Elements:
3
AccessCentral
应用用例有:
登录用例、修改密码用例、查询图书用例、超时处理用例、续借图书用例、借阅图书用例、预定图书用例、归还图书用例、添加有效用户、删除有效用户、编辑图书信息用例、编辑用户信息用例等。
生成用例
图5-13为普通借阅者与超级管理员共同的操作。
TheAuthenticaflonModul
User
«extends
图5-13
图5-14为普通借阅者的用例
图5-14
图5-15为超级管理员的用例
Login
Mo(1ifyBookFsInfo
ModifyUser'sInfo
DeleteExpiredUser
图5-15
3)定义程序架构
定义部件
部件有数据库、借阅图书、预定图书、归还图书、查询图书、续借图
书、超期处理、登录组件、添加用户、删除用户、编辑用户信息与编辑图
书信息,部件详细信息如图5-16:
Comipooeiiits
Name
Roles
Type
TediBTvpe
RunAs
谡纹兰理员
Database
SQLServer3005
壬逋墜.C老
UserControl
C/C++
壬遽蔭£老
UserControl
C/C++
UserControl
C/C++
査戈爼辛
岡詁
UserControl
C/C++
至遵告.岂老
UserControl
C/C++
UserControl
C/C++
电迓甘去员
SSW员
湛宕爼书启息
超级岂去员
N辑用户
6S*3员
图5-16
定义服务角色
服务角色分别为网站与数据库。
定义外部依赖
本软件定义中无外部依赖。
生成调用
登录用例调用如下图
Application
CaW»
Caller
Adton
Component
Authorization
誉1轻证
DelegateCaAer
通过验证.
图5-17
修改密码调用:
图5-18
查询图书调用:
Calk
Caller
Action
Component
Authorizatton
音适电£者
CtAti-
查询图书
晋通暗阅者
图5-19
超时处理调用:
gfr^ia爭週曙死者ru儈底僅息
Calk
Caller
Action
Cortvoflent
Aurtinori^tion
菩适书月奢
3^s
Dei&gafeCaller
图5-20
续借图书调用:
RU厝
图5-21
借阅图书调用:
”圈书
Cals
Caller
Action
Compocient
AuthcriiaticMii
督阅国叫
借阅囹书
图5-22
预定图书调用:
图5-23
归还图书调用:
Calk
Caller
Acbon
Ctsmponent
Autharlzabon
归瓷
归超毋气
D*XM«Ciller
图5-24
添加有效用户调用:
诵加
刪除用户
■
逕级官理员
删除用户
_>
吕茹耳證用A
图5-26
编辑图书信息调用:
图5-25
删除有效用户调用:
超级菅理员
励呷户
超瓯著理总
编辑圏书信息
遛级官理贡
编辑图书信息
Cafe
Calls
Acbon
亡opponent
AulhoriZAGon
理氓普迂金
潘士
CRD?
■?
.
Calls
AEtiMI
Component:
AuthDriratiori?
谢瞎卑户
別瞎竜a
»«g亦Cfel«r
RD?
.<*'=卞
CRUD^^=.?
Cats.
Caller
Acton
Component
Aulhorizabon
医H国气忧豐
Ctllir
图5-27
CRU□F武亡玉岂
编辑用户信息调用:
图5-28
4)建立威胁模型
产生威胁
通过Tools工具栏的GenerateThreats选项生成威胁模型,如图5-41,
5-42。
①ThreatAnalysisandModelingTool-C:
\IJ5eirs\AdministratorXDesktopXOnlinelibraryManagementSystemThreatModeLatmx*^
FileEditThreatModelAnailyti匸!
aVisualizationsReportsToolsHelp
图5-29
WhenycmGen电fait电Threat^theThreatAnalysisudModelingToolsystematicallycorruptstheallowableactions(definedcells)ofyour^pplic^tion-
GenerateThreats
GGenerate七hreatsbasedonallofyourc&lls_
广Generatethreatsbas«:
doncallsthatonlylnvolv^&auserrole.
「Generatsthreatsbasedoncallsthatonlyinvolwaservicerole^
Ymic&nehoos«to«ith«rrefreshyourtbruitsoraidnewthreatstothos^alreadylisted,Wlienyou.geiLerate:
threats^youhavethefollowingoptions:
OverwriteorAppendThreats
厂Deleteanyexistingthreatsandreplacethemwithanyand&11newlygeneratedthreats.
._.Addnewlygeneratedthreatstothosegen-ftratedpreviously.
OK
广IntelligentAppend~Add.,threatsgen*ratftdfarn.«wcallstoth。
雪电generalftdpreviously.
CMLeel
图5-30
主要威胁因素分析
主要的威胁因素有:
缓冲区溢出、规范化、跨站点脚本、密码分析攻击、拒绝服务、重播攻击、整数上溢或下溢、LDAP注入、中间人攻击、网络窃听、点击式攻击、密码强力攻击、会话劫持、SQL注入、XML注入。
报名性威胁
自动生成的威胁如下图:
图5-31
完整性威胁
如下图:
图5-32
可用性威胁
如下图:
图5-33
5)威胁衡量
我们通过TAM2得到了在线图书管理系统的威胁列表,但是解决所有的威胁也许是不可行的,因此我们可以选择那些可能会造成较大损失的威胁来解决,而忽略掉可能性小的。
所以我们需要对威胁进行衡量,危险=发生的概率X潜在的损失,该公式表明,特定威胁造成的危险等于威胁发生的概率乘以潜在的损失,这表明了如果攻击发生将会对系统造成的后果。
我们可以通过DREAD威胁评价表来帮助我们衡量威胁,如下表:
评价
高(3)
中
(2)
低
(1)
D
潜在的损失
攻击者可以暗中破坏安全系统,获取完全信任的授权,以管理员的身份运行程序,上传内容。
泄漏敏感信息
泄露价值不高的信息
R
重现性
攻击每次可以重现,而且不需要时间间隔。
攻击每次可以重现,但只在一个时间间隔和一种特定的竞争条件下才能进行。
攻击很难重现,即使很了解安全漏洞。
E
可利用性
编程新手在短时间内就可以进行这类攻击。
熟练编程人员可以进行这类攻击,然后重复进行这些步骤。
这类攻击需要非常老练的人员才能进行,并对每次攻击都有深入的了解。
A
受影响的用户
所有的用户,默认配置,主要客户
一些用户,非默认
配置
极少的用户,特点不明确,影
响匿名用户
D
可发现性
公开解释攻击的信息。
可以在最常用功能中找到的缺陷,非常明显。
产品中很少使用部分的缺陷,只有少量的用户可能遇到。
判断是否是恶意使用需要花费一些心机。
错误不明显,用户不可能引起
潜在的损失
表5-1
询问完上述问题后,计算给定威胁的值(1-3)。
结果范围为5-15。
这样您就可以将总分12-15的威胁评价为高度危险,8-11的威胁评价为中度危险,5-7的威胁评价为低度危险。
F面对我们的威胁列表进行威胁评价。
如下表:
威胁
D
R
E
A
D
总计
得分
缓冲区溢岀
1
2
2
1
2
8
中
规范化
1
1
3
2
1
8
中
跨站点脚本
3
3
2
3
3
14
高
密码分析攻击
3
2
1
3
1
10
中
拒绝服务
2
2
3
3
3
13
高
强迫浏览
2
1
2
2
2
9
中
格式字符串
1
1
1
1
1
1
低
重播攻击
2
3
2
3
2
12
高
整数溢岀或下溢
1
2
3
1
1
8
中
LDAP注入
2
3
2
3
2
12
高
中间人攻击
3
3
2
2
2
12
高
点击式攻击
2
3
2
1
3
11
中
网络窃听
3
3
2
2
2
12
高
密码强力攻击
3
2
2
3
2
12
高
会话劫持
2
2
2
3
3
12
高
SQL注入
3
3
3
3
2
14
高
XML注入
3
2
3
2
3
10
中
表5-2
七、实验结果
通过完善在线图书管理系统的相关信息,我们得到了该系统的威胁模型,了解到该系统的漏洞与可能面临的危险,在建模过程的现阶段,已经有了应用到特定应用程序方案的威胁列表。
在建模过程的最后阶段,要根据威胁造成的危险对其进行评价。
这样我们就能够首先解决危险最大的威胁,然后再解决其他的威胁。
实际上,解决所有找出的威胁也许在经济上是不可行的,所以我们可以进行决策忽略掉一些,因为它们发生的机会很小。
即使发生,带来的损失很小。
八、实验结论、心得体会和改进建议
此外通过此次试验,我们了解微软公司TAM2.0的主要功能,初步掌握了其基本使用技术,掌握了利用该软件进行软件安全分析的方法,掌握软件安全系统分析的基本内容。
同时,我们了解到威胁建模是一个不断重复的过程。
威胁模型是一种发展的文档,并且各种不同的小组成员都可以参与。