楼主: xinkede

[转载] ABAP程序中的七大危险漏洞

[复制链接]
论坛徽章:
2
ERP板块每日发贴之星
日期:2010-07-28 01:01:01ITPUB9周年纪念徽章
日期:2010-10-08 09:31:21
11#
 楼主| 发表于 2010-7-27 11:17 | 只看该作者
上面这些,只是选择了ABAP程序漏洞中一小部分进行了介绍。大部分都是因编程疏忽、单纯无知的错误或恶意代码而引起的程序漏洞。这些程序漏洞,能够通过仔细的逐行的代码检查来发现。然而,通过人工进行代码检查可是相当耗时的,因为,一个公司里定制开发的ABAP代码库中会有成千上万行的ABAP代码!

如前所述,大约80%的SAP客户都有自己定制开发的程序。这些程序大部分都是用ABAP或WebDynpro 来开发。这些定制开发过程中的质量保证流程通常只是在将程序发布到生产环境前,进行功能性的质量检查。而对跨站脚本、未授权检查、SQL注入等安全漏洞方面进行的检查,却大部分都没有进行过。

一些客户会希望通过一些黑盒测试来发现大部分关键的安全漏洞。但是,黑盒测试只能确认一部分问题。

广告内容删除!

[ 本帖最后由 xinkede 于 2010-7-27 15:08 编辑 ]

使用道具 举报

回复
论坛徽章:
2
ERP板块每日发贴之星
日期:2010-07-28 01:01:01ITPUB9周年纪念徽章
日期:2010-10-08 09:31:21
12#
 楼主| 发表于 2010-7-27 11:19 | 只看该作者
全文完。

使用道具 举报

回复
论坛徽章:
131
乌索普
日期:2017-09-26 13:06:30马上加薪
日期:2014-11-22 01:34:242014年世界杯参赛球队: 尼日利亚
日期:2014-06-17 15:23:23马上有对象
日期:2014-05-11 19:35:172014年新春福章
日期:2014-04-04 16:16:58马上有对象
日期:2014-03-08 16:50:54马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14
13#
发表于 2010-7-27 11:25 | 只看该作者
原帖由 xinkede 于 2010-7-27 10:58 发表
常见的ABAP漏洞

  ABAP程序的漏洞很难被标准编译器或代码分析器检测到,因为这些漏洞并不是因语法错误产生的,它们更像是普通的编程步骤或一些预置程序,这些预置可能是开发者的疏忽,也可能是开发者故意留在系统中以备以后利用。我们一起来看看这些常见ABAP程序漏洞:

SQL Injection
定义
  SQL注入是一种攻击应用服务器或web网站的方式,是通过尝试在普通用户的输入内容中嵌入SQL语句,来操纵Open SQL语句的执行内容。下面的例子演示了一个普通的SQL语句是如何被用于进行SQL注入攻击的:

正常SQL语句
SELECT * FROM table WHERE name = 'userinput'.


被攻击者用SQL注入修改后的语句
SELECT * FROM table
WHERE name = ' a'; DROP TABLE users;
             SELECT *
               FROM  table1
             WHERE name = '%''.


上面的示例中,攻击者没有输入应用或web网站的用户名,而是使用了SQL注入攻击,用红色部分嵌入SQL的文本替换了用户名。这样,SQL语句的查询结果就从简单的读取用户名与用户输入相匹配的数据,变成了先读取用户名是’a’的数据,然后再删除用户表,最后再读取表’table1’中的所有数据。攻击者已经很轻松地获取到了未授权的特定表的数据,还删除了包含所有用户信息的表。

对业务有何影响?

此漏洞会导致数据被破坏或SAP数据库中的数据被恶意篡改。这也会使公司信誉受损,并因此影响公司收益。举例说明SQL注入攻击者会做些什么事情:
攻击者使用你们公司的在线商店来购买产品。如果在付款流程中的某个web页面不够安全,攻击者用下面的语句来替换他的用户名:
a'; SELECT *
      FROM  CreditCardInfo
      WHERE name = '%'
这样,攻击者就能成功地获取了您公司所有注册用户的信用卡信息。

如何修复漏洞?
在ABAP代码中,用户输入的所有内容都应该在插入于SQL语句前进行验证和清理,以便移除伪装成用户输入的各种恶意代码和命令。

那个编程语言没这个漏洞?写文章的人有脑子不?

使用道具 举报

回复
论坛徽章:
131
乌索普
日期:2017-09-26 13:06:30马上加薪
日期:2014-11-22 01:34:242014年世界杯参赛球队: 尼日利亚
日期:2014-06-17 15:23:23马上有对象
日期:2014-05-11 19:35:172014年新春福章
日期:2014-04-04 16:16:58马上有对象
日期:2014-03-08 16:50:54马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14
14#
发表于 2010-7-27 11:27 | 只看该作者
原帖由 xinkede 于 2010-7-27 11:02 发表
未进行授权检查

定义
  在ABAP程序或报表程序中,能够调用SAP事务处理命令。通常,这些事务处理命令是在SAP GUI客户端中被调用的,而且需要用户拥有执行命令所必需的权限。但是,在ABAP代码中,如果开发者在调用前没有明确的进行权限检查,那么无论当前用户是否有执行权限,上面的SAP事务处理命令都会被执行。下面的例子演示了调用SAP事物处理命令而没有进行权限检查:
    CALL TRANSACTION ‘SU10’.
