问题标签 [safety-critical]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
system - 学习安全关键系统开发 (C/C++) 的最佳资源是什么
我正在寻找关于安全关键系统开发技术/方法的良好资源(书籍或其他),尤其是涵盖硬件和软件的内容。我对 C/C++ 有很好的工作知识,所以即使它只是 SourceForge 等上的代码,我仍然希望有一个链接可以浏览。
谢谢。
embedded - 安全关键嵌入式系统中的显示系统资源?
我正在寻找可以回答我以下问题的资源。
- SC ERTS 架构中的显示系统到底适合哪里。
- SC显示系统和普通的有什么区别?
- 硬件和软件在显示系统中扮演什么角色?
我必须为我的课程作业准备一份显示系统的详细调查。请注意,我要求的是参考资料、来源等,而不是实际的答案。
我也很乐意看到肢体的建议和评论。
我已经找到了一些有用的东西:DO 178B 标准,SCADE 显示系统。
monitoring - 算法交易软件安全卫士
我正在开发一个自动交易系统。我应该有什么样的保障措施?
我的主要想法是让多个部分相互检查。
我将有第二个独立的小进程,它也将连接到同一个交易账户并监控一些简单的事情,比如确保总净头寸不超过某个限制,或者例如在 10 分钟内没有超过 N 个订单, 或多于 M 个仓位同时开仓。您还可以检查实际未平仓头寸是否与策略流程认为它实际持有的一致。作为奖励,我可以在不同的机器/网络提供商上运行这个检查程序。
除了主要策略中的检查之外,这将确保无论发生什么奇怪的错误,都不会发生真正糟糕的事情。
还有什么我应该监控和注意的事情吗?
.net - 安全关键应用程序 - 数据库行验证
这可能有点模糊,但我希望在 SO 上的所有人中,会有一些人以前遇到过这类问题。
背景
我们的应用程序是一个控制火车订单的 C#/.NET 服务。我们使用 LINQ-to-SQL 将铁路网络的状态和火车订单存储在 SQL Server 2005 数据库中。
我们有一个安全要求,即 COTS 软件本身不能被“信任”。
要求
因此,风险被捕获为:“SQL 服务器或操作系统修改静态或动态数据”。
我们的任务:“存储在数据库中的数据应经过验证,以便在读取时可以通过数据访问代码确认自上次提交以来它没有更改。”
问题
我很想找到一种“自动”的方式来满足这个要求。
如果做不到这一点,则无需在数据库的每个表中创建列来存储计算的哈希值(然后我们必须在读取时对其进行验证)来满足条件。
safety-critical - 安全关键应用和分区共享中任务的 SIL 分配规则
考虑一个由多个任务组成的安全关键应用程序,我有以下问题:
是否可以在应用程序中拥有不同 SIL 的任务,或者所有任务都具有相同的 SIL?我知道在硬件中,有可能有一个特定 SIL 的系统实际上由不同 SIL 的子组件组成。IEC 61508-2,第 7.4.3 节提出了将不同 SIL 的子系统组合成一个比组成部分具有更高 SIL 的系统的规则。
如果可能,结合的规则是什么?参考资料非常有帮助。例如,SIL 2 的任务可以作为 SIL 3 任务的输入吗?
谢谢,祝你好运,
qt - Qt 研究/学术/期刊论文/文章
我正在尝试查找任何分析 Qt 和 Qt Creator 最新版本的研究/学术/期刊论文/文章。
具体来说,我试图从实时安全关键的角度评估 Qt,所以任何信息都是有帮助的。
PS我已经尝试过典型的搜索方法:谷歌学者、IEEE探索、ACM数字图书馆等。也许我没有使用正确的搜索词,但是当我搜索以下内容时没有任何有用的东西出现:“软件安全Qt GUI”或它的任何排列。
再次感谢您提供任何有用的见解。
c - 什么是反对 C 代码中的变量冗余的有力论据
我从事安全关键应用程序开发工作。最近,作为一名代码审查员,我抱怨如下所示的编码风格,但无法提出强有力的反对意见。那么反对这种变量冗余/重复的好论据是什么,我正在寻找可能导致问题或可能失败的测试用例的案例,而不仅仅是编码风格。
linux - Linux CAN总线传输超时
设想
有一个基于 Linux 的设备连接到 CAN 总线。设备定期发送 CAN 报文。该消息携带的数据的性质类似于测量而不是命令,即只有最近的一个实际上是有效的,如果某些消息丢失了,只要最近的一个成功接收就没有问题。
然后,有问题的设备与 CAN 总线断开连接的时间比后续消息传输之间的间隔长得多。设备逻辑仍在尝试传输消息,但由于总线断开,CAN 控制器无法传输任何消息,因此消息正在累积在 TX 队列中。
一段时间后,CAN 总线连接恢复,所有积累的消息都被一一踢到总线上。
问题
- 当 CAN 总线连接恢复时,将从 TX 队列中传输未定义数量的过时消息。
- 当 CAN 总线连接仍然不可用但 TX 队列已满时,一些最近的消息(即唯一有效的消息)的传输将被丢弃。
- 一旦 CAN 总线连接恢复,在刷新 TX 队列时会出现短期流量突发。如果使用了时间触发总线调度(在我的情况下),这可以改变时间触发总线调度。
问题
我的应用程序使用 SocketCAN 驱动程序,所以基本上这个问题应该适用于 SocketCAN,但如果有的话,也会考虑其他选项。
我看到了两种可能的解决方案:定义消息传输超时(如果在某个预定义的时间内没有传输消息,它将自动丢弃),或者手动中止过时消息的传输(尽管我怀疑使用套接字根本不可能API)。
由于第一个选项对我来说似乎是最真实的,所以问题是:
- Linux下如何定义CAN接口的TX超时?
- 除了 TX 超时之外,是否存在其他选项来解决上述问题?
c - 米斯拉违规 12.6
如何在以下声明中摆脱 MISRA 违规
逻辑运算!运算符不是“有效布尔”表达式。MISRA-C:2004 规则 12.6;参考 - ISO:C90-6.3.3.3 一元算术运算符