找回密码
 立即注册
搜索
查看: 3308|回复: 22

[多平台] 关于游戏开发人员在代码中故意破坏安全性的问题

[复制链接]
     
发表于 2015-1-20 13:34 | 显示全部楼层 |阅读模式
看了《立体忍者》漏洞介绍,一个重要原因是,本来有个函数是很安全的,当要拷贝的数据的长度大于目标内存块长度的时候就会拒绝拷贝,但是游戏开发人员用额外的参数强制忽略了这个安全性检查,所以直接被用来溢出攻击…

但是不是说主机游戏的一切内容都要通过第一方审核之后才能发布么,所以很多游戏连发个补丁都非常不容易…

那么这种游戏开发人员故意造成的安全漏洞到底有没有人管?是谁来管?
回复

使用道具 举报

     
发表于 2015-1-20 13:39 | 显示全部楼层
本帖最后由 w酱 于 2015-1-20 13:40 编辑

游戏开发人员开发的时候可不一定觉得这是安全漏洞,没发现的自然没人管,任天堂审核也不会找制作者拿源码
回复

使用道具 举报

     
发表于 2015-1-20 13:39 | 显示全部楼层
我想起个事,一开始是说9.2需要用到这个游戏才能进自制系统,但是目前GW利用的漏洞不需要游戏也可以进自制系统,是因为发现了新的漏洞还是?
回复

使用道具 举报

     
 楼主| 发表于 2015-1-20 13:45 | 显示全部楼层
w酱 发表于 2015-1-20 13:39
游戏开发人员开发的时候可不一定觉得这是安全漏洞,没发现的自然没人管,任天堂审核也不会找制作者拿源码 ...

默认有安全性检查的函数被故意关闭安全性检查怎么说都是人为制造漏洞吧…

第一方不检查源代码的话那这检查还有什么用呢…
回复

使用道具 举报

     
 楼主| 发表于 2015-1-20 13:47 | 显示全部楼层
rhotov 发表于 2015-1-20 13:39
我想起个事,一开始是说9.2需要用到这个游戏才能进自制系统,但是目前GW利用的漏洞不需要游戏也可以进自制 ...

http://smealum.net/?p=517

Gateway 是直接从第 3 步开始,后续是什么我还没看到文章介绍…
回复

使用道具 举报

     
发表于 2015-1-20 14:03 | 显示全部楼层
BoomerCE 发表于 2015-1-20 13:45
默认有安全性检查的函数被故意关闭安全性检查怎么说都是人为制造漏洞吧…

第一方不检查源代码的话那这检 ...

要检查源码这工程太浩大了= =
回复

使用道具 举报

     
发表于 2015-1-20 14:08 | 显示全部楼层
谁有空给你查源码啊
回复

使用道具 举报

发表于 2015-1-20 14:11 | 显示全部楼层
你想太多,程序猿在赶工加班的压力之下什么事都干得出来
回复

使用道具 举报

     
发表于 2015-1-20 14:11 | 显示全部楼层
本帖最后由 w酱 于 2015-1-20 14:19 编辑
BoomerCE 发表于 2015-1-20 13:45
默认有安全性检查的函数被故意关闭安全性检查怎么说都是人为制造漏洞吧…

第一方不检查源代码的话那这检 ...

这是代码水平和思路问题,游戏审核又不会审核代码质量
就像焚化部审游戏一样,谁管你游戏内是怎么进行数据交换的啊......
回复

使用道具 举报

     
发表于 2015-1-20 14:17 | 显示全部楼层
多半不是故意的,某次查错后忘记改回来了
回复

使用道具 举报

     
发表于 2015-1-20 14:20 | 显示全部楼层
好像作者说过,还有其他游戏能用这个漏洞
回复

使用道具 举报

     
 楼主| 发表于 2015-1-20 14:26 | 显示全部楼层
w酱 发表于 2015-1-20 14:11
这是代码水平和思路问题,游戏审核又不会审核代码质量
就像焚化部审游戏一样,谁管你游戏内是怎么进行数据 ...

既然不检查源代码…为什么给游戏出补丁是非常困难的事情呢?
回复