上面这行ABAP代码调用了SAP事务处理命令’SU01’——用来集中管理维护用户的命令,却没有对当前用户是否有权执行进行检查。

对业务有何影响?
这一漏洞将导致未经授权地执行SAP事务处理命令,进而非法的访问SAP数据,甚至篡改数据。而且,机密数据丢失或公司系统被渗透,将导致客户信心下降。客户信心动摇又将会长期影响公司收益。在大部分这样的案例中,这样操作还是违反法律规定的。下面这个例子说明未进行授权检查会怎样:

一个普通用户执行上面的ABAP 程序,到了运行事务代码’SU01’那一步,这个用户本身是没有权限执行’SU01’的,但是因为这个ABAP代码没有授权检查,他现在却获得了这种权限,这样做是绝对违反法律规定的。

如何修复漏洞?
  在ABAP代码中所有调用SAP事务处理命令的地方,都需要事先进行详细的授权检查,以确认当前用户是否拥有执行此命令所必须的权限。这个修复上面ABAP代码的简单方法是,在原来的代码:
        CALL TRANSACTION ‘SU10’.
增加一段AUTHORITY-CHECK代码:
        AUTHORITY-CHECK OBJECT 'S_TCODE
               ID 'TCD'
               FIELD 'SU10'.
IF sy-subrc = 0.
CALL TRANSACTION 'SU10'.
ENDIF.
这样就可以在调用前确定当前用户是否有权执行。

同样, 这个abap有关系吗? 什么不语言不是这样?

使用道具 举报

回复
论坛徽章:
131
乌索普
日期:2017-09-26 13:06:30马上加薪
日期:2014-11-22 01:34:242014年世界杯参赛球队: 尼日利亚
日期:2014-06-17 15:23:23马上有对象
日期:2014-05-11 19:35:172014年新春福章
日期:2014-04-04 16:16:58马上有对象
日期:2014-03-08 16:50:54马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14
15#
发表于 2010-7-27 11:27 | 只看该作者
sb文章

使用道具 举报

回复
论坛徽章:
2
ERP板块每日发贴之星
日期:2010-07-28 01:01:01ITPUB9周年纪念徽章
日期:2010-10-08 09:31:21
16#
 楼主| 发表于 2010-7-27 12:46 | 只看该作者
兄弟,你是否遇到什么挫折了,怎么今天火气这么大啊?

这篇文章好歹也是我费了不少力气粘贴过来的,多少也给点面子吧,上来就给个SB的评价,让我感到很难过。

文章中提到的问题,别的系统,环境中也存在,是否就证明ABAP没有问题了?如果是一个商用的软件,不管你是什么类型的系统,被爆出有这些问题,都是要打回去修改的。如果你以前开发的系统从不需要考虑这些问题,并不是说这些问题不存在,而是对程序的要求不高罢了。

有问题咱们可以心平气和的讨论,以后不希望动不动就用SB来评论别人的文章。

使用道具 举报

回复
论坛徽章:
64
状元
日期:2015-07-20 15:43:53榜眼
日期:2015-07-16 12:57:31探花
日期:2015-07-06 10:48:48进士
日期:2015-06-25 16:41:54举人
日期:2015-06-18 09:00:04秀才
日期:2015-08-06 13:55:21秀才
日期:2015-06-30 10:57:59秀才
日期:2015-07-17 10:06:26秀才
日期:2015-07-20 08:54:46秀才
日期:2015-07-20 09:00:26
17#
发表于 2010-7-27 13:41 | 只看该作者
說白了  就為了後面的廣告.

使用道具 举报

回复
论坛徽章:
6
2011新春纪念徽章
日期:2011-02-18 11:42:49ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282012新春纪念徽章
日期:2012-01-04 11:50:44奥运会纪念徽章:帆船
日期:2012-10-22 11:31:132014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11
18#
发表于 2010-7-27 14:23 | 只看该作者
广告贴。这种错误不是ABAP造成的,事实上,数据库对开发人员不可能做到完全隔离,而SAP在这方面已经比几乎所有对手做得好了

使用道具 举报

回复
论坛徽章:
12
2008新春纪念徽章
日期:2008-02-13 12:43:032011新春纪念徽章
日期:2011-02-18 11:43:33BLOG每日发帖之星
日期:2010-01-27 01:01:09祖国60周年纪念徽章
日期:2009-10-09 08:28:00ITPUB8周年纪念徽章
日期:2009-09-27 10:21:22BLOG每日发帖之星
日期:2009-07-09 01:01:03BLOG每日发帖之星
日期:2009-07-07 01:01:02BLOG每日发帖之星
日期:2009-05-08 01:01:06BLOG每日发帖之星
日期:2009-03-10 01:01:07BLOG每日发帖之星
日期:2008-11-20 01:01:05
19#
发表于 2010-7-27 14:35 | 只看该作者

使用道具 举报

回复
论坛徽章:
2
ERP板块每日发贴之星
日期:2010-07-28 01:01:01ITPUB9周年纪念徽章
日期:2010-10-08 09:31:21
20#
 楼主| 发表于 2010-7-27 15:07 | 只看该作者
唉。各位兄弟如果认为是广告贴,那就是广告贴吧。

我把后面的公司介绍,联系方式什么的删掉就好了。

事实上,SAP在产品发布前,自己也在用这个工具检查的ABAP代码。不相信的话自己去SDN网站上security forum去看看。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表