五千年(敝帚自珍)

主题:黑客与许霆 -- yhz

共:💬73 🌺5 新:
分页树展主题 · 全看首页 上页
/ 5
下页 末页
  • 家园 黑客与许霆

    假如我是一个黑客,在某次使用网上银行交易的时候,发现了银行系统的一个漏洞(例如说什么缓冲区溢出之类的)。然后我利用了这个漏洞,先后170次获取(或者转移)17万现金。

    那么,我的行为是属于“不当得利”呢?还是属于“非法侵入的盗窃”呢?

    许霆利用了ATM机器的故障,我利用了网上银行的漏洞;

    许霆是“正当操作”,那我利用银行提供的网上银行API和协议也是进行“正当操作”;

    许霆通过操作银行的ATM机来获得那些钱的,没有进入金库之类的,那我也是利用自己的鼠标键盘,也没有进入金库之类的;

    许霆用自己的银行卡操作,我也用我自己的帐户名和密码操作;

    …………

    • 家园 怎么能一样呢?

      〉〉许霆是“正当操作”,那我利用银行提供的网上银行API和协议也是进行“正当操作

      网上银行API的使用,是有授权的。

      银行终端程序的开发商才有。

      你没有。

      你这是违法。

      银行的网银条款里约定了,必须使用官方版的终端程序,你使用自己弄来的非法程序访问网银,这也是违法。

      许霆使用的是官方的终端,利用官方界面,进行的当然是合法操作。

      这跟你所描述的行为,完全不一样。

      • 家园 说得对
      • 家园 关键是这些行为如何取证?

        在法律上,无法取证的事实不能作为证据。

        即使我真的分析了API,也真的伪造了客户端。

        那你在法庭上,能举出什么证据证明我分析了API而不是误打误撞的?能举出什么证据证明我伪造了客户端而不是直接使用银行自己提供的客户端?银行敢保证自己提供的客户端能不出一点bug?要是真的能保证,那么许某人也就根本不会碰上这档子事了。

        那么,如果没有办法为我的这些行为举证,那么在法庭上,就无法认定我实施了这样的行为。

        那么,不管实际情况如何,至少在法律上,我就和许某人一样,我是合法操作的。

        • 家园 客户端有bug,是可以再现的,您做出来的“bug”,只有您特有

          比如访问纪录log,银行留着吧。

          用标准的银行官方版客户端做同样操作,你无法作出同样的log来,就说明你用的不是官方版客户端。这跟银行版客户端有没有bug毫不相干——有bug的客户端,一样能够再现bug,而你无法用银行的客户端再现出你所制造的“bug”来。

          接下去就是对你的搜查

          调查你有没有编制过非法客户端了

          不过我看就算你把罪证删除干净,恐怕也不会对你有什么帮助。因为只从上面那条来看,你就已经够定罪的了

          实在不行,我给你机器里放进去一个“非官方版客户端”,你有脾气么?......比玩赖的话,你又怎么证明这个非法客户端不是你编制的呢?

          • 家园 制造壁垒和举证是银行和制造商的责任。

            象ATM用的都是专用网。要模拟ATM机,首先要能进入这个网络,要知道协议格式。还要知道加密和混淆算法。不是那么容易的事。

            网银也一样。有的是手段来控制你。协议加密+USB-KEY这两个就够你破解n年(n>10000)的。

            楼主其实就是混淆了User Interface和Machine Interface的区别。这是Interface之间的层次关系。两层Interface之间存在壁垒。这个壁垒是人为制造出来的。为的就是杜绝EndUser有/无意进入上一层Interface的机会。

            这个1:1000的ATM,问题应该是出在ATM机的钱箱上,或者是程序做的不严谨。某一个模块Crash掉了没有发现。从事故责任上说纯属设备制造商的责任,和银行服务端没关系。和非法客户端更加扯不上关系。

            • 家园 你说的这是最理想的情况

              楼主其实就是混淆了User Interface和Machine Interface的区别。这是Interface之间的层次关系。两层Interface之间存在壁垒。这个壁垒是人为制造出来的。为的就是杜绝 EndUser有/无意进入上一层Interface的机会。

              设计系统的,谁都希望完全达到这个目的。

              但是,系统大了复杂了,谁又能严格保证这个壁垒在任何情况下都有效?

              在系统实践中,对这种人为壁垒的最严重破坏,往往就是人本身。例如说某些操作人员图方便,违反操作规程等等。

              谁都无法给出某个系统安全子系统在任何情况下有效,而且可以防范任何已知未知的攻击手法的清晰的、严谨的、有效的证明。

              只要这个证明不存在,那么理论上都有突破这个安全子系统的可能性。

              只要我有这个可能性,你别管从概率上来说我要试多少年,反正我一下子真主安拉、上帝耶稣、如来佛祖一齐现身保佑,我一次就碰出来了,你也没办法反驳。概率只研究大量样本之间的宏观行为表现,对于孤立样本,概率是没有意义的。

              至于说制造商的责任,这是显然的,所以我根本就没想在这里讨论这个。

              • 家园 不存在一个完美的系统,但存在一个完美的操作

                如果操作人员违犯操作手册引起系统错误。那么是他的责任。这就象酒后开车撞树肯定是司机的责任一样。不能说是车的责任,或者是被撞的行道树的责任。

                但如果操作人员没有违犯操作手册。那就是系统制造商的责任。就象被酒后开车的司机撞了一下。肯定是他的责任。

                至于系统本身。

                首先要能保证正常操作下正常的运行。不然叫做没有实现。要打0分的。

                其次要能尽量做到识别非正常操作,然后告警或者锁定或者其它什么对策。比如ATM机要能识别取款金额大于账户内现有金额,then alert。这叫做对输入的校验。这个部分做好才能打60分。

                再次就是能在错误和崩溃情况下记录现场和恢复等。这叫做系统的健壮性。这些对一般系统来说是加分题。对银行这样的涉钱敏感系统来说就是必答题。不然,我就要联想一下系统采购是不是有猫腻了。

                许案里。许的操作完全合法(针对ATM系统来说)。唯一“不合法”的输入就是他取钱的金额大于他现有的金额。但验证这一表达式不是许的义务。相反是ATM系统的责任。所以许某在ATM上的操作不是一次攻击。

                系统没有验证这个输入是否合法,或者说系统没有发现自己的某部分实际上已经Crash掉了,导致验证错误。这只能说明系统非常之不健壮。

                • 家园 你完全偏离了讨论的中心

                  我从来没有否认ATM系统有问题,而且出了问题。

                  但是ATM系统有问题,出了问题,不等于就可以利用它来获取非法利益。

                  例如说假如你家大门的锁是假的,任何一把钥匙都能打开。有一天一个小偷去你家,用随便一把钥匙打开了你家大门,然后拿走了很多东西。

                  之后,小偷的解释是:

                  如果操作人员违犯开锁步骤引起系统错误。那么是他的责任。这就象酒后开车撞树肯定是司机的责任一样。不能说是车的责任,或者是被撞的行道树的责任。

                  但如果操作人员没有违犯开锁步骤。那就是锁的制造商的责任。就象被酒后开车的司机撞了一下。肯定是他的责任。

                  首先要能保证正常操作下正常的锁能打开。不然叫做没有实现。要打0分的。

                  其次要能尽量做到识别不同钥匙的开锁,然后告警或者锁定或者其它什么对策。比如要能识别不正确的钥匙,then alert。这叫做对钥匙的校验。这个部分做好才能打60分。

                  再次就是能在钥匙错误和崩溃情况下记录现场和恢复等。这叫做锁的健壮性。这些对一般系统来说是加分题。对你家大门这样的涉钱敏感系统来说就是必答题。不然,我就要联想一下你家锁的采购是不是有猫腻了。

                  在小偷的案里。小偷的开锁操作完全合法(针对这把锁来说)。唯一“不合法”的就是小偷的钥匙不是正确的钥匙。但验证这一钥匙不是小偷的义务。相反是这把锁的责任。所以小偷在这把锁上的操作不是一次攻击。

                  这把锁没有验证这个钥匙是否合法,或者说这把锁没有发现正在尝试打开的钥匙是错的,导致开锁错误。这只能说明这把锁非常之不健壮。

                  OK

                  辩解完毕。

                  发现什么了吗?

                  小偷说了半天,都在说这把锁和锁的商的问题。没错,他们是有责任。

                  但是他们的责任不能抵消小偷去你家偷东西的责任。

                  许的案子同理。

                  • 家园 呵呵。这位童鞋显然知道我一看花花绿绿就头疼。

                    用“随便的一把钥匙”开锁拿走东西的自然是贼。不过,要是用原装的钥匙开锁再拿走东西的就未必是了。如果用的是原装的钥匙,开锁的人恰好又是这把钥匙的合法主人。那又如何?

                    我前头已经说过。

                    1、使用服务商提供或者认可的终端

                    2、在服务商允许的操作范围内操作

                    3、未主动修改终端至服务端系统之任一环节

                    比如对锁来说,Lock or Unlock就是服务,钥匙就是制造商提供并认可的“终端”。把钥匙插进钥匙孔是允许的操作范围。用钥匙当橇棍橇锁就是不允许的操作范围。这样说对么?

                    • 家园 你的解释更有问题

                      用“随便的一把钥匙”开锁拿走东西的自然是贼。不过,要是用原装的钥匙开锁再拿走东西的就未必是了。如果用的是原装的钥匙,开锁的人恰好又是这把钥匙的合法主人。那又如何?

                      还是一样。

                      盗窃与否,关键看你拿走的东西是否属于你的。

                      就好比有人寄托了点东西在你的保管箱里,但是你用你自己的钥匙在他不知情的情况下,打开保管箱拿走了东西,那又如何?

                      • 家园 我说过了,我不下是否是盗窃这个结论

                        我只是说明许的操作不是对ATM系统的攻击。尤其不是您在主帖里所举的例子那样。

                        至于公共保险箱的例子,这恐怕和许VS银行案例不太一样。

                        比如,有这样一个关于“我”的故事。

                        我的朋友A知道我在某地有保险箱一口,地点相当之安全,只有我有钥匙。与是他把贵重物品托付我保管。我则见财忘义拿了他的财产,兴许还拐了他老婆,跑了!这把他气的吐血而亡。

                        这里头有一个委托与被委托的关系。我的朋友A委托我代替他保管财物若干。我则同意为他保管。这一刻,一个伟大而要命的契约诞生了。我有义务为A君保管财物,而且不能侵吞。不然就是盗窃无疑。

                        那么,许和银行,许和其它储户之间有没有这样的要命契约呢?

                    • 家园 利用漏洞非法拿钱难道不是盗窃?

                      不管这个atm出问题是人为的还是机器自身的bug,只要利用了atm的正常工作状态的漏洞拿了钱,哪怕一切操作都是合法的都不能说是合法的。

                      而且许的第一次取款的确不能算作盗窃,因为许不知道atm有问题,但是在许知道有漏洞后继续取款就是利用漏洞盗窃。

分页树展主题 · 全看首页 上页
/ 5
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河