1,721,080 research outputs found
MISRA C, for Security's Sake!
A third of United States new cellular subscriptions in Q1 2016 were for cars.
There are now more than 112 million vehicles connected around the world. The
percentage of new cars shipped with Internet connectivity is expected to rise
from 13% in 2015 to 75% in 2020, and 98% of all vehicles will likely be
connected by 2025. Moreover, the news continuously report about "white hat"
hackers intruding on car software. For these reasons, security concerns in
automotive and other industries have skyrocketed. MISRA C, which is widely
respected as a safety-related coding standard, is equally applicable as a
security-related coding standard. In this presentation, we will show that
security-critical and safety-critical software have the same requirements. We
will then introduce the new documents MISRA C:2012 Amendment 1 (Additional
security guidelines for MISRA C:2012) and MISRA C:2012 Addendum 2 (Coverage of
MISRA C:2012 against ISO/IEC TS 17961:2013 "C Secure Coding Rules"). We will
illustrate the relationship between MISRA C, CERT C and ISO/IEC TS 17961, with
a particular focus on the objective of preventing security vulnerabilities (and
of course safety hazards) as opposed to trying to eradicate them once they have
been inserted in the code
Study: MISRA C coding guidelines
This repository contains the material and obtained data of an eye tracking study on the topic "MISRA C coding guidelines".
For more information, please feel free to contact
A Rationale-Based Classification of MISRA C Guidelines
MISRA C is the most authoritative language subset for the C programming language that is a de facto standard in several industry sectors where safety and security are of paramount importance. While MISRA C is currently encoded in 175 guidelines (coding rules and directives), it does not coincide with them: proper adoption of MISRA C requires embracing its preventive approach (as opposed to the "bug finding" approach) and a documented development process where justifiable non-compliances are authorized and recorded as deviations. MISRA C guidelines are classified along several axes in the official MISRA documents. In this paper, we add to these an orthogonal classification that associates guidelines with their main rationale. The advantages of this new classification are illustrated for different kinds of projects, including those not (yet) having MISRA compliance among their objectives
An Eye Tracking Study on MISRA C Coding Guidelines
C is one of the most widely used programming languages - MISRA C is one of the most known sets of coding guidelines for C. This paper examines the usefulness and comprehensibility of the MISRA C:2012 guidelines in an eye tracking study. There, subjects encounter non-compliant code in four different code review settings: with no additional reference, with an actual MISRA C guideline, with a case-specific interpretation of a MISRA C guideline, and with a compliant version of the code. The data collected was analyzed not only in terms of the four presentation styles, but also by dividing the subjects into experience levels based on their semesters of study or years of work experience. Regarding the difference between actual and interpreted guidelines, we found that for interpreted guidelines the error detection rate is higher whereas the duration and frequency of visits to the guideline itself are mainly lower. This suggest that the actual guidelines are less useful and more difficult to understand. The former is contradicted by the subjects’ opinions: when surveyed, they rated the usefulness of the actual guidelines higher
BARR-C:2018 and MISRA C:2012: Synergy Between the Two Most Widely Used C Coding Standards
The Barr Group’s Embedded C Coding Standard (BARR-C:2018, which originates from the 2009 Netrino’s Embedded C Coding Standard) is, for coding standards used by the embedded system industry, second only in popularity to MISRA C. However, the choice between MISRA C:2012 and BARR-C:2018 needs not be a hard decision since they are complementary in two quite different ways. On the one hand, BARR-C:2018 has removed all the incompatibilities with respect to MISRA C:2012 that were present in the previous edition (BARR-C:2013). As a result, disregarding programming style, BARR-C:2018 defines a subset of C that, while preventing a significant number of programming errors, is larger than the one defined by MISRA C:2012. On the other hand, concerning programming style, whereas MISRA C leaves this to individual organizations, BARR-C:2018 defines a programming style aimed primarily at minimizing programming errors. As a result, BARR-C:2018 can be seen as a first, dramatically useful step to C language subsetting that is suitable for all kinds of projects; critical projects can then evolve toward MISRA C:2012 compliance smoothly while maintaining the BARR-C programming style. In this paper, we introduce BARR-C:2018, we describe its relationship with MISRA C:2012, and we discuss the parallel and serial adoption of the two coding standards
BARR-C:2018 and MISRA C:2012 (with Amendment 2): Synergy Between the Two Most Widely Used C Coding Standards
The Barr Group's Embedded C Coding Standard (BARR-C:2018, which originates from the 2009 Netrino's Embedded C Coding Standard) is, for coding standards used by the embedded system industry, second only in popularity to MISRA C. However, the choice between MISRA C:2012 and BARR-C:2018 needs not be a hard decision since they are complementary in two quite different ways. On the one hand, BARR-C:2018 has removed all the incompatibilities with respect to MISRA C:2012 that were present in the previous edition (BARR-C:2013). As a result, disregarding programming style, BARR-C:2018 defines a subset of C that, while preventing a significant number of programming errors, is larger than the one defined by MISRA C:2012. On the other hand, concerning programming style, whereas MISRA C leaves this to individual organizations, BARR-C:2018 defines a programming style aimed primarily at minimizing programming errors. As a result, BARR-C:2018 can be seen as a first, dramatically useful step to C language subsetting that is suitable for all kinds of projects; critical projects can then evolve toward MISRA C:2012 compliance smoothly while maintaining the BARR-C programming style. In this paper, we introduce BARR-C:2018, we describe its relationship with MISRA C:2012, and we discuss the parallel and serial adoption of the two coding standards
The MISRA C Coding Standard and its Role in the Development and Analysis of Safety- and Security-Critical Embedded Software
The MISRA project started in 1990 with the mission of
providing world-leading best practice guidelines for the
safe and secure application of both embedded control
systems and standalone software. MISRA C is a coding
standard defining a subset of the C language, initially
targeted at the automotive sector, but now adopted
across all industry sectors that develop C software in
safety- and/or security-critical contexts. In this
paper, we introduce MISRA C, its role in the development
of critical software, especially in embedded systems,
its relevance to industry safety standards, as well as
the challenges of working with a general-purpose
programming language standard that is written in natural
language with a slow evolution over the last 40+
years. We also outline the role of static analysis in
the automatic checking of compliance with respect to
MISRA C, and the role of the MISRA C language subset in
enabling a wider application of formal methods to
industrial software written in C
The MISRA C Coding Standard: A Key Enabler for the Development of Safety- and Security-Critical Embedded Software
Building embedded control systems that embody industry
best practices for safety and security is a challenging
task: doing so in unrestricted C is even more
challenging. C~is a general-purpose programming
language, partially defined by an ISO standard written
in natural language with a slow evolution over the last
40+ years. Its many strong points make it the most used
language for the development of embedded systems.
Unfortunately, the origin of C's strength is also the
origin of C's weakness: the language has many aspects
that are not fully defined, it has some rather obscure
aspects that can easily induce programmers into error,
and it has no run-time error detection facilities.
MISRA C is a coding standard defining a subset of the C
language, initially targeted at the automotive sector,
but now adopted across all industry sectors that develop
C software in safety- and/or security-critical contexts.
In this talk, we introduce MISRA C, its key role in the
development of critical embedded systems' software and
its relevance to industry safety and security standards.
We explain why and how MISRA C retains 95% of the
advantages of C and eradicates 95% of its drawbacks:
with the right tools, training and professional
expertise, the adoption of MISRA C, besides satisfying
some important requirements imposed by safety standards,
can significantly decrease development times and
costs
Extending a user interface prototyping tool with automatic MISRA~C code generation
We are concerned with systems, particularly safety-critical systems, that
involve interaction between users and devices, such as the user interface of medical devices. We therefore developed a MISRA~C code generator for formal models expressed in the PVSio-web prototyping toolkit.
PVSio-web allows developers to rapidly generate realistic interactive
prototypes for verifying usability and safety requirements in human-machine interfaces. The visual appearance of the prototypes is based on a picture of a physical device, and the behaviour of the prototype is defined by an executable formal model.
Our approach transforms the PVSio-web prototyping tool into a model-based
engineering toolkit that, starting from a formally verified user interface
design model, will produce MISRA~C code that can be compiled and executed for a
final product.
An initial validation of our tool is presented for the data entry
system of an actual medical device
- …
