时间:2022-06-17 22:37:23
绪论:在寻找写作灵感吗?爱发表网为您精选了8篇软件安全论文,愿这些内容能够启迪您的思维,激发您的创作热情,欢迎您的阅读与分享!
接连不断的蠕虫病毒使当前安全技术和措施的有效性再次受到质疑。尽管安全是世界上所有机构的头等大事之一,安全攻击事件的数量仍然是逐年攀升,造成的危害一次比一次大。在最近的数年中,大量的投资被用于阻击安全事件的发生,但只有少数公司确保了它们网络的安全。
特别值得一提的是,为了满足用户和业务的需求,时刻保持竞争优势,企业不得不持续扩张网络体系。然而,很多人可能不知道,网络的每一次扩张,即便是一台新计算机、一台新服务器以及软件应用平台,都将给病毒、蠕虫、黑客留下可乘之机,为企业网络带来额外的安全风险。同时,纯病毒时代已经一去不复返,几年前占据着新闻头条的计算机病毒事件在今天看来已经不是什么新闻,取而代之的是破坏程度呈几何增长的新型病毒。这种新型病毒被称为混合型病毒,这种新病毒结合了传统电子邮件病毒的破坏性和新型的基于网络的能力,能够快速寻找和发现整个企业网络内存在的安全漏洞,并进行进一步的破坏,如拒绝服务攻击,拖垮服务器,攻击计算机或系统的薄弱环节。在这种混合型病毒时代,单一的依靠软件安全防护已开始不能满足客户的需求。
网络安全不只是软件厂商的事
今年上半年,网络安全软件及服务厂商——趋势科技与网络业界领导厂商——思科系统公司在北京共同宣布签署了为企业提供综合性病毒和蠕虫爆发防御解决方案的合作协议。该协议进一步扩展了双方此前针对思科网络准入控制(NAC)计划建立的合作关系,并将实现思科网络基础设施及安全解决方案与趋势科技防病毒技术、漏洞评估和病毒爆发防御能力的结合。
根据合作协议,思科首先将在思科IOS路由器、思科Catalyst交换机和思科安全设备中采用的思科入侵检测系统(IDS)软件中添加趋势科技的网络蠕虫和病毒识别码技术。此举将为用户提供高级的网络病毒智能识别功能和附加的实时威胁防御层,以抵御各种已知和未知的网络蠕虫的攻击。
“在抵御网络蠕虫、防止再感染、漏洞和系统破坏的过程中,用户不断遭受业务中断的损失,这导致了对更成熟的威胁防御方案需求的增长。”趋势科技创始人兼首席执行官张明正评论说,“传统的方法已无法满足双方客户的需求。”
“现在的网络安全已不是单一的软件防护,而是扩充到整个网络的防治。”思科全球副总裁杜家滨在接受记者采访时表示:“路由器和交换机应该是保护整个网络安全的,如果它不安全,那它就不是路由器。从PC集成上来看,网络设备应该能自我保护,甚至实现对整个网络安全的保护。”
业界专家指出,防病毒与网络基础设施结合,甚至融入到网络基础架构中,这是网络安全的发展潮流,趋势科技和思科此次合作引领了这一变革,迈出了安全发展史上里程碑式的重要一步。
“软”+“硬”=一步好棋
如果细细品味这次合作的话,我们不难发现这是双方的一步好棋,两家公司都需要此次合作。
作为网络领域的全球领导者,思科一直致力于推动网络安全的发展并独具优势。自防御网络(Self-DefendingNetwork,SDN)计划是思科于今年3月推出的全新的安全计划,它能大大提高网络发现、预防和对抗安全威胁的能力。思科网络准入控制(NAC)计划则是SDN计划的重要组成部分,它和思科的其他安全技术一起构成了SDN的全部内涵。
SDN是一个比较全面、系统的计划,但是它缺乏有效的病毒防护功能。随着网络病毒的日见猖獗,该计划防毒功能的欠缺日益凸显。趋势科技领先的防毒安全解决方案正是思科安全体系所亟需的。
趋势科技作为网络安全软件及服务厂商,以卓越的前瞻和技术革新能力引领了从桌面防毒到网络服务器和网关防毒的潮流。趋势科技的主动防御的解决方案是防毒领域的一大创新,其核心是企业安全防护战略(EPS)。EPS一反过去被动地以防毒软件守护的方式,将主动预防和灾后重建的两大阶段纳入整个防卫计划当中,并将企业安全防护策略延伸至网络的各个层次。
“如果此次与思科合作的不是趋势科技,我们恐怕连觉都睡不好。”张明正的戏言无不透露出趋势科技对此次合作的迫切性和重要性。
更让张明正高兴的是,通过此次合作,趋势科技大大扩充了渠道。“我们的渠道重叠性很小。”张明正表示。而此次“1+1<2”的低成本产品集成将使这次合作发挥更大的空间。
网络安全路在何方?
如今,虽然业界有形形的安全解决方案,网络安全的形势却不断恶化。究其原因,主要是由于现在的网络威胁形式越来越多,攻击手段越来越复杂,呈现出综合的多元化的特征。
(一)计算机软件设施的安全问题
计算机软件是计算机运行系统中有关程序和文档的总称,属于计算机硬件设备的控制中心,可以满足人们的各种实际需求。计算机安全从软件方面来书,软件开发部门开发的软件既要满足用于的各种需求,也要有效降低开发成本,更要避免其他软件开发剽窃或者复制软件,最大程度的保护自己的知识产权。而用户也要求功能齐全、实用性好、保密性好、具有高性价比的软件,尤其是软件的安全性能,因此计算机软件安全指的是软件不易被剽窃和软件自身的安全性。
(二)计算机网络信息安全问题
计算机用户缺乏网络安全意识和信息保密意识,同时计算机网络系统还不够完善,有一定的安全漏洞,这是引起网络风险的一个主要因素,比如,Windows系统自身存在着一定的问题、软件自身携带的插件等,这些存在着一定的安全隐患,为不法分子提供了机会,有些黑客会侵入计算机的安全系统,甚至导致数据丢失或者系统的瘫痪。此外,计算机病毒入侵也对计算机网络安全产生威胁。因为病毒具有很快的传播速度,只要病毒进入网络,既对计算机安全运行产生影响,也将计算机数据破坏,极大的损害了用户的利益。
二、计算机安全问题的解决对策
(一)计算机硬件安全问题的对策
当前,人们的日常工作、学习和生活和计算机息息相关,为了维持计算机更长的寿命,并促使其更好的为人类服务,我们在一定程度上要了解计算机,并且具备普通的维修常识。可是,计算机的寿命是有限的,用户有必要对操作流程进行学习,然后正确使用计算机,如果计算机发生问题要及时维修,避免计算机硬件遭到更严重的损坏。用户熟练掌握计算机日常使用规范以及基本的维护知识可以促使用户及时发现计算机安全问题,并且提早做好预防,促使计算机更好的服务于用户。
(二)计算机软件设施安全问题的对策
首先加密计算机软件,并且确保密码的安全性,因为计算机软件非常容易复制,因此计算机软件安全防护的一个重要手段是密码保护。而一个密码只在一段时间内有效,因此用户要定期对密码进行更改,确保计算机软件安全。其次,为了从源头上确保计算机软件的安全,就要做好它的安全设计。软件设计人员在开发计算机软件的过程中要全面细致考虑软件的安全问题,比如从软件用途方面来说,就要对用途肯能带来的风险进行考虑,并且提前制定应对措施;在开发完软件之后要全方位检测软件,及时修补检测出来的漏洞,并且提高检测次数,最大程度的避免软件漏洞。而用户在使用软件的过程中如果发现问题就要及时解决问题,并应用合理措施实施修补,确保安全运行软件,避免不必要的风险。
(三)计算机网络信息安全问题的对策
计算机病毒主要通过网络以及硬件传播,所以要定期升级计算机软件,应用最新的版本,确保计算机软件具有较少的漏洞。此外也要及时更新浏览器的版本,确保网页浏览的安全性。在浏览网页时尽量不要浏览不合常规的网站,不安装不合常规的软件,确保浏览的安全性。
三、结语
1计算机软件存在的安全漏洞
随着我国经济的不断发展,科技技术有了很大进步,互联网中的信息系统使用范围不断扩大,在各个领域发挥着不可取代的作用。由于计算机软件中有很多的安全漏洞,因此很大程度上信息系统就产生了一定的安全隐患。软件中的漏洞会对信息系统造成非常大的威胁,这就需要对计算机软件中的安全漏洞进行必要检测,安全漏洞检测是现代信息系统安全运行中非常重要的课题。计算机软件漏洞是指计算机系统在编程时出现的错误导致的缺点,这些缺点非常容易使计算机软件产生一些安全隐患和计算机自身的危险,计算机系统对有恶意的网络信息有非常高的敏感性,极容易出现对系统攻击行为。之所以出现这种情况,主要原因是在软件开发和研制过程出现的一些问题。漏洞主要有两种:安全性漏洞和功能性漏洞。安全性漏洞指的是在大多情况下漏洞不会影响计算机的正常运行,如果漏洞被黑客发现,软件运行时就会出现错误,严重者计算机会执行错误的命令,有很大的危害性。功能性的漏洞是指漏洞能够影响计算机正常运行,比如运行结果错误等等。漏洞特性主要表现在四个方面:1系统编程时由于编制人员的疏忽很容易出现逻辑性的错误,这种由于疏忽出现的错误很多是疏忽大意所致。2计算机在运行任务时很容易产生逻辑性错误,不同大小之间的程序模块相比可以看出逻辑性错误的发生率很高。3漏洞和软件环境有很大关系。4系统漏洞和时间也存在一定的联系,随着时间的延长,旧漏洞被修复但是也会产生新的安全漏洞。
2计算机软件安全漏洞的各项检测技术及应用
2.1安全静态检测
计算机软件安全静态检测,注重的是系统内部特性,静态检测和漏洞两者之间有共同的特点,这些特点之间也有很大的关联。目前漏洞的划分方法主要有安全性漏洞和内存性的漏洞。安全性漏洞对数据流的误差比较注重,很大程度上由于错误的内存形态而形成的;内存性漏洞对数据的准确性和类别有很大的注重性。因此,这种漏洞主要的检测技术方法就是在内部存储空间进行建模。因为静态检测方法之间有很大的不同之处,漏洞的处理也有很大的不同之处。所以,一些监测技术只能对漏洞进行必要的检测,但是一些方法在此基础上还能够对漏洞进行很好的处理。安全静态检测方法主要是对程序的代码进行扫描,对其中的关键句进行详细分析,然后根据设置的漏洞特性和标准对系统进行全面检测。分析关键语法是最早的静态分析法,它在分析时只对语法进行检查,把系统中的程序分为不同段落语句和数据库相互对比,如果发现有疑问,对其进行仔细的判断,从而进行检测;另一种检测方法就是按照标准进行检测。由于系统自身就是编程的标准,根据标准对计算机程序进行描述,可以通过语法对其进行描述,最后对系统进行整体检测。
2.2安全动态检测
2.2.1内存映射很多攻击者在对软件进行破坏时为了达到目的,会经常用到“NULL”结尾的字符串进行内存覆盖。采用代码页映射技术,攻击者能够利用“NULL”结尾字符串进行内存覆盖。
2.2.2非执行栈目前,出现了一些栈攻击软件的问题,主要原因是系统中栈的执行能力,由于栈内包含了所有数组变量,所以,攻击者通过向栈中书写一些恶意代码,再进行代码执行。预防这种攻击方法最为有效的方法是打破栈的执行力,使代码不能够进行执行任务。2.2.3安全共享库有些计算机中的安全漏洞主要是使用了不安全的共享库所致。安全共享库很大程度上可以预防恶意攻击行为。安全共享库有拦截和检测功能,主要是指使用动态链接方式进行程序运行,把不安全函数进行拦截和检测,最大程度上保护软件的安全。
2.3计算机软件安全漏洞检测技术的应用
安全漏洞检测技术直接关系到计算机的安全应用,其中在计算机软件安全漏洞检测中,其各项技术的应用主要集中在:第一,防止竞争条件安全漏洞应用。这种漏洞的应用一般是采用原子化处理竞争编码,这种编码有锁定功能,原子化操作进入锁定状态,详细的描述使用文件,很大程度上预防由于使用文件的变动使系统产生漏洞。第二,缓冲区安全漏洞检测技术应用。缓冲区安全漏洞检测主要是对软件程序中的一些疑问函数进行详细检测来预防缓冲区安全漏洞。第三,随机漏洞预防应用。对于随机漏洞的检测和预防需要用到性能良好随机发生设备,这种设备能够准确的对随机漏洞进行预防,其中最主要的原因就是该设备有密码算法。第四,格式化字符串漏洞检测技术应用。这种检测技术的应用一般是在代码中使用格式常量。
3结语
【关键词】软件;安全漏洞;检测技术
信息技术快速发展,尤其Internet的广泛应用,在如今大数据时代,软件是计算机技术一种,在其软件开发过程中,计算机软件存在一定漏洞,要保障计算机软件的安全性,必须提高计算机软件的检测技术,提升计算机软件性能,是提高计算机网络安全的有效途径。
1计算机软件安全漏洞目前的状况
计算机软件在开发的时候有的就存在一定漏洞,当时可能没有技术解决软件漏洞问题,但在软件使用的过程中,会出现一系列问题,必须加强软件安全漏洞的检测技术,检测软件是否合格,不合格的软件必须加强软件补丁,促使软件达到合格标准,经过测试后,才能投入市场使用。还有的软件开发时候没有任何漏洞,但随着时间的推移,软件会出现一定漏洞,软件必须是在使用的过程中,逐步进行软件完善,提升软件性能,让其达标,减少软件的漏洞,出现漏洞以后要及时修复,提高软件的生命周期,在一个友好的界面下,充分发挥软件的功能,让其在使用过程中,起到一定的作用,提升性能,减少漏洞。软件在使用的过程中,根据技术的发展与变化,计算机软件的漏洞必须技术检测,延长软件的生命周期,提高软件性能,满足其需要。
2计算机软件安全漏洞检测技术解读
2.1静态程序解析
静态程序解析是软件安全常用的检测技术,这种检测技术是通过程序代码,通过利用机器语言、汇编语言等进行编译,利用反代码形式,对检测出来的软件漏洞,及时进行修复,提高软件性能,在实际应用过程中,涉及到程序设计中的语言、函数、数组、过程、集合、文件等。利用软件技术解决软件漏洞问题,静态程序解析对程序设计起到保护作用,检测软件漏洞,提升计算机软件性能,这是一种常用的计算机软件安全漏洞检测技术,通过该技术对软件漏洞进行合理检测,提高软件性能,延长软件的生命周期。
2.2利用逻辑公式对程序性质进行表达
根据程序的性质,对计算机软件漏洞进行检测,判断其中的应用能力,逻辑公式能对计算机软件的性能进行检测,检测其的合法性,是否存在软件漏洞,有的软件漏洞是需要升级与更新软件就可以解决的,有的是出现软件错误,必须合理采用措施,解决软件漏洞问题。其中的公理化方法的逻辑是完整的体系,其中的每个公式都是由单个程序语句和其前后置断言共同构成,具体理论当中只有一条赋值公理,形式演算系统以一阶谓词逻辑为基础,各自为顺序、分支以及循环指令增加了相应的演算法则。公理化方法已经被证明具有较强的可靠性和完整性,但匹配的形式演算系统存在半可判定的情况。程序的正确性涉及程序设计人员利用逻辑公式对程序对应的功能规约展开描述,另外一个问题就是要为循环体确定循环不变式。逻辑公式的应用提高了逻辑判断能力,在利用语句进行科学判断,检测计算机软件是否存在漏洞,根据逻辑公式的判断能力,检测软件是否存在漏洞,如果存在漏洞,对其合理的进行修补,解决软件漏洞问题,提升软件性能,完善软件功能。
2.3测试库技术
测试库技术是计算机软件检测中常用技术,对解决计算机软件漏洞起到帮助作用。测试库技术是检测计算机软件中的核心部件,判断计算机软件是否存在漏洞。利用测试库技术只能对动态内存操作函数导致的错误进行判定。而且其主要对运行过程中输入数据进行监控,发现其中的弱点。这种检测并不是从整体上进行判定。这也表明检测过程只是验证BUG是否被发现,但是无法证实BUG的存在。使用这项技术对于普通应用程序而言,并不会存在任何兼容问题。使用测试库技术的主要优势不存在误报。从性能上对这个技术展开分析,其性能消耗较大,从其工作原理很容易能推导出这个结论。利用测试库技术检测计算机软件是否存在漏洞,是所有检测技术中最科学的,也是最准确的,但其测试有一定难度,对计算机软件本身也是一种伤害,提高计算机软件性能,必须合理的利用软件的检测技术,科学的选择检测技术,有目的的进行检测软件是否存在漏洞,科学的解决软件漏洞问题,提高软件性能。
2.4源码改编
利用软件漏洞检测技术,检测出计算机软件存在一定漏洞,没有合理方法进行漏洞修复,就有必要根据软件漏洞的阶段,去修改程序的源代码,这种源码改编技术,是彻底解决计算机软件漏洞的最根本方法,该检测技术对人员的要求很高,能利用其它技术检测出软件漏洞,能利用源码改编技术进行修改,这是计算机软件检测技术的高级阶段,是计算机软件发展到一定程度的需要,也是社会发展对计算机软件技术提出的新要求。总之,计算机软件技术存在一定漏洞,要解决计算机软件漏洞,必须利用软件检测技术,及时检测,发现问题要及时解决,但在计算机软件发展的过程中,计算机软件肯定存在一定问题,必须科学的合理解决计算机软件的安全问题,提高对软件安全认识,增加计算机软件的应用性,符合现代计算机软件技术发展需要。
参考文献
[1]许跃颖.计算机软件中安全漏洞检测技术及其应用[J].电子制作,2016(02).
[2]颜汉权.基于模糊测试的软件漏洞检测方法[J].求知导刊,2015(11).
[3]高妍.计算机软件安全漏洞检测技术与应用[J].计算机光盘软件与应用,2014(04).
[4]陈斯,卢华.计算机软件中安全漏洞检测技术及其应用[J].电子技术与软件工程,2016(11).
论文摘要:文章论述了软件开发生命周期中每个阶段添加的一系列关泣安全性的活动,提出将安奋浏试整合到软件开发生命周期中,分析了软件安全性浏试片祠试人员的要求,并以一个sql注入实例来具体说明安全性浏试在软。
信息网络安全事件发生比例的不断攀升、病毒利用软件漏洞猖狂地传播使得人们越发认识到信息安全的重要性。一般认为,传统的信息安全技术可以借助防火墙(包括软件和硬件防火墙)审核通过网络的报文、限定用户的访问权限等来防止非授权用户对重要数据的访问,但是这一观点是建立在软件安全基础上的。网络应用软件需要暴露在网络环境下,并且授权外部用户可以透过网络来访问此软件。通过网络,攻击者有机会接触到软件,如果软件本身存在漏洞,那么所有的防火墙就形同虚设。暴露于网络的应用软件往往成为被攻击的目标,是网络应用软件安全的重灾区。美国国家标准与技术研究院(nist)2002年的一项研究表明,美国花费在软件缺陷方面的费用达到595亿美元。公安部2008年全国信息网络安全状况与计算机病毒疫情调查分析报b说明,在发生的安全事件中,未修补或防范软件漏洞仍然是导致安全事件发生的最主要原因。
1安全测试的定义
安全测试是鉴别信息系统数据保护和功能维护的过程。安全测试需要涵盖的6个基本安全概念是:保密性、完整性、权限(身份验证)、授权(权限分配)、可提供性、不可抵赖性阴。软件开发商都存在解决安全威胁方古的问题。对软件开发商来说,安全性是其核心要求,这是由市场力量所驱动,也是由保护关键基础结构及建立和保持计算的广泛信任的需要所决定的。所有软件开发商面对的一个主要挑战就是创建更加安全的软件,使其不需要频繁地通过修补程序进行更新。软件安全已经成为评判软件质量的一个重要标准,软件安全测试则成为保证软件产品能够符合这一标准的重要手段。软件的安全性测试主要是测试在正常和非正常情况下,软件能否对数据进行安全有效的操作。
2软件开发生命周期流程(参见图1)
对于软件行业来说,要满足当今提升安全性的需要,软件供应商必须转为采用一种更严格的、更加关注安全性的软件开发流程。这种流程旨在尽量减少设计、编码和文档编写过程中存在的漏洞,并在软件开发生命周期中尽可能早地检测到并消除这些漏洞。用于处理来自internet的输人、控制可能被攻击的关键系统或处理个人身份信息的企业和消费者软件最需要实施这种流程。在很多实际的软件开发项目中,安全测试已经成为sdl一个不可或缺的组成部分,并成为整个项目过程中的长期任务。黑盒一白盒测试方法往往执行在产品递交客户之前,但有的甚至在投人使用之后都未进行安全检测和风险评估;在一些安全性要求较高的项目中,虽然将安全风险评估纳人预算,但在实际操作中却对其并未作过多考虑。这样,所导致的直接后果是在开发工作几近完成的情况下进行问题分析处理所造成的成本将远远大于在软件开发阶段进行缺陷修改的成本。即便是从充分利用现有的有限资金和资源的角度来考虑,也有必要将安全测试囊括到sdl中。这样做虽然不能取代软件开发后期的渗透测试和脆弱性测试,却可以有效减少后者在施过程中的投人。
开发人员应该根据客户的功能需求来制定相应的安全规约,利用内建的明确的控制机制来降低安全风险。开发人员可以根据风险评估的结果来确定测试项目:软件能否可靠运行(safety)以及软件运行结果是否可靠(security)。
软件开发生命周期((sdl)中常用的测试方法有:单元测试、集成测试和验收测试。
2.1需求、设计阶段—安全性分析
在软件项目的设计过程中,人们往往只是关注系统的特性和功能,而没有充分考虑其他重要的非功能问题(例如性能、可用性、平台支持、安全,及要在稍后的软件开发生命周期中需要解决的安全性),导致了项目中许多不必要的波动和延迟。由于安全性分析影响了整个的设计和架构,因此应该在项目设计阶段充分地审查和了解它们。
安全性考虑包括一系列问题,例如访问控制和授权、敏感数据的适当处理、数据和存储器访问的适当使用,以及加密方法。一些安全性需求不是非功能的需求,如所实施的加密类型。另外,许多安全性需求是更直接地面向用例的,并且需要定义主要场景,以及定义备选路径和异常路径。在没有将功能的和非功能的需求适当地定义及并人软件中的情况下,编码错误和设计缺陷会表现出关键的信息和操作处于危险。我们应该像对待其他的需求那样处理安全性需求,并将安全性需求划分出优先级,设定范围,同时作为整体用例和功能需求的一部分进行管理。
2.2实施阶段—单元测试
受测试方式的影响,开发者对软件安全风险的评估不可能面面俱到。最典型的就是在代码设计阶段,开发者可以通过单元测试来检验代码行为,这些结果都是可以预知的,但是受到范围的局限,不能测试这些类或者模块集成后的行为。
实施单元测试可以从软件基本单位(单个类)的检测上保证输人的有效性;在可能出现恶意攻击的地方,也可以利用这一思想来组织针对单个类或者方法的单元测试,从而组织起软件内部的纵深防御策略,防止恶意行为对软件安全造成的损害。但是,这一方法将软件各组件进行强制孤立,因此对于因大量组件交互而引起的软件缺陷,利用此种方法无法检测。
单元层的安全测试比较适合于防止缓冲区溢出,格式化字符串以及数据缺失的审核。
2.3验证阶段—集成测试
在集成层,软件的整体安全属性变得可见和可测试,使得这一层的可测试属性数量相对单元层而言要多得多,但是对于跨站脚本和网络服务器提供的一些服务(例如安全套接层ssl和url过滤)的测试,存在一定的困难。我们可以将实际案例和风险分析的结果作为组织集成测试的指南。
集成测试要求测试人员通过安全测试培训,并且是有熟练技术的软件开发人员。
在这一层,我们可以开展诸如注人缺陷验证、旁路验证以及访问控制等方面的安全测试,来源于外部代码的安全审查结果也应该以集成测试的方式加以确认。
2.4阶段—验收测试
验收测试是软件产品交付客户之前的最后一个测试阶段,是在真实的测试环境中,利用基于恶意事件的安全检测模板,测试在典型的渗透活动中可被识别的安全缺陷。验收测试的这一特性(基于安全检测模板),使得我们可以借助于强大的自动化测试软件进行检测,并且可以用验收测试的结果来完善渗透测试报告内容,从而有助于开发人员理解软件的脆弱性以及针对软件脆弱性所采取的补救措施是否有效。
验收测试针对软件的外部api,因此不如单元测试和集成测试松散,并且只能测试当前已知且暴露的漏洞或者缺陷。非定制的商业软件重新设计的关键功能或者其他改变都会影响到软件的整体安全性,因此,如果改变会使得软件产生不可预知的缺陷,针对这些缺陷的测试就应该在单元层或者集成层开展,而不是在验收层。
在验收层,我们可以测试针对解释性程序(sql, xpath,ldap等)的注人式攻击、跨站脚本攻击、跨站请求伪造等。缓冲区溢出及格式化字符串等软件缺陷也可以在验收测试层得到检测。
3安全测试队伍
软件测试一度被认为是编程能力偏低的员工的工作,直到今天,仍然有许多公司把优秀的人才安排在编码工作上,也有更多公司让优秀的人才进行设计,仅有很少公司让优秀的人才进行测试工作。实际的软件工程实践证明,让对软件思想有深刻理解的工程师进行软件测试,可以大幅度地提高软件质量软件供应商还必须认识到组织测试人员进行“安全进修”对安全测试的成功实施至关重要。在这些情况下,软件供应商必须负责对其工程人员进行适当教育。根据组织的规模和可用的资源,拥有大批工程人员的组织可建立一个内部计划对其工程师进行在职安全培训,而小型组织则可能需要依赖外部培训。
测试人员要像攻击者那样带有“恶意的”想法去思考,而且在测试软件时还要扮演攻击者,攻击自己的系统,以此来帮助发现软件的安全漏洞。安全测试并不会总是直接导致安全溢出或者暴露可利用的漏洞,从而引出安全缺陷。要安全测试尽可能地发挥作用,测试人员需具备较强的分析能力,而这更多的是依靠熟练的开发技术和开发经验。
4漏洞举例:一个sql的注入式漏洞
有几种情形使得sql注人攻击成为可能。最常见的原因是,使用拼接形成的sql语句去操作数据库。譬如,传入用户输人的管理员用户名和密码,把这2个参数拼接形成sql语句,通过执行该sql语句,以便验证用户输人的管理员用户名和密码的正确性。具体过程如下:
一般情况下,用户传人正常的用户名和密码进行验证,如传人“myname”和“mypassword”进行验证,得到的sql语句将是:
这个sql语句很正常。但是,这只是开发人员预期的做法:通过管理员用户名和密码来验证账户信息。但因为参数值没有被正确地加码,黑客可以很容易地修改查询字符串的值,以改变sql语句的逻辑。譬如,分别传人“myname’ ori=1--” , "mypassword",得到的sql语句将是:
在用户名“myname’ or i=i--”中,第一个“”’结束了原有字符串中第一个单撇号的配对,"or”后面的“i=i”会导致不管前面的验证结果如何,都会返回真true值,而随后的“一”将把其后的sql语句注释掉。现在问题出现了,不管使用什么用户名和密码,都能验证通过。在存在漏洞的数据显示页面,如果注人join语句,就能获取数据库里的所有数据,显示在页面上,如获取用户名、密码等;而注入up-date/insert/delete语句将改变数据,如添加新的管理员账号等。这样,数据库将不再安全。
sql注人安全漏洞的形成,根本在于sql语句的拼接,只要放弃sql语句拼接,适用规范的加码访问方式,问题自然迎刃而解。以下便是修改后的安全验证方法:
论文摘要:文章论述了软件开发生命周期中每个阶段添加的一系列关泣安全性的活动,提出将安奋浏试整合到软件开发生命周期中,分析了软件安全性浏试片祠试人员的要求,并以一个sql注入实例来具体说明安全性浏试在软。
信息网络安全事件发生比例的不断攀升、病毒利用软件漏洞猖狂地传播使得人们越发认识到信息安全的重要性。一般认为,传统的信息安全技术可以借助防火墙(包括软件和硬件防火墙)审核通过网络的报文、限定用户的访问权限等来防止非授权用户对重要数据的访问,但是这一观点是建立在软件安全基础上的。网络应用软件需要暴露在网络环境下,并且授权外部用户可以透过网络来访问此软件。通过网络,攻击者有机会接触到软件,如果软件本身存在漏洞,那么所有的防火墙就形同虚设。暴露于网络的应用软件往往成为被攻击的目标,是网络应用软件安全的重灾区。美国国家标准与技术研究院(nist)2002年的一项研究表明,美国花费在软件缺陷方面的费用达到595亿美元。公安部2008年全国信息网络安全状况与计算机病毒疫情调查分析报b说明,在发生的安全事件中,未修补或防范软件漏洞仍然是导致安全事件发生的最主要原因。
1安全测试的定义
安全测试是鉴别信息系统数据保护和功能维护的过程。安全测试需要涵盖的6个基本安全概念是:保密性、完整性、权限(身份验证)、授权(权限分配)、可提供性、不可抵赖性阴。133229.Com软件开发商都存在解决安全威胁方古的问题。对软件开发商来说,安全性是其核心要求,这是由市场力量所驱动,也是由保护关键基础结构及建立和保持计算的广泛信任的需要所决定的。所有软件开发商面对的一个主要挑战就是创建更加安全的软件,使其不需要频繁地通过修补程序进行更新。软件安全已经成为评判软件质量的一个重要标准,软件安全测试则成为保证软件产品能够符合这一标准的重要手段。软件的安全性测试主要是测试在正常和非正常情况下,软件能否对数据进行安全有效的操作。
2软件开发生命周期流程(参见图1)
对于软件行业来说,要满足当今提升安全性的需要,软件供应商必须转为采用一种更严格的、更加关注安全性的软件开发流程。这种流程旨在尽量减少设计、编码和文档编写过程中存在的漏洞,并在软件开发生命周期中尽可能早地检测到并消除这些漏洞。用于处理来自internet的输人、控制可能被攻击的关键系统或处理个人身份信息的企业和消费者软件最需要实施这种流程。在很多实际的软件开发项目中,安全测试已经成为sdl一个不可或缺的组成部分,并成为整个项目过程中的长期任务。黑盒一白盒测试方法往往执行在产品递交客户之前,但有的甚至在投人使用之后都未进行安全检测和风险评估;在一些安全性要求较高的项目中,虽然将安全风险评估纳人预算,但在实际操作中却对其并未作过多考虑。这样,所导致的直接后果是在开发工作几近完成的情况下进行问题分析处理所造成的成本将远远大于在软件开发阶段进行缺陷修改的成本。即便是从充分利用现有的有限资金和资源的角度来考虑,也有必要将安全测试囊括到sdl中。这样做虽然不能取代软件开发后期的渗透测试和脆弱性测试,却可以有效减少后者在施过程中的投人。
开发人员应该根据客户的功能需求来制定相应的安全规约,利用内建的明确的控制机制来降低安全风险。开发人员可以根据风险评估的结果来确定测试项目:软件能否可靠运行(safety)以及软件运行结果是否可靠(security)。
软件开发生命周期((sdl)中常用的测试方法有:单元测试、集成测试和验收测试。
2.1需求、设计阶段—安全性分析
在软件项目的设计过程中,人们往往只是关注系统的特性和功能,而没有充分考虑其他重要的非功能问题(例如性能、可用性、平台支持、安全,及要在稍后的软件开发生命周期中需要解决的安全性),导致了项目中许多不必要的波动和延迟。由于安全性分析影响了整个的设计和架构,因此应该在项目设计阶段充分地审查和了解它们。
安全性考虑包括一系列问题,例如访问控制和授权、敏感数据的适当处理、数据和存储器访问的适当使用,以及加密方法。一些安全性需求不是非功能的需求,如所实施的加密类型。另外,许多安全性需求是更直接地面向用例的,并且需要定义主要场景,以及定义备选路径和异常路径。在没有将功能的和非功能的需求适当地定义及并人软件中的情况下,编码错误和设计缺陷会表现出关键的信息和操作处于危险。我们应该像对待其他的需求那样处理安全性需求,并将安全性需求划分出优先级,设定范围,同时作为整体用例和功能需求的一部分进行管理。
2.2实施阶段—单元测试
受测试方式的影响,开发者对软件安全风险的评估不可能面面俱到。最典型的就是在代码设计阶段,开发者可以通过单元测试来检验代码行为,这些结果都是可以预知的,但是受到范围的局限,不能测试这些类或者模块集成后的行为。
实施单元测试可以从软件基本单位(单个类)的检测上保证输人的有效性;在可能出现恶意攻击的地方,也可以利用这一思想来组织针对单个类或者方法的单元测试,从而组织起软件内部的纵深防御策略,防止恶意行为对软件安全造成的损害。但是,这一方法将软件各组件进行强制孤立,因此对于因大量组件交互而引起的软件缺陷,利用此种方法无法检测。
单元层的安全测试比较适合于防止缓冲区溢出,格式化字符串以及数据缺失的审核。
2.3验证阶段—集成测试
在集成层,软件的整体安全属性变得可见和可测试,使得这一层的可测试属性数量相对单元层而言要多得多,但是对于跨站脚本和网络服务器提供的一些服务(例如安全套接层ssl和url过滤)的测试,存在一定的困难。我们可以将实际案例和风险分析的结果作为组织集成测试的指南。
集成测试要求测试人员通过安全测试培训,并且是有熟练技术的软件开发人员。
在这一层,我们可以开展诸如注人缺陷验证、旁路验证以及访问控制等方面的安全测试,来源于外部代码的安全审查结果也应该以集成测试的方式加以确认。
2.4阶段—验收测试
验收测试是软件产品交付客户之前的最后一个测试阶段,是在真实的测试环境中,利用基于恶意事件的安全检测模板,测试在典型的渗透活动中可被识别的安全缺陷。验收测试的这一特性(基于安全检测模板),使得我们可以借助于强大的自动化测试软件进行检测,并且可以用验收测试的结果来完善渗透测试报告内容,从而有助于开发人员理解软件的脆弱性以及针对软件脆弱性所采取的补救措施是否有效。
验收测试针对软件的外部api,因此不如单元测试和集成测试松散,并且只能测试当前已知且暴露的漏洞或者缺陷。非定制的商业软件重新设计的关键功能或者其他改变都会影响到软件的整体安全性,因此,如果改变会使得软件产生不可预知的缺陷,针对这些缺陷的测试就应该在单元层或者集成层开展,而不是在验收层。
在验收层,我们可以测试针对解释性程序(sql,xpath,ldap等)的注人式攻击、跨站脚本攻击、跨站请求伪造等。缓冲区溢出及格式化字符串等软件缺陷也可以在验收测试层得到检测。
3安全测试队伍
软件测试一度被认为是编程能力偏低的员工的工作,直到今天,仍然有许多公司把优秀的人才安排在编码工作上,也有更多公司让优秀的人才进行设计,仅有很少公司让优秀的人才进行测试工作。实际的软件工程实践证明,让对软件思想有深刻理解的工程师进行软件测试,可以大幅度地提高软件质量软件供应商还必须认识到组织测试人员进行“安全进修”对安全测试的成功实施至关重要。在这些情况下,软件供应商必须负责对其工程人员进行适当教育。根据组织的规模和可用的资源,拥有大批工程人员的组织可建立一个内部计划对其工程师进行在职安全培训,而小型组织则可能需要依赖外部培训。
测试人员要像攻击者那样带有“恶意的”想法去思考,而且在测试软件时还要扮演攻击者,攻击自己的系统,以此来帮助发现软件的安全漏洞。安全测试并不会总是直接导致安全溢出或者暴露可利用的漏洞,从而引出安全缺陷。要安全测试尽可能地发挥作用,测试人员需具备较强的分析能力,而这更多的是依靠熟练的开发技术和开发经验。
4漏洞举例:一个sql的注入式漏洞
有几种情形使得sql注人攻击成为可能。最常见的原因是,使用拼接形成的sql语句去操作数据库。譬如,传入用户输人的管理员用户名和密码,把这2个参数拼接形成sql语句,通过执行该sql语句,以便验证用户输人的管理员用户名和密码的正确性。具体过程如下:
一般情况下,用户传人正常的用户名和密码进行验证,如传人“myname”和“mypassword”进行验证,得到的sql语句将是:
这个sql语句很正常。但是,这只是开发人员预期的做法:通过管理员用户名和密码来验证账户信息。但因为参数值没有被正确地加码,黑客可以很容易地修改查询字符串的值,以改变sql语句的逻辑。譬如,分别传人“myname’ori=1--”,"mypassword",得到的sql语句将是:
在用户名“myname’ori=i--”中,第一个“”’结束了原有字符串中第一个单撇号的配对,"or”后面的“i=i”会导致不管前面的验证结果如何,都会返回真true值,而随后的“一”将把其后的sql语句注释掉。现在问题出现了,不管使用什么用户名和密码,都能验证通过。在存在漏洞的数据显示页面,如果注人join语句,就能获取数据库里的所有数据,显示在页面上,如获取用户名、密码等;而注入up-date/insert/delete语句将改变数据,如添加新的管理员账号等。这样,数据库将不再安全。
sql注人安全漏洞的形成,根本在于sql语句的拼接,只要放弃sql语句拼接,适用规范的加码访问方式,问题自然迎刃而解。以下便是修改后的安全验证方法:
论文摘要:电子商务是基于网络盼新兴商务模式,有效的网络信息安全保障是电子商务健康发展的前提。本文着重分析了电子商务活动申存在的网络信息安全问题,提出保障电子商务信息安全的技术对策、管理策略和构建网络安全体系结构等措施,促进我国电子商务可持续发展。
随着互联网技术的蓬勃发展,基于网络和多媒体技术的电子商务应运而生并迅速发展。所谓电子商务通常是指是在全球各地广泛的商业贸易活动中,在因特网开放的网络环境下,基于浏览器/服务器应用方式,买卖双方不谋面地进行各种商贸活动,实现消费者的网购物、商户之间的网上交易和在线电子支付以及各种商务活动和相关的综合眼务活动的一种新型的商业运营模式。信息技术和计算机网络的迅猛发展使电子商务得到了极大的推广,然而由于互联网的开放性,网络安全问题日益成为制约电予商务发展的一个关键性问题。
一、电子商务网络信息安全存在的问题
电子商务的前提是信息的安全性保障,信息安全性的含义主要是信息的完整性、可用性、保密和可靠。因此电商务活动中的信息安全问题丰要体现在以下两个方面:
1 网络信息安全方面
(1)安全协议问题。目前安全协议还没有全球性的标准和规范,相对制约了国际性的商务活动。此外,在安全管理方面还存在很大隐患,普遍难以抵御黑客的攻击。
(3)防病毒问题。互联网的出现为电脑病毒的传播提供了最好的媒介,不少新病毒直接以网络作为自己的传播途径,在电子商务领域如何有效防范病毒也是一个十分紧迫的问题。
(4)服务器的安全问题。装有大量与电子商务有关的软件和商户信息的系统服务器是电予商务的核心,所以服务器特别容易受到安全的威胁,并且一旦出现安全问题,造成的后果会非常严重。
2.电子商务交易方面
(1)身份的不确定问题。由于电子商务的实现需要借助于虚拟的网络平台,在这个平台上交易双方是不需要见面的,因此带来了交易双方身份的不确定性。攻击者可以通过非法的手段盗窃合法用户的身份信息,仿冒合法用户的身份与他人进行交易。
(2)交易的抵赖问题。电子商务的交易应该同传统的交易一样具有不可抵赖。有些用户可能对自己发出的信息进行恶意的否认,以推卸自己应承担的责任。
(3)交易的修改问题。交易文件是不可修改的,否则必然会影响到另一方的商业利益。电子商务中的交易文件同样也不能修改,以保证商务交易的严肃和公正。
二 电子商务中的网络信息安全对策
1 电子商务网络安全的技术对策
(1)应用数字签名。数字签名是用来保证信息传输过程中信皂的完整和提供信包发送者身份的认证,应用数字签名可在电子商务中安全、方便地实现在线支付,而数据传输的安全性、完整,身份验证机制以及交易的不可抵赖性等均可通过电子签名的安全认证手段加以解决。
(2)配置防火墙。防火墙是在两个网络通讯时执行的一种访问控制尺度,它能阻止网络中的黑客来访问你的网络,防止他们更改、拷贝、毁坏你的重要信息。它能控制网络内外的信息交流,提供接入控制和审查跟踪,是一一种访问控制机制。在逻辑,防火墙是一个分离器、限制器,能有效监控内部网和Intemet之间的任何活动,保证内部网络的安全。
(3)应用加密技术。密钥加密技术的密码体制分为对称密钥体制和公用密钥体制两种。相应地,对数据加密的技术分为对称加密和非对称加密两类。根据电子商务系统的特点,全面加密保护应包括对远程通信过程中和网内通信过程中传输的数据实施加密保护。一般来说,应根据管理级别所对应的数据保密要求进行部分加密而非全程加密。
2、电子商务网络安全的管理策略
(1)建立保密制度。涉及信息保密、口令或密码保密、通信地址保密、日常管理和系统运行状况保密、工作日记保密等各个方面。对各类保密都需要慎重考虑,根据轻重程度划分好不同的保密级别,并制定出相应的保密措施。
(2)建立系统维护制度。该制度是电子商务网络系统能否保持长期安全、稳定运行的基本保证,应由专职网络管理技术人员承担,为安全起见,其他任何人不得介入,主要做好硬件系统日常管理维护和软件系统日常管理维护两方面的工作。
(3)建立病毒防范制度。病毒在网络环境下具有极大的传染性和危害性,除了安装防病毒软件之外,还要及时升级防病毒软件版本、及时通报病毒入侵信息等工作。此外,还可将刚络系统中易感染病毒的文什属性、权限加以限制,断绝病毒入侵的渠道,从而达到预防的目的。
(4)建立数据备份和恢复的保障制度。作为一个成功的电子商务系统,应引对信息安全至少提供三个层而的安全保护措施:一是数据存操作系统内部或者盘阵中实现快照、镜像;二是对数据库及邮件服务器等重要数据做到在电子交易中心内的自动备份;三是对重要的数据做到通过广域网专线等途径做好数据的克隆备份,通过以上保护措施可为系统数据安全提供双保险。
三 电子商务的网络安全体系结构
电子商务的网络信息安全不仅与技术有关,更与社会因素、法制环境等多方面因素有关。故应对电子商务的网络安全体系结构划分如下:1.电子商务系统硬件安全。主要是指保护电子商务系统所涉及计算机硬件的安全性,保证其可靠眭和为系统提供基础性作用的安全机制。2.电子商务系统软件安全。主要是指保证交易记录及相关数据不被篡改、破坏与非法复制,系统软件安全的目标是使系统中信息的处理和传输满足整个系统安全策略需求。3.电子商务系统运行安全。主要指满足系统能够可靠、稳定、持续和正常的运行。4.电商务网络安全的立法保障。结合我阁实际,借鉴国外先进网络信息安全立法、执法经验,完善现行的网络安全法律体系。
西安电子科技大学(以下简称西电科大)是西北地区最早开设“编译原理”课程的高校之一,由计算机学院和软件学院开设的“编译原理”分别于2003年、2004年被评为校级、省级精品课程,并获2005年度“教育部-微软精品课程”建设立项支持。
课程创新点
经过长期的教学实践,西电科大“编译原理”课程组已建立起了较完整的教学体系,包括年龄结构和知识结构合理的教师队伍、反映本课程水平的自编教材及先进的教学实践环境,其特色和创新点概述如下:
1)坚持教学科研并重,不断更新教学内容
课程组成员坚持教学与科研并重,十几年来先后主持与承担国防预研、国防预研基金、横向科研课题等十余项,发表学术与教学研究论文20余篇。这些课题所研究内容大部分是编译领域的核心技术,科研成果水平在国内高校同行中处于领先地位。丰富的科研积累为教学的实施与改革提供了充足的养分。
课程组能够将科研成果及时转化到本课程的教学中,同时不断更新教学内容和教学手段,极大地发挥了学生的学习热情和创造性,提高了“编译原理”课程教学的水平和质量。同时,通过科研与教学相结合,形成了一支学术造诣高、知识与年龄结构合理、勇于改革且团结协作的课程梯队。
2)重视实验教学研究与改革,培养学生工程实践能力与素质
计算机科学与技术专业是一个实践性要求很高的专业,而“编译原理”是本专业中对软件设计实验环节要求更高的课程。“编译原理”开设了独立的综合实验“函数绘图语言解释器构造”,其中的三个实验子系统“词法分析器构造”、“语法分析器构造”、“语法制导翻译图形绘制”有机连为一体,反映了“编译原理”课程的核心技术和实验水平,充实了理论教学内容,培养了学生的工程实践能力与科研素质。
我们还根据国内教学条件的实际情况,在所承担的科研项目工作基础上,于1993年自主研制开发了在微机和DOS/Windows环境下的词法分析器生成器XDFLEX和语法分析器生成器XDYACC(它们是与编译器构造领域中最具影响且被广泛使用的、Unix环境下的词法分析器生成器Lex和语法分析器生成器Yacc兼容的软件,其中XD是我校英文缩写),当时在国内是首创。1996年,我们又对XDFLEX进行了改造,增加了汉字识别的自动生成,并重新命名为XDCFLEX。至此,XDCFLEX/ XDYACC形成了具有中国特色的、教学与科研兼顾的编译器编写工具(放在我校网站上供自由下载)。此工具不但提高了我校学生的上机实习水平和“编译原理”课程实验室建设的水平,同时也被国内多所高校的教师和学生以及研究所的科研人员使用,提高了我校“编译原理”课程在国内的地位。
课程建设的实施办法
1)明确目标,合理安排。根据课程组的现有条件,制定合理的建设目标和课程质量标准,提出师资队伍建设规划以及教学过程、教学管理和教学改革等方面的基本要求。依靠教师和教学管理人员,明确职责,分级建设,责任到人。
2)树立课程整体优化的观念。在明确课程建设目标的前提下,解决相关课程之间的配合和衔接问题,推进“模块课程”或“系列课程”的整体优化,将课程建设放在专业建设和培养模式中进行优化设计。
3)重视师资队伍建设,开展教学改革与研究。课程建设应形成合理、优化的专业教师梯队,以高层次、高学历教师为主体,教师队伍中高、中、初级职称比例合适,课程负责人具有较高的学术水平和教学水平,课程组有计划地经常开展教研活动,加强对中青年教师的培养。保证每年有一定的教学改革项目或教研项目立项和教学改革成果。
4)加强教材建设,改革教学手段。一方面采用国内现有的先进教材和精品教材,另一方面根据学院自身的现有条件和专业特点组织教师自编部分具有一定创新性和特色的教材。同时制作、收集和整理电子教材、课件以及教辅材料,逐步形成立体化教材体系。根据本课程的教学特点,采用多媒体教学,建立教学网站,实现网上教学辅导。
5)建立健全学生评价、教师同行听课和教学督导组听课机制,逐步完善教学质量监控和评估体系,确保和提高课堂教学质量和效果。
6)建立有效的激励机制。对于承担精品课程建设任务并作出突出贡献的课程负责人及骨干教师在评奖、评优、晋职等方面给予优先考虑。
教材介绍
课程组曾经选用陈火旺院士的《编译原理》(国防科技大学出版社)、《编译原理和技术》,经过长期积累,在总结二十多年教学经验、科研与教学改革成果的基础上,由刘坚教授主编了《编译原理基础》教材。该教材及与其配套的教学辅助指导书《编译原理基础-习题与上机题解答》全面体现编译原理的教学规律,内容新颖先进,独创性、实用性好,教学适用性强。自2002年出版以来,已发行万余册,被若干高校选用,在相关科研技术人员中亦被广泛使用。2005年《编译原理基础》被评为西安电子科技大学优秀教材,同年,荣获陕西省优秀教材二等奖。
课程组教师
目前,“编译原理”课程组由4名主讲和3名专职辅导教师组成。
刘坚:1982年2月起在西安电子科技大学任教,教授。主讲本科生“编译原理”、研究生“编译原理与技术”等课程,研究方向为计算机软件理论与技术。主持“Ada软件开发平台技术”、“软件系统安全故障模式分析”、“软件安全模式”等课题的研究工作,发表多篇学术论文。
龚杰民:1973年5月起在西安电子科技大学任教,教授,研究方向为人机交互技术和软件开发工具。主讲“编译原理”、“形式语言与自动机理论”、“C程序设计”、“PROLOG程序设计”、“人机交互技术与可靠性工程”等课程。长期从事编译原理、形式语言与自动机、人机交互技术等课程的教学与研究。发表教学研究及学术论文多篇,著有《C语言程序设计及其应用》、《标准C语言程序设计及应用》、《人机交互技术及可视化技术》、《人-计算机界面设计》(译)等。主持的多项科研课题获得省部级奖励,其中,“触摸屏电子笔”获中国实用新型专利证书,主持的“液晶显示器和等离子体显示器的工效研究”课题成果已在日本使用。
方敏:1989年起在西安电子科技大学任教,博士,教授。主讲“编译原理”、“操作系统”、“计算机网络”等课程,参加“联合作战态势评估辅助决策模型研究”、“智能化多源数据融合”等课题的研究工作;编著教材“计算机操作系统”(西安电子科技大学出版社,2004);撰写论文多篇。
张淑平:1995年起在西安电子科技大学任教,在读博士生,副教授。主讲“编译原理”、“数据结构”等课程,西电科大 ACM/ICPC竞赛基地教练, 参加“宽带无线IP网络安全体系结构”、“基于算法的容忍入侵检测系统”等科研项目,著有“程序员教程”一书(清华大学出版社,2004),撰写论文多篇。
张立勇:2001年起在西安电子科技大学任教,在读博士生,讲师。主讲“编译原理”、“分布对象技术”、“算法设计与分析”等课程,参加“计算机软件安全模式分析”等课题研究,担任西电科大ACM/ICPC竞赛队教练。
胡圣明:2003年起在西安电子科技大学任教,在读博士生,讲师。辅导“编译原理”课程,主讲“数据库应用技术”课程,参加《编译原理基础-习题与上机题解答》的编写工作。参加“程序理解征挖掘理论与方法的研究”、“面向对象逆向工程工具研究”、“系统应用软件逆向工程工具研究”等科研项目的研究工作,撰写论文多篇。
王小兵:2004年起在西安电子科技大学任教,在读博士生,讲师。辅导“编译原理”课程,主讲“数据库系统”课程。