您的浏览器不支持JavaScript语法,但是并不影响您获取本网站的内容
Logo 排版用图片
:::回首页网站地图繁体中文ENGLISH日本语rss
:::
关于网绎
我们的客户
我们的服务
无障碍网页
SEO网站优化
信息与知识库
联络我们
关于网绎装饰用图片
联系窗口
台湾 行销企划部
电话:(02) 2704-1758
传真:(02) 2704-0372
USA Service Dept.
ADD:5138 Parkfield Ave.
   San Jose, CA95129
Tel:408-2034565
:::
信息与知识库
标题 什么是网页应用程序源码检测
主题分类 系統與程式設計
原文章出处 IT邦帮忙 -《iThome企业资安技术应用专刊》数联资安技术处副处长杨伯瀚

随着测试角度不同,源码检测、弱点扫描、渗透测试可以为网页程序找出不同层面的问题。开发者或承包商应就程序功能与目的检视自己的安全需求,应用不同的检测方式强化自身安全。

源 码检测是最基本的网页程序稽核方式。透过对原始码的检查,挖掘已知或未知的网页问题。常见的作法是利用人力检测,如果是写程序能力有自信的开发团体,是由 公司自有的资深工程师负责,对质量要求较为严格的单位,则会雇用资安专家协助进行。但近年来各种工具已将检测准确率提升到九成以上,故也有许多公司采用自 动工具进行检测。

开发过程中随时都需要的源码检测
就像时下在线游戏最流行的公测(找玩家试完以进行测试),或一般程序开发流程中 的Beta Test要求(由使用者需求检查功能是否正常),安全源码检测需要第三方检查,方能找出所有安全瑕疵。较为不同的是,游戏公测或Beta Test 通常是程序完工前的最后一关,源码检测却是开发流程中每一阶段都需要作完,才能移至下一阶段的必备手续。专属的资安人员是较为适合的人选,但如前所述,成 本较高,尤其是时间成本。源码检测人员必须从一开始就全程参与开发项目,才能减少解析与了解程序的时间与精力。而开发案规模愈大,跨越的模块愈多,或者使 用的不同类型的语言或系统愈多,对源码检测人员的专业要求也高,难有人力能够及时处理百万行以上的程序代码。有鉴于此,各种源码检测的自动工具纷纷出炉,辅 助源码检测人员或开发团队大量且快速地检查。

动态与静态的源码检测法
早期的源码检测工具采取传统的模式比对法(Pattern Matching),亦即黑名单表列。将安全漏洞中常用到的语法表列出来,由现有程序代码或编译码中找寻是否有相符字符串。虽然效率上较省时间,效果上却与由 一般非资安专业的程序设计员检查的结果相距不远,误报率与漏报量均高居不下。这也是程序开发者普遍不信任自动工具的主因。

第二代的源码检 测自动工具改朝向动态检视发展,亦即避过纯白箱测试的理念,将设计好的恶意数据透过仿真编译器输入程序中执行,检视执行时的环境行为(像是内存或档案状 态)及程序响应(例如错误讯息),以确认运作是否正常。动态检视的好处是可以预见程序代码在未来真实环境下的执行状况,及早修正避免,但测试条件的选择仍为 重点。在实作上,动态源码检测工具必须与开发环境紧密结合,因此在程序代码开发过程之外,开发人员必须花额外精神学习如何使用源码检测工具,进而查出源码检 测工具与开发工具之间的兼容性,并且及时除错。

近年来,静态源码检测法的概念由学术界研讨后,扬弃既有的模式比对法,而采用流程相依检视 法(flow-sensitive),成为新一代的源码检测主流。原理在于,依程控流程与数据控制流程来发觉异常问题的进入点,针对这些进入点检测是 否已经处理︰若发现未经处理,则标记为问题进入点(控制组件或数据)。在流程中,下游组件若使用到问题控制组件或问题数据,而且发现未经处理,则也将被标 上问题进入点(控制组件或数据),以此类推,直至检视至末码。

流程检视后,即可得到完整的问题进入点列表。更方便的是,程序设计人员可能只要解决最早的问题进入点,与其相关的问题进入点,都可获得解决,在追踪与修补上都更为直觉。
流 程检视的概念完全除去了漏报问题,而这方面的问题只发生在开发政策与人为决策上,而非程序语法本身。同时,静态源码检测也采取与开发小组隔开的独立运作的 方式,除了可将各独立模块的源码合并,进行整合检测外,也让开发人员不必担心工具操作或维护问题,专注于检测报告上,因此有越来越多厂商改采此类静态源码 检测工具。

除了开发过程外,开发完成后的检测亦日趋重要。因为作业需求的复杂化,许多程序开发逐渐由自建转为委外,但以往在验收时,常常只能着重于功能验测。随着资安问题日益严重,源码检测也开始被要求纳入重点验收项目。

