Skip to content

Commit 907bc85

Browse files
authored
AVRO-4145: Add Avro security model (#3403)
Describe when using Avro is secure. This is necessary documentation, given the world-wide shift to extend product liability to "digital elements" (this includes software).
1 parent 0f9d0c5 commit 907bc85

File tree

1 file changed

+41
-1
lines changed

1 file changed

+41
-1
lines changed

doc/content/en/project/Security/_index.md

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,44 @@ manualLink: https://www.apache.org/security/
2626
2727
-->
2828

29-
Apache Avro project shares the same security policy as the [Apache Software Foundation](https://www.apache.org/security/)
29+
Security Policy
30+
===============
31+
32+
Apache Avro project shares the same security policy as
33+
the [Apache Software Foundation](https://www.apache.org/security/).
34+
35+
36+
Security Model
37+
==============
38+
39+
The Avro library implementations are designed to read and write any data conforming
40+
to a schema. Transport is outside the scope of the Avro library: applications using
41+
Avro should be surrounded by security measures that prevent attackers from writing
42+
random data and otherwise interfering with the consumers of schemas.
43+
44+
Although the Avro library will not read or write data except as directed to by
45+
invoking it, avoiding leaking data into a side channel like log files is a non-goal
46+
security-wise for Avro. This means, for example, that you will need to catch and
47+
handle exceptions instead of simply writing them to a log file.
48+
49+
In some cases, like schema parsing, type conversions and based on explicit schema
50+
properties, Avro can execute code provided by the environment. Avro has opt-in
51+
mechanisms for code that is eligible for execution. Applications using Avro should
52+
have a secured supply chain, ensuring code registered to be executed is safe.
53+
54+
This supply chain also includes the schemas being used: if they are user provided,
55+
additional validation is strongly advised. Such validation can use the parsed schema,
56+
as schema parsing itself is safe: the parser allows SPIs, but is not otherwise
57+
configurable.
58+
59+
60+
Summary
61+
-------
62+
63+
In short, using Avro is safe, provided applications:
64+
65+
* are surrounded by security measures that prevent attackers from writing random
66+
data and otherwise interfering with the consumers of schemas
67+
* avoid leaking data by, for example, catching and handling exceptions
68+
* have a secured supply chain, ensuring code registered to be executed is safe
69+
* if schemas are user provided, validate the parsed schema before use

0 commit comments

Comments
 (0)