The European Cyber Resilience Act
The security of digital products has become a topic of regulation in recent years. Currently, the European Union is moving forward with another new law, which, if it comes into effect in a form close to the current draft, will affect software developers worldwide. This new proposal, called the "Cyber Resilience Act" (CRA), brings mandatory security requirements on all digital products, both software and hardware, that are available in Europe. While it aims at a worthy goal, the proposal is causing a stir among open-source communities.
There is a reason why the open-source world has concerns: the legislation indirectly defines who is responsible for the security of open source and who should pay to improve the current state. In addition, it puts the responsibility on individual developers and foundations hosting open-source projects instead of the manufacturers of goods embedding the software. It could have important consequences for open source across the globe.
The original proposal of the CRA (the main text
and the annexes)
brings several requirements (enumerated in Annex I) for "products on
the market
" (more on definitions a little later). Most requirements
are generally accepted best-practices, such as a secure default
configuration, providing security updates, protection from unauthorized
access, and releases free of known vulnerabilities; others could be
considered somewhat vague
like "(g) minimise their own negative impact on the availability of
services provided by other devices or networks
".
Each product (which means every release for software) would need to provide
"an
assessment of the cybersecurity risks
" along with the release-related
documentation (listed in Annex II).
The security assessment covers the software itself and all its
dependencies; the way to perform the assessment could fall under one
of three categories,
from self-assessment to the involvement of a third party.
Self-assessment is the default. However, the regulation requires a
stricter approach
when the product's "core function
" falls into the category of a
"critical product with digital elements
" (listed in Annex III),
which is further
divided into
Class I (less critical) and Class II (more critical). Depending
on their class, products must undergo a mandatory external security assessment;
all Class II products are required to do so, while Class I
products must
only if they do not
follow the (not yet defined) "harmonised standards, common
specifications or cybersecurity certification schemes
".
The release-related documentation needs to cover (among other items) the
product's
expected uses, its support time frame, and the way to install security
updates.
All manufacturers must have a vulnerability-reporting procedure and
release security updates free of charge
for users. If a manufacturer learns about an
"actively exploited vulnerability
", it is expected to notify
authorities rapidly (24 hours
in many cases; followed by a complete analysis one month later). Finally, a
party
not complying with the requirements may be subject to fines of up to
€15-million or
up to 2.5 percent of the worldwide annual turnover (gross revenue),
whichever is higher.
Commercial activity
As the devil is in the details, definitions
have an important impact on understanding the CRA. The most
important term
is, without a doubt, "commercial activity
" as found in the following sentence:
In order not to hamper innovation or research, free and open-source software developed or supplied outside the course of a commercial activity should not be covered by this Regulation.
The definition for "commercial activity
" comes from a document called "The
Blue Guide",
which has examples on page 21 that provide a little more
explanation. The text
states that commercial activity means providing goods in "a business
related context
"
and the decision if a particular activity is commercial or not should
be done:
on a case by case basis taking into account the regularity of the supplies, the characteristics of the product, the intentions of the supplier, etc. In principle, occasional supplies by charities or hobbyists should not be considered as taking place in a business related context.
Without further clarification, one might consider many open-source projects as commercial activities, especially mature ones that are used widely and make regular releases. Those with developers hired to work on the project might also qualify.
The definition of commercial activity is the main point affecting open-source projects. It will not affect hobby projects run by unpaid volunteers only. It could (depending on the any future judgments) affect all others. If that wording is not changed in the final version of the CRA, it could cause uncertainty, leading to lesser involvement in open source.
Who is the manufacturer?
The discussion of commercial activity brings us to the other
primary term of the CRA: the "manufacturer". Again, according to the
"Blue Guide" (page 34):
"The manufacturer is any natural or legal person who manufactures a
product or has a product designed or manufactured, and places it on
the market under his own name or trademark
".
The CRA also defines other roles like the distributor or importer, but
"manufacturer" will be the most important one in our case. The
manufacturer is critical
because they are responsible for fulfilling requirements and could
face the fines mentioned above.
Let us take the example of a project hosted by an open-source foundation. That foundation could be considered the manufacturer, even if it might have limited impact on the development process and concentrates on governance and organizational aspects. The definition of the manufacturer might be even more complicated when there is no formal legal entity. Is the person tagging a release the manufacturer in this case? The person with the most commits? All the maintainers together? Their employers?
If foundations or other supporting organizations are to be classified as manufacturers, they will be required to put additional constraints on projects and how they develop and release. That could cause significant tension, especially for projects with no established security culture.
Another point is the need for a budget in case an external assessment is required; currently, operating systems and networking software both require an external assessment. A typical budget for a security assessment is in tens of thousands of dollars (or euros). The exact scope of the audit for CRA requirements will be defined further (the general description appears in Annex VI), but we might assume a need for a similar budget for every non-bugfix release. It will be vital for many projects to figure out who will pay for assessments. Many of them, including virtually all without an organization backing them, will not be able to pay that fee.
Even if a project falls under self-assessment only, its release must be accompanied by several documents, including a risk analysis. Writing and verifying this information would mean additional work for projects, though the exact content of this documentation still needs to be fully defined.
Vulnerability and exploitation reporting
Under the CRA, each manufacturer needs to have a vulnerability-reporting process and, in most cases, provide security updates. Logically, they would also have to provide updates of all dependencies, especially when they are linked into the main product. A recent discussion in the Linux kernel community showed that timely delivery of security fixes is not yet a solved problem; regulation like the CRA might actually push device vendors to publish fixes more rapidly.
One clause also requests all manufacturers to report each
"actively exploited vulnerability
" whenever they learn about
it. The report must happen
within strict time limits, such as a first notification in 24 hours
(though it is not required for small companies). The company should provide
a detailed
analysis with a fix within one month. These reports are sent to the European Union Agency for
Cybersecurity (ENISA). With that pile of 0-days, ENISA will become
a juicy target for attacks (though one might argue that a service like GitHub's
private advisories is already
such a target).
The obligation to notify about all issues also breaks normal disclosure processes. These days, vendors disclose vulnerabilities only after a fix is available. Also, the one-month limit for a complete analysis might sometimes be hard to meet. The industry typically uses 90 days, but some vulnerabilities (notable examples include hardware issues like speculative execution bugs) take months from the discovery to the fix.
The reaction
After the original proposal was published in September 2022, the open-source community started rapidly responding to it. One of the first reactions came from a foundation, NLnet Labs, in a blog post describing the impact on its domain: network and routing protocols. Many of the projects the foundation works on fall into the "critical products" category and would require significant additional work, possibly including an external security audit. Also, they note that some of these tools, which may have been available for dozens of years, could be considered "commercial" so they would fall under the regulation even though the organization gets no income from that software.
Other organizations have done their own analysis as well. A blog post from Mike Milinkovich of the Eclipse Foundation lists all of the documentation and assessment that the Foundation would have to do for each released software version; he also mentions the uncertainty of which tools would be classified as critical or highly critical. During FOSDEM 2023, a panel (WebM video) took place where European Commission representatives answered questions from the community. This session mostly concentrated on the impact of the definition of "commercial activity" that is a condition for the product to fall under the scope of the CRA. It was said that even for charities, it is going to be case-by-case determination. Also, a Commission representative said that the goal of the regulation is to force manufacturers to do more due diligence on the components that they include; they will be obligated to do so as part of their security assessment.
In April 2023, multiple organizations released
an open letter
asking the Commission to "engage with the open source community and
take our concerns into account
". In addition, some specialized communities
such as Content Management Systems (CMSes) wrote
their own
open letter, which was signed by representatives of WordPress, Joomla, Drupal, and TYPO3. Interested
readers may also want to look at the list
of reactions that is
maintained by the Open Source
Initiative (OSI).
Possible response
If the regulation is put in place in its current form, some projects may not want to risk being classified as "commercial activity" and may decide to state that their code will not be available to the EU (enforced by technical means or not). That also raises interesting licensing questions; for example, it is not clear that GPL-covered code can have such a restriction. When code is restricted in that way, the security assessment for any downstream projects using that project in the EU will become more complicated — it could even mean that each downstream project needs to perform that audit independently. Or remove the dependency.
Some projects might decide to stop accepting contributions from developers employed by companies, or not take donations from companies, in order to not be classified as commercial. That could seriously impact those projects, reducing both their funding and the development base. But, even if such a project falls under the non-commercial category, downstream users might be using it otherwise.
Finally, there may be an impact on the number of new open-source projects. Convincing a (big) company to open-source new work is a daunting task; if there is more burden related to liability and documentation, fewer companies will release projects that are not crucial to their goals. This could affect tools like those for testing, continuous integration, for programming embedded devices, and so on. An increase in the number of forks is also likely; companies may want a version of some project's code with changes for CRA compliance. That could in fact decrease overall security, instead of improving it.
The current state
In addition to the initial version, as of August 2023 there are currently two sets of amendments, one from the EU Council, and another from the EU Parliament, that resulted from the work of Parliament committees. The most recent vote in the EU Parliament committees took place in July 2023. The next step is negotiations (called a "trilogue") between the Council, Commission, and Parliament to come up with a final version.
The two set of amendments change certain details, but not the
general thrust of the regulation. Both of them change lists of the
"critical product with digital elements
" (those that might require an
external audit). The amendments from the Council shorten both lists,
while ones from the Parliament move all routers
to Class II and add new categories to Class I (home automation, smart
toys, etc.).
They also both modify the "open-source exception". The Parliament
version seems to move requirements
to companies and gives a set of examples of commercial and non-commercial
activities. An indication of a non-commercial activity is a
fully distributed model and lack of control by one company.
On the other hand, if "the main contributors to free and open-source
projects are developers employed by commercial entities and when such
developers or the employer can exercise control
as to which modifications are accepted in the code base
", that is an
indication of commercial activity, the same as regular donations from
companies.
It also states that individual
developers "should not be subject to obligations pursuant to this
Regulation
".
The Council's version seems to cover more products by
the exception:
this Regulation should only apply to free and open-source software that is supplied in the course of a commercial activity. Products provided as part of the delivery of a service for which a fee is charged solely to recover the actual costs directly related to the operation of that service [...] should not be considered on those grounds alone a commercial activity.
The start of the negotiation on the final version is likely to happen after the summer break (which means in September 2023). Note that European Elections will happen in early June 2024 which means that the process is likely to be rushed to completion before that date.
The outcome?
Improving the security state of the digital world is a worthy goal, and many ideas the CRA brings are reasonable best practices. However, the impact of the current form of the regulation is difficult to predict. In the open-source world, it could be putting all the burden on upstream projects. These projects are frequently underfunded, so they might not have the resources to perform all the required work; that analysis and documentation work is worth doing, but funding has to be available in order to make it happen. FOSS developers, especially those working in the embedded space, should be paying attention to this legislation, as there is more to it than our summary above covers. Readers in the EU may want to contact their representatives about the CRA, as well.
| Index entries for this article | |
|---|---|
| GuestArticles | Rybczynska, Marta |