置顶

对软件攻击的_软件被攻击

作者:hacker | 分类:渗透破解 | 浏览:86 | 日期:2022年07月16日

文章目录:

网络中常见针对操作系统攻击方法有哪些?各有何特点

大致分为以下几种:

1.口令入侵

所谓口令入侵是指使用某些合法用户的帐号和口令登录到目的主机,然后再实施攻击活动。这种方法的前提是必须先得到该主机上的某个合法用户的帐号,然后再进行合法用户口令的破译。获得普通用户帐号的方法非常多,如

利用目标主机的Finger功能:当用Finger命令查询时,主机系统会将保存的用户资料(如用户名、登录时间等)显示在终端或计算机上;

利用目标主机的X.500服务:有些主机没有关闭X.500的目录查询服务,也给攻击者提供了获得信息的一条简易途径;

从电子邮件地址中收集:有些用户电子邮件地址常会透露其在目标主机上的帐号;

查看主机是否有习惯性的帐号:有经验的用户都知道,非常多系统会使用一些习惯性的帐号,造成帐号的泄露。

2.特洛伊木马

放置特洛伊木马程式能直接侵入用户的计算机并进行破坏,他常被伪装成工具程式或游戏等诱使用户打开带有特洛伊木马程式的邮件附件或从网上直接下载,一旦用户打开了这些邮件的附件或执行了这些程式之后,他们就会象古特洛伊人在敌人城外留下的藏满士兵的木马相同留在自己的计算机中,并在自己的计算机系统中隐藏一个能在windows启动时悄悄执行的程式。当你连接到因特网上时,这个程式就会通知攻击者,来报告你的IP地址及预先设定的端口。攻击者在收到这些信息后,再利用这个潜伏在其中的程式,就能任意地修改你的计算机的参数设定、复制文件、窥视你整个硬盘中的内容等,从而达到控制你的计算机的目的。

3.WWW欺骗

在网上用户能利用IE等浏览器进行各种各样的WEB站点的访问,如阅读新闻组、咨询产品价格、订阅报纸、电子商务等。然而一般的用户恐怕不会想到有这些问题存在:正在访问的网页已被黑客篡改过,网页上的信息是虚假的!例如黑客将用户要浏览的网页的URL改写为指向黑客自己的服务器,当用户浏览目标网页的时候,实际上是向黑客服务器发出请求,那么黑客就能达到欺骗的目的了。

一般Web欺骗使用两种技术手段,即URL地址重写技术和相关信关信息掩盖技术。利用URL地址,使这些地址都指向攻击者的Web服务器,即攻击者能将自已的Web地址加在所有URL地址的前面。这样,当用户和站点进行安全链接时,就会毫不防备地进入攻击者的服器,于是用记的所有信息便处于攻击者的监视之中。但由于浏览器材一般均设有地址栏和状态栏,当浏览器和某个站点边接时,能在地址栏和状态样中获得连接中的Web站点地址及其相关的传输信息,用户由此能发现问题,所以攻击者往往在URL地址重写的同时,利用相关信息排盖技术,即一般用JavaScript程式来重写地址样和状枋样,以达到其排盖欺骗的目的。

4.电子邮件

电子邮件是互连网上运用得十分广泛的一种通讯方式。攻击者能使用一些邮件炸弹软件或CGI程式向目的邮箱发送大量内容重复、无用的垃圾邮件,从而使目的邮箱被撑爆而无法使用。当垃圾邮件的发送流量特别大时,更有可能造成邮件系统对于正常的工作反映缓慢,甚至瘫痪。相对于其他的攻击手段来说,这种攻击方法具有简单、见效快等好处。

5.节点攻击

攻击者在突破一台主机后,往往以此主机作为根据地,攻击其他主机(以隐蔽其入侵路径,避免留下蛛丝马迹)。他们能使用网络监听方法,尝试攻破同一网络内的其他主机;也能通过IP欺骗和主机信任关系,攻击其他主机。

这类攻击非常狡猾,但由于某些技术非常难掌控,如TCP/IP欺骗攻击。攻击者通过外部计算机伪装成另一台合法机器来实现。他能磙坏两台机器间通信链路上的数据,其伪装的目的在于哄骗网络中的其他机器误将其攻击者作为合法机器加以接受,诱使其他机器向他发送据或允许他修改数据。TCP/IP欺骗能发生TCP/IP系统的所有层次上,包括数据链路层、网络层、运输层及应用层均容易受到影响。如果底层受到损害,则应用层的所有协议都将处于危险之中。另外由于用户本身不直接和底层相互相交流,因而对底层的攻击更具有欺骗性。

6.网络监听

网络监听是主机的一种工作模式,在这种模式下,主机能接收到本网段在同一条物理通道上传输的所有信息,而不管这些信息的发送方和接收方是谁。因为系统在进行密码校验时,用户输入的密码需要从用户端传送到服务器端,而攻击者就能在两端之间进行数据监听。此时若两台主机进行通信的信息没有加密,只要使用某些网络监听工具(如NetXRay for 视窗系统95/98/NT、Sniffit for Linux、Solaries等)就可轻而易举地截取包括口令和帐号在内的信息资料。虽然网络监听获得的用户帐号和口令具有一定的局限性,但监听者往往能够获得其所在网段的所有用户帐号及口令。

