该如何护好我们的“面子”
针对制造业的网络威胁日益复杂 安全专家发现,针对制造业的攻击,无论攻击目标是窃密还是勒索赎金,网络攻击者都在开发日益先进的多功能攻击工具,并使用人工智能和自动化技术。 许多制造企业还在运行不安全的旧系统。这些系统通常已使用了很久,在设计时考虑了效率和合规问题,但却忽略了网络安全和数据隐私风险。随着攻击手段日益先进,攻击者总会发现更多创造性和破坏性的方法来攻破这些系统。 制造企业面临的另一安全风险是其众多分散、小企业构成的复杂供应链,这通常会成为攻击组织寻求薄弱环节的重要目标。2020年初,安全专家调查针对欧洲、英国太空与国防业的系列攻击活动时发现,攻击组织直接使用供应商与合作伙伴之间的合法远程连接或协作方案,绕过防护严密的边界防护,成功进入攻击目标的网络。 此外,制造企业的数字化转型,导致其工控系统,成为了攻击者的重要目标。Dragos公司发现,2018年1月到2020年10月间,所处理的针对工业机构的勒索攻击增长了500%。针对工业企业的勒索攻击每月逐步增加,在2020年5月达到高峰。2020年6月Ekans勒索软件针对本田的攻击,导致其暂停美国和土耳其汽车工厂、以及印度和南美洲摩托车工厂的生产。Ekans/Snake勒索软件就是专门为攻击工业控制系统而设计的,可以导致工业生产过程的中断。
对于高度依赖计算机系统开展生产、自动化、质量保证、监控和安全的工业活动,勒索软件具有巨大破坏性。攻击导致生产过程中断,出现长时间的停工,可以造成数千万元的损失。如芯片代加工企业台积电遭攻击,导致相关工厂停产3天,损失近18亿元(RMB)。 这是一个 “被改善的初稿”。我将两个 for…of 循环改成使用一次 .reduce()、一次 .some()、以及一次 .map()。我更喜欢这种编码风格。但是老实说,我的初稿没有什么“错”,因为它是能用的,不是吗? 现在,是切换编码任务并决定明天再次审阅此段代码的好时机。 应用于的真实编码场景 在实际工作中,我们经常会收到混乱的需求说明以及最晚交付日期的压力,特别是在使用新的 API 时。每个编码人员有时都会想:“为什么这段代码不能正常的工作?” 对于我指导的这个学生来说,他从无法将问题概念化到轻松解决问题,因为他是从简单的for…of 循环开始的。得益于“简单的初稿”,他没有感到困难和挫败,反而感到成功和成就。 如果你更有经验,很自然的就能使用 .reduce()来解决问题,那就大胆试试吧!但是如果你需要查找语法,看看是否在不查找语法的情况,对代码进行重构。因为在编码阶段你是可以一直对代码进行修改的。 同样地,如果你用的是 JavaScript,你可能希望能在在返回中增加类型检查。这作为一个编码挑战,这不是必需的,可以第二天再考虑加上。 在现实世界的其他场景中,“简单初稿”编码方法的缺点在于你将频繁进行 git commit:至少,在进行分步式开发时,需要频繁提交初稿的每个版本。在完成初稿前,你可能已经提交了三四个工作版本。 如果在后续的工作中发现了问题,你会对之前的多次提交感到庆幸,因为你可以根据提交发现问题所在并找到解决方案。 另外,代码的提交次数能给我超级大的驱动力,特别是当我远程办公时。 测试 根据你对测试的个人偏好,完全可以在写代码之前写测试。只需遵循相同的方法即可:写尽可能简单的测试,然后在测试代码可以正常工作后立即对其进行重构。 或者,像大多数程序员一样,你可能更喜欢在有一段可以工作的代码之后进行测试 —— 这也完全可以,在编写代码并将其重构一次或两次之后,编写一些简单的测试,然后再对测试代码进行重构。 我知道写代码的最快方法是完全执行以下操作:
就个人而言,我发现专注于“不完美的初稿”(或我喜欢说的“简单初稿”)使我更有可能先写测试,因为我并不在乎写的测试是否是完美的。
你甚至可以考虑将测试视为工作的“第二稿”,把测试任务推迟到明天。千万别忘了测试,就当是一切都为了你自己,你的项目和你的公司。 (编辑:济源站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |