blog

为什么健康植入物应该有开源代码

<p>随着医疗植入物变得越来越普遍,复杂和多样化,了解运行它们的代码至关重要起搏器或释放胰岛素的植入物可以挽救生命,但它们不仅容易受到恶意攻击,而且容易受到错误代码的攻击</p><p>出于商业原因,公司一直不愿意向研究人员开放他们的代码但是由于生命危在旦夕,我们需要被允许在引擎盖下偷看过去几年,一些研究人员揭示了运行一些医疗植入物的代码中的致命漏洞例如,巴纳比杰克表示心脏起搏器可能被“黑客攻击”以致发生致命的电击Jay Radcliffe演示了一种无线制造植入式胰岛素泵的方式,可以提供致命剂量的胰岛素但代码中的“错误”也是一个问题研究员玛丽Moe最近发现这是第一手,当她的Implantable Cardioverter除颤器(ICD)意外地进入“安全模式”时这引起了她的心脏病吃掉了一半,带来了严重的后果Moe花了几个月的时间才弄清楚她的种植体出了什么问题,而且由于ICD中运行的代码是专有的,或者是封闭源代码,这个问题变得更难了</p><p>根据各种法律,反向工程封闭源代码是犯罪行为,包括1998年美国数字千年版权法案</p><p>它侵犯了版权,盗窃了知识产权,可能是对专利法的侵犯</p><p>除了法律限制外,还有另一个原因研究人员不能像你可能拆开你的割草机一样看待源代码它需要一个非常有才华的程序员使用昂贵的软件将代码反向工程成可读的东西即使在那时,它也不是一个非常精确的过程要理解为什么,它有助于了解公司如何创建和运输软件软件启动作为一组要求 - 软件必须这样做;它必须看起来像那样;它必须有这些按钮接下来,设计软件 - 这个组件负责这些操作,它将数据传递给该组件,等等</p><p>最后,编码器编写指令告诉计算机如何创建组件,详细说明如何他们工作这些指令都是源代码 - 人类可读的指令使用类似英语的动词(读,写,退出)与各种符号混合,程序员和计算机都理解到目前为止,源代码很容易人类理解但这不是流程的结束在软件发布之前,它经历了一次最后的转换 - 它被转换为机器代码它现在看起来只是很多数字源代码消失了,取而代之的是机器代码它现在有点像汽车音响的内部;它“不包含任何可用的部件”用户不应该使用机器代码</p><p>闭源软件的替代品是开源的,可以作为源代码(在网站上发布)和作为二进制文件或机器代码免费提供</p><p>开源软件是没有秘密和没有所有权在MIT许可证中,只有一种开源许可证,任何人都可以下载和使用该软件,只要他们保留嵌入的消息,任何人都可以为此做出贡献在各种作者的源代码中开源和封闭源的最大区别在于钱闭源软件的开发者得到报酬,因为他们垄断了他们的软件,软件销售产生了收入开源软件开发者不得不找到另一个收入来源你可能认为没有人可以从开源软件赚钱,但这并不完全正确很多企业都在分配和支持o笔源软件因为开源软件是由程序员编写的,通常是程序员编写的,它不像专有软件那样优雅和易用</p><p>这为RedHat,IBM,Oracle,Google和Mozilla等公司提供了一个开放的角色</p><p> -source软件经验更好这个论点已经持续了数十年,并以代码质量和安全问题为中心开源支持者订阅“眼睛越多越好”的论点如果任何程序员都可以看到你的代码,那么推理就会发现,他们会发现错误并告诉你关于它们同样的论点用于支持开源软件更安全的命题这两个断言很难证明 openSSH(一种用于保护连接的开源工具)中的安全漏洞不断被发现,2014年Heartbleed攻击基于代码中存在超过12年的错误另一方面,最近发现了一个漏洞在一个Windows(闭源)自动打印机驱动程序安装程序已经在代码中已有近20年的时间闭源倡导者说他们的代码更好,因为专业人士(而不是业余爱好者和志愿者)有权阅读代码并找到错误开源人员指出,许多闭源产品(如Windows,Microsoft Office和Adobe Acrobat)都是如此之大,以至于没有人,无论是付费还是其他方式都能理解整个代码</p><p>封闭源代码软件的另一个理由就是bug和bug特别是,安全漏洞(不影响用户)可以无限期地隐藏</p><p>这被称为“默默无闻”如果你看不到错误,那么它们就无法用于网络攻击了o使用原则是一个有效的安全系统不依赖于保密;只有好的设计和秘密密钥当涉及到实际修复代码时,开源软件和闭源软件之间的真正区别在于谁可以在发现错误时修改,修复或利用错误如果它是封闭源代码,则用户必须报告作者或软件供应商的错误他们然后复制错误,打开他们的私人代码存储库,找到修复错误的方法,并编写补丁当产品不再受支持时出现问题,或者公司扩展“默默无闻”他们会忽略,诋毁甚至起诉那些指出缺陷的人在处理开源软件时,另一方面,你可以向通过公共代码库维护项目的志愿者团队报告这个漏洞(例如GitHub,SourceForge或GoogleCode)然后,如果有人正在处理该项目(许多项目被放弃,根本不受支持),他们可能会修复该错误,然后您可以下载并安装更新版本当然恶意程序员总是有可能将恶意软件和后门程序等“功能”添加到软件中,尽管如果其他人正在研究这个项目,他们应该检测到这样的篡改</p><p>开源软件运行闭源硬件并不是什么新事物Raspberry例如,Pi使用专有的Broadcom图形处理单元(GPU),其内部保密,Broadcomm发布了足够的信息,允许任何程序员使用芯片,同时保持其对硬件设计的垄断理论上没有什么阻止植入物制造商做同样的事情他们应该这样做的原因归结为现实世界的经验当某人的心脏起搏器行为不端时,医生,医疗技术人员和他们的程序员没有等待制造商发布补丁或更新的奢侈他们需要立即修复这就是为什么制造商只使用这些产品的轻量级安全性当您的医生需要访问您的d他们没有时间搞乱加密密钥和身份验证协议他们最有时间的是在医疗记录中查找设备的序列号和默认密码虽然这是一个安全漏洞,同样的医疗命令参数适用于源代码如果您的设备发疯,您的程序员需要能够快速找到代码 - 这意味着开源存储库当生命受到威胁时,

查看所有