标签 安全 下的文章

八月份,四名美国参议员提出了一项旨在改善物联网(IoT)安全性的法案。2017 年的 “物联网网络安全改进法” 是一项小幅的立法。它没有规范物联网市场。它没有任何特别关注的行业,或强制任何公司做任何事情。甚至没有修改嵌入式软件的法律责任。无论安全多么糟糕,公司可以继续销售物联网设备。

法案的做法是利用政府的购买力推动市场:政府购买的任何物联网产品都必须符合最低安全标准。它要求供应商确保设备不仅可以打补丁,而且是以认证和及时的方式进行修补,没有不可更改的默认密码,并且没有已知的漏洞。这是一个你可以达到的低安全值,并且将大大提高安全性,可以说明关于物联网安全性的当前状态。(全面披露:我帮助起草了一些法案的安全性要求。)

该法案还将修改“计算机欺诈和滥用”和“数字千年版权”法案,以便安全研究人员研究政府购买的物联网设备的安全性。这比我们的行业需求要窄得多。但这是一个很好的第一步,这可能是对这个立法最好的事。

不过,这一步甚至不可能施行。我在八月份写这个专栏,毫无疑问,这个法案你在十月份或以后读的时候会没有了。如果听证会举行,它们无关紧要。该法案不会被任何委员会投票,不会在任何立法日程上。这个法案成为法律的可能性是零。这不仅仅是因为目前的政治 - 我在奥巴马政府下同样悲观。

但情况很严重。互联网是危险的 - 物联网不仅给了眼睛和耳朵,而且还给手脚。一旦有影响到位和字节的安全漏洞、利用和攻击现在将会影响到其血肉。

正如我们在过去一个世纪一再学到的那样,市场是改善产品和服务安全的可怕机制。汽车、食品、餐厅、飞机、火灾和金融仪器安全都是如此。原因很复杂,但基本上卖家不会在安全方面进行竞争,因为买方无法根据安全考虑有效区分产品。市场使用的竞相降低门槛的机制价格降到最低的同时也将质量降至最低。没有政府干预,物联网仍然会很不安全。

美国政府对干预没有兴趣,所以我们不会看到严肃的安全和保障法规、新的联邦机构或更好的责任法。我们可能在欧盟有更好的机会。根据“通用数据保护条例”在数据隐私的规定,欧盟可能会在 5 年内通过类似的安全法。没有其他国家有足够的市场份额来做改变。

有时我们可以选择不使用物联网,但是这个选择变得越来越少见了。去年,我试着不连接网络来购买新车但是失败了。再过几年, 就几乎不可能不连接到物联网。我们最大的安全风险将不会来自我们与之有市场关系的设备,而是来自其他人的汽车、照相机、路由器、无人机等等。

我们可以尝试为理想买单,并要求更多的安全性,但企业不会在物联网安全方面进行竞争 - 而且我们的安全专家不是一个可以产生影响的足够大的市场力量。

我们需要一个后备计划,虽然我不知道是什么。如果你有任何想法请评论。

这篇文章以前出现在 9/10 月的 《IEEE安全与隐私》上。


作者简介:

自从 2004 年以来,我一直在博客上写关于安全的文章,以及从 1998 年以来我的每月订阅中也有。我写书、文章和学术论文。目前我是 IBM Resilient 的首席技术官,哈佛伯克曼中心的研究员,EFF 的董事会成员。


via: https://www.schneier.com/blog/archives/2017/10/iot_cybersecuri.html

作者:Bruce Schneier 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

NIST 最近发表了四卷 SP800-63b 数字身份指南。除此之外,它还对密码提供三个重要的建议:

  1. 不要再纠结于复杂的密码规则。它们使密码难以记住。因为人为的复杂密码很难输入,因此增加了错误。它们也没有很大帮助。最好让人们使用密码短语。
  2. 停止密码到期。这是我们以前使用计算机的一个老的想法。如今不要让人改变密码,除非有泄密的迹象。
  3. 让人们使用密码管理器。这就是处理我们所有密码的方式。

这些密码规则不能让用户安全。让系统安全才是最重要的。


作者简介:

自从 2004 年以来,我一直在博客上写关于安全的文章,以及从 1998 年以来我的每月订阅中也有。我写书、文章和学术论文。目前我是 IBM Resilient 的首席技术官,哈佛伯克曼中心的研究员,EFF 的董事会成员。


via: https://www.schneier.com/blog/archives/2017/10/changes_in_pass.html

作者:Bruce Schneier 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