7.黑客软件

利用黑客软件攻击是互连网上比较多的一种攻击手法。Back Orifice2000、冰河等都是比较著名的特洛伊木马,他们能非法地取得用户计算机的终极用户级权利,能对其进行完全的控制,除了能进行文件操作外,同时也能进行对方桌面抓图、取得密码等操作。这些黑客软件分为服务器端和用户端,当黑客进行攻击时,会使用用户端程式登陆上已安装好服务器端程式的计算机,这些服务器端程式都比较小,一般会随附带于某些软件上。有可能当用户下载了一个小游戏并运行时,黑客软件的服务器端就安装完成了,而且大部分黑客软件的重生能力比较强,给用户进行清除造成一定的麻烦。特别是一种TXT文件欺骗手法,表面看上去是个TXT文本文件,但实际上却是个附带黑客程式的可执行程式,另外有些程式也会伪装成图片和其他格式的文件。

8.安全漏洞

许多系统都有这样那样的安全漏洞(Bugs)。其中一些是操作系统或应用软件本身具有的。如缓冲区溢出攻击。由于非常多系统在不检查程式和缓冲之间变化的情况,就任意接受任意长度的数据输入,把溢出的数据放在堆栈里,系统还照常执行命令。这样攻击者只要发送超出缓冲区所能处理的长度的指令,系统便进入不稳定状态。若攻击者特别设置一串准备用作攻击的字符,他甚至能访问根目录,从而拥有对整个网络的绝对控制权。另一些是利用协议漏洞进行攻击。如攻击者利用POP3一定要在根目录下运行的这一漏洞发动攻击,破坏的根目录,从而获得终极用户的权限。又如,ICMP协议也经常被用于发动拒绝服务攻击。他的具体手法就是向目的服务器发送大量的数据包,几乎占取该服务器所有的网络宽带,从而使其无法对正常的服务请求进行处理,而导致网站无法进入、网站响应速度大大降低或服务器瘫痪。常见的蠕虫病毒或和其同类的病毒都能对服务器进行拒绝服务攻击的进攻。他们的繁殖能力很强,一般通过Microsoft的 Outlook软件向众多邮箱发出带有病毒的邮件,而使邮件服务器无法承担如此庞大的数据处理量而瘫痪。对于个人上网用户而言,也有可能遭到大量数据包的攻击使其无法进行正常的网络操作。

9.端口扫描

所谓端口扫描,就是利用Socket编程和目标主机的某些端口建立TCP连接、进行传输协议的验证等,从而侦知目标主机的扫描端口是否是处于激活状态、主机提供了哪些服务、提供的服务中是否含有某些缺陷等等。常用的扫描方式有:Connect()扫描。Fragmentation扫描

关于APP攻击的问题 高手来看看

