# A Taxonomy for Security Flaws in Event-Based Systems
## 3 Taxonomy
### Taxonomy  
The security flaw taxonomy for EBSs is shown in Figure 1. As an EBS is a particular type of software system, it incorporates some flaws from general software systems. Note that the boxes highlighted in _red_ (F1, F4, F6, F9, F10) indicate the flaws adapted from the existing ones [25] to better reflect the system's event-based characteristics, and the boxes highlighted in _blue_ (F2, F5, F7, F8) indicate the flaws we added because they are specifically caused by event-based communication. Finally, the _green_ box (F3) indicates a flaw whose definition remains unchanged from the existing one [25]. In particular, the dashed boxes (F2, F5, F6, F7, F8, F10) indicate the flaws that can be exploited by event attacks. It is important to note that every flaw in this taxonomy was validated by existing publications regarding the security of EBS and Android [22; 24; 39; 40; 41; 42; 43; 44; 45; 56; 60; 61; 64; 65; 66; 67; 68; 69; 70; 71; 72; 73; 74; 75; 76; 77; 78; 79; 80; 81; 82; 83; 84; 85; 86; 87; 88; 89; 90; 91; 92; 93; 94; 95; 96; 97; 98; 99; 100; 101; 102; 103; 104; 105; 106; 107; 108; 109; 110; 111; 112; 113; 114; 115; 116; 117; 118; 119; 120; 121; 122; 123] In this taxonomy, a software system is defined as a combined system that comprises both application-level and framework-level elements (i.e., middleware) where an operating system is considered as a sub-component of the system. As the taxonomy considers both the design and implementation-level flaws, we will use \"developer\" as a term that represents both system designer and programmer. Moreover, a component is defined as an architectural unit that can communicate with other components using system-defined events. The goal of this classification is to provide a basis for determining the appropriate security strategies to be used in a particular context. The taxonomy is first classified according to the developer's intention (_Intentional_ and _Inadvertent_) because different security strategies can be used to reduce each type of flaw. For example, in a target EBS, if most of the security flaws are unintentionally and inadvertently introduced, exhaustive source code reviews and testing can be utilized to reduce the flaws [26]. However, in case most of the security flaws are intentionally introduced to an EBS, it would be more effective to minimize the proportion of externally-developed source code in the system by restricting the external components access (e.g., restrictive installation of third-party apps on Android system) or by incorporating more trustable message oriented middleware (MOM) platforms. _Intentional_ flaws are classified as _Malicious_ and _Non-Malicious_. The _Malicious_ flaws indicate the flaws that were deliberately inserted. If any part of the system was incorporated from an unreliable source, it might intentionally contain the following flaws:  
Figure 1: Security Flaw Taxonomy for event-based system (EBS). The _Red_ boxes indicate the flaws adapted from the original taxonomy. The _Blue_ boxes indicate the newly added flaws. The _Green_ box indicates the flaw unchanged from the original taxonomy. The circled labels indicate the assigned number for each flaw. * F7. _Unsafe Event_[22; 24; 39; 40; 41; 45; 46; 52; 60; 64; 68; 69; 70; 71; 75; 77; 78; 82; 85; 94; 95; 97; 98; 101; 102; 107; 110; 117; 130; 135; 138; 139]: This flaw is caused when an event containing sensitive information is insufficiently protected. For example, if a component broadcasts an event containing sensitive information without any particular protection (e.g., encryption), malicious components may intercept or eavesdrop on the event and peek at the sensitive information [22]. * F8. _Unsafe Event Interface_[22; 24; 39; 40; 41; 45; 46; 47; 52; 65; 68; 70; 71; 75; 77; 78; 82; 84; 87; 94; 97; 99; 104; 106; 107; 110; 116; 117; 119; 123; 130; 135; 138; 139]: If an event interface of a component has inadequate for filtering for handling received events, the component can be exposed to spoofed events.