安全难以推行。在企业管理者迫使开发团队尽快发布程序的大环境下,很难说服他们花费有限的时间来修补安全漏洞。但是鉴于所有网络攻击中有 84% 发生在应用层,作为一个组织是无法承担其开发团队不包括安全性带来的后果。

DevOps 的崛起为许多安全负责人带来了困境。Sonatype 的前 CTO Josh Corman 说:“这是对安全的威胁,但这也是让安全变得更好的机会。” Corman 是一个坚定的将安全和 DevOps 实践整合起来创建 “坚固的 DevOps”的倡导者。Business Insights 与 Corman 谈论了安全和 DevOps 共同的价值,以及这些共同价值如何帮助组织更少地受到中断和攻击的影响。

安全和 DevOps 实践如何互惠互利?

Josh Corman: 一个主要的例子是 DevOps 团队对所有可测量的东西进行检测的倾向。安全性一直在寻找更多的情报和遥测。你可以获取许多 DevOps 团队正在测量的信息,并将这些信息输入到你的日志管理或 SIEM (安全信息和事件管理系统)。

一个 OODA 循环( 观察 observe 定向 orient 决定 decide 行为 act )的前提是有足够普遍的眼睛和耳朵,以注意到窃窃私语和回声。DevOps 为你提供无处不在的仪器。

他们有分享其他文化观点吗?

JC: “严肃对待你的代码”是一个共同的价值观。例如,由 Netflix 编写的软件工具 Chaos Monkey 是 DevOps 团队的分水岭。它是为了测试亚马逊网络服务的弹性和可恢复性而创建的,Chaos Monkey 使得 Netflix 团队更加强大,更容易为中断做好准备。

所以现在有个想法是我们的系统需要测试,因此,James Wickett 和我及其他人决定做一个邪恶的、带有攻击性的 Chaos Monkey,这就是 GAUNTLT 项目的来由。它基本上是一堆安全测试, 可以在 DevOps 周期和 DevOps 工具链中使用。它也有非常适合 DevOps 的API。

企业安全和 DevOps 价值在哪里相交?

JC: 这两个团队都认为复杂性是一切事情的敌人。例如,安全人员和 Rugged DevOps 人员实际上可以说:“看,我们在我们的项目中使用了 11 个日志框架 - 也许我们不需要那么多,也许攻击面和复杂性可能会让我们受到伤害或者损害产品的质量或可用性。”

复杂性往往是许多事情的敌人。通常情况下,你不会很难说服 DevOps 团队在架构层面使用更好的建筑材料:使用最新的、最不易受攻击的版本,并使用较少的组件。

“更好的建筑材料”是什么意思?

JC: 我是世界上最大的开源仓库的保管人,所以我能看到他们在使用哪些版本,里面有哪些漏洞,何时他们没有修复漏洞,以及等了多久。例如,某些日志记录框架从不会修复任何错误。其中一些会在 90 天内修复了大部分的安全漏洞。人们越来越多地遭到攻击,因为他们使用了一个毫无安全的框架。

除此之外,即使你不知道日志框架的质量,拥有 11 个不同的框架会变得非常笨重、出现 bug,还有额外的工作和复杂性。你暴露在漏洞中的风险是非常大的。你想把时间花在修复大量的缺陷上,还是在制造下一个大的破坏性的事情上?

Rugged DevOps 的关键是软件供应链管理,其中包含三个原则:使用更少和更好的供应商、使用这些供应商的最高质量的部分、并跟踪这些部分,以便在发生错误时,你可以有一个及时和敏捷的响应。

所以变更管理也很重要。

JC: 是的,这是另一个共同的价值。我发现,当一家公司想要执行诸如异常检测或净流量分析等安全测试时,他们需要知道“正常”的样子。让人们失误的许多基本事情与仓库和补丁管理有关。

我在 Verizon 数据泄露调查报告中看到,追踪去年被成功利用的漏洞后,其中 97% 归结为 10 个 CVE(常见漏洞和风险),而这 10 个已经被修复了十多年。所以,我们羞于谈论高级间谍活动。我们没有做基本的补丁工作。现在,我不是说如果你修复这 10 个CVE,那么你就没有被利用,而是这占据了人们实际失误的最大份额。

DevOps 自动化工具的好处是它们已经成为一个意外的变更管理数据库。其真实反应了谁在哪里什么时候做了变更。这是一个巨大的胜利,因为我们经常对安全性有最大影响的因素无法控制。你承受了 CIO 和 CTO 做出的选择的后果。随着 IT 通过自动化变得更加严格和可重复,你可以减少人为错误的机会,并且哪里发生了变化更加可追溯。

你认为什么是最重要的共同价值?

JC: DevOps 涉及到过程和工具链,但我认为定义这种属性的是文化,特别是同感。 DevOps 有用是因为开发人员和运维团队能够更好地了解彼此,并做出更明智的决策。不是在解决孤岛中的问题,而是为了活动流程和目标解决。如果你向 DevOps 的团队展示安全如何能使他们变得更好,那么作为回馈他们往往会问:“那么,我们是否有任何选择让你的生活更轻松?”因为他们通常不知道他们做的 X、Y 或 Z 的选择使它无法包含安全性。

对于安全团队,驱动价值的方法之一是在寻求帮助之前变得更有所帮助,在我们告诉 DevOps 团队要做什么之前提供定性和定量的价值。你必须获得 DevOps 团队的信任,并获得发挥的权利,然后才能得到回报。它通常比你想象的快很多。


via: https://techbeacon.com/why-devops-end-security-we-know-it

作者:Mike Barton 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在上个月旧金山 Twitter 总部举办的 WomenWhoCode Connect 活动中参会者了解到,就像组织会形成技术债务一样,如果他们不相应地计划,也会形成一个名为“安全债务”的东西。

甲骨文首席安全官 Mary Ann DavidsonWomenWhoCodeZassmin Montes de Oca 在一个面对开发人员的安全性的主题谈话中强调,安全性已经成为软件开发过程中每步的重要组成部分,

在过去,除银行外,安全性几乎被所有人忽视。但安全性比以往任何时候都更重要,因为现在有这么多接入点。我们已经进入物联网的时代,窃贼可以通过劫持你的冰箱而了解到你不在家的情况。

Davidson 负责 Oracle 的保障,“我们确保为建立的一切构建安全性,无论是内部部署产品、云服务,甚至是设备,我们在客户的网站建立有支持小组并报告数据给我们,帮助我们做诊断 - 每件事情都必须对其进行安全保护。”

AirBnB 的 Keziah Plattner 在分组会议中回应了这个看法。她说:“大多数开发者并不认为安全是他们的工作,但这必须改变。”

她分享了工程师的四项基本安全原则。首先,安全债务是昂贵的。现在有很多人在谈论技术债务,她认为这些谈话应该也包括安全债务。

Plattner 说:“历史上这个看法是‘我们会稍后考虑安全’”。当公司抓住软件效率和增长的唾手可得的成果时,他们忽视了安全性,但最初的不安全设计可能在未来几年会引发问题。

她说,很难为现有的脆弱系统增加安全性。即使你知道安全漏洞在哪里,并且有进行更改的时间和资源的预算,重新设计一个安全系统也是耗时和困难的。

她说,所以这就是关键,从一开始就建立安全性。将安全性视为技术债务的一部分以避免这个问题,并涵盖所有可能性。

根据 Plattner 说的,最重要的是难以让人们改变行为。没有人会自愿改变,她说,即使你指出新的行为更安全。他们也只不过是点点头而已。

Davidson 说,工程师们需要开始考虑他们的代码如何被攻击,并从这个角度进行设计。她说她只有两个规则。第一个从不信任任何未验证的数据;规则二参见规则一。

她笑着说:“人们一直这样做。他们说:‘我的客户端给我发送数据,所以没有问题’。千万不要……”。

Plattner说,安全的第二个关键是“永远不信任用户”。

Davidson 以另外一种说法表示:“我的工作是做专业的偏执狂。”她一直担心有人或许无意中会破坏她的系统。这不是学术性的考虑,最近已经有通过 IoT 设备的拒绝服务攻击。

Little Bobby Tables

Plattner 说:“如果你安全计划的一部分是信任用户做正确的事情,那么无论你有什么其他安全措施,你系统本质上是不安全的。”

她解释说,重要的是要净化所有的用户输入,如 XKCD 漫画中的那样,一位妈妈干掉整个学校的数据库——因为她的儿子的中间名是 “DropTable Students”(LCTT 译注:看不懂的点这里)。

所以净化所有的用户输入。你一定检查一下。

她展示了一个 JavaScript 开发者在开源软件中使用 eval 的例子。她警告说:“一个好的基本规则是‘从不使用 eval()’”。 eval() 函数会执行 JavaScript 代码。“如果你这样做,你正在向任意用户开放你的系统。”

Davidson 警告说,她甚至偏执到将文档中的示例代码的安全测试也包括在内。她笑着说:“我们都知道没有人会去复制示例代码”。她强调指出,任何代码都应进行安全检查。