导致你这种现象的原因很多,下列几个方面也是这种现象产生的根源,你不妨按下面几个方面去仔细的完全、彻底的进行检查;你的问题不就解决了。★版权申明:本答案为和谐原创,任何人不得盗用!★1:检查电源 1.1用万用表检查电源是否稳定?1.2交流电压波动是否在允许范围内? 1.3A/D变换电源后的纹波系数(用毫伏表检查)是否合格?1.4电源的温升是否异常? 1.5稳压特性是否符合技术指标?1.6额定负载下稳压特性和纹波系数是否符合技术指标?1.7更换大的风扇时,你的电源容量是否满足要求?1.8一般辅助设备(路由器、网络交换机、猫等)的电源都是整流电源,没有稳压功能,纹波系数较大(可能是滤波电容干枯所致),负载能力也较差;应特别注意。1.9由于设备过电压(像给孩子喂食一样,多了能撑死)、低电压(像给孩子喂食一样,少了会营养不良)、电压波动过大(如同给孩子吃饭,饥一顿、饱一顿的不定量)、过电流、发热,导致过热保护动作切出故障并将设备退出运行(即:会产生慢、延迟、重复启动、延迟、掉线、中断、断线、自动关机、死机等显现像)等;1.10电源的过流保护和过热保护是否正确动作?动作是否灵敏?是否拒动或误动?2:检查网络线和水晶头(R45):2.1水晶头与座是否插好(松动吗)?2.2接触是否良好?接触电阻是多少?2.3是否有积灰?是否氧化?2.4水晶头与座机械闭锁是否已经闭锁?2.5闭锁是否牢固?2.6网络线与水晶头是否压紧并接触良好?2.7网络线的线间绝缘电阻(采用100V的摇表),应大于20兆欧。 ★版权申明:本答案为和谐原创,任何人不得盗用!★3:防雷、接地:接地主要是保障人身和设备的安全!雷击会烧网卡;严重时可引起火灾和人员伤亡事故!多点接地、重复接地、就近接地是原则;接地分为保护接地、屏蔽接地、工作接地等;静电是造成死机蓝屏的罪魁祸首!我用杂音计测试不接地时的杂音电压大于信号6000多倍,你不接地,这样高的杂音你设备能工作吗?接地是做IT的最基本的要求,模拟设备是这样,数字电路更是这样,来自各方面的干扰都可以通过接地予以消减或消除,外来干扰和本地、本机间布线的线间耦合都可以消减和消除,做好设备的接地屏蔽工作,很多干扰来自于屏蔽不好、接地不良,很多人都是只在软件上做工作,许多干扰都是由接地不良或没有接地所引起的,这种故障十分容易产生,也容易被很多人忽视,很多设备损坏与接地有直接关系,没有接地或接地不良都会导致码间干扰、误码、延迟、丢包、断续、掉线(断线、中断)、死机、卡、自动关机、反复启动、重复启动、频繁重启(或反复用连接)等现象。接地必须有两个以上的接地极,每个接地极之间最少间隔10米以上,接地极至机房的接地线不得有任何接头,分别用截面不小于25平方毫米的软铜线引入到机房的汇流排(中间不允许有任何接头),接地线与法拉第网对称连接以利于分流散流,与汇流排连接点要涂覆银粉导电膏,每个设备至汇流排(独立)的接地线截面不得小于4平方米多股软铜线,汇流排对每个接地极的接地电阻小于5欧姆(越小越好)。每年最少使用接地仪(2.5级以上的接地仪测量,且仪表在检验合格期范围内)检查两次以上。检查接地极时,严禁在雷雨天气下进行。严禁用自来水管和电力线的N零线作为接地使用;也就是独立的接地装置。每台设备的线独立的连接于机房的汇流排,严禁串接后再接汇流排。我可以很主观的说:无论你是个人用户还是大型机房的集体用户,你根本就没有接地(或接地不合格)。★版权申明:本答案为和谐原创,任何人不得盗用!★4:带宽:自运营商到用户的带宽十分重要,没有足够的带宽,就不能保证足够的数据流量;计算机上网就不可能流畅;上述所说的带宽是指全程的带宽,像高速公路上一样,有那么宽的带宽,全程不能有起伏现象;全程有一点起伏就会影响网络速度;用户有权要求运营商(用扫频仪测试)给予保障;5:信杂比:(信号与杂音之比,可以理解成信号的纯净度)较小时,有用的信号被嘈杂的杂散信号所掩盖没(特别是码元间的码间干扰),使收信之路不能在嘈杂的信号里正确提取到有用的信号,判断电路就无法对码元进行正确的判断,就会产生误码、严重的误码就是丢包,严重的丢包就是延迟产生的原因,严重的延迟就会就是掉线(会产生慢、延迟、重复启动、掉线、延迟、掉线、中断、断线、自动关机、死机等显现像等),使用杂音计或电平表测量杂音电平是否在允许范围内,或者用示波器观察是否存在杂散信号?是否在码间存在码间干扰?采取措施,予以消除。信杂比也要大于60dB以上。用扫频仪和示波器测试(观察)。这项指标是保障道路平坦无障碍。有那么宽的道路,还要全程无障碍。6:匹配:匹配包括电平皮配和阻抗匹配(用电平表及信号发生器测试)6.1电平匹配:接收信号不能太低,太低时,达不到接收之路需要的门槛电平幅度,设备不能正常工作;电平太高会使接收之路前置电路饱和或烧坏前置电路。接收电平在接收门槛附近波动,就会使计算机频繁重复的重启现象;因此,接收电平调整十分重要。运行中要经常使用电平表或示波器,监视、调整连接处的接收电平在合适的幅度范围内。根据说明书,用电平表监视调整。6.2:阻抗匹配:连接点必须做到阻抗相对的匹配,输入输出阻抗不匹配就会导致反射衰耗,信号再强也不能正常工作。7:优化网络结构 人们打开计算机上网就会产生垃圾如同吃饭,不收拾餐桌、不刷洗餐具、不清理灶具一样会产生计算机垃圾,计算机就会逐渐表现为慢、卡、延迟、重复启动、掉线等故障;因此,个人推荐使用一些小工具:比如超级兔子、优化大师、鲁大师或360等;养成下线前予以清理垃圾的好习惯。7.1:及时清除上网产生的垃圾碎片和IE缓存:只要你使用计算机就会产生垃圾,不及时清理,就会越积累越多,长时间不清理就会使运行C盘空间越来越小及杂乱无章,最后就逐渐的慢下来,直至死机;因此,定期整理运行C盘,可以保持计算机运行速度。

7.2:先让ADSL设备同步:把设备断电后重启。8:软件设置和配置 8.1:常用软件下载软件尽量到大的官方网站下载,做到3不装,非正规软件不装,P2P(占用资源)类软件不装,不常用软件不装.关掉所有不必要的网络连接和启动项,比如迅雷、 BT、驴子等;非运行的软件不要放在运行c盘里面;实时更新补丁。游戏软件要倒正规的大型网站下载,注意软件是否稳定,不成熟、不稳定的软件会导致慢、卡、死机等故障,特别是一些大众喜欢的游戏软件,一些网友对此反映很强烈,这样的软件特别注意或立即删除;下载软件时,要注意流氓软件借机插入危急计算机的安全,随时给予清除。有些游戏软件开始之后,游戏就会直接被T掉,上来之后会无限掉线、重启等故障。协议:网络中的协议也要与之匹配,不匹配也会造成设备一些故障。软件的冲突同样会造成延迟、卡、慢、死机、掉线、中断等问题的产生。8.2:杀毒软件和防火墙 至少一款有效正版的杀毒软件并经常升级病毒库:防火墙设置适当(不要过多、过高、过低),会造成一些网页打不开;病毒可使计算机变慢、死机、掉线、卡、重复启动和开关机故障。9:温度、湿度、温升 (开机后温度在逐渐升高)随着开机时间的延长,主设备及其辅助(猫、路由器、网络交换机等)设备的温度,就会逐渐的升高,如果不能快速散发出去,就会由延迟---慢---掉线----死机。9.1:湿度:下雨季节或多雨天及其高湿度地区,线路及器件间的绝缘降低,信号电平下跌,导致计算机码间干扰、误码、延迟、丢包、断续、掉线(短线或中断)、死机、自动关机、反复启动(重复连接)等现象、或不稳定工作。湿度加速氧化,导致传输中断。

9.2:温度(近期随着气温的逐渐升高,由温度引起的故障会逐渐增加):从开机始,温度在逐渐的升高,温升至一定时,就会稳定在这个数值,这个数值与环境温度之差不应该大于25度;由于计算机属于半导体器件,因此要求器件的实际温度不得高于85度;芯片温度接近80度时要采取措施降低猫、路由器、网络交换机和计算机设备工作环境温度。如果超出这个范围计算机就会产生码间干扰、误码、延迟、丢包、断续、掉线(断线或中断)、死机、自动关机、反复启动(频繁连接)等现象。9.3:温升(设备的实际温度与环境温度的差值叫做温升)小于25摄氏度 温度对设备的正常运行影响很大特别是网络交换机、路由器、计算机主板芯片、网卡等温升较大时,设备就会无法运行;特别是手提(也叫笔记本)计算机,由于设计优先考虑体积而致使温升的散热困难,最容易发生温升所导致的码间干扰、误码、延迟、丢包、断续、掉线(短线或中断)、死机、自动关机、反复启动(重复连接)等现象。措施如下:a:将设备(系指:哈勃、猫、路由器或者网络交换机、计算机等)置于对人较安全地方,首先断开电源,再打开设备的盒盖,利用空气对流加强与空气接触,进行自然散热;

b:给设备加装微型风扇,增大空气的对流,进行强制散热;

c:如果你是做IT的,我建议你:断开电源后,给设备的发热部件加装散热片。

d:设备断开电源后,用3毫米钻头在设备上下钻多多的孔,加强空气的对流量,改善散热条件;e:将设备至于通风干燥处,最好做个(市面上也有用于笔记本的)绝缘散热支架,把设备支起来,进行自然散热;f:计算机使用时间较长后,CPU与散热片之间的硅胶干枯时,CPU会严重的发热,会产生丢包、延迟、慢、重复启动、掉线、中断、断线、自动关机、死机等现像。重新涂覆硅胶,即可恢复正常使用。

g:及时清除上网产生的垃圾碎片和IE缓存:只要你使用计算机就会产生垃圾,不及时清理,就会越积累越多,长时间不清理就会使运行C盘空间越来越小及杂乱无章,最后就逐渐的慢下来,直至死机;因此,定期整理运行C盘,可以保持计算机运行速度。

h:先让ADSL设备同步:把设备断电后重启。经常上网的用户最多半年,要断电后打开设备的外壳(顺便检查设备内部连接是否良好,内存条是否松动,内存条与卡槽接触是否良好?各插件是否松动?插紧了没有?个连接点是否牢固并接触良好),清理设备里面的灰尘。十:布线:布线工艺以最小干扰为原则;要求布线整齐美观,强弱信号分开走,高低频信号分开走,布线不合理就会产生线间耦合、串扰所造成的干扰,线间不能互相缠绕,最好使用屏蔽(屏蔽层可靠且接地)线,这些寄生干扰会使计算机信杂比降低而无法识别有用的信号,使其产生码间干扰、误码、延迟、丢包、断续、掉线(短线或中断)、死机、自动关机、反复启动(重复连接)等现象。★版权申明:本答案为和谐原创,任何人不得盗用!★十一:主板的纽扣电池 电池容量不够或无电量,也会不能开机或产生其他故障。十二:ADSL用户:与电话线一起复用计算机信号,注意取机、挂机、振铃三种状态下对计算机的的影响;由于计算机与电话信号都在电话线上(复用)传输,两者之间必须提供一定的隔离度(大于60dB)、防卫度要大于60dbB越大越好),特别是一些非正规的话机会影响计算机的使用。十三:定时故障:设备在固定的时间出现故障时,要仔细周围及其传输路径之间是否有大的工厂或固定时间大的电气设备启动,电焊等启动设备。十四:win7速度慢的解决方法比较好的方法应该是这样:进入Windows7控制面板,找到并打开颜色管理。在打开的颜色管理对话框中,切换到高级选项卡,然后单击左下角的更改系统默认值。随后,系统将会再次弹出一个对话框颜色管理-系统默认值。在此对话框中同样切换到高级选项,然后取消系统默认勾选的使用Windows显示器校准?修改完毕后,保存设置退出。★版权申明:本答案为和谐原创,任何人不得盗用!★只要你仔细的按照上面所说的做到、并保持经常做到,一般(我计算机128M内存,CPU主频1.6G,ADSL/512Kbit的宽带,硬盘20G)的配置,玩中档游戏都相当的流畅;否则:配置再高的计算机,也一样会频发故障;关键看什么人用;素质高的人用,配置低一点,也一样流畅;素质低的人,配置再高,也故障频发;像人穿衣服(小品:好人和坏人中的陈佩斯:你给他再好的衣服,他都上不了档次!)一样,衣服不在档次高低,洁净利索就是好。有一句话叫:事在人为!别做:窝囊废!★版权申明:本答案为和谐原创,任何人不得盗用!★