使用道具 举报

     
 楼主| 发表于 2015-1-20 14:28 | 显示全部楼层
黄昏之月 发表于 2015-1-20 14:17
多半不是故意的,某次查错后忘记改回来了

这个解释很有道理…不过就《立体忍者》来说,游戏中凡是用到这个函数的地方,大部分都关闭了安全性检查,可能不是一次查错的问题…
回复

使用道具 举报

     
 楼主| 发表于 2015-1-20 14:30 | 显示全部楼层
endrollex 发表于 2015-1-20 14:20
好像作者说过,还有其他游戏能用这个漏洞

看 5# 回复,9.3 系统之后继续利用这个漏洞的话,至少 Gateway 3DS 这样的利用程度一时半会可能是不行
回复

使用道具 举报

     
发表于 2015-1-20 14:34 | 显示全部楼层
BoomerCE 发表于 2015-1-20 14:26
既然不检查源代码…为什么给游戏出补丁是非常困难的事情呢?

补丁需要和主机运营方协商,推送的时间和补丁容量都要考虑,没多大困难,一周到一个月肯定能推送了。
不过某些厂商就是不想打补丁还要到处找借口而已,比如闪轨1
回复

使用道具 举报

     
 楼主| 发表于 2015-1-20 14:47 | 显示全部楼层
w酱 发表于 2015-1-20 14:34
补丁需要和主机运营方协商,推送的时间和补丁容量都要考虑,没多大困难,一周到一个月肯定能推送了。
不过 ...

话说《微软纸牌精选》《微软麻将》《微软扫雷》这自家的东西推送个修复性补丁前后用去近一年…
回复

使用道具 举报

     
发表于 2015-1-20 14:57 来自手机 | 显示全部楼层
lz一看就知道不是程序猿
回复

使用道具 举报

发表于 2015-1-20 15:06 | 显示全部楼层
lz一看就知道不是程序猿

大多现有平台的所有可能出溢出问题的函数都提供安全检测机制 为毛还是没一套系统能完全躲过各种溢出漏洞?
从最早的snprintf偷懒写成sprintf开始就都是一个道理
故意忽略安全检测不是因为故意要引入BUG 而是根本不曾考虑过这里忽略安全检测会出BUG
lz可知一套代码要做到健全的错误处理机制比起只是实现功能要难多少倍
回复

使用道具 举报

     
发表于 2015-1-20 15:41 来自手机 | 显示全部楼层
第一方审查代码?别逗了,别人的代码那根本不是人能看的东西。
    —— from S1 Nyan (NOKIA Lumia 920T)来自: WindowsPhone客户端
回复

使用道具 举报

头像被屏蔽
     
发表于 2015-1-20 20:28 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2015-1-20 20:47 | 显示全部楼层
挺正常的,比如拿结构中最后一个元素是byData[0]来当作指针用的。后面的空间可能是new出来的
这种情况,可能用内存拷贝时就会被对应的函数给制止掉,如果能屏蔽对应的报错(警告?),估计程序猿就会屏蔽了

回复

使用道具 举报

发表于 2015-1-20 22:02 | 显示全部楼层
这个跟程序员本人的修为也有关系

因为很多时候你要想办法绕过现存的限制,比如说内存不足啊或者寻址速度太慢啊之类的,这个时候你就要做一些非正常的事情
但这么做的话有时候会有副作用,比如连安全保护一起给绕过去了
但水平不够的程序员就意识不到

或者另一些时候是,你根本不知道技术已经进步了还可以这么用,于是你就用了课堂里教你的古代写法,但那些写法之所以只是课堂教就是因为有各种副作用,之类

至于去审核别人的源代码,别逗了,绝对不可能
现在游戏大部分代码都要用在绘图上
绘图代码在大多数情况下都是一大堆矩阵乘来乘去
几万行代码里你要找到一个未知错误的指针,绝对没可能的吧…………
回复

使用道具 举报

头像被屏蔽
     
发表于 2015-1-20 23:11 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2025-8-28 22:24 , Processed in 0.081772 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表