Plattner 的第三个建议:要使安全容易实施。她建议采取阻力最小的道路。

对外,使用户 默认采用 option out 安全措施而不是 可选采用 option in ,或者更好使其成为强制性的措施。她说,改变人们的行为是科技中最难的问题。一旦用户习惯以非安全的方式使用你的产品,让他们改进会变得非常困难。

在公司内部,她建议制定安全标准,因此这不是个别开发人员需要考虑的内容。例如,将数据加密作为服务,这样工程师可以只需要调用服务就可以加密或解密数据。

她说,确保公司注重安全环境。在让整个公司切换到好的安全习惯。

你的安全短板决定了你的安全水准,所以重要的是每个人都有良好的个人安全习惯,并具有良好的企业安全环境。

在 Oracle,他们已经全面覆盖安全的各个环节。Davidson 表示,她厌倦了向没有安全培训的大学毕业的工程师解释安全性,所以她写了 Oracle 的第一个编码标准,现在已经有数百个页面之多以及很多贡献者,还有一些课程是强制性的。它们具有符合安全要求的度量标准。这些课程不仅适用于工程师,也适用于文档作者。她说:“这是一种文化。”

没有提及密码的关于安全性的讨论怎么能是安全的?Plattner 说:“每个人都应该使用一个好的密码管理器,在工作中应该是强制性的,还有双重身份验证。”

她说,基本的密码原则应该是每个工程师日常生活的一部分。密码中最重要的是它们的长度和熵(使按键的集合尽可能地随机)。强健的密码熵检查器对此非常有用。她建议使用 Dropbox 开源的熵检查器 zxcvbn

Plattner 说,另一个诀窍是在验证用户输入时使用一些故意减慢速度的算法,如 bcrypt。慢速并不困扰大多数合法用户,但会让那些试图强行进行密码尝试的黑客难受。

Davidson 说:“所有这些都为那些想要进入技术安全领域的人提供了工作安全保障,我们在各种地方放了各种代码,这就产生了系统性风险。只要我们继续在技术领域做有趣的事情,我不认为任何人不想要在安全中工作。”


via: https://thenewstack.io/security-engineers-problem/

作者:TC Currie 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

OpenBSD logo

在 OpenBSD 的测试快照中加入了一个新的功能,每次当 OpenBSD 用户重启或升级计算机时都会创建一个独特的内核。

该功能被称之为 KARL( 内核地址随机化链接 Kernel Address Randomized Link ),即以随机的顺序重新链接其内部的内核文件,从而每次生成一个独特的内核二进制文件。

当前的稳定版中,OpenBSD 内核使用预先定义好的顺序来链接和加载内核二进制文件中的内部文件,这导致所有用户的内核都是一样的。

KARL 与 ASLR 不同

KARL 由 Theo de Raadt 开发。KARL 会在安装、升级和重启时生成一个新的内核二进制文件。当用户启动、升级和重启机器时,最新生成的内核会替换已有的内核二进制,而操作系统会生成一个新的内核,其将用于下次启动、升级和重启,周而复始。

不要将 KARL 和 ASLR( 地址空间布局随机化 Address Space Layout Randomization )相混淆,ASLR 是一种用于随机化应用代码执行的内存地址的技术,以防止知道应用或内核运行的特定区域而被针对性利用。

de Raadt 说,“它仍然装载在 KVA( 内核虚拟地址空间 Kernel Virtual Address Space )中的同样位置,这不是内核的 ASLR!”

相反,KARL 以随机的内部结构生成内核二进制,这样漏洞利用程序就不能泄露或攻击内核内部函数、指针或对象。技术性的解释参见下面内容。

一个独特的内核是这样链接的,启动汇编代码仍放在原处,接着是随机大小的空隙,然后是随机重组的其它 .o 文件。这样的结果就是函数和变量之间的距离是全新的。一个指针的信息泄露将不会暴露其它指针或对象。这或许会减少可变体系架构的组件,因为指令流的多态性被嵌套偏移的改变所破坏。

“因此,每次的新内核都是独特的。”de Raadt 说。

该功能是最近两个月开发的

该功能的开发始于五月份,首次讨论出现于六月中旬的 OpenBSD 技术邮件列表中。KARL 最近出现于 OpenBSD 6.1 的快照版本中。

“当今的情况是许多人从 OpenBSD 安装内核二进制,然后这个相同的内核二进制将运行六个月以上。当然,如果你重复地引导这个相同的内核二进制,其内存布局也是一样的。这就是现在我们所提交的代码解决的问题。”de Raadt 说,“然而, -current 快照包含了一些我正在和 Robert Peichaer 开发的将来的变化。那个变化将可以使你每次重启都启动到一个新链接的内核上。”

