引言
随着工业各个领域的系统复杂度和软件功能的快速发展,在每个行业都有相应的软件开发保证标准,来保证所研制的软件达到相应的安全级别。那么各个行业的软件安全标准之间有什么共性和差别呢?
这里简要介绍六种不同的软件开发保证标准,包括民航(DO-178C)、汽车(ISO 26262) 、航天(ECSS-Q-ST-80C)、工业自动化(IEC61508)、核工业(IEC 60880 ) 和轨道(EN 50128),并且比较每个标准在规定的目标、活动、方法和工具上的异同。
各行业安全标准概述
我们先从工业通用标准 IEC61508说起—
- 创始祖师 IEC61508
1985年: IEC成立了一个PESs 工作组,试图对安全相关软件设立一个国际安全标准1998-2000: IEC 61508 Part 1~7 发布
2002年: 开始更新改进标准
2005年: IEC61508 - 0 发布 (Part 0: Functional safety and IEC 61508)
2010年: IEC 61508 Edition 2.0 发布
工作组的本意是建立一个基础模板 — 仅仅用于设定起草各行业标准的规则。但实际上,现在IEC 61508 往往被直接用于工业领域。之后,各分支行业的具体标准从IEC 61508 派生:
各分支行业的具体标准从IEC 61508 派生
过程工业,机械(IEC 61511:2003,62061:2005),电力驱动系统,可编程控制器(IEC 61800:1997,61131-6(CDV)),通信网络(61784-3:2007) ,爆炸性环境,检测,测量,设备(EN 60079,50271,5042),医疗设备(IEC 60601:2005),铁路(EN 50126,50128,50129),汽车(ISO / DIS 26262),其中最接近的一个是过程工业的IEC 61511,因为大多数IEC 61508工作组成员来自该领域。
注:IEC 61508对某些标准的派生关系受到争议,因为某些“行业特定”标准(例如 IEC 61513 核工业)早于IEC 61508发布,并且开发出非常不同的安全方法。
值得注意的是,尽管系出同门,但各行业在标准应用时,与原有运行标准和整体系统方法往往有冲突。比如航空的DO-178C与IEC 61508有很大差异。
- 核能领域
IAEA(国际原子能机构)于1957年在联合国成立,旨在促进和支持安全利用核技术促进和平应用,目前有151个成员国。
已有标准: “安全导则”[IAEA NS-G-1.3](2002) 为“核电厂安全重要的仪器与控制(I&C)系统”提供了一般指导,介绍了这些系统的分类,安全要求和设计。它结合和修订了1980年发布的早期指南(50-SG-D3:保护系统和相关功能)和1984(50-SG-D8:安全相关仪器和控制系统)。
根据与国际原子能机构的协议,IEC 在技术细节方面制定了实施国际原子能机构安全原则的标准。自1980年代以来,IEC已经定制了以下设计和验证基于计算机的系统的方法,以满足核电厂的需求:
IEC 61226- 核电厂I&C(仪器和控制)功能分类方法。
IEC 61513-为用于执行安全重要功能的I&C系统提供一般指导,并考虑到其分类。
IEC 60880-对核电站最高级I&C系统的软件提出要求,以实现高可靠性的软件。
- 民用航空领域
1980年,无线电航空技术委员会(现在的RTCA)成立了一个开发和记录软件实践委员会,以支持开发基于软件的机载系统和设备。 欧洲民用航空电子组织(现在的EUROCAE)此前已经成立了一个工作组来制作类似的文件,并于1980年10月准备出版文件ED-35“软件建议书” 机载系统的实践与文献。EUROCAE决定停止编辑自己的文件,并加入RTCA来制定一套通用的指南。 1982年出版了名为ED-12 / DO-178“机载系统和设备认证中的软件注意事项”的联合文件,1985年修订版A,1992年修订版B。2012年发布 ED-12 / DO-178C,包括特定技术或方法的指导原则。
在修订DO-178BB的开发过程中,委员会发现,系统级信息需要作为软件开发过程的输入。 许多系统级决策对于飞机系统的安全和功能方面至关重要,有必要将与这些决策有关的过程和结果进行监管。因此,SAE(汽车工程师协会)和EUROCAE在1995年出版了ED-79 / ARP-4754“高度集成或复杂的飞机系统的认证注意事项”。 它涉及实现飞机级功能的系统总体生命周期。 它重点关注对系统建立安全性的问题,而不覆盖各系统、软件和硬件的具体设计流程。2010年,委员会又进一步发布了ED-79 / ARP-4754A。
2000年4月,EUROCAE / RTCA又发布了文件**ED-80 / DO-254“机载电子硬件设计保证指导”**来解决复杂硬件设计方面的具体要求。
在系统层面,同时还有一个重要的 EUROCAE / SAE文件ED-135 / ARP-4761详细说明了安全评估过程的方法。
民航领域的主要安全标准
- 航天领域
航天领域的监管历史可以追溯到上世纪更早期。联合国COPUOS(和平利用外层空间委员会)于1958年成立,该委员会制定了一系列条约和原则,特别确定了各国本地发射造成的潜在损害的责任。因此,大多数国家已经制定了适用于太空发射活动的规则和法律授权方案。
除了法律制度之外,航天业已经认识到建立和实施空间产品和方案的标准的价值和需要。例如在欧洲,欧空局标准化体系PSS(程序,规范和标准)逐步阐述之后,欧洲航天局与欧洲航天机构和行业在九十年代初建立了欧洲空间标准化组织(ECSS)ECSS,以制定和维护单一、一致、公认的共同标准体系。
ECSS标准不具有法律强制性,可以根据具体情况的协议采用和改编。其实现是通过涉及所有利益攸关方的合作工作来阐述的。
ECSS系列组织为三大分支(M:空间项目管理; Q:空间产品保证; E:空间工程)。
每个分支都有一级标准、可能补充附加文件(更详细的标准或指导,以应用一级标准,或提供额外的非规范性信息的手册)。
- 汽车领域
汽车行业最知名、应用最广泛的安全标准当属 SAE ISO 26262,ISO 26262:(Road vehicles – Functional Safety)是在IEC 61508 标准的基础上,以道路车辆电子及电气系统应用产业的角度,具体规范汽车电子安全系统从开发到使用的安全生命周期的技术与管理要求。
近年来,随着自动驾驶、智能网联的快速发展,ISO PAS 21448、21434 、UL4600 等相关标准也在制定中。
- 轨道领域
轨道行业的国际安全标准主要由CENELEC是欧洲铁路电工设备标准化委员会(替代国家标准)发布,CENELEC与IEC合作,其标准通常被接受为全球标准。目前CENELEC/IEC标准主要包括:
轨道行业主要安全标准
•EN 50126 :1999 (IEC 62278) **(Part2 :2017)**铁路控制和保护系统的RAMS(可靠性,可用性,可维护性和安全性)规范和演示
•EN 50129:2003 (IEC 62280) 铁路控制和保护系统的安全案例
•EN 50128:2011 (IEC 62279) 铁路控制和保护系统软件
EN 50126 和 EN 50129 关注系统层需求 , EN 50128 关注软件层需求
预告:下一篇讲继续介绍基于以上标准,各个行业的认证、鉴定、信用批准,以及各个标准的技术比较。
【参考文献目录】
- Emmanuel Ledinot(1), Jean-Marc Astruc(2), Jean-Paul Blanquart(3), A cross-domain comparison of software development assurance
- P. Baufreton1, JP. Blanquart2, JL. Boulanger3,Multi-domain comparison of safety standards,2010
引言
上一篇文章简要介绍了各个行业主要的安全标准,这一篇继续分享— 基于各行业的安全标准,怎样进行软件认证、工具鉴定、信用批准等方面。
首先,我们来看两个概念----
认证 Certification Vs. 评估 Assessment
谈到安全标准,我们就避不开两个基本概念:认证和评估。
- 评估 Assessment: 为某个实体(个人、组织或人工产品)授予某置信水平的一系列活动。其有效性依赖于: 项目、参与者、使用情况、时间线。
- 认证 Certification: 评估申请人向认证机构证明其工程过程,表明制造商通过遵守安全标准来确保对安全目标的监管。认证旨在验证在一个领域(如能源或运输)提供安全关键产品或服务的工业行为者确实提供了安全的产品或服务。 认证涉及申请人,标准条例,管理局和必须独立或部分独立于申请人的评估机构。
大多情况下,这些标准条例是由国际组织成员国设立的,成员国同意建立共同的规则来防止共同的风险。比如: ICAO在民航,IAEA核工业,联合国在航天工业。某些情况下,标准条例在国家级生效,然后在国际层面上解决跨境互操作性问题。 比如铁路行业,欧洲成员国目前正在执行标准的统一进程 — 相互接受其国家证书。
*注意:工业领域的认证并不会导致责任从申请人转移到认证机构。 在发生严重事故的情况下,涉及的制造商或服务提供者是唯一可以起诉的实体。*
此外,还有一个概念也经常被提及,那就是鉴定 Qualification:
鉴定针对**特定项目中的特定任务,**是为一个实体(可以是一个组织、一个人、一个工具)提供置信水平的一系列活动。
例如,用鉴定来确保通过使用工具自动化的软件生命周期过程将导致与手动执行过程相同或更高质量的输出。
目前,无论是航空、轨道、汽车等领域,还是工业领域,都对工具使用有着特别的要求,如果通过使用工具,消除或者自动化了部分人工工作,都需要根据所涉及的软件安全级别,对所使用的工具进行相应等级的工具鉴定。这实际上是把软件开发人员的部分工作转移到了工具开发商那边。
各行业对评估和认证的信用批准
根据各行业的不同情况,管理局和评估机构可能是同一机构(例如,民用航空局的FAA和EASA),也可能只有颁发证书的机构,但没有与申请人(例如工业自动化和航天业)独立的评估机构的情况。
申请人和评估机构之间的利益无关,是核工业(IRSN)、铁路(ERA,EPSF,STRM-TG)和航空(EASA-FAA)认证的关键要求。
- 航空
由FAA或EASA等独立机构负责飞机及其嵌入式系统的安全认证。
认证通常适用于飞机或发动机类型。
认证机构将软件视为安装在认证飞机或发动机中的机载系统或设备的一部分; 也就是说,认证机构不会将该软件作为唯一的独立产品。 目前,计算机硬件和软件必须做为每次安装的一个“系统”被批准。
- 航天
适用于欧洲航天领域的一系列标准,由ECSS、欧洲航天标准化合作,欧洲航天局,国家航天机构和欧洲工业协会为发展和维持共同目标而合作制定。
ECSS标准不是法律强制的,而是通过合同逐案提出、采用、修改。这并不意味着航天业不会以更严格的方式进行认证 — 大多数国家对于在其领土上发射的航天设备,都制定了与发射装置、航天器、发射程序有关的特定法律规则,以及相应的许可证制度。
- 汽车领域
SAE ISO 26262提供了一系列要求,即所谓的确认措施,以确保对E/E方面的安全性进行适当的评估。
执行确认措施的行为人员应具有与负责发展和释放生产的人员的最低程度的独立性。 **ASIL(汽车安全完整性等级)**越高,所需的独立性就越高。 值得注意的是,所需的最高独立性, 可能允许在同一家公司内。
确认措施包括:
**安全评估,**以验证关键的可交付成果,
安全审计,以验证过程的适当性,
评估整个安全项目的安全评估。
- 轨道交通
主要认证标准是法律要求的欧洲铁路标准 CENELEC 5012x系列标准, 它们是欧盟铁路行业的“实践守则”,也是铁路安全相关应用审批的先决条件和促进市场准入的国际标准,在欧洲各国具有法律的约束力。
认证和鉴定根据符合特定标准和/或规范要求确定。可能需要第三方认证,或进行自我评估。
比较成熟的评估体系包括:英国CASS安全评估框架、德国TUV评估体系等,他们主要以EN铁路标准为基准,依托第三方评估机构对已有线路和在建项目的进行安全性论证。
- 工业自动化
标准IEC 61508 不提供任何类型的认证。
欧洲机械业指令(EMD)要求完成具有CE标识的认证 — 由制造商完成自我认证。
- 核工业
所有使用核能的国家都设立了安全管理局,以控制其使用,保护人民和环境免受辐射的有害影响。比如在法国,安全管理局是ASN大学, 其技术支持是无线电保护和核保安学院(IRSN)。核电厂不是去提交“认证”申请,而是通过授权运营。 根据ASN的提案,授权必须通过政府的正式法令。
一张图总结:
各行业的申请人、评估机构与认证机构
我们可以看到,通常在航空、轨道、航天、核能领域,都要求由独立的第三方机构进行认证,而自动化、汽车领域,并没有强制要求第三方认证(近年来,汽车行业随着自动驾驶的快速发展,安全性要求进一步提升,已经有改变的趋势)。
不同行业,评估和认证独立性要求严格程度递增
预告: 不小心写太长,下一篇继续介绍各行业标准的技术比较。
【参考文献目录】
- Emmanuel Ledinot(1), Jean-Marc Astruc(2), Jean-Paul Blanquart(3), A cross-domain comparison of software development assurance
- P. Baufreton1, JP. Blanquart2, JL. Boulanger3,Multi-domain comparison of safety standards,2010
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
如何自学黑客&网络安全
黑客零基础入门学习路线&规划
初级黑客
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k
到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?
如果你想要入坑黑客&网络安全,笔者给大家准备了一份:282G全网最全的网络安全资料包评论区留言即可领取!
7、脚本编程(初级/中级/高级)
在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.
如果你零基础入门,笔者建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习;搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime;·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完;·用Python编写漏洞的exp,然后写一个简单的网络爬虫;·PHP基本语法学习并书写一个简单的博客系统;熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选);·了解Bootstrap的布局或者CSS。
8、超级黑客
这部分内容对零基础的同学来说还比较遥远,就不展开细说了,附上学习路线。
网络安全工程师企业级学习路线
如图片过大被平台压缩导致看不清的话,评论区点赞和评论区留言获取吧。我都会回复的
视频配套资料&国内外网安书籍、文档&工具
当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。
一些笔者自己买的、其他平台白嫖不到的视频教程。
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
dnimg.cn/img_convert/153b2778a3fe5198265bed9635d63469.webp?x-oss-process=image/format,png)
一些笔者自己买的、其他平台白嫖不到的视频教程。
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-Pwpj17jH-1713045289212)]