别忘采纳我的答案-

三星手机被恶意软件攻击怎么解决

您可以使用腾讯手机管家进行清除。管家可以帮您检测到软件的恶意行为对软件攻击的,并引导您进行一次性阻止或卸载。操作方式如下:

1、打开腾讯手机管家对软件攻击的,进入【软件管理】页面对软件攻击的,点击进入【软件权限管理】

2、查看软件恶意行为。进入后即可按照【权限】或【软件】两种方式查看到各软件是否存在安全隐患,如图

3、处理恶意软件。在查看到哪些软件有恶意行为时,进入详情页面后,即可进行处理。如:点击【获取联系人】,即可查看到当前哪些软件在使用您的联系人信息,这时选择“禁止”即可一次性阻止它的恶意行为,而软件也可正常使用;如不想保留该软件,也可进入系统或管家的“软件管理”中进行删除。

4、同样,也可以按照【通话记录】、【手机位置】、【短信】等分类查看相应正在使用该权限的软件,并进行处理

5、另外,也可直接点击软件后面的信任按钮,将该软件添加为信任,那么管家将不会监控该软件的一切操作

6、最后,在权限管理的右上角,点击小齿轮,即可开启/关闭权限管理的总开关,并查看监控日志

避免三星手机被恶意软件攻击的方法:手机上尽量不要下载无用的软件,不要下载一些不是官方不正规的软件,定期对手机进行清理,避免恶意软件对手机造成不必要的损失。

如何攻破软件

如何攻破软件 James A.Whittaker 摘要 本文讨论一系列用于发现软件设计与开发中的缺陷的方法(所谓的“攻击”)。这些攻击 都是手工、探索性的测试方式,设计和执行都是动态的、几乎不需要额外开销。这些攻击是 经过对上百个真实的软件缺陷进行研究并且抽象出他们的成因和现象之后构造出来的。经过 佛罗里达理工学院软件测试方向的学员两个学期的细化分析,已经归纳了数十个旨在发现缺 陷的攻击策略。这些攻击策略被证明非常受用,已经发现了上百个额外的缺点——都是由这 些攻击策略直接导致的——在短时间内对产品几乎没有任何了解的情况下。本文介绍上述攻 击策略的一个子集并说明他们是如何在已发布产品中发现真实缺陷。 简介 是什么成就了一名优秀的测试人员?是什么样的天赋使他们对bug 如此敏感?这样的 能力是可以传授的吗? 这些问题就是本文的主旨。我相信优秀的测试人员更多是后天造就而不是先天生成的, 事实上,多年下来许多测试人员自己似乎积累了一个攻击策略的标准库。每当他们面临测试 难题时就会重组手头的攻击策略,从而总是能够发现缺陷。尽管这些攻击策略很少被记录下 来,它们确确实实在手工测试和测试传承中扮演着重要的角色。 通过对真实的测试人员和现实缺陷的研究,我们开始着手文档化这一财富。在本文中, 我们探索来自于该项工程的一部分成果。下一个挑战是对这些攻击施行自动化,找到有效使 用的具体策略。 攻击无异于以下三个大类:  输入/输出攻击  数据攻击  运算攻击 每个类型中都有特定类型的攻击,它们导致十分有趣的软件故障。在之后的部分我以具 体的缺陷为例介绍每个大类下的攻击类型。涉及到的bug 都来自于微软公司的产品。我认为 这不该被看作是一种反微软的行为。事实上,它作为软件行业霸主的事实使它自然而然地成 为了“众矢之的”。但不能就这样认为微软的产品相对于其他软件产商有更多的缺陷。本文 中提到的攻击策略几乎成功攻击过许多公司的软件产品,这些产品运行在你可以想到的任何 平台上。我的经验表明,不管开发人员开发的应用产品域是什么、使用的操作系统有什么差 异亦或是否发布源码,他们都在高频度地制造bugs。如果他们是web 开发人员,那就更不 用费心了,因为web 程序本身非常容易崩溃。 输入/输出攻击 针对输入/输出的攻击就是测试人员所说的“黑盒”测试,因为不需要任何有关内部数 据或计算的信息来支持测试执行。事实上,这是测试中最常见的一种,因为阅读源码不仅乏 味、费时,并且通常收益甚微,除非你知道自己到底在寻找什么类型的bug(我们将在接下 来的两部分内容里讨论什么是你应该试图寻找的)。 输入/输出攻击 单一输入攻击 迫使所有的报错信息出现 强制指定默认值 尝试所有可用的字符集 迫使输出区域大小改变 引发显示区域溢出 迫使屏幕刷新问题出现 输入值组合攻击 迫使无效输出出现 找出不能共存的输入值组合 输入序列攻击 迫使无效输出出现 多次重复同样的输入序列 单一输入攻击 这一类攻击是对使用单一输入(从变量输入的角度来说)的行为进行的检查。我们试图 发现在大部分数据都正常工作的情况下由一个单一的输入导致应用崩溃的情况。其实除了单 单从边界值上考虑以外还有很多别的方式来选择输入用例,特别是当你希望找到真正被开发 认可的bug,而不是仅仅作为未定义的需求而忽略掉。 首先给出一些看 似简单但不易施行的 建议: 确保所有的报错信息 都出现一遍。 不能使程序正常 地中止或结束的通常 就是所谓的bug。很多 报错信息仅仅是迫使程序停止来显示一条报错信息,然后接着执行下一条输入或者直到定时 器超时而已。但是,也有其他一些报错信息则是来自于被程序抛出和异常处理器被执行引发 的异常。异常处理器(或中央错误处理线程)因其指针突然改变而数据状态不产生相应变化, 通常会存在问题。异常处理器执行的瞬间,各种各样的数据问题接踵而至:文件未关闭、内 存未释放、数据未初始化。当控制重新回到主线程,很难判断错误处理器是在什么时刻被调 用,又会有怎样的遗留问题在等待粗心大意的开发人员:因为文件没有关闭导致打开文件失 败、在没有初始化前就开始使用数据。如果我们能确保在所有的报错信息都出现过之后系统 依然正常工作,那么也算是为用户省去了不少麻烦(更不用说我们的维护工程师了)。 图1 展示了我的学生在微软 Word 2000 中发现的一个有趣的bug,一条错误提示不知为 何连续出现了两次。这个bug 是在通过单一输入攻击错误处理线程的过程中发现的。 确保软件指定默认值。 开发人员通常不记得在用户输入越界或给参数设置不合理的值时指定默认的值。有时候 强制设立默认值意味着什么也不做——然而正因为想不到,这一举措甚至难倒了优秀的开发 人员。例如,在Word 2000 中,如下对话框中有一个选择框,当不对其做任何修改时再次打 开对话框,该控件将消失。对比左右图片中的对话框。你发现什么控件消失了吗? 有的时候指定默认值需要先改变值的当前设定,然后将其设定为一个不合理的值。这种 连续的转换保证了再转换成其他可用的值前是经过设置默认值。 尝试输入变量的所有可用的字符集。 有的输入问题很简单,特别是当你使用了类似$,%,#,引号等等字符时,这些字符在 许多编程语言中有特殊意义并且作为输入被读入时通常需要特殊处理。如果开发人员未考虑 这种情况,则这些输入可能导致程序的失败。 通过改变输入内容的多少引发输出区域的改变。 聚焦于输出本身是一种发现bug 颇有成效但是极少使用的方法。其思想是:先假定一种 表现为bug 的输出或者行为,然后寻找能够导致这种现场产生的输入。以上所述的一个简单 的攻击例子就是通过改变输入值和输入字符串的长度来引发输出区域大小的重新计算。 一个很好的概念性例子是将时钟的时间设置为9:59,然后等待它转到10:00。一开始显 示区域是4 个字符长度而后来是5。反过来,我们设定时间为12:59(5 个字符),然后等待 其转变为1:00(4 个字符)。开发人员通常只会对初始化为空白的情况进行处理而不曾考虑 到显示区域已有数据的情况下如何更新该区域以显示不同长度的数据。 举个例子,PowerPoint 中的“艺术字”功能中有个有趣的bug。假定我们输入下图中的 一个长的字符串。 可以发现因为字符串太长,并不是整个字符串都能显示出来。但这不是问题的关键。点 击确认按钮时触发两个事件。首先,程序计算出需要的输出区域大小,然后将输入的文字填 充进去。现在,我们编辑该字符串,将它改为单个字符。 可以发现尽管现在只有单个字符,字体大小也没有改变,但显示区域大小却没有发生改 变。进一步看。如果再次编辑该字符串为多行的字符串,输出结果更有意思。 我想这部分已经介绍得比较清楚了,我们将进入下一部分。 确保对显示区域的边界的检查。 这是基于输出的另一种攻击思路,与之前的十分类似。然而,不同于之前着力于导致显 示区域内部出错,这次我们将精力集中在显示区域的外部。并且显示区域将不再重新计算显 示边界而仅仅是考虑边界溢出。 再以PowerPoint 为例,我们可以先画一个文本框,然后输入一个带上标的字符串。放 大该字符串的字体使上标的上半部分被截断。这一问题将连同之后的相关问题一起说明。 引发屏幕刷新问题。 这是使用windows 图形用户界面的用户会遇到的主要问题。对开发人员来说,更是一 个大问题:过度的刷新将导致程序变慢,而不刷新又会导致大大小小的问题,小至要求用户 强制刷新,大到导致用户的操作失败。 通常通过在屏幕上添加、删除和移动元素来触发页面刷新。这将导致背景重新绘制,如 果页面不能正确、及时地作出相应,那么这就是通常意义上的bug。其中,尝试变化所移动 的元素的距离是一种较好的方式,可以移动一点点,接着移动一大截,移动一两次,接着移 动很多次。 接着说回上面例子中的带上标的字符串,试着每次用鼠标拖动它移动一些距离,就会发 现令人讨厌的问题,如下图所示。 在Office 2000 中 经常出现的另一个与 屏幕刷新相关的问题 是文本的异常消失。 这一讨厌的问题在 Word 的页面边界附近 出现。 输入值组合攻击 第二类输入/输出 bug 主要针对多个共 同作用或相互影响的输入。例如,一个通过两个参数调用的API,其中一个参数的取值建立 在另一个参数取值的基础上。通常,bug 正是出在值组合上,因为代码的逻辑关系复杂。 找出不能共存的输入值的组合。 那么哪些值的组合是有问题的?这个问题目前还处于积极研究中,但是我们已经找到了 一个特别有效地方法,那就是先确定期望获得的输出,然后试着去找到对应的输入值的组合。 尝试产生无效的输出。 这是一种适用于测试人员对问题域十分清楚的有效攻击方法。例如,当你在测试一个计 算器并且清楚部分功能点的结果有限制时,试图找到超出范围的结果所对应的输入值组合是 值得的。但是,如果你不熟悉数学,那么这种努力很可能是浪费时间——你甚至可能将一个 不正确的结果当成正确的。 有时候windows 本身会给出提示,告诉你哪些输入是相互关联的。此时,测试人员可 以去测试这些值的范围,并且尝试触犯既定的关系。 输入序列攻击 软件中的输入就像一种正式的语言。单一的输入相当于组成语言的字母,输入的字符串 类似构成语言的句子。其中一些句子应该通过控件和输入区域的启用与禁用被过滤。通过尽 可能多地输入字符串、改变输入的顺序来测试这种问题。 选择导致无效输出的输入序列。 和上文描述这是一种找到问题输入组合的好方法一样,这同样是找出有问题的输入序列 的好方法。例如,当我们发现了Office 2000 中的一个导致文本消失的问题后,对PowerPoint 幻灯片中标题文本框进行攻击。如下的一组屏幕截图再现了一个特定的输入序列是如何导致 文本消失的。 有趣的是仅仅将文本框旋转180 度并不能发现这个bug。必须按照这样的操作顺序:旋 转180 度后,再旋转10 度(或者更多)。逆向执行以上操作并不能修正这一问题,每当点击 标题外部区域,该标题内容就会消失。 改变输入的顺序之所以善于发现bug 是因为很多操作自身成功执行的同时会遗留很多 问题,它们将导致之后的操作失败。对输入序列进行彻底的检查会暴露出很多这样的问题。 然而有时候,下面这种攻击表明:为了发现bug,根本不需要使用多种多样的输入序列。 多次重复同样的输入序列。 这种方式会对资源造成大规模占用,并且对存储数据空间造成压力,当然也包括发现其 他负面的遗留问题。遗憾的是,大多数应用程序并不清楚自身空间和时间的限制,而许多开 发人员倾向于假定资源总是足够可用的。 在Word 的公式编辑器中可以找到这方面的一个例子,程序本身似乎并不清楚它只能处 理10 层嵌套括号的计算。 数据攻击 数据是软件的命脉;如果你设法破坏了它,那么程序将不得不使用被破坏的数据,这之 后得到的就不是合理的结果。所以理解数据是如何、在何处建立是必要的。 从本质上讲,数据的存储是通过读取输入,然后将其存储在内部或者存储一些内部计算 的结果来实现的。因此,测试正是通过提供输入和执行计算来实现数据在应用程序中的传递。 数据攻击遵循以下简单原则。 数据攻击 变量值攻击 1.存储不正确的数据类型 2.使数据值超过允许的范围 数据单元大小攻击 3.溢出输入缓冲区 4.存储过多的值 5.存储太少的值 数据访问攻击 6.找出同一数据的不同修改方式 变量值攻击 这一类的攻击需要对内部存储的数据对象的数据类型和合法值进行检查。如果有对源码 的权限则这些信息可以轻易得到,但是,通过小小的探索性测试和对错误信息的关注也可以 确定大致的类型信息。 改变输入的数据类型来找出不匹配的类型。 在需要整数的区域输入字符(和类似的攻击)已经被证明十分有效,但随着现代编程语 言对类型检查和类型转换的处理变得容易,我们发现这样的攻击相对之前已经不再那么有 效。 使数据值超过允许的范围。 被存储的变量数据和输入的变量数据一样,这样的攻击方式同样适用。 数据单元大小攻击 第二类数据攻击旨在触发数据结构的溢出和下溢。换句话说。攻击试图打破预先设定的 数据对象的大小限制。 首先要说的就是典型的缓冲区溢出。 溢出输入缓冲区。 此处通过输入长字符串导致输入缓冲区溢出。这是黑客们偏好的攻击方式,因为有时候 应用程序在崩溃之后会继续执行进程。若一名黑客将一段可执行代码附在一个长字符串中输 入,程序很可能执行这段代码。 在Word 2000 中的一个缓冲区溢出问题就是这样一个可被利用的bug。此bug 被发现在 查找/替换功能中,如下所示。有趣的是,“查找”这一字段被合理地加以限制而“替换”没 有。 同一数据结构 存储过多的值。 复杂地数 据结构诸如数 组、矩阵和列表 在测试中不仅 仅要考虑存储 在其中的数值, 还要考虑存储 值的数目。 同一数据结构 存储过少的值。 当数据结 构允许增加和 删除信息时,通 常在做了n-1 次增加的同时穿插着或在其之后做n 次删除操作会导致攻击成功。 数据访问攻击 我的朋友Alan Jorgensen 喜欢用“右手不明左手所为”这句话来形容这一类bug。道理 很简单,但开发人员却常倒在这一类攻击下:在很多程序中通常任何任务都能通过多种途径 完成。对测试人员来说,这意味着同一个函数可以由多个入口来调用,这些入口都必须确保 该函数的初始条件得到满足。 一个极好的例子是我的学生在PowerPoint 中发现的表格数据大小相关的崩溃性bug。创 建表格时最大尺寸被限定为25×25。然而,可以创建一个25×25 的表格,然后为其添加行 和列——导致应用程序崩溃。这就是说,程序一方面不允许26×26 的表格存在而另一方面 却并不清楚这个规则的存在。 运算攻击 运算攻击 操作数攻击 使用非法操作数进行运算 找出非法操作数组合 结果攻击 使运算结果过大 使运算结果过小 功能相互作用攻击 找出共享数据不佳的功能 操作数攻击 这类攻击需要知道在一个或更多内部运算中操作数的数据类型和可用的值。如果有源码 权限则这些信息可以轻易获得。否则,测试人员必须尽最大努力去弄清楚正在进行的运算具 体是什么、使用的是什么数据类型。 触发由非法操作数引起的运算。 有时候输入或存储的数据处于合法的范围之中,但是在某些运算类型中却是非法的。被 0 除就是一个很好的例子。0 是一个合法的整数,但作为除法运算的除数却是非法的。 找出不能共存的操作数的组合。 涉及到一个以上操作数的运算不仅受制于上面的攻击,同时存在操作数冲突的可能性。 结果攻击 第二类运算攻击旨在造成存储运算结果的数据对象的溢出和下溢。 试图造成运算结果过大而存储失败。 就算是简单如y=x+1 这样的运算在数值边界上也常出问题。如果x 和y 都是2 比特的 整数并且x 的值为32768,则这一运算将失败,因为结果将会造成存储溢出。 试图造成运算结果过小而存储失败。 和上文相同,不同的是使用y=x-1 并且使x 的值为-32767。 功能相互作用攻击 文章中讨论的这最后一类攻击或许算是所有种类的鼻祖,可以用来区分测试菜鸟和专业 人员:功能的相互作用。问题没有什么新意:不同的应用程序功能共享同一数据空间。两种 功能的相互作用导致应用程序失败,不是因为对数据处理的设定不同,就是因为产生了不良 副作用。 但是哪些功能共享数据并且能够在冲突情况下实现数据转化目前还是测试领域中一个 开放的问题。目前我们正停留在不断地尝试阶段。下面这个例子足以说明情况。 这个例子给出了在Word 2000 中的同一页面上合并脚注和双列时出现的一个出人意料 的结果。问题在于:Word 从注释的引用点计算脚注的页面宽度。所以,若同一页面上存在 两条脚注,一条被处于双列位置的内容所引用,另一条则被处于单列位置的内容所引用,单 列脚注会将双列脚注挤到下一页面。同时被挤掉的还有引用点至页面底部间的文本。 下面的屏幕 截图形象地 说明了问题。 第二列的文 本 去 哪 里 了?连同脚 注一起处在 下一页。你会 任由文档像 这 样 显 示 吗?在找到解决方法(这意味着你得花时间去整理)前你将不得不忍受这一现状。 结论 简单遍历一遍上面罗列的21种攻击策略可以覆盖应用程序的大部分功能。事实上,施行 一次成功的攻击通常意味着尝试各种可能性,走过很多死胡同。但是仅仅因为部分这一类探 索性方法发现不了bug并不意味着它们没有用。首先,这段时间使用应用程序帮助测试人员 熟悉程序的各种功能,从而产生新的攻击思路。其次,测试通过是好的消息!它们表明,产 品是可靠的:尤其当这组测试是上面所说的恶意攻击。如果代码可以承受这样的测试过程, 它几乎可以应对用户作出的任何操作。 另外,永远不要低估了测试时怀揣一个具体目标的作用。我见过太多测试人员把时间浪 费在毫无目的地输入或者随机地调用API试图导致软件出错。实行测试意味着制定明确的目 标——基于会出错的点——然后设计测试用例来实践该目标。这样,每个测试用例都有目的 性并且进度可以被随时控制。 最后,记住,测试应该是有趣的。攻击这一比喻正是对测试的这一特性很好的诠释并且 还为愉快的消遣时光添加了些许作料。狩猎愉快!

发表评论

访客 游客 2022-07-17 · 回复该评论
67。 功能相互作用攻击 文章中讨论的这最后一类攻击或许算是所有种类的鼻祖,可以用来区分测试菜鸟和专业 人员:功能的相互作用。问题没有什么新意:不同的应用程序功能共享同一数据空间。两种 功能的相互作用导致应用程序失败,不是

访客 游客 2022-07-17 · 回复该评论
食一样,多了能撑死)、低电压(像给孩子喂食一样,少了会营养不良)、电压波动过大(如同给孩子吃饭,饥一顿、饱一顿的不定量)、过电流、发热,导致过热保护动作切出故障并将设备退出运行(即:会产生慢、延迟、重复启动、延迟、掉线、

取消
微信二维码
支付宝二维码