因 为此类验测是由使用者角度出发,所以验收或稽核单位通常会采用人工与自动工具并行制。稽核员将程序代码送入自动工具中,针对产出报告中的弱点人工逐一验证确 认,然后再交由承包商修复复检,以快速达到验测目的。而在稽核单位与承包商均无法确实修复时,源码检测专家也可提供修复协助或咨询,目的均在于设法避免程 式码中的资安问题。

弱点扫描的目标是系统错误
采用源码检测的同时,验收与稽核单位也会一并执行弱点扫描与渗透测试。源码检测着重在程序代码安全,弱点扫描则是着眼在环境与系统上的错误。

举 例而言,你的团队设计出「完全」安全的购物车程序,却因为系统管理者误将密码设成空白,或因为安装在旧版的网站服务器上,而遭入侵窜改,就像「百万金门三 夹墙」的故事一样,岂不倒霉?除了网页程序代码本身的问题之外,使用者设定疏漏与安装环境的强固性也是最常被入侵的环节,行之有年的弱点扫描就是最方便的检 查工具。

弱点扫描工具是以使用者角度来审视整个项目计划,不只是程序本身,也包含整个执行环境。传统弱点扫描工具只针对操作系统与网站伺 服器本身的问题,近年来网页安全意识抬头,专业的网页弱点扫描工具也逐渐兴起,IBM及HP等大厂都将网页弱点扫描工具纳入软件测试套件中。除了检查已知 的网站服务器漏洞外,网页弱点扫描工具主要作用是仿真恶意使用者的浏览行为,爬搜受测程序的所有连结后,对所有可输入的连结送出恶意数值,观察记录响应状 态。

网页弱点扫描工具也会猜测所有隐藏目录、管理后台、程序备份文件或数据库档案位置。对于可登入的页面,则进行密码猜测的工作,以便检测管理者的安全警觉性。弱点扫描由上层角度来找出整套系统的安全性,测试的出发点较为接近真实世界,是十分确实的黑箱测试工具。

以已知弱点为验证基础的渗透测试
而比弱点扫描更上一层的则为渗透测试。

传统对渗透测试的观念为验证所知弱点的可行性,以黑客或恶意使用者的角度对目标进行验证,分析受测系统的风险层级。许多渗透测试自动工具亦围绕此一传统观念写成,反而局限了渗透测试的目的,让终端使用者误以为渗透测试只针对软件厂商或系统开发商,而非找出整体问题。

事 实上,渗透测试所看的层面更广。渗透测试所针对的目标是受测系统与所有大环境的运作,像是程序中的逻辑问题(而非程序问题)、系统运作流程瑕疵、社交工程 漏洞等,都包含在渗透测试范畴内。举例而言,中国黑客最爱使用的「旁注攻击」,就是利用同一主机上的不同网站进行入侵。也许你提供的网站程序十分安全,但 安装于同一服务主机上的其它应用程序漏洞百出,致使主机遭到入侵,则你的程序再安全,也避无可避。再看另一个例子,刑事局曾破获一个案件,虚拟宝物商利用 游戏公司与电信公司间「小额付费机制」认证漏洞,大量诈买游戏点数换取虚拟货币,作为网络洗钱之用,这就是另一种跨系统的安全问题。也因此,渗透测试难以 被工具取代,必须使用人力协助进行。

渗透测试人员检视整个系统的运作逻辑,来思索可能侵入的点。例如:他们会模拟一般使用者登入,试图取 得其它使用者权限;或者是在网络上搜寻受测单位及人员的可用信息,像是使用员工邮件信箱,猜测后台登入名称;他们也会将受测目标公司的英文名称、地址或管 理者宠物的小名,加入密码猜测字典中;或者是寄出信件给程序开发人员或管理者,骗取源码或登入密码;渗透测试人员会试图在上传页面中上传木马,看看网页程 式是否未过滤或扫毒。

上述这些都是渗透测试时可能进行的活动,依受测目标的状况会产生各种不同的渗透测试脚本。渗透测试人员将自己视为黑客,用异于常人的观点来试探系统可靠度,从而找出所有潜在的威胁。

文章整理:
关键词: 弱点扫描,源码检测,渗透测试,程序设计

go to top
通过第三优先等级无障碍网页检测
   
网绎数码科技网页设计 地址:台北市复兴南路一段321号3楼 Tel: (02)2704-1758(代表号) Fax: (02)2704-0372 Email:e-service@eki.com.tw
网页设计程序设计网站规划虚拟主机与主机代管关于网绎我们的服务我们的客户无障碍网页网站优化SEO联络我们