Eduardo B. Fernandez
Education:
Appointments
Related Publications:
A methodology to build secure systems using patterns Most of the approaches to produce secure software are based on analyzing code. While this is a reasonable approach, it will not have a strong impact in future systems. We believe that we need to emphasize the modeling aspects of code development and we have proposed a methodology for this purpose. This is an update of the work performed this year. A main idea in the proposed methodology is that security principles should be applied at every stage of the software lifecycle and that each stage can be tested for compliance with security principles [Fer06a]. Another basic idea is the use of patterns to guide security at each stage [Sch06]. Patterns are applied in the different architectural levels of the system to realize security mechanisms. This project proposes guidelines for incorporating security from the requirements stage through analysis, design, implementation, testing, and deployment. We discuss each stage indicating the most recent work. Modeling can include also hardware, which means that a complete secure system can be designed in this way. Domain analysis stage: A generic conceptual model is defined. Legacy systems are identified and their security implications analyzed. Domain and regulatory constraints are identified. Analysis patterns lead to a domain model. Institution security policies are defined now but specific application policies are added later. The suitability of the development team is assessed, possibly leading to added training. Security issues of the developers, themselves, and their environment may also be considered in some cases. This phase may be performed only once for each new domain or team. Requirements stage: Use cases define the required interactions with the system. Applying the principle that security must start from the highest levels, it makes sense to relate attacks to use cases. We study each activity within a use case and see which threats are possible [Fer06b]. We then determine which policies would stop these attacks. From the use cases we can also determine the needed rights for each actor and thus apply a need-to-know policy. Note that the set of all use cases defines all the uses of the system and from all the use cases we can determine all the rights for each actor. The security test cases for the complete system are also defined at this stage. Analysis stage: Analysis patterns can be used to build the conceptual model in a more reliable and efficient way. We build a conceptual model where repeated applications of a security model pattern [Fer07] realize the rights determined from use cases. In fact, analysis patterns can be built with predefined authorizations according to the roles in their use cases [Fer07]. Then we only need to additionally specify the rights for those parts not covered by patterns. Design stage: Design mechanisms are selected to stop the attacks identified earlier and realize the required policies [Fer05]. User interfaces should correspond to use cases and may be used to enforce the authorizations defined in the analysis stage. Secure interfaces enforce authorizations when users interact with the system. Components can be secured by using authorization rules for Java or .NET components. Distribution provides another dimension where security restrictions can be applied. Deployment diagrams can define secure configurations to be used by security administrators. A multilayer architecture is needed to enforce the security constraints defined at the application level. In each level we use patterns to represent appropriate security mechanisms. Security constraints must be mapped between levels. Implementation stage: This stage requires reflecting in the code the security rules defined in the design stage. Because these rules are expressed as classes, associations, and constraints, they can be implemented as classes in object-oriented languages. In this stage we can also select specific security packages or COTS, e.g., a firewall product, a cryptographic package. Some of the patterns identified earlier in the cycle can be replaced by COTS (these can be tested to see if they include a similar pattern). |
"PIRE... provides our students with the kind of
direct international experience and training that will
prepare them for careers in an increasingly competitive
global arena." "PIRE...will enable the next generation of
students participants to become fully engaged as members of
the globally-aware IT workforce."" "We look forward to hosting students researchers
... to foster our existing collaborations and create new
ones." "I was able to develop quite a bit as a person, researcher, and professional." "Being able to learn elements directly related to my project, the likes and dislikes of another culture, and be able to communicate in a different language are all aspects related to the PIRE program for which I will always be grateful." "It helps you build confidence that the degree you hold will enable you to tackle any problem, and, more importantly, it lets you experience the job before committing your life to it." |
This material is based in part upon work supported by the National Science Foundation under Grant Number OISE-0730065. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation. © 2007 Florida International University