Page 346 -
P. 346

12.4   Security specification  329


                               12.4 Security specification


                                       The specification of security requirements for systems has something in common
                                       with safety requirements. It is impractical to specify them quantitatively, and secu-
                                       rity requirements are often ‘shall not’ requirements that define unacceptable system
                                       behavior rather than required system functionality. However, security is a more chal-
                                       lenging problem than safety, for a number of reasons:


                                       1.  When considering safety, you can assume that the environment in which the
                                          system is installed is not hostile. No one is trying to cause a safety-related inci-
                                          dent. When considering security, you have to assume that attacks on the system
                                          are deliberate and that the attacker may have knowledge of system weaknesses.
                                       2.  When system failures occur that pose a risk to safety, you look for the errors or
                                          omissions that have caused the failure. When deliberate attacks cause system
                                          failures, finding the root cause may be more difficult as the attacker may try to
                                          conceal the cause of the failure.
                                       3.  It is usually acceptable to shut down a system or to degrade system services to
                                          avoid a safety-related failure. However, attacks on a system may be so-called
                                          denial of service attacks, which are intended to shut down the system. Shutting
                                          down the system means that the attack has been successful.
                                       4.  Safety-related events are not generated by an intelligent adversary. An attacker
                                          can probe a system’s defenses in a series of attacks, modifying the attacks as he
                                          or she learns more about the system and its responses.

                                         These distinctions mean that security requirements usually have to be more exten-
                                       sive than safety requirements. Safety requirements lead to the generation of func-
                                       tional system requirements that provide protection against events and faults that
                                       could cause safety-related failures. They are mostly concerned with checking for
                                       problems and taking actions if these problems occur. By contrast, there are many
                                       types of security requirements that cover the different threats faced by a system.
                                       Firesmith (2003) has identified 10 types of security requirements that may be
                                       included in a system specification:

                                       1.  Identification requirements specify whether or not a system should identify its
                                          users before interacting with them.

                                       2.  Authentication requirements specify how users are identified.
                                       3.  Authorization requirements specify the privileges and access permissions of
                                          identified users.

                                       4.  Immunity requirements specify how a system should protect itself against
                                          viruses, worms, and similar threats.

                                       5.  Integrity requirements specify how data corruption can be avoided.
   341   342   343   344   345   346   347   348   349   350   351