软件的安全性应从哪几个方面去测试?
一、用户认证安全的测试:
1、明确区分系统中不同用户权限
2、系统中会不会出现用户冲突
3、系统会不会因用户的权限的改变造成混乱
4、用户登陆密码是否是可见、可复制
5、是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统)
6、用户退出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入系统
二、系统网络安全的测试
1、测试采取的防护措施是否正确装配好,有关系统的补丁是否打上
2、模拟非授权攻击,看防护系统是否坚固
3、采用成熟的网络漏洞检查工具检查系统相关漏洞(即用最专业的黑客攻击工具攻击试一下,现在最常用的是 NBSI 系列和 IPhacker IP )
4、采用各种木马检查工具检查系统木马情况
5、采用各种防外挂工具检查系统各组程序的客外挂漏洞
三、 数据库安全测试:
1、系统数据是否机密(比如对银行系统,这一点就特别重要,一般的网站就没有太高要求)
2、系统数据的完整性(我刚刚结束的企业实名核查服务系统中就曾存在数据的不完整,对于这个系统的功能实现有了障碍)
3、系统数据可管理性
4、系统数据的独立性
5、系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)
如何DOS下查看自己本机是否中了ARP攻击。怎么可以看出来。
开始_运行_cmd
在CMD下面输入: arp -a
然后再输入Arp -d
就这样,快速输入几次ARP -a再输入几次arp -d
然后看看第一排的网关的MAC地址每次是不是一样的?假如是一样的话,说明没有受到ARP攻击..
PS:当然,最好的办法还是安装ARP防御工具,或者启用防火墙的ARP欺骗防御
如何攻破软件
如何攻破软件 James A.Whittaker 摘要 本文讨论一系列用于发现软件设计与开发中的缺陷的方法(所谓的“攻击”)。这些攻击 都是手工、探索性的测试方式,设计和执行都是动态的、几乎不需要额外开销。这些攻击是 经过对上百个真实的软件缺陷进行研究并且抽象出他们的成因和现象之后构造出来的。经过 佛罗里达理工学院软件测试方向的学员两个学期的细化分析,已经归纳了数十个旨在发现缺 陷的攻击策略。这些攻击策略被证明非常受用,已经发现了上百个额外的缺点——都是由这 些攻击策略直接导致的——在短时间内对产品几乎没有任何了解的情况下。本文介绍上述攻 击策略的一个子集并说明他们是如何在已发布产品中发现真实缺陷。 简介 是什么成就了一名优秀的测试人员?是什么样的天赋使他们对bug 如此敏感?这样的 能力是可以传授的吗? 这些问题就是本文的主旨。我相信优秀的测试人员更多是后天造就而不是先天生成的, 事实上,多年下来许多测试人员自己似乎积累了一个攻击策略的标准库。每当他们面临测试 难题时就会重组手头的攻击策略,从而总是能够发现缺陷。尽管这些攻击策略很少被记录下 来,它们确确实实在手工测试和测试传承中扮演着重要的角色。 通过对真实的测试人员和现实缺陷的研究,我们开始着手文档化这一财富。在本文中, 我们探索来自于该项工程的一部分成果。下一个挑战是对这些攻击施行自动化,找到有效使 用的具体策略。 攻击无异于以下三个大类: 输入/输出攻击 数据攻击 运算攻击 每个类型中都有特定类型的攻击,它们导致十分有趣的软件故障。在之后的部分我以具 体的缺陷为例介绍每个大类下的攻击类型。涉及到的bug 都来自于微软公司的产品。我认为 这不该被看作是一种反微软的行为。事实上,它作为软件行业霸主的事实使它自然而然地成 为了“众矢之的”。但不能就这样认为微软的产品相对于其他软件产商有更多的缺陷。本文 中提到的攻击策略几乎成功攻击过许多公司的软件产品,这些产品运行在你可以想到的任何 平台上。我的经验表明,不管开发人员开发的应用产品域是什么、使用的操作系统有什么差 异亦或是否发布源码,他们都在高频度地制造bugs。如果他们是web 开发人员,那就更不 用费心了,因为web 程序本身非常容易崩溃。 输入/输出攻击 针对输入/输出的攻击就是测试人员所说的“黑盒”测试,因为不需要任何有关内部数 据或计算的信息来支持测试执行。事实上,这是测试中最常见的一种,因为阅读源码不仅乏 味、费时,并且通常收益甚微,除非你知道自己到底在寻找什么类型的bug(我们将在接下 来的两部分内容里讨论什么是你应该试图寻找的)。 输入/输出攻击 单一输入攻击 迫使所有的报错信息出现 强制指定默认值 尝试所有可用的字符集 迫使输出区域大小改变 引发显示区域溢出 迫使屏幕刷新问题出现 输入值组合攻击 迫使无效输出出现 找出不能共存的输入值组合 输入序列攻击 迫使无效输出出现 多次重复同样的输入序列 单一输入攻击 这一类攻击是对使用单一输入(从变量输入的角度来说)的行为进行的检查。我们试图 发现在大部分数据都正常工作的情况下由一个单一的输入导致应用崩溃的情况。其实除了单 单从边界值上考虑以外还有很多别的方式来选择输入用例,特别是当你希望找到真正被开发 认可的bug,而不是仅仅作为未定义的需求而忽略掉。 首先给出一些看 似简单但不易施行的 建议: 确保所有的报错信息 都出现一遍。 不能使程序正常 地中止或结束的通常 就是所谓的bug。很多 报错信息仅仅是迫使程序停止来显示一条报错信息,然后接着执行下一条输入或者直到定时 器超时而已。但是,也有其他一些报错信息则是来自于被程序抛出和异常处理器被执行引发 的异常。异常处理器(或中央错误处理线程)因其指针突然改变而数据状态不产生相应变化, 通常会存在问题。异常处理器执行的瞬间,各种各样的数据问题接踵而至:文件未关闭、内 存未释放、数据未初始化。当控制重新回到主线程,很难判断错误处理器是在什么时刻被调 用,又会有怎样的遗留问题在等待粗心大意的开发人员:因为文件没有关闭导致打开文件失 败、在没有初始化前就开始使用数据。如果我们能确保在所有的报错信息都出现过之后系统 依然正常工作,那么也算是为用户省去了不少麻烦(更不用说我们的维护工程师了)。 图1 展示了我的学生在微软 Word 2000 中发现的一个有趣的bug,一条错误提示不知为 何连续出现了两次。这个bug 是在通过单一输入攻击错误处理线程的过程中发现的。 确保软件指定默认值。 开发人员通常不记得在用户输入越界或给参数设置不合理的值时指定默认的值。有时候 强制设立默认值意味着什么也不做——然而正因为想不到,这一举措甚至难倒了优秀的开发 人员。例如,在Word 2000 中,如下对话框中有一个选择框,当不对其做任何修改时再次打 开对话框,该控件将消失。对比左右图片中的对话框。你发现什么控件消失了吗? 有的时候指定默认值需要先改变值的当前设定,然后将其设定为一个不合理的值。这种 连续的转换保证了再转换成其他可用的值前是经过设置默认值。 尝试输入变量的所有可用的字符集。 有的输入问题很简单,特别是当你使用了类似$,%,#,引号等等字符时,这些字符在 许多编程语言中有特殊意义并且作为输入被读入时通常需要特殊处理。如果开发人员未考虑 这种情况,则这些输入可能导致程序的失败。 通过改变输入内容的多少引发输出区域的改变。 聚焦于输出本身是一种发现bug 颇有成效但是极少使用的方法。其思想是:先假定一种 表现为bug 的输出或者行为,然后寻找能够导致这种现场产生的输入。以上所述的一个简单 的攻击例子就是通过改变输入值和输入字符串的长度来引发输出区域大小的重新计算。 一个很好的概念性例子是将时钟的时间设置为9:59,然后等待它转到10:00。一开始显 示区域是4 个字符长度而后来是5。反过来,我们设定时间为12:59(5 个字符),然后等待 其转变为1:00(4 个字符)。开发人员通常只会对初始化为空白的情况进行处理而不曾考虑 到显示区域已有数据的情况下如何更新该区域以显示不同长度的数据。 举个例子,PowerPoint 中的“艺术字”功能中有个有趣的bug。假定我们输入下图中的 一个长的字符串。 可以发现因为字符串太长,并不是整个字符串都能显示出来。但这不是问题的关键。点 击确认按钮时触发两个事件。首先,程序计算出需要的输出区域大小,然后将输入的文字填 充进去。现在,我们编辑该字符串,将它改为单个字符。 可以发现尽管现在只有单个字符,字体大小也没有改变,但显示区域大小却没有发生改 变。进一步看。如果再次编辑该字符串为多行的字符串,输出结果更有意思。 我想这部分已经介绍得比较清楚了,我们将进入下一部分。 确保对显示区域的边界的检查。 这是基于输出的另一种攻击思路,与之前的十分类似。然而,不同于之前着力于导致显 示区域内部出错,这次我们将精力集中在显示区域的外部。并且显示区域将不再重新计算显 示边界而仅仅是考虑边界溢出。 再以PowerPoint 为例,我们可以先画一个文本框,然后输入一个带上标的字符串。放 大该字符串的字体使上标的上半部分被截断。这一问题将连同之后的相关问题一起说明。 引发屏幕刷新问题。 这是使用windows 图形用户界面的用户会遇到的主要问题。对开发人员来说,更是一 个大问题:过度的刷新将导致程序变慢,而不刷新又会导致大大小小的问题,小至要求用户 强制刷新,大到导致用户的操作失败。 通常通过在屏幕上添加、删除和移动元素来触发页面刷新。这将导致背景重新绘制,如 果页面不能正确、及时地作出相应,那么这就是通常意义上的bug。其中,尝试变化所移动 的元素的距离是一种较好的方式,可以移动一点点,接着移动一大截,移动一两次,接着移 动很多次。 接着说回上面例子中的带上标的字符串,试着每次用鼠标拖动它移动一些距离,就会发 现令人讨厌的问题,如下图所示。 在Office 2000 中 经常出现的另一个与 屏幕刷新相关的问题 是文本的异常消失。 这一讨厌的问题在 Word 的页面边界附近 出现。 输入值组合攻击 第二类输入/输出 bug 主要针对多个共 同作用或相互影响的输入。例如,一个通过两个参数调用的API,其中一个参数的取值建立 在另一个参数取值的基础上。通常,bug 正是出在值组合上,因为代码的逻辑关系复杂。 找出不能共存的输入值的组合。 那么哪些值的组合是有问题的?这个问题目前还处于积极研究中,但是我们已经找到了 一个特别有效地方法,那就是先确定期望获得的输出,然后试着去找到对应的输入值的组合。 尝试产生无效的输出。 这是一种适用于测试人员对问题域十分清楚的有效攻击方法。例如,当你在测试一个计 算器并且清楚部分功能点的结果有限制时,试图找到超出范围的结果所对应的输入值组合是 值得的。但是,如果你不熟悉数学,那么这种努力很可能是浪费时间——你甚至可能将一个 不正确的结果当成正确的。 有时候windows 本身会给出提示,告诉你哪些输入是相互关联的。此时,测试人员可 以去测试这些值的范围,并且尝试触犯既定的关系。 输入序列攻击 软件中的输入就像一种正式的语言。单一的输入相当于组成语言的字母,输入的字符串 类似构成语言的句子。其中一些句子应该通过控件和输入区域的启用与禁用被过滤。通过尽 可能多地输入字符串、改变输入的顺序来测试这种问题。 选择导致无效输出的输入序列。 和上文描述这是一种找到问题输入组合的好方法一样,这同样是找出有问题的输入序列 的好方法。例如,当我们发现了Office 2000 中的一个导致文本消失的问题后,对PowerPoint 幻灯片中标题文本框进行攻击。如下的一组屏幕截图再现了一个特定的输入序列是如何导致 文本消失的。 有趣的是仅仅将文本框旋转180 度并不能发现这个bug。必须按照这样的操作顺序:旋 转180 度后,再旋转10 度(或者更多)。逆向执行以上操作并不能修正这一问题,每当点击 标题外部区域,该标题内容就会消失。 改变输入的顺序之所以善于发现bug 是因为很多操作自身成功执行的同时会遗留很多 问题,它们将导致之后的操作失败。对输入序列进行彻底的检查会暴露出很多这样的问题。 然而有时候,下面这种攻击表明:为了发现bug,根本不需要使用多种多样的输入序列。 多次重复同样的输入序列。 这种方式会对资源造成大规模占用,并且对存储数据空间造成压力,当然也包括发现其 他负面的遗留问题。遗憾的是,大多数应用程序并不清楚自身空间和时间的限制,而许多开 发人员倾向于假定资源总是足够可用的。 在Word 的公式编辑器中可以找到这方面的一个例子,程序本身似乎并不清楚它只能处 理10 层嵌套括号的计算。 数据攻击 数据是软件的命脉;如果你设法破坏了它,那么程序将不得不使用被破坏的数据,这之 后得到的就不是合理的结果。所以理解数据是如何、在何处建立是必要的。 从本质上讲,数据的存储是通过读取输入,然后将其存储在内部或者存储一些内部计算 的结果来实现的。因此,测试正是通过提供输入和执行计算来实现数据在应用程序中的传递。 数据攻击遵循以下简单原则。 数据攻击 变量值攻击 1.存储不正确的数据类型 2.使数据值超过允许的范围 数据单元大小攻击 3.溢出输入缓冲区 4.存储过多的值 5.存储太少的值 数据访问攻击 6.找出同一数据的不同修改方式 变量值攻击 这一类的攻击需要对内部存储的数据对象的数据类型和合法值进行检查。如果有对源码 的权限则这些信息可以轻易得到,但是,通过小小的探索性测试和对错误信息的关注也可以 确定大致的类型信息。 改变输入的数据类型来找出不匹配的类型。 在需要整数的区域输入字符(和类似的攻击)已经被证明十分有效,但随着现代编程语 言对类型检查和类型转换的处理变得容易,我们发现这样的攻击相对之前已经不再那么有 效。 使数据值超过允许的范围。 被存储的变量数据和输入的变量数据一样,这样的攻击方式同样适用。 数据单元大小攻击 第二类数据攻击旨在触发数据结构的溢出和下溢。换句话说。攻击试图打破预先设定的 数据对象的大小限制。 首先要说的就是典型的缓冲区溢出。 溢出输入缓冲区。 此处通过输入长字符串导致输入缓冲区溢出。这是黑客们偏好的攻击方式,因为有时候 应用程序在崩溃之后会继续执行进程。若一名黑客将一段可执行代码附在一个长字符串中输 入,程序很可能执行这段代码。 在Word 2000 中的一个缓冲区溢出问题就是这样一个可被利用的bug。此bug 被发现在 查找/替换功能中,如下所示。有趣的是,“查找”这一字段被合理地加以限制而“替换”没 有。 同一数据结构 存储过多的值。 复杂地数 据结构诸如数 组、矩阵和列表 在测试中不仅 仅要考虑存储 在其中的数值, 还要考虑存储 值的数目。 同一数据结构 存储过少的值。 当数据结 构允许增加和 删除信息时,通 常在做了n-1 次增加的同时穿插着或在其之后做n 次删除操作会导致攻击成功。 数据访问攻击 我的朋友Alan Jorgensen 喜欢用“右手不明左手所为”这句话来形容这一类bug。道理 很简单,但开发人员却常倒在这一类攻击下:在很多程序中通常任何任务都能通过多种途径 完成。对测试人员来说,这意味着同一个函数可以由多个入口来调用,这些入口都必须确保 该函数的初始条件得到满足。 一个极好的例子是我的学生在PowerPoint 中发现的表格数据大小相关的崩溃性bug。创 建表格时最大尺寸被限定为25×25。然而,可以创建一个25×25 的表格,然后为其添加行 和列——导致应用程序崩溃。这就是说,程序一方面不允许26×26 的表格存在而另一方面 却并不清楚这个规则的存在。 运算攻击 运算攻击 操作数攻击 使用非法操作数进行运算 找出非法操作数组合 结果攻击 使运算结果过大 使运算结果过小 功能相互作用攻击 找出共享数据不佳的功能 操作数攻击 这类攻击需要知道在一个或更多内部运算中操作数的数据类型和可用的值。如果有源码 权限则这些信息可以轻易获得。否则,测试人员必须尽最大努力去弄清楚正在进行的运算具 体是什么、使用的是什么数据类型。 触发由非法操作数引起的运算。 有时候输入或存储的数据处于合法的范围之中,但是在某些运算类型中却是非法的。被 0 除就是一个很好的例子。0 是一个合法的整数,但作为除法运算的除数却是非法的。 找出不能共存的操作数的组合。 涉及到一个以上操作数的运算不仅受制于上面的攻击,同时存在操作数冲突的可能性。 结果攻击 第二类运算攻击旨在造成存储运算结果的数据对象的溢出和下溢。 试图造成运算结果过大而存储失败。 就算是简单如y=x+1 这样的运算在数值边界上也常出问题。如果x 和y 都是2 比特的 整数并且x 的值为32768,则这一运算将失败,因为结果将会造成存储溢出。 试图造成运算结果过小而存储失败。 和上文相同,不同的是使用y=x-1 并且使x 的值为-32767。 功能相互作用攻击 文章中讨论的这最后一类攻击或许算是所有种类的鼻祖,可以用来区分测试菜鸟和专业 人员:功能的相互作用。问题没有什么新意:不同的应用程序功能共享同一数据空间。两种 功能的相互作用导致应用程序失败,不是因为对数据处理的设定不同,就是因为产生了不良 副作用。 但是哪些功能共享数据并且能够在冲突情况下实现数据转化目前还是测试领域中一个 开放的问题。目前我们正停留在不断地尝试阶段。下面这个例子足以说明情况。 这个例子给出了在Word 2000 中的同一页面上合并脚注和双列时出现的一个出人意料 的结果。问题在于:Word 从注释的引用点计算脚注的页面宽度。所以,若同一页面上存在 两条脚注,一条被处于双列位置的内容所引用,另一条则被处于单列位置的内容所引用,单 列脚注会将双列脚注挤到下一页面。同时被挤掉的还有引用点至页面底部间的文本。 下面的屏幕 截图形象地 说明了问题。 第二列的文 本 去 哪 里 了?连同脚 注一起处在 下一页。你会 任由文档像 这 样 显 示 吗?在找到解决方法(这意味着你得花时间去整理)前你将不得不忍受这一现状。 结论 简单遍历一遍上面罗列的21种攻击策略可以覆盖应用程序的大部分功能。事实上,施行 一次成功的攻击通常意味着尝试各种可能性,走过很多死胡同。但是仅仅因为部分这一类探 索性方法发现不了bug并不意味着它们没有用。首先,这段时间使用应用程序帮助测试人员 熟悉程序的各种功能,从而产生新的攻击思路。其次,测试通过是好的消息!它们表明,产 品是可靠的:尤其当这组测试是上面所说的恶意攻击。如果代码可以承受这样的测试过程, 它几乎可以应对用户作出的任何操作。 另外,永远不要低估了测试时怀揣一个具体目标的作用。我见过太多测试人员把时间浪 费在毫无目的地输入或者随机地调用API试图导致软件出错。实行测试意味着制定明确的目 标——基于会出错的点——然后设计测试用例来实践该目标。这样,每个测试用例都有目的 性并且进度可以被随时控制。 最后,记住,测试应该是有趣的。攻击这一比喻正是对测试的这一特性很好的诠释并且 还为愉快的消遣时光添加了些许作料。狩猎愉快!
法律中软件侵权如何界定?
如何界定网络侵权的“侵权行为地”2008年12月11日 星期四 10:51最近,发生在互联网上的各种侵害他人合法权益的行为不断发生,概括起来网络侵权案件主要集中在侵犯人格权和侵 犯知识产权两大类。侵犯人格权主要表现:一是侵犯名誉权,譬如在网上散布攻击他人的言论;二是侵犯姓名权,譬如未经他 人许可,以他人名义在网上从事民事行为;三是侵犯肖像权,譬如未经权利人许可,擅自将权利人的照片上传;四是侵犯隐私 权,譬如在网上公布他人隐私,泄露某些与个人相关的敏感消息等。网上侵犯知识产权的案例则以侵犯著作权为主,譬如在未 经著作权人许可的情况下,将其作品上传到网上,擅自从网上下载著作权人的作品进行营利等。
关于网上侵权问题,全国人大《关于维护互联网安全的决定》规定,“利用互联网侵犯他人合法权益,构成民事侵权 的,依法承担民事责任”。这个决定表明,网上侵权可以适用传统法律,追究侵权人的民事责任。根据民诉法第29条规定, 因侵权行为提起的诉讼,由侵权行为地或被告住所地法院管辖。关于“侵权行为地”的认定,最高法院司法解释说,侵权行为 地包括侵权行为实施地和侵权结果发生地。而互联网空间的全球性、虚拟性、非集中管理性、人机分离性等特征,使得它与传 统的物理空间有较大的差异。网络侵权行为地和传统侵权行为地相比较具有行为地的不唯一性、行为地的跨国性、行为地的模 糊性等特点,因此,如何确定网上侵权行为的“侵权行为地”变得比较复杂,是侵权行为人住所地、侵权信息编写地、侵权信 息上传地还是所使用的网络服务器所在地?而何处是侵权结果发生地——是否每一台能够浏览侵权内容的终端设备所在地都可 视为侵权结果发生地?
笔者结合最高法院的司法解释,将网络侵权的“侵权行为地”分为以下五类:
一、实施侵权行为的计算机终端设备所在地,也就是侵权信息编写上传地。
二、发布侵权内容的网络服务器所在地。与虚拟的网址相比,服务器位置所在地相对稳定,关联度高。由服务器所在 地法院管辖网络侵权纠纷案件,与传统的管辖权原则更容易融合。
三、其他提供链接服务的网站的服务器所在地。实践中,侵权信息一经上传,很快就会通过大量的链接而广泛传播, 这种传播与主动上传侵权信息有所不同。此时的侵权行为地如何界定?按照最高法院的司法解释,这时的侵权行为地应当以服 务器所在地址为标准。
四、发现侵权内容的计算机终端设备所在地。最高法院的司法解释是这样规定的:对难以确定侵权行为地和被告住所 地的,原告发现侵权内容的计算机终端设备所在地可以视为侵权行为地。因此,发现侵权内容的计算机终端设备所在地作为侵 权行为地有一个前置条件,就是“难以确定侵权行为地和被告住所地”,这样做的目的是防止侵权行为地的规定被泛化。
五、侵权结果发生地。由于互联网的特殊性,一条侵权信息可以瞬间传遍全球各个终端,因此,从理论上讲,在全球 任何地方都可以作为侵权结果发生地。所以,笔者认为,侵权结果发生地也必须有一个前置条件,就是“难以确定侵权行为地 和被告住所地”时,才可以适用。
不知道对你有没有帮助。
这是你要求的我又做了调查如下:
作为专业律师,在代理计算机软件侵权案的实际工作中,我们常常碰到这样的问题,原告指控被告的软件侵犯了自己的著作权,向法庭提供大量证据证明其主张,而被告也同时向法庭提供许多证据证明其软件不构成侵权。在原、被告双方均以证据证明自己的软件是独立开发完成的情况下,法官在庭审过程中通常采用什么样的方法和准则来判断被控软件侵权与否呢?毫无疑问,明确软件著作权的归属是关键,软件开发完成的时间是重要证据之一,只有先完成的软件才有资格指控后出现的软件产品存在侵权的嫌疑,至于后出现的软件产品是否真的构成侵权,却是有许多情况存在的。因为按照《中华人民共和国著作权法》的规定,计算机软件产品是受著作权法保护的,而著作权法明确规定著作权是由独立创作完成而取得的,与时间先后没有必然的联系。因此,法官通常依靠什么因素来认定计算机软件侵权案件的法律事实就成为案件胜诉与否的关键。
在实践中,我们都知道,计算机软件的侵权行为,一般有两种形式:一是复制程序的基本要素或结构,这一点是较容易证实的,因为复制即表明是完全的翻版,只要完全一样就构成侵权。二是按一定的规则、顺序只复制部分软件代码。在第二种情况下,法院在判定时通常要审查被告是否窃取了足够多的软件程序表达形式。实际操作中,这个问题就比较复杂、比较难判断,因为计算机软件产品究竟要被复制多少比例,才能确定发生了抄袭的侵权行为,并没有固定数量限定。当然,复制的数量越大,就越易于取得证明其是侵权行为的证据,但是被复制的数量达到什么程度就可以认定为侵权,司法实践中也不是很好确定的事情。
对于复制数量小的情况,目前法院大多采用的判定标准包括:
一是接触附加。依照这个准则,只要发现接触,任何复制都将被认为是一种侵权行为。但是,我们认为这种观点是有一定局限性的,因为它忽视了查证两个软件作品之间是否存在“实质性”相似,而且把对计算机软件的保护范围扩大到对计算机程序中包含的“思想”,这与我国新修订的《著作权法》和《计算机软件保护条例》的基本精神相违背。
二是要求对计算机软件程序进行两步分析。首先,法院必须确认在两个计算机软件程序中所体现的“思想”是否相同:如果不同,则不构成侵权;如果相同,那么第二步就应该设法查证上述两个计算机软件的程序在“表现形式上”是否有实质性相似。
三是正在受到各方面广泛同意的叠合准则。依照这个准则,原告须证明:1、被告在完成他的软件产品时未经许可“使用”了原告享有在先软件著作权的程序作品;2、被告的软件作品是一种叠合而成的再生品,即采用了原告软件产品的实质部分与他自己开发的内容进行迭合复制。这个准则主要着眼于两个软件产品之间“质和量的相似”,是实际运用中比较好的判断方法。
通过总结多年代理计算机软件侵权案件的经验,我们认为,识别计算机软件侵权行为,直接、有效的判断标准是:实质性相似加接触(Substantial Similarity and Access)。
实践中判定两个软件作品“实质性相似”的准则是:被指控的计算机程序是否极其类似于原告的计算机软件产品。计算机软件程序的“实质性相似”有两类:一是文字成分的相似,它以程序代码中引用的百分比为依据进行判断;二是非文字成分的相似,强调应该以整体上的相似作为确认两个软件之间实质上相似的依据。所谓整体上的相似是指两个软件产品在程序的组织结构、处理流程、采用的数据结构、产生的输出方式、所要求的输入形式等方面的相似。
计算机软件的程序有许多特征,这些特征已被用来鉴别两个程序之间是否相似,包括:
1、 两个程序产生的输出是否相类似;
2、 两个程序接受的输入是否相类似;
3、 两个程序的数据结构是否相类似;
4、 两个程序逻辑流程是否相类似。
在计算机软件侵权案的专家鉴定和技术对比工作中,上述的每一个特征都成为鉴定人员进一步详细分析两个计算机程序的表现形式是否一致的关键对比点,而鉴定人员正是通过这些关键点的对比得出供法官参考的鉴定结论。如果这些特征均不存在相似性,实际上也就不存在侵权行为的可能性。当然即使每一个特征都在一定程度上存在着相同或者相似,也不能充分证明侵权行为的发生,因为除了功能上的相似外,更重要的是实现功能的计算机程序的表现形式相类似,因为通常功能性的特征主要是体现软件开发者的设计“思想”(Ideas),而依据《中华人民共和国著作权法》和《计算机软件保护条例》,这种设计“思想”本身是不受著作权法保护的,因为实现同一功能可能会有许多不同的方法,仅仅是功能性特征相同并不能证明计算机软件程序代码相同。
证明计算机软件侵权的另一个重要因素就是接触,所谓“接触”是指原告的软件产品已公开销售,或者被告主要的软件开发人员曾在原告处工作过,或者原、被告之间曾有过合作关系等,这些通常可以证明被告曾有机会接触原告软件产品的核心内容,从而使得被告软件的开发工作有“借鉴”原告软件核心内容的嫌疑。
法官在审判过程中运用“实质性相似加接触”这一标准进行侵权判断时,“接触”是容易证实的,因为前期存在的聘用、合作关系往往有相应的文件作为证据,而软件已经公开发表、销售的证据也不难取得。比较难证实的是“实质性相似”,因为在通常情况下,如果是盗版者,则其对计算机程序的复制行为并不仅仅局限于一成不变的复制,它还包括侵权者为掩盖其剽窃行为而对计算机程序所做的伪装性改动,这点在计算机软件侵权案中表现得非常突出。在计算机软件开发工作中,文本编辑程序的使用,使得一个软件盗版者,可以通过更改名称和重新排列操作运算的指令序列顺序,来掩饰其对他人源代码和目标码的抄袭行为,如果不是专业的人员,往往不能识别这一情况。鉴于太多的计算机软件侵权行为存在,许多计算机软件著作权人在软件开发工作中往往运用“掺假”的办法,即:在计算机程序中加入没有意义和作用的指令,或者采用不太可能为盗版者发现和修改的较为独特的代码序列,作为“伪装记号”来保护程序。这样,如果侵权者进行了复制工作,就会在其计算机程序和文档中出现与原始软件著作权人同样的特征或错误,在法院审理侵权案件过程中,侵权者往往无法向法官提供对这种现象的合理解释,从而成为原告在诉讼过程中确定被告实施了侵权行为非常有说服力的证据。虽然根据我国的《著作权法》和《计算机软件保护条例》,只要确实存在侵权行为,不管软件著作权人用不用上述“掺假”的技术保护手段,也不论盗版者做了多少非实质性的表面上的改动,侵权的法律责任都是要承担的。但是,如果没有一定的技巧,想真正通过法律惩罚盗版者并不是件容易的事,因为客观事实必须通过法律事实予以认证才能受到法律保护。
在法院审理案件确定是否侵权的过程中,如果原告能够出示被告已经“接触”了其计算机软件产品的证据,又能出示在两个软件作品中存在实质性相似的证据,则法院会认为原告完成了对指控侵权行为的举证责任。一旦原告出示了这两方面的证据,举证责任便移转至被告方面,法官将要求被告证明其软件产品是独立创作的,或者是有合法授权的,被告需要向法庭提交其独立创作、完成软件产品的相关证据,以及得到合法授权的相关证据。举证责任的转移有助于原告主张自己的权利。
通过“实质性相似加接触”形成的相互映证的证据链,向法庭呈现的初步的、表面的事实就是:被告自己的软件是否是通过“使用”原告软件程序中实质性的、有价值的信息而形成?原告受保护的关键软件程序的表现形式是否受到被告的侵犯?这样的判断标准与法院通常采用的传统判定侵权行为的方法不同,而且这种判断方式更为全面、客观,其结果往往较真实地反映了客观情况,也比较容易被原、被告双方所接受。
“实质性相似加接触”标准在立法中尚未得到完全认可,但是司法实践中已在广泛应用。在我们办理计算机软件著作权侵权案件过程中发现,许多法官正在慢慢接受这种新观念,尤其在美国,由于英美法系采用判例法制度审理案件,上述判断标准在计算机软件著作权侵权案件的司法审判中已广为采用,一直发挥着积极的作用。随着我国市场经济的高速发展,我国的知识产权保护问题越来越受到重视,知识产权突出的重要地位已得到共识,加强知识产权保护的工作已由立法领域逐渐扩大到司法、执法领域,计算机软件日益成为知识产权法律保护的重点。特别是我国加入WTO之后,参照国际惯例、依据我国参加的世界知识产权组织的章程,建立、健全国内的知识产权法律保护制度,完善国家的法律和法规已势在必行。相信在强化知识产权法律保护的氛围和社会环境下,“实质性相似加接触”的判断标准不仅有利于法官正确审理计算机软件著作权侵权案件,而且更有利于软件企业建立软件著作权保护意识,从而在充分保护计算机软件著作权人利益的前提下,更好地促进我国计算机软件产业快速健康地发展。
设备和个人数据容易受到外部来源应用的攻击该怎么办
减少外部攻击面。
应对网络攻击的方法是提高网络安全意识,对于企业来说,识别软件系统中的漏洞并通过软件补丁、更新的网络配置等来缓解它们,在预防网络攻击或数据泄露上起到至关重要的左右。
如何检测和预防网络攻击
1. 首先,介绍基础知识
确保防火墙处于活动状态,配置正确,并且最好是下一代防火墙; 这是一个共同的责任。此外,请确保对您的IoT设备进行细分,并将它们放在自己的网络上,以免它们感染个人或商业设备。
安装防病毒软件(有许多备受推崇的免费选项,包括Avast,BitDefender,Malwarebytes和Microsoft Windows Defender等)
保持软件更新。更新包含重要更改,以提高计算机上运行的应用程序的性能,稳定性和安全性。安装它们可确保您的软件继续安全有效地运行。
不要仅仅依靠预防技术。确保您拥有准确的检测工具,以便快速通知您任何绕过外围防御的攻击。欺骗技术是推荐用于大中型企业的技术。不确定如何添加检测?看看托管服务提供商,他们可以提供帮助。
2. 密码不会消失:确保你的坚强
由于密码不太可能很快消失,因此个人应该采取一些措施来强化密码。例如,密码短语已经被证明更容易跟踪并且更难以破解。密码管理器(如LastPass,KeePass,1password和其他服务)也可用于跟踪密码并确保密码安全。还可以考虑激活双因素身份验证(如果可用于银行,电子邮件和其他提供该身份验证的在线帐户)。有多种选择,其中许多是免费的或便宜的。
3. 确保您在安全的网站上
输入个人信息以完成金融交易时,请留意地址栏中的“https://”。HTTPS中的“S”代表“安全”,表示浏览器和网站之间的通信是加密的。当网站得到适当保护时,大多数浏览器都会显示锁定图标或绿色地址栏。如果您使用的是不安全的网站,最好避免输入任何敏感信息。
采用安全的浏览实践。今天的大多数主要网络浏览器(如Chrome,Firefox)都包含一些合理的安全功能和有用的工具,但还有其他方法可以使您的浏览更加安全。经常清除缓存,避免在网站上存储密码,不要安装可疑的第三方浏览器扩展,定期更新浏览器以修补已知漏洞,并尽可能限制对个人信息的访问。
4. 加密敏感数据
无论是商业记录还是个人纳税申报表,加密最敏感的数据都是个好主意。加密可确保只有您或您提供密码的人才能访问您的文件。
5. 避免将未加密的个人或机密数据上传到在线文件共享服务
Google云端硬盘,Dropbox和其他文件共享服务非常方便,但它们代表威胁演员的另一个潜在攻击面。将数据上载到这些文件共享服务提供程序时,请在上载数据之前加密数据。很多云服务提供商都提供了安全措施,但威胁参与者可能不需要入侵您的云存储以造成伤害。威胁参与者可能会通过弱密码,糟糕的访问管理,不安全的移动设备或其他方式访问您的文件。
6. 注意访问权限
了解谁可以访问哪些信息非常重要。例如,不在企业财务部门工作的员工不应该访问财务信息。对于人力资源部门以外的人事数据也是如此。强烈建议不要使用通用密码进行帐户共享,并且系统和服务的访问权限应仅限于需要它们的用户,尤其是管理员级别的访问权限。例如,应该注意不要将公司计算机借给公司外的任何人。如果没有适当的访问控制,您和您公司的信息都很容易受到威胁。
7. 了解Wi-Fi的漏洞
不安全的Wi-Fi网络本身就很脆弱。确保您的家庭和办公室网络受密码保护并使用最佳可用协议进行加密。此外,请确保更改默认密码。最好不要使用公共或不安全的Wi-Fi网络来开展任何金融业务。如果你想要格外小心,如果笔记本电脑上有任何敏感材料,最好不要连接它们。使用公共Wi-Fi时,请使用VPN客户端,例如您的企业或VPN服务提供商提供的VPN客户端。将物联网设备风险添加到您的家庭环境时,请注意这些风险。建议在自己的网络上进行细分。
8. 了解电子邮件的漏洞
小心通过电子邮件分享个人或财务信息。这包括信用卡号码(或CVV号码),社会安全号码以及其他机密或个人信息。注意电子邮件诈骗。常见的策略包括拼写错误,创建虚假的电子邮件链,模仿公司高管等。这些电子邮件通常在仔细检查之前有效。除非您能够验证来源的有效性,否则永远不要相信要求您汇款或从事其他异常行为的电子邮件。如果您要求同事进行购物,汇款或通过电子邮件付款,请提供密码密码。强烈建议使用电话或文本确认。
9. 避免在网站上存储您的信用卡详细信息
每次您想要购买时,可能更容易在网站或计算机上存储信用卡信息,但这是信用卡信息受损的最常见方式之一。养成查看信用卡对帐单的习惯。在线存储您的信用卡详细信息是您的信息受到损害的一种方式。
10. 让IT快速拨号
如果发生违规行为,您应该了解您公司或您自己的个人事件响应计划。如果您认为自己的信息遭到入侵,并且可能包含公共关系团队的通知,这将包括了解您的IT或财务部门的联系人。如果您怀疑自己是犯罪或骗局的受害者,那么了解哪些执法部门可以对您有所帮助也是一个好主意。许多网络保险公司也需要立即通知。
在违规期间有很多事情需要处理。在违规期间了解您的事件响应计划并不是您最好的选择。建议熟悉该计划并进行实践,以便在事件发生时能够快速,自信地采取行动。这也包括个人响应计划。如果受到损害,您知道如何立即关闭信用卡或银行卡吗?
即使是世界上最好的网络安全也会得到知情和准备好的个人的支持。了解任何网络中存在的漏洞并采取必要的预防措施是保护自己免受网络攻击的重要的第一步,遵循这些简单的规则将改善您的网络卫生,并使您成为更准备,更好保护的互联网用户。