KARL 是一个独有的功能

一个销售针对隐私的硬件产品的初创企业 Technoethical 的创始人 Tiberiu C. Turbureanu 对 Bleeping Computer 说,这是一个 OpenBSD 独有的功能。

“在 Linux 中没有实现它,”Turbureanu 说,“看起来很棒的想法”,估计有可能该功能会移植到 Linux 内核中。

不过,Linux 刚刚增加了对 KASLR( 内核地址空间布局随机化 Kernel Address Space Layout Randomization )的支持,该功能是将 KSLR 移植到了内核本身,它会将内核加载到随机的内存地址。

该功能在上周发布的 Linux 4.12 中默认启用。这两者的不同是 KARL 是装载不同的内核到同一个位置,而 KASLR 则是装载相同的二进制到随机的位置。目标相同,做法不同。

在 Windows 中没有支持 KARL,但是微软使用 KASLR 已经很多年了。反病毒创客公司 Emsisoft 的 CTO Fabian Wosar 正在全力将 KARL 增加到 Windows 内核中。

“OpenBSD 的这个思路需要进一步发扬到(当前的 Windows 内核防护中),这样大家都可以有一个独特内核二进制了,”Wosar 在和 Bleeping Computer 的私人谈话中说到。

“即便是你知道了(随机的)内核起始点,你也不能用它来找到要定位的特定函数,函数相对于内核起始点的位置是随系统不同而不同的,”Wosar 补充说。

其它的操作系统平台,如 Windows 和 Linux ,如果拥有 KARL 将极大的改善其用户的安全性。

WordPress 是一个免费开源、可高度自定义的内容管理系统(CMS),它被全世界数以百万计的人来运行博客和完整的网站。因为它是被用的最多的 CMS,因此有许多潜在的 WordPress 安全问题/漏洞需要考虑。

然而,如果我们遵循通常的 WordPress 最佳实践,这些安全问题可以避免。在本篇中,我们会向你展示如何使用 WPSeku,一个 Linux 中的 WordPress 漏洞扫描器,它可以被用来找出你安装的 WordPress 的安全漏洞,并阻止潜在的威胁。

WPSeku 是一个用 Python 写的简单的 WordPress 漏洞扫描器,它可以被用来扫描本地以及远程安装的 WordPress 来找出安全问题。

如何安装 WPSeku - Linux 中的 WordPress 漏洞扫描器

要在 Linux 中安装 WPSeku,你需要如下从 Github clone 最新版本的 WPSeku。

$ cd ~
$ git clone https://github.com/m4ll0k/WPSeku

完成之后,进入 WPSeku 目录,并如下运行。

$ cd WPSeku

使用 -u 选项指定 WordPress 的安装 URL,如下运行 WPSeku:

$ ./wpseku.py -u http://yourdomain.com 

WordPress Vulnerability Scanner

WordPress 漏洞扫描器

以下命令使用 -p 选项搜索 WordPress 插件中的跨站脚本(x)、本地文件夹嵌入(l)和 SQL 注入(s)漏洞,你需要在 URL 中指定插件的位置:

$ ./wpseku.py -u http://yourdomain.com/wp-content/plugins/wp/wp.php?id= -p [x,l,s]

以下命令将使用 -b 选项通过 XML-RPC 执行暴力密码登录。另外,你可以使用 --user--wordlist 选项分别设置用户名和单词列表,如下所示。

$ ./wpseku.py -u http://yourdomian.com --user username --wordlist wordlist.txt -b [l,x]   

要浏览所有 WPSeku 使用选项,输入:

$ ./wpseku.py --help

WPSeku WordPress Vulnerability Scanner Help

WPSeku WordPress 漏洞扫描帮助

WPSeku Github 仓库:https://github.com/m4ll0k/WPSeku

就是这样了!在本篇中,我们向你展示了如何在 Linux 中获取并使用 WPSeku 用于 WordPress 漏洞扫描。WordPress 是安全的,但需要我们遵循 WordPress 安全最佳实践才行。你有要分享的想法么?如果有,请在评论区留言。


作者简介:

Aaron Kili 是一个 Linux 及 F.O.S.S 热衷者,即将成为 Linux 系统管理员、web 开发者,目前是 TecMint 的内容创作者,他喜欢用电脑工作,并坚信分享知识。


via: https://www.tecmint.com/wpseku-wordpress-vulnerability-security-scanner/

作者:Aaron Kili 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出