SlideShare a Scribd company logo
1 of 82
Part 3: Security in Software Engineering
  ļ‚§ Security-aware Software Engineering Processes
  ļ‚§ Creation of Secure Applications




                                  Francisco SƔnchez Cid
                                               Project Manager
                           Instituto Tecnologico de Informatica
                                               Valencia (Spain)
We all agree:
 ā€¢ Indirectly, SE has a big impact on our ability to deliver and maintain
   applications
 ā€¦ but can a methodology be a direct revenue generator?
 E.g. System for Olives classification in Spain
       ā€œ..If we can certify that we have a secure software
           development life-cycle we stand to increase our
              overall revenue with clients from 10-20%.ā€
                                      Our Chief Software Architect
ā€¢ Actually utilizing our methodology as a competitive advantage! WOW!
ā€¢ Unit, integration, and acceptance tests and their automation mean you
  can actually certify that youā€™re software is reasonably secure at least
  for what youā€™re testing for
All right. This approach seems to work fine for 90% of
applications we develop, butā€¦ what about the other 10%?
ā€¢ For this 10% applications we do not only have security
requirements but also:
   o These requirements evolve as times goes by
   o Operational context is unpredictable or uncertain
   o We donā€™t want this app to be tightly coupled to an specific solution
   o E.g. Digital Signature Applet

ā€¢ Just one way out:
   o Identify and develop generic solutions
   o Use a model to represent the solutions
   o Link generic solutions to specific implementations
   o Once a solution is selected, monitor its validity on time
              ā€¦KindofModelDrivenEngineering?
                    letā€™shave a look at it
Security-aware
Software Engineering Processes
Security Aware Software Engineering Process
ļ‚§ Current technology challenges
ā€¢ Model Driven Engineering comes to help
   ā€“ Models
   ā€“ Model Driven Architecture
   ā€“ MDA and Security
ā€¢ Model transformations
   ā€“ What is a transformation
   ā€“ Example
ā€¢ Conclusions
Current technology challenges
ā€¢ Current applications are tightly coupled to underlying
  technologies
   ā€“ Investment done on their development is at risk due to this
     dependence

ā€¢ Many different platforms and technologies
   ā€“ Distributed objects, components, web servicesā€¦
   ā€“ Not interoperable
   ā€“ Not reuse (at least if they are not correctly designed)

ā€¢ Very fast evolution
   ā€“ New technologies appear every day
   ā€“ Old technologies disappear
   ā€“ How to protect the investment in business logic?
Security Aware Software Engineering Process
ā€¢ Current technology challenges
ļ‚§ Model Driven Engineering comes to help
   ā€“ Models
   ā€“ Model Driven Architecture
   ā€“ MDA and Security
ā€¢ Model transformations
   ā€“ What is a transformation
   ā€“ Example
ā€¢ Conclusions
MDE as opposite to OO
Object Oriented Design    ļƒ Everything is a object
Model Driven Engineeringļƒ Everything is a model

                    cd MDE v s OO


                        SuperClass     Meta-Model



                        inheritsFrom    conformsTo
    Relations
     in these
   approaches
   clearly differ          Class          Model



                         instanceOf    representedBy




                          Instance       System
Model Driven Engineering (MDE)
ā€¢ Approach to software development based in models and in
  model transformations
   ā€“ Current approaches are based in objects, programs and compilers
ā€¢ MDE implies the (semi) automated generation of implementations
  from models
ā€¢ Modelling languages are key to MDE
   ā€“ Model transformation languages are also modelling languages
   ā€“ Models conform to meta-models
ā€¢ MDA is the OMGā€™s proposal for MDE, using OMG standards
   ā€“ MOF, UML, OCL, XMI, QVT
   ā€“ MOF and UML allow the definition of new families of languages
What is a model ?
ā€¢ A description of (part of) a system written in a well-defined
  language (Equivalent to specification) [Kleppe, 2003]
ā€¢ A description or specification of the system and its
  environment for some certain purpose. A model is often
  presented as a combination of drawings and text [MDA Guide,
  2003]
Models in software
                             ā€¢ ā€œ...Bubbles and arrows, as opposed to programs, never crash.ā€ [B.
                               Meyer, 1997]
                             ā€¢ The problem is to maintain the link between models and source code

   sd Activ ate Pattern

            Application                    S&D Manager           Event Manager             S&D Query           Runtime S&D   Context Manager
                                                                                                                 Library




                            1: Request Class()
                                                                                                                                               publicclass
                                                                                         2: Get Context()                                      ActiveMonitoringManager
                                                                                                                                               extends Observable{
                                                                                        3: Send Context()
cd Metamodelo
                                                                                                                                               privatestatic
                                                           4: Get Available Patterns()
                                                                                                                                               MonitoringServiceIF
                                                  ExecutableComponent                             5: Build Query()
                                                                                                                                               monitoringAccess;
                                                        cd SampleApplicationIM
                                                       RefersTo
                                                                                                                                               private
                                                                                                6: Query For Patterns()
                        Pertenece-A             Implementa
                                                                 EmailDB                   CommunicacionSystem                                 Hashtable<String,MonitorInfo
    S&DClass
                    *              *
                                 S&DPattern
                                                           *
                                                      S&DImplementation                          7: Return Patterns()
                                                                                                                                               > activeMonitors;

                                                                8: Return Patterns()
                                                                                                                                               privatestatic
                                                               EmailSystem                           GUI                                       ActiveMonitoringManager
                        Proporciona          Representa
                                                      9: Choose Pattern()                                                                      mManager = getInstance();
                *
  S&DProperty                    S&DArtefact              S&DSolution
                                       *
                                                                                       10: Update Context()

          Requiere                         Securiza
     13: Send Implementation Handler                        AccessControl
                         Tiene
                *                                                                      Ā«SecurizesĀ»

S&DRequirement                   Application
                                                                                                     Ā«S&DPatternĀ»
                                                                                             smartCardAuthentication.UMA.es
Limitations of models (in SE)
ā€¢ Models are used only as documentation (if the system is documented at all)
ā€¢ ā€œGapā€ between the model and the implementation of the system
   ā€“ Semantic gap between the respective languages
   ā€“ Changes in the model do not reflect in the code
   ā€“ Changes in the code do not reflect in the model (the model is thrown away after
     the first implementation, and never updated or used again)
ā€¢ No ā€œmergeā€ of models (though some tools actually help)
   ā€“ Unrelated views of a system (horizontal)
   ā€“ Unrelated towers of models (vertical)
ā€¢ No model ā€œtransformationsā€
   ā€“ Few defined transformation languages
   ā€“ No tools
ā€¢ We are still far behind more mature engineering industries, such as
  aerospace, automotive and electrical engineering....
ā€¢ ...Even hardware design is ahead of software design!
Kinds of SE models
ā€¢ Depending on:

   ā€“ The phase of the project
      ā€¢ Analysis models, design models, ...
   ā€“ The level of detail
      ā€¢ High level models, Low level models (implementations)
   ā€“ The view of the system
      ā€¢ Business models, Software Architecture models, Deployment models,...
   ā€“ The aspect they focus on
      ā€¢ Structural models, behavioural models, QoS models, ...
   ā€“ The level of technology independence
      ā€¢ Computation Independent Models, Platform Independent
        Models, Platform Specific Models
   ā€“ The particular target platform
      ā€¢ J2EE, .NET, CORBA, EDOC, ....
MDA: OMGā€™s Four-layer metamodel architecture




 ā€¢   M3, MOF (Meta Object Facility) used to describe meta-models
 ā€¢   M2, Meta-models used to describe modelling languages
 ā€¢   M1, models used to describe applications
 ā€¢   M0, instances of applications
Example
Example
MDA Models (M1)
ā€¢ Computation Independent Model (CIM)
    ā€“ A view from a system from the Computational Independent Viewpoint
    ā€“ A CIM Focuses on the system and its environment; the details of the structure of the system are hidden
      or as yet undetermined
    ā€“ A CIM is sometimes called a domain model or a business model, and is specified using a vocabulary
      that is familiar to the practitioners of the domain in question
    ā€“ It may hide much or all information about the use of automated data processing systems

ā€¢ Platform Independent Model (PIM)
    ā€“ A platform independent model is a view of a system from the platform independent viewpoint
    ā€“ A PIM exhibits platform independence and is suitable for use with a number of different platforms of
      similar type

ā€¢ Platform Specific Model (PSM)
    ā€“ A platform specific model is a view of a system from the platform specific viewpoint
    ā€“ A PSM combines the specifications in the PIM with the details that specify how that system uses a
      particular type of platform

ā€¢ Platform Model (PM)
    ā€“ A platform model provides a set of technical concepts, representing the different kinds of parts that
      make up a platform and the services provided by that platform
    ā€“ It also provides, for use in a platform specific model, concepts representing the different kinds of
      elements to be used in specifying the use of the platform by an application
Examples of MDA models

ā€¢ CIM
   ā€“ Use case models capturing the system requirements

ā€¢ PIM
   ā€“ The software architecture of the system, that describes how the functionality of
     the system is decomposed into (architectural) components and connectors

ā€¢ PSM
   ā€“ A model of the J2EE implementation of the system, expressed using the EJB
     Profile that describes how the (architectural) components need to be
     implemented by EJBs

ā€¢ Platform Model (Code)
   ā€“ The EJBs themselves, their configuration files, etc., ready to be deployed
Security Aware Software Engineering Process
ā€¢ Current technology challenges
ļ‚§ Model Driven Engineering comes to help
   ā€“ Models
   ā€“ Model Driven Architecture
   ā€“ MDA and Security
ā€¢ Model transformations
   ā€“ What is a transformation
   ā€“ Example
ā€¢ Conclusions
Model Driven Security (D. Basin)
ā€¢ It is an extension of MDA
 SystemModel

      A                            SystemModel+
                                   SecurityModel
                     A             B   <<secumlPermission>>
                                                              <<secumlRole>>
                                                                 Customer

      B
                               ModelTransformation+
                                   extensions

                                       TargetSyste
                                           m      +
                                        SecurityInfrastructure
                                         (RBAC, assertions,
                                                 etc.)
Model Driven Security
ā€¢ Three UML extensions
   ā€“ ComponentUML, a class based language for data modelling
   ā€“ ControllerUMLfor modelling system behaviour evolution
   ā€“ SecureUML for modelling secure systems based on RBAC
      ā€¢ Confidentiality and Integrity are modeledusing RBAC

ā€¢ They are composed in Security Languages for
  modelling design and security

ā€¢ Only for class, sequence and state charts diagrams
Model Driven Security

                                      Resources
ā€¢ Three UML extensions
   ā€“ ComponentUML, a class based language for data modelling
   ā€“ ControllerUMLfor modelling system behaviour evolution
   ā€“ SecureUML for modelling secure systems based on RBAC
      ā€¢ Confidentiality and Integrity are model using RBAC

ā€¢ They are composed in Security Languages for
  modelling design and security

ā€¢ Only for class, sequence and state charts diagrams
Model Driven Security


ā€¢ Three UML extensions
    ā€“ ComponentUML, a class based language for data modelling
    ā€“ ControllerUMLfor modelling system behaviour evolution
    ā€“ SecureUML for modelling secure systems based on RBAC
        ā€¢ Confidentiality and Integrity are model using RBAC

                   SecurityRequire
ā€¢   They are composed inments
                         Security Languages for
    modelling design and security

ā€¢ Only for class, sequence and state charts diagrams
Model Driven Security

ā€¢ A Security Design Language glues the two languages together
ā€¢ Each language is equipped with an abstract and concrete
  syntax, semantics, and a technology dependent translation
  function
ā€¢ Dialect bridges design language with security language by
  identifying which design elements are protected resources
                    Security Design Language

                      Security Modelling Language
                              (SecureUML)

                                Dialect

                       System Design Modelling
                             Language
                    (ComponentUML, ControllerUML)
Model Driven Security
ā€¢ Example




            There is an
    implementation of this in
    top of the ArcStyle MDA
               tool
Security Aware Software Engineering Process
ā€¢ Current technology challenges
ļ‚§ Model Driven Engineering comes to help
   ā€“ Models
   ā€“ Model Driven Architecture
   ā€“ MDA and Security
ā€¢ Model transformations
   ā€“ What is a transformation
   ā€“ Example
ā€¢ Conclusions
Model transformation
ā€¢ Model transformation is the process of converting one
  model to another model of the same system
ā€¢ The MDA pattern includes (at least): a PIM, a Platform
  Model, a Transformation, and a PSM
ā€¢ Useful to
   ā€“   Mark models
   ā€“   Transform meta-models
   ā€“   Merging models
   ā€“   Include information
        in models
Examples of MDA transformations
Transformations are everywhereā€¦
Examples of MDA transformations: GMF
Although not specific for security, a representative technologyā€¦
GMF: first, the model
E.g. Design of workflowsfor public administration


                                              Diagram
                                                        1
                                        1
                                                                                  Association



                      *                                                *


               Graphical Element                                           Link
                                       1                    0..*
                                     target


                                       1                    0..*
                                     source                                       Sequence



    Start       End                Activity

                                                  ...
                                        1

                              0..*
                                                                   FormItem
                                     Form
                                              1
GMF: then, the mapping
GMF: and eventually, generateā€¦
Security Aware Software Engineering Process
ā€¢ Current technology challenges
ļ‚§ Model Driven Engineering comes to help
   ā€“ Models
   ā€“ Model Driven Architecture
   ā€“ MDA and Security
ā€¢ Model transformations
   ā€“ What is a transformation
   ā€“ Example
ā€¢ Conclusions
Conclusions to MDA
ā€¢   MDA seems to be the right way to go
     ā€“ Conceptually clean and well defined
     ā€“ Protect investment and IP by separating the business model from the supporting technologies
ā€¢   But there is still a long way ahead
ā€¢   There are more or less mature approaches to the development of security systems
    using MDA
     ā€“ Based on security policies and RBAC
ā€¢   Research is required
ā€¢   MDD (and MDA) looks very promising
ā€¢   MDA isnotthe panacea
    ā€œNo manual codingā€ isnot 100% achievable in general
Itisimportanttoidentifythedomains in which MDA can be effectivelyused,
      By the time beingtools are notmature

            Honestly, do you really think that
              only drawing three boxes and
             a couple of lines you will get all
                  your application code?
Part 3: Security in Software Engineering
  ļ‚§ Security-aware Software Engineering Processes
  ļ‚§ Creation of Secure Applications




                                  Francisco SƔnchez Cid
                                               Project Manager
                           Instituto Tecnologico de Informatica
                                               Valencia (Spain)
Creationof Secure
  Applications
Creation of Secure Applications


ļ‚§ Differences between current secure software
development and the SERENITY approach
ļ‚§ SERENITY applications life cycle
ļ‚§ Developing SERENITY applications
ļ‚§ Using Java to develop SERENITY applications
ļ‚§ Run-time support
ļ‚§ Advantages of the SERENITY approach
Creation of Secure Applications
When Developing applicationsā€¦
ā€¢ Most of current approaches for software development are
  based on an iterative and incremental process
Creation of Secure Applications
How does it fit in Agile Developmentā€¦
                                                 Not really agile


      Security       Planning     a specific
    Requirements      Design        security
                   Development   engineering
                                   activity in
                                 every sprint?
Creation of Secure Applications
How does it fit in Agile Developmentā€¦
                      Identify the        Decide the       Check against
                   properties/threats      controls         threat model

      Security                Planning     Security Risk
    Requirements               Design      Management
                            Development

                                                                           Supposed to have a
                                                                              residual risk
Creation of Secure Applications
How does it fit in Agile Developmentā€¦ in fact
                                                  Detailed threat
                                 Sprint Review:      analysis
                                    Approve
                                  residual risk


                                                                    Decide on the controls:
             Sprint Planning:                                         -Address the threat
             Threat analysis                                         (new sprint backlog)
             for largest risks                                       - Postpone the work
                                                                    (new product backlog)




  ā€¢ For this to work:
      ā€¢ The Scrum team does need to be somehow aware of security
      engineering and software security issues.
      ā€¢ Security specialists should be on call.
Creation of Secure Applications
Security aspects of applications
ā€¢ Usaually, security requirements are treated as the rest of requirements
    ā€“ Security is not a functional requirement
        ā€¢ It is difficult to implement
        ā€¢ It is difficult to trace during the project

ā€¢ Security is always orthogonal. We may talk of perspectives for the
  software

ā€¢ Given a good model, you have one thousand ways of making it
  unsecure
    ā€“ A parameter not correctly parsed
    ā€“ A buffer not correctly managed
    ā€“ ā€¦
Creation of Secure Applications


ļ‚§ Differences between current secure software
development and the SERENITY approach
ļ‚§ SERENITY applications life cycle
ļ‚§ Developing SERENITY applications
ļ‚§ Using Java to develop SERENITY applications
ļ‚§ Run-time support
ļ‚§ Advantages of the SERENITY approach
Creation of Secure Applications
        Serenity Proposal for Secure Software Development
        ā€¢ Just a reminder:
             ā€“ For this to work, the team does need to be somehow aware of security
               engineering and software security issues.
        ā€¢ Now that we are aware:
             ā€“ We propose not to be aware of security engineering, but security
               properties the system have to comply with
             ā€“ Security requirements are fulfilled by means of S&D patterns
             ā€“ S&D patterns are represented at different levels of abstraction by means
               of different artefacts

cd PatternDetail EA

                      RefersTo               Implements                BelongsTo
                                                                   *               *
                                         *
  ExecutableComponent       S&DImplementation             S&DPattern                   S&DClass
Creation of Secure Applications
       Serenity Proposal for Secure Software Development
                           Represents the                                       Represents a set of
                         Implementation of a          Represents a S&D            S&D solutions
                               pattern                     solution              Defines a general
   Implements a                                         and defines an               interface
      pattern                                       interface and a set of
                                                        functionallities


cd PatternDetail EA

                      RefersTo                 Implements                 BelongsTo
                                                                      *               *
                                           *
  ExecutableComponent       S&DImplementation               S&DPattern                    S&DClass




                  Software Architects know these artefacts, Security Experts deeeply
                     know these artecfacts and Developers know and use all these
                                   S&D artefacts and their interfaces
Creation of Secure Applications
Serenity Proposal for Secure Software Development

ā€¢ Developers include references to S&D patterns in
  applications by means of references to S&D artefacts
ā€¢ Developers are supported by S&D patterns libraries
  where they can find artefacts (called S&D Libraries)
ā€¢ SERENITY includes tools supporting developers for
  managing on-line S&D libraries (e.g. plugin for Eclipse)
Creation of Secure Applications

                     S&D Pattern Development

                     S&D pattern        Addition to   S&D
                     development        S&D library   library
Security Community
Creation of Secure Applications

                     S&D Pattern Development

                     S&D pattern        Addition to        S&D
                     development        S&D library       library
Security Community


                     Application Development
                                        Inclusion of   S&D pattern
                     Application
                                       references in   search and
                     deployment
Development Team                         application    selection
Creation of Secure Applications

                      S&D Pattern Development

                      S&D pattern            Addition to                 S&D
                      development            S&D library                library
Security Community


                       Application Development
                                          Inclusion of               S&D pattern
                      Application
                                         references in               search and
                      deployment
Development Team                           application                selection



                           Runtime Support
                      Runtime                Application execution
                     S&D pattern
                     assembling              Runtime monitoring
 Running app
Creation of Secure Applications

                      S&D Pattern Development

                      S&D pattern            Addition to                 S&D


        Serenity Development
                      development            S&D library                library
Security Community




             Framework Application Development

                      Application
                                          Inclusion of
                                         references in
                                                                     S&D pattern
                                                                     search and
                      deployment
Development Team                           application                selection



                           Runtime Support
                      Runtime                Application execution
                     S&D pattern
                     assembling              Runtime monitoring
 Running app
Creation of Secure Applications

                      S&D Pattern Development

                      S&D pattern            Addition to                 S&D
                      development            S&D library                library
Security Community


                       Application Development
                                          Inclusion of               S&D pattern
                      Application
                                         references in               search and
                      deployment
Development Team                           application                selection



                           Runtime Support

     Serenity Runtime Framework
                      Runtime
                     S&D pattern
                     assembling
                                             Application execution

                                             Runtime monitoring
 Running app
Creation of Secure Applications
ā€¢ One of SERENITY main features is the run-time
  support:
  ā€“ Dynamic substitution of S&D Patterns at run-time
  ā€“ The more abstract level of the artefact selected at
    development-time is, the more flexible selecting the
    S&D Pattern the SRF is
  ā€“ At run-time S&D Patterns are monitored
Creation of Secure Applications
ā€¢ SERENITY approach can be integrated in most
  of current development processes
ā€¢ Let us see how does it fitā€¦




                                      SERENITY
   SERENITY                          development
     runtime                             time
   framework                          framework
Creation of Secure Applications
And if we go to Agile Developmentā€¦
Creation of Secure Applications
How does it fit in Agile Developmentā€¦
                         Sprint Review:
                            Approve       Detailed threat   Decide on the controls:
      Sprint Planning:    residual risk      analysis         -Address the threat
      Threat analysis                                        (new sprint backlog)
          based on                                           - Postpone the work
       properties for                                       (new product backlog)
        largest risks
Creation of Secure Applications
How does it fit in Agile Developmentā€¦
                              Sprint Review:
                                 Approve       Detailed threat   Decide on the controls:
                               residual risk      analysis         -Address the threat
      Sprint Planning:                                            (new sprint backlog)
      Threat analysis                                             - Postpone the work
      for largest risks                                          (new product backlog)




                           SERENITY
                                                                 SERENITY
                          development
                                                                   runtime
                              time
                                                                 framework
                           framework
Creation of Secure Applications


ā€¢ The integration of
  SERENITY is achieved by
  means of new paths in
  security engineering
  techniques: S&D
  properties, formal
  proofs, and a library.
ā€¢ Application developers profit
  of expertise of security
  experts by using SERENITY
  patterns
Creation of Secure Applications


ļ‚§ Differences between current secure software
development and the SERENITY approach
ļ‚§ SERENITY applications life cycle
ļ‚§ Developing SERENITY applications
ļ‚§ Using Java to develop SERENITY applications
ļ‚§ Run-time support
ļ‚§ Advantages of the SERENITY approach
Creation of Secure Applications
Developing applications in Serenity
ā€¢ Application Developer: Our client needs a secure and
  reliable online applicationā€¦
   1) Identify S&D Requirements
       ā€¢ Properties vs. threats
       ā€¢ Usually expressed as S&DProperties
       ā€¢ Looking for the appropriate S&DProperties in
         S&DProperties repositories
   2) Develop applications
       ā€¢ Search into development time S&DLibrary for the
         appropriate S&D solutions
       ā€¢ Developing the code including references to the S&D
         Solutions functionalities
Creation of Secure Applications
The whole process                      Information
                                       from context

        S&D Pattern                                             Runtime
         reference                                              selection


Serenity-aware
 Application
                                                      SRF
                               Run-time
                               Support
         Access to
        S&D Pattern
       functionallities

                                                       Monitoring
                          Activation
                                                         rules


                               Executable
                                                            Monitoring
                               Component
                                                             Service
                              implementing
                             an S&D Pattern    Monitorization
                                                and events
Creation of Secure Applications
An example: runtime selection
  cd Obj ect model1


                                                         SimpleTransmisionConfidentiality.iso.org :
                                                                       S&DClass




                      ConfidentialityByDES_Encryption.iso.org :S&DPattern
                                                                                               ConfidentialityBySecureChannel.ieee.org :
                                                                                                               S&DPattern




           NokiaDES :                    SAPDES :                   ThalesDES :
        S&DImplementation            S&DImplementation           S&DImplementation          ATCSecureChannel :            SetcceSecureChannel :
                                                                                            S&DImplementation              S&DImplementation




                                       SAPDES :
                                  ExecutableComponent                                             ATCSecureChannel :
                                                                                                 ExecutableComponent




             NokiaDES :                                         ThalesDES :
         ExecutableComponent                                ExecutableComponent                                              SetcceSecureChannel :
                                                                                                                             ExecutableComponent
Creation of Secure Applications
From developerā€™s perspective
1.   I launch my favourite programming IDE
2.   I start coding my application
3.   I import the SERENITY API
4.   I launch the SERENITY search tool
5.   I look for the pattern I want to use in my application
6.   I add calls to the pattern using
     a. the semantic information retrieved from the pattern description
     b. and, the SERENITY API
Creation of Secure Applications
From developerā€™s perspective
1.   I launch my favourite programming IDE
2.   I start coding my application
3.   I import the SERENITY API
4.   I launch the SERENITY search tool
5.   I look for the pattern I want to use in my application
6.   I add calls to the pattern using
     a. the semantic information retrieved from the pattern description
     b. and, the SERENITY API
                                                      I just need a
                     I do not need                      reference
                     to include the                  to the pattern
                      pattern itself
Creation of Secure Applications
From developerā€™s perspective
1.   I launch my favourite programming IDE
2.   I start coding my application
3.   I import the SERENITY API
4.   I launch the SERENITY search tool
5.   I look for the pattern I want to use in my application
6.   I add calls to the pattern using
     a. the semantic information retrieved from the pattern description
     b. and, the SERENITY API
7. I finish and compile my application
8. I deploy my application in a SERENITY enabled device

     Thatā€™s all, now my app is ready to run!
Creation of Secure Applications
SERENITY Tools
ā€¢   Currently SERENITY provides an Eclipse plugin to navigate through a library of artefacts
Creation of Secure Applications
SERENITY Tools
ā€¢ You can connect to remote S&D artefacts repositories
Creation of Secure Applications
SERENITY Tools
ā€¢ You can navigate through solutions for specific S&D properties
Creation of Secure Applications
SERENITY Tools
ā€¢ And you can search for specific S&D patterns, classesā€¦
Creation of Secure Applications
SERENITY Tools
ā€¢ And security experts can edit S&D artefacts
Creation of Secure Applications
The whole process. Revisited

Serenity-aware
 Application
                                             SRF


                 Āæ?
                              Executable
                              Component            Monitoring
                             implementing           Service
                            an S&D Pattern
Creation of Secure Applications
The whole process. Revisited

Serenity-aware
 Application
                                                   SRF

                    SERENITY
                       API
                        for
                    application
                    developers

                                    Executable
                                    Component            Monitoring
                                   implementing           Service
                  Currently
                                  an S&D Pattern
                 developed
                  for JAVA
Creation of Secure Applications


ļ‚§ Differences between current secure software
development and the SERENITY approach
ļ‚§ SERENITY applications life cycle
ļ‚§ Developing SERENITY applications
ļ‚§Using Java to develop SERENITY applications
ļ‚§ Run-time support
ļ‚§ Advantages of the SERENITY approach
Creation of Secure Applications
An simplified example
ā€¢ This test application just requests a S&D pattern for authentication and uses it


     My Serenity                  myEC                      confidentiality.uma.es
     Application                 sendConf()




                                 mySRF                      SRF

                   mySRF = SRF_AP_AccessPoint(localhost);
                   myEC = New SerenityExecutableComponent_AP(
                       mySRF,
                      ā€œP:confidentiality.uma.esā€,
                       parameters
                   );
Creation of Secure Applications
An simplified example
ā€¢ This test application just requests a S&D pattern for authentication and uses it


     My Serenity                  myEC                       confidentiality.uma.es
     Application                 sendConf()




                                  mySRF                     SRF

                   mySRF = SRF_AP_AccessPoint(localhost);
                   myEC = New SerenityExecutableComponent_AP(
                       mySRF,
                      ā€œP:confidentiality.uma.esā€,
                       parameters
                   );
                   myEC.callOperation(ā€œsendConfā€, parameters);
Creation of Secure Applications
   Java package for applications
id SERENITY-application Support Library

                            SERENITY-application Support Library
                                                                                                                SRF
                                           SRF_AP_AccessPoint

                                +       requestSolution() : EcHandler                           SRFRequests      S&DManager



                                                                                  Create
                                                              EcHandler
    Application A

                                             Ā«useĀ»


                                                                    Ā«UseĀ»                        PointsTo


                                            SerenityExecutableComponent_AP                                     Executable
                                                                                           ECaccessPoint
                                                                                                              Component A
                                    +    callOperation(oper, inParam, outParam) : void                          process
Creation of Secure Applications
An example: the code
package SERENITY-application;
importserenity.app.*;
public class mySERENITYapplication{
// I connect to a SRF hosted on localhost
SRF_AP_AccessPointmySRF = newSRF_AP_AccessPoint(localhost);
// I am going to use an executableComponent
SerenityExecutableComponent_APconfidentialitySolution;
// Param for the SDRequest
SerenitySolutionParametersListsParametersList = new SerenitySolutionParametersList();
// Param for the pattern functionallity
SerenityOperationParametersListoperationParameters= new SerenityOperationParametersList();
// C: for a S&DClass
// P: for a S&DPattern
// I: for a S&DImplementation
  String solutionName = ā€œP:confidentiality.uma.esā€
  public static void main() {
     ...
// I am going to create the executableComponent access point object
     sParametertsList.addParam(ā€œtarget_IPā€,ā€127.0.0.1ā€);
confidentialitySolution = newSerenityExecutableComponent_AP(mySRF, solutionName, sParametersList);
     ...
// I am going to access one of the S&DClass interface operations
operationParameters.addParam(ā€œMessageā€,ā€Hello worldā€);
confidentialitySolution.callOperation(ā€œsendConfidentialā€, operationParameters);
     ...
}
}
Creation of Secure Applications
Considerations
ā€¢ The API encapsulates the use of ECHandlers
   ā€“ The ECHandler is used by the executableComponent_AP
   ā€“ It is possible to use directly ECHandlers
ā€¢ How do developers know the S&Dpatterns interface?
   ā€“ This information is part of the pattern definition retrieved from the development
     time library
   ā€“ Using a Serenity enabled IDE, it will help to develop the application presenting
     the list of appropriate calls (kind of auto completion) given the fact that S&D
     artefacts are machine readable.



   Tools and documentation available at:
   http://www.serenity-project.org/
Creation of Secure Applications


ļ‚§ Differences between current secure software
development and the SERENITY approach
ļ‚§ SERENITY applications life cycle
ļ‚§ Developing SERENITY applications
ļ‚§ Using Java to develop SERENITY applications
ļ‚§ Run-time support
ļ‚§ Advantages of the SERENITY approach
Creation of Secure Applications
 Advantages of the SERENITY approach
ā€¢ Applications become independent of the implementation of
  the security solutions they need
ā€¢ Applications become responsive to the changes of the
  context
ā€¢ The library of solutions is ever growing and continuously
  reviewed, without the need of revising the application
ā€¢ It is possible to verify that applications comply with security
  policies applicable
ā€¢ It enhances the process of security engineering, by promoting
  the separation of duties between security specialists and
  application developers
ā€¢ It helps managing threats, since the focus is in the
  properties, not in the threats themselves
ā€¢ Property + Context => Threats (it allows non security experts to
  identify new threats)
Thank you
Francisco Sanchez Cid
    cid@iti.upv.es
Serenity Project: Security in Software Enginering

More Related Content

Viewers also liked

Workflow and Row-Level Security Solutions for PeopleSoft
Workflow and Row-Level Security Solutions for PeopleSoftWorkflow and Row-Level Security Solutions for PeopleSoft
Workflow and Row-Level Security Solutions for PeopleSoftSmart ERP Solutions, Inc.
Ā 
2 . web app s canners
2 . web app s canners2 . web app s canners
2 . web app s cannersRashid Khatmey
Ā 
Business cases for software security
Business cases for software securityBusiness cases for software security
Business cases for software securityMarco Morana
Ā 
Cyber security rule of use internet safely
Cyber security rule of use internet safelyCyber security rule of use internet safely
Cyber security rule of use internet safelyAlexander Decker
Ā 
project on software industry
project on software industryproject on software industry
project on software industryAamir chouhan
Ā 
Protect Data in Your Software Client - Data Obfuscation
Protect Data in Your Software Client - Data ObfuscationProtect Data in Your Software Client - Data Obfuscation
Protect Data in Your Software Client - Data ObfuscationSteven Davis
Ā 
software project management Assumption about conventional model
software project management Assumption about conventional modelsoftware project management Assumption about conventional model
software project management Assumption about conventional modelREHMAT ULLAH
Ā 
Data Loss Prevention from Symantec
Data Loss Prevention from SymantecData Loss Prevention from Symantec
Data Loss Prevention from SymantecArrow ECS UK
Ā 
Conventional sources of energy
Conventional sources of energyConventional sources of energy
Conventional sources of energySnehal Bhargava
Ā 
Assessment of project management practices in pakistani software industry
Assessment of project management practices in pakistani software industryAssessment of project management practices in pakistani software industry
Assessment of project management practices in pakistani software industryjehan1987
Ā 
Sample project plan
Sample project planSample project plan
Sample project planmamoonnift
Ā 

Viewers also liked (12)

Workflow and Row-Level Security Solutions for PeopleSoft
Workflow and Row-Level Security Solutions for PeopleSoftWorkflow and Row-Level Security Solutions for PeopleSoft
Workflow and Row-Level Security Solutions for PeopleSoft
Ā 
Poker Game
Poker GamePoker Game
Poker Game
Ā 
2 . web app s canners
2 . web app s canners2 . web app s canners
2 . web app s canners
Ā 
Business cases for software security
Business cases for software securityBusiness cases for software security
Business cases for software security
Ā 
Cyber security rule of use internet safely
Cyber security rule of use internet safelyCyber security rule of use internet safely
Cyber security rule of use internet safely
Ā 
project on software industry
project on software industryproject on software industry
project on software industry
Ā 
Protect Data in Your Software Client - Data Obfuscation
Protect Data in Your Software Client - Data ObfuscationProtect Data in Your Software Client - Data Obfuscation
Protect Data in Your Software Client - Data Obfuscation
Ā 
software project management Assumption about conventional model
software project management Assumption about conventional modelsoftware project management Assumption about conventional model
software project management Assumption about conventional model
Ā 
Data Loss Prevention from Symantec
Data Loss Prevention from SymantecData Loss Prevention from Symantec
Data Loss Prevention from Symantec
Ā 
Conventional sources of energy
Conventional sources of energyConventional sources of energy
Conventional sources of energy
Ā 
Assessment of project management practices in pakistani software industry
Assessment of project management practices in pakistani software industryAssessment of project management practices in pakistani software industry
Assessment of project management practices in pakistani software industry
Ā 
Sample project plan
Sample project planSample project plan
Sample project plan
Ā 

Similar to Serenity Project: Security in Software Enginering

C++ Data-flow Parallelism sounds great! But how practical is it? Letā€™s see ho...
C++ Data-flow Parallelism sounds great! But how practical is it? Letā€™s see ho...C++ Data-flow Parallelism sounds great! But how practical is it? Letā€™s see ho...
C++ Data-flow Parallelism sounds great! But how practical is it? Letā€™s see ho...Jason Hearne-McGuiness
Ā 
MICE: Monitoring and modelIng of Context Evolution
MICE: Monitoring and modelIng of Context EvolutionMICE: Monitoring and modelIng of Context Evolution
MICE: Monitoring and modelIng of Context EvolutionLuca Berardinelli
Ā 
MVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVCMVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVCAnton Krasnoshchok
Ā 
Muves3 Elastic Grid Java One2009 Final
Muves3 Elastic Grid Java One2009 FinalMuves3 Elastic Grid Java One2009 Final
Muves3 Elastic Grid Java One2009 FinalElastic Grid, LLC.
Ā 
MODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSE
MODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSEMODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSE
MODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSEAnže Vodovnik
Ā 
A UML Profile for Security and Code Generation
A UML Profile for Security and Code Generation A UML Profile for Security and Code Generation
A UML Profile for Security and Code Generation IJECEIAES
Ā 
Seminar on Final year project 2012-2013
Seminar on Final year project 2012-2013Seminar on Final year project 2012-2013
Seminar on Final year project 2012-2013Kaustubh Joshi
Ā 
Model-based Testing Principles
Model-based Testing PrinciplesModel-based Testing Principles
Model-based Testing PrinciplesHenry Muccini
Ā 
Repository Pattern in MVC3 Application with Entity Framework
Repository Pattern in MVC3 Application with Entity FrameworkRepository Pattern in MVC3 Application with Entity Framework
Repository Pattern in MVC3 Application with Entity FrameworkAkhil Mittal
Ā 
Design Pattern Mastery - Momentum Dev Con 19 Apr 2018
Design Pattern Mastery - Momentum Dev Con 19 Apr 2018Design Pattern Mastery - Momentum Dev Con 19 Apr 2018
Design Pattern Mastery - Momentum Dev Con 19 Apr 2018Steven Smith
Ā 
Rejunevating software reengineering processes
Rejunevating software reengineering processesRejunevating software reengineering processes
Rejunevating software reengineering processesmanishthaper
Ā 
On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...
On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...
On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...Benoit Combemale
Ā 
Cs 1023 lec 2 (week 1) edit 1
Cs 1023  lec 2 (week 1) edit 1Cs 1023  lec 2 (week 1) edit 1
Cs 1023 lec 2 (week 1) edit 1stanbridge
Ā 
Cs 1023 lec 2 (week 1) edit 1
Cs 1023  lec 2 (week 1) edit 1Cs 1023  lec 2 (week 1) edit 1
Cs 1023 lec 2 (week 1) edit 1stanbridge
Ā 
Challenges in Assessing Technical Debt based on Dynamic Runtime Data
Challenges in Assessing Technical Debt based on Dynamic Runtime DataChallenges in Assessing Technical Debt based on Dynamic Runtime Data
Challenges in Assessing Technical Debt based on Dynamic Runtime DataQAware GmbH
Ā 
Distributed Database practicals
Distributed Database practicals Distributed Database practicals
Distributed Database practicals Vrushali Lanjewar
Ā 
Close encounters in MDD: when Models meet Code
Close encounters in MDD: when Models meet CodeClose encounters in MDD: when Models meet Code
Close encounters in MDD: when Models meet Codelbergmans
Ā 
Close Encounters in MDD: when models meet code
Close Encounters in MDD: when models meet codeClose Encounters in MDD: when models meet code
Close Encounters in MDD: when models meet codelbergmans
Ā 
Machine Learning for .NET Developers - ADC21
Machine Learning for .NET Developers - ADC21Machine Learning for .NET Developers - ADC21
Machine Learning for .NET Developers - ADC21GĆ¼lden BilgĆ¼tay
Ā 

Similar to Serenity Project: Security in Software Enginering (20)

C++ Data-flow Parallelism sounds great! But how practical is it? Letā€™s see ho...
C++ Data-flow Parallelism sounds great! But how practical is it? Letā€™s see ho...C++ Data-flow Parallelism sounds great! But how practical is it? Letā€™s see ho...
C++ Data-flow Parallelism sounds great! But how practical is it? Letā€™s see ho...
Ā 
MICE: Monitoring and modelIng of Context Evolution
MICE: Monitoring and modelIng of Context EvolutionMICE: Monitoring and modelIng of Context Evolution
MICE: Monitoring and modelIng of Context Evolution
Ā 
MVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVCMVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVC
Ā 
Muves3 Elastic Grid Java One2009 Final
Muves3 Elastic Grid Java One2009 FinalMuves3 Elastic Grid Java One2009 Final
Muves3 Elastic Grid Java One2009 Final
Ā 
MODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSE
MODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSEMODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSE
MODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSE
Ā 
MVC
MVCMVC
MVC
Ā 
A UML Profile for Security and Code Generation
A UML Profile for Security and Code Generation A UML Profile for Security and Code Generation
A UML Profile for Security and Code Generation
Ā 
Seminar on Final year project 2012-2013
Seminar on Final year project 2012-2013Seminar on Final year project 2012-2013
Seminar on Final year project 2012-2013
Ā 
Model-based Testing Principles
Model-based Testing PrinciplesModel-based Testing Principles
Model-based Testing Principles
Ā 
Repository Pattern in MVC3 Application with Entity Framework
Repository Pattern in MVC3 Application with Entity FrameworkRepository Pattern in MVC3 Application with Entity Framework
Repository Pattern in MVC3 Application with Entity Framework
Ā 
Design Pattern Mastery - Momentum Dev Con 19 Apr 2018
Design Pattern Mastery - Momentum Dev Con 19 Apr 2018Design Pattern Mastery - Momentum Dev Con 19 Apr 2018
Design Pattern Mastery - Momentum Dev Con 19 Apr 2018
Ā 
Rejunevating software reengineering processes
Rejunevating software reengineering processesRejunevating software reengineering processes
Rejunevating software reengineering processes
Ā 
On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...
On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...
On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...
Ā 
Cs 1023 lec 2 (week 1) edit 1
Cs 1023  lec 2 (week 1) edit 1Cs 1023  lec 2 (week 1) edit 1
Cs 1023 lec 2 (week 1) edit 1
Ā 
Cs 1023 lec 2 (week 1) edit 1
Cs 1023  lec 2 (week 1) edit 1Cs 1023  lec 2 (week 1) edit 1
Cs 1023 lec 2 (week 1) edit 1
Ā 
Challenges in Assessing Technical Debt based on Dynamic Runtime Data
Challenges in Assessing Technical Debt based on Dynamic Runtime DataChallenges in Assessing Technical Debt based on Dynamic Runtime Data
Challenges in Assessing Technical Debt based on Dynamic Runtime Data
Ā 
Distributed Database practicals
Distributed Database practicals Distributed Database practicals
Distributed Database practicals
Ā 
Close encounters in MDD: when Models meet Code
Close encounters in MDD: when Models meet CodeClose encounters in MDD: when Models meet Code
Close encounters in MDD: when Models meet Code
Ā 
Close Encounters in MDD: when models meet code
Close Encounters in MDD: when models meet codeClose Encounters in MDD: when models meet code
Close Encounters in MDD: when models meet code
Ā 
Machine Learning for .NET Developers - ADC21
Machine Learning for .NET Developers - ADC21Machine Learning for .NET Developers - ADC21
Machine Learning for .NET Developers - ADC21
Ā 

Recently uploaded

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
Ā 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service šŸø 8923113531 šŸŽ° Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service šŸø 8923113531 šŸŽ° Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service šŸø 8923113531 šŸŽ° Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service šŸø 8923113531 šŸŽ° Avail...gurkirankumar98700
Ā 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
Ā 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
Ā 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
Ā 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
Ā 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
Ā 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
Ā 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
Ā 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
Ā 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
Ā 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
Ā 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
Ā 
šŸ¬ The future of MySQL is Postgres šŸ˜
šŸ¬  The future of MySQL is Postgres   šŸ˜šŸ¬  The future of MySQL is Postgres   šŸ˜
šŸ¬ The future of MySQL is Postgres šŸ˜RTylerCroy
Ā 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
Ā 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
Ā 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
Ā 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
Ā 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
Ā 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
Ā 

Recently uploaded (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
Ā 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service šŸø 8923113531 šŸŽ° Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service šŸø 8923113531 šŸŽ° Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service šŸø 8923113531 šŸŽ° Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service šŸø 8923113531 šŸŽ° Avail...
Ā 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Ā 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Ā 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
Ā 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Ā 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
Ā 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
Ā 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Ā 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Ā 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
Ā 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
Ā 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Ā 
šŸ¬ The future of MySQL is Postgres šŸ˜
šŸ¬  The future of MySQL is Postgres   šŸ˜šŸ¬  The future of MySQL is Postgres   šŸ˜
šŸ¬ The future of MySQL is Postgres šŸ˜
Ā 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Ā 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Ā 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Ā 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Ā 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Ā 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
Ā 

Serenity Project: Security in Software Enginering

  • 1.
  • 2. Part 3: Security in Software Engineering ļ‚§ Security-aware Software Engineering Processes ļ‚§ Creation of Secure Applications Francisco SĆ”nchez Cid Project Manager Instituto Tecnologico de Informatica Valencia (Spain)
  • 3. We all agree: ā€¢ Indirectly, SE has a big impact on our ability to deliver and maintain applications ā€¦ but can a methodology be a direct revenue generator? E.g. System for Olives classification in Spain ā€œ..If we can certify that we have a secure software development life-cycle we stand to increase our overall revenue with clients from 10-20%.ā€ Our Chief Software Architect ā€¢ Actually utilizing our methodology as a competitive advantage! WOW! ā€¢ Unit, integration, and acceptance tests and their automation mean you can actually certify that youā€™re software is reasonably secure at least for what youā€™re testing for
  • 4. All right. This approach seems to work fine for 90% of applications we develop, butā€¦ what about the other 10%? ā€¢ For this 10% applications we do not only have security requirements but also: o These requirements evolve as times goes by o Operational context is unpredictable or uncertain o We donā€™t want this app to be tightly coupled to an specific solution o E.g. Digital Signature Applet ā€¢ Just one way out: o Identify and develop generic solutions o Use a model to represent the solutions o Link generic solutions to specific implementations o Once a solution is selected, monitor its validity on time ā€¦KindofModelDrivenEngineering? letā€™shave a look at it
  • 6. Security Aware Software Engineering Process ļ‚§ Current technology challenges ā€¢ Model Driven Engineering comes to help ā€“ Models ā€“ Model Driven Architecture ā€“ MDA and Security ā€¢ Model transformations ā€“ What is a transformation ā€“ Example ā€¢ Conclusions
  • 7. Current technology challenges ā€¢ Current applications are tightly coupled to underlying technologies ā€“ Investment done on their development is at risk due to this dependence ā€¢ Many different platforms and technologies ā€“ Distributed objects, components, web servicesā€¦ ā€“ Not interoperable ā€“ Not reuse (at least if they are not correctly designed) ā€¢ Very fast evolution ā€“ New technologies appear every day ā€“ Old technologies disappear ā€“ How to protect the investment in business logic?
  • 8. Security Aware Software Engineering Process ā€¢ Current technology challenges ļ‚§ Model Driven Engineering comes to help ā€“ Models ā€“ Model Driven Architecture ā€“ MDA and Security ā€¢ Model transformations ā€“ What is a transformation ā€“ Example ā€¢ Conclusions
  • 9. MDE as opposite to OO Object Oriented Design ļƒ Everything is a object Model Driven Engineeringļƒ Everything is a model cd MDE v s OO SuperClass Meta-Model inheritsFrom conformsTo Relations in these approaches clearly differ Class Model instanceOf representedBy Instance System
  • 10. Model Driven Engineering (MDE) ā€¢ Approach to software development based in models and in model transformations ā€“ Current approaches are based in objects, programs and compilers ā€¢ MDE implies the (semi) automated generation of implementations from models ā€¢ Modelling languages are key to MDE ā€“ Model transformation languages are also modelling languages ā€“ Models conform to meta-models ā€¢ MDA is the OMGā€™s proposal for MDE, using OMG standards ā€“ MOF, UML, OCL, XMI, QVT ā€“ MOF and UML allow the definition of new families of languages
  • 11. What is a model ? ā€¢ A description of (part of) a system written in a well-defined language (Equivalent to specification) [Kleppe, 2003] ā€¢ A description or specification of the system and its environment for some certain purpose. A model is often presented as a combination of drawings and text [MDA Guide, 2003]
  • 12. Models in software ā€¢ ā€œ...Bubbles and arrows, as opposed to programs, never crash.ā€ [B. Meyer, 1997] ā€¢ The problem is to maintain the link between models and source code sd Activ ate Pattern Application S&D Manager Event Manager S&D Query Runtime S&D Context Manager Library 1: Request Class() publicclass 2: Get Context() ActiveMonitoringManager extends Observable{ 3: Send Context() cd Metamodelo privatestatic 4: Get Available Patterns() MonitoringServiceIF ExecutableComponent 5: Build Query() monitoringAccess; cd SampleApplicationIM RefersTo private 6: Query For Patterns() Pertenece-A Implementa EmailDB CommunicacionSystem Hashtable<String,MonitorInfo S&DClass * * S&DPattern * S&DImplementation 7: Return Patterns() > activeMonitors; 8: Return Patterns() privatestatic EmailSystem GUI ActiveMonitoringManager Proporciona Representa 9: Choose Pattern() mManager = getInstance(); * S&DProperty S&DArtefact S&DSolution * 10: Update Context() Requiere Securiza 13: Send Implementation Handler AccessControl Tiene * Ā«SecurizesĀ» S&DRequirement Application Ā«S&DPatternĀ» smartCardAuthentication.UMA.es
  • 13. Limitations of models (in SE) ā€¢ Models are used only as documentation (if the system is documented at all) ā€¢ ā€œGapā€ between the model and the implementation of the system ā€“ Semantic gap between the respective languages ā€“ Changes in the model do not reflect in the code ā€“ Changes in the code do not reflect in the model (the model is thrown away after the first implementation, and never updated or used again) ā€¢ No ā€œmergeā€ of models (though some tools actually help) ā€“ Unrelated views of a system (horizontal) ā€“ Unrelated towers of models (vertical) ā€¢ No model ā€œtransformationsā€ ā€“ Few defined transformation languages ā€“ No tools ā€¢ We are still far behind more mature engineering industries, such as aerospace, automotive and electrical engineering.... ā€¢ ...Even hardware design is ahead of software design!
  • 14. Kinds of SE models ā€¢ Depending on: ā€“ The phase of the project ā€¢ Analysis models, design models, ... ā€“ The level of detail ā€¢ High level models, Low level models (implementations) ā€“ The view of the system ā€¢ Business models, Software Architecture models, Deployment models,... ā€“ The aspect they focus on ā€¢ Structural models, behavioural models, QoS models, ... ā€“ The level of technology independence ā€¢ Computation Independent Models, Platform Independent Models, Platform Specific Models ā€“ The particular target platform ā€¢ J2EE, .NET, CORBA, EDOC, ....
  • 15. MDA: OMGā€™s Four-layer metamodel architecture ā€¢ M3, MOF (Meta Object Facility) used to describe meta-models ā€¢ M2, Meta-models used to describe modelling languages ā€¢ M1, models used to describe applications ā€¢ M0, instances of applications
  • 18. MDA Models (M1) ā€¢ Computation Independent Model (CIM) ā€“ A view from a system from the Computational Independent Viewpoint ā€“ A CIM Focuses on the system and its environment; the details of the structure of the system are hidden or as yet undetermined ā€“ A CIM is sometimes called a domain model or a business model, and is specified using a vocabulary that is familiar to the practitioners of the domain in question ā€“ It may hide much or all information about the use of automated data processing systems ā€¢ Platform Independent Model (PIM) ā€“ A platform independent model is a view of a system from the platform independent viewpoint ā€“ A PIM exhibits platform independence and is suitable for use with a number of different platforms of similar type ā€¢ Platform Specific Model (PSM) ā€“ A platform specific model is a view of a system from the platform specific viewpoint ā€“ A PSM combines the specifications in the PIM with the details that specify how that system uses a particular type of platform ā€¢ Platform Model (PM) ā€“ A platform model provides a set of technical concepts, representing the different kinds of parts that make up a platform and the services provided by that platform ā€“ It also provides, for use in a platform specific model, concepts representing the different kinds of elements to be used in specifying the use of the platform by an application
  • 19. Examples of MDA models ā€¢ CIM ā€“ Use case models capturing the system requirements ā€¢ PIM ā€“ The software architecture of the system, that describes how the functionality of the system is decomposed into (architectural) components and connectors ā€¢ PSM ā€“ A model of the J2EE implementation of the system, expressed using the EJB Profile that describes how the (architectural) components need to be implemented by EJBs ā€¢ Platform Model (Code) ā€“ The EJBs themselves, their configuration files, etc., ready to be deployed
  • 20. Security Aware Software Engineering Process ā€¢ Current technology challenges ļ‚§ Model Driven Engineering comes to help ā€“ Models ā€“ Model Driven Architecture ā€“ MDA and Security ā€¢ Model transformations ā€“ What is a transformation ā€“ Example ā€¢ Conclusions
  • 21. Model Driven Security (D. Basin) ā€¢ It is an extension of MDA SystemModel A SystemModel+ SecurityModel A B <<secumlPermission>> <<secumlRole>> Customer B ModelTransformation+ extensions TargetSyste m + SecurityInfrastructure (RBAC, assertions, etc.)
  • 22. Model Driven Security ā€¢ Three UML extensions ā€“ ComponentUML, a class based language for data modelling ā€“ ControllerUMLfor modelling system behaviour evolution ā€“ SecureUML for modelling secure systems based on RBAC ā€¢ Confidentiality and Integrity are modeledusing RBAC ā€¢ They are composed in Security Languages for modelling design and security ā€¢ Only for class, sequence and state charts diagrams
  • 23. Model Driven Security Resources ā€¢ Three UML extensions ā€“ ComponentUML, a class based language for data modelling ā€“ ControllerUMLfor modelling system behaviour evolution ā€“ SecureUML for modelling secure systems based on RBAC ā€¢ Confidentiality and Integrity are model using RBAC ā€¢ They are composed in Security Languages for modelling design and security ā€¢ Only for class, sequence and state charts diagrams
  • 24. Model Driven Security ā€¢ Three UML extensions ā€“ ComponentUML, a class based language for data modelling ā€“ ControllerUMLfor modelling system behaviour evolution ā€“ SecureUML for modelling secure systems based on RBAC ā€¢ Confidentiality and Integrity are model using RBAC SecurityRequire ā€¢ They are composed inments Security Languages for modelling design and security ā€¢ Only for class, sequence and state charts diagrams
  • 25. Model Driven Security ā€¢ A Security Design Language glues the two languages together ā€¢ Each language is equipped with an abstract and concrete syntax, semantics, and a technology dependent translation function ā€¢ Dialect bridges design language with security language by identifying which design elements are protected resources Security Design Language Security Modelling Language (SecureUML) Dialect System Design Modelling Language (ComponentUML, ControllerUML)
  • 26. Model Driven Security ā€¢ Example There is an implementation of this in top of the ArcStyle MDA tool
  • 27. Security Aware Software Engineering Process ā€¢ Current technology challenges ļ‚§ Model Driven Engineering comes to help ā€“ Models ā€“ Model Driven Architecture ā€“ MDA and Security ā€¢ Model transformations ā€“ What is a transformation ā€“ Example ā€¢ Conclusions
  • 28. Model transformation ā€¢ Model transformation is the process of converting one model to another model of the same system ā€¢ The MDA pattern includes (at least): a PIM, a Platform Model, a Transformation, and a PSM ā€¢ Useful to ā€“ Mark models ā€“ Transform meta-models ā€“ Merging models ā€“ Include information in models
  • 29. Examples of MDA transformations Transformations are everywhereā€¦
  • 30. Examples of MDA transformations: GMF Although not specific for security, a representative technologyā€¦
  • 31. GMF: first, the model E.g. Design of workflowsfor public administration Diagram 1 1 Association * * Graphical Element Link 1 0..* target 1 0..* source Sequence Start End Activity ... 1 0..* FormItem Form 1
  • 32. GMF: then, the mapping
  • 33. GMF: and eventually, generateā€¦
  • 34. Security Aware Software Engineering Process ā€¢ Current technology challenges ļ‚§ Model Driven Engineering comes to help ā€“ Models ā€“ Model Driven Architecture ā€“ MDA and Security ā€¢ Model transformations ā€“ What is a transformation ā€“ Example ā€¢ Conclusions
  • 35. Conclusions to MDA ā€¢ MDA seems to be the right way to go ā€“ Conceptually clean and well defined ā€“ Protect investment and IP by separating the business model from the supporting technologies ā€¢ But there is still a long way ahead ā€¢ There are more or less mature approaches to the development of security systems using MDA ā€“ Based on security policies and RBAC ā€¢ Research is required ā€¢ MDD (and MDA) looks very promising ā€¢ MDA isnotthe panacea ā€œNo manual codingā€ isnot 100% achievable in general Itisimportanttoidentifythedomains in which MDA can be effectivelyused, By the time beingtools are notmature Honestly, do you really think that only drawing three boxes and a couple of lines you will get all your application code?
  • 36. Part 3: Security in Software Engineering ļ‚§ Security-aware Software Engineering Processes ļ‚§ Creation of Secure Applications Francisco SĆ”nchez Cid Project Manager Instituto Tecnologico de Informatica Valencia (Spain)
  • 37. Creationof Secure Applications
  • 38. Creation of Secure Applications ļ‚§ Differences between current secure software development and the SERENITY approach ļ‚§ SERENITY applications life cycle ļ‚§ Developing SERENITY applications ļ‚§ Using Java to develop SERENITY applications ļ‚§ Run-time support ļ‚§ Advantages of the SERENITY approach
  • 39. Creation of Secure Applications When Developing applicationsā€¦ ā€¢ Most of current approaches for software development are based on an iterative and incremental process
  • 40. Creation of Secure Applications How does it fit in Agile Developmentā€¦ Not really agile Security Planning a specific Requirements Design security Development engineering activity in every sprint?
  • 41. Creation of Secure Applications How does it fit in Agile Developmentā€¦ Identify the Decide the Check against properties/threats controls threat model Security Planning Security Risk Requirements Design Management Development Supposed to have a residual risk
  • 42. Creation of Secure Applications How does it fit in Agile Developmentā€¦ in fact Detailed threat Sprint Review: analysis Approve residual risk Decide on the controls: Sprint Planning: -Address the threat Threat analysis (new sprint backlog) for largest risks - Postpone the work (new product backlog) ā€¢ For this to work: ā€¢ The Scrum team does need to be somehow aware of security engineering and software security issues. ā€¢ Security specialists should be on call.
  • 43. Creation of Secure Applications Security aspects of applications ā€¢ Usaually, security requirements are treated as the rest of requirements ā€“ Security is not a functional requirement ā€¢ It is difficult to implement ā€¢ It is difficult to trace during the project ā€¢ Security is always orthogonal. We may talk of perspectives for the software ā€¢ Given a good model, you have one thousand ways of making it unsecure ā€“ A parameter not correctly parsed ā€“ A buffer not correctly managed ā€“ ā€¦
  • 44. Creation of Secure Applications ļ‚§ Differences between current secure software development and the SERENITY approach ļ‚§ SERENITY applications life cycle ļ‚§ Developing SERENITY applications ļ‚§ Using Java to develop SERENITY applications ļ‚§ Run-time support ļ‚§ Advantages of the SERENITY approach
  • 45. Creation of Secure Applications Serenity Proposal for Secure Software Development ā€¢ Just a reminder: ā€“ For this to work, the team does need to be somehow aware of security engineering and software security issues. ā€¢ Now that we are aware: ā€“ We propose not to be aware of security engineering, but security properties the system have to comply with ā€“ Security requirements are fulfilled by means of S&D patterns ā€“ S&D patterns are represented at different levels of abstraction by means of different artefacts cd PatternDetail EA RefersTo Implements BelongsTo * * * ExecutableComponent S&DImplementation S&DPattern S&DClass
  • 46. Creation of Secure Applications Serenity Proposal for Secure Software Development Represents the Represents a set of Implementation of a Represents a S&D S&D solutions pattern solution Defines a general Implements a and defines an interface pattern interface and a set of functionallities cd PatternDetail EA RefersTo Implements BelongsTo * * * ExecutableComponent S&DImplementation S&DPattern S&DClass Software Architects know these artefacts, Security Experts deeeply know these artecfacts and Developers know and use all these S&D artefacts and their interfaces
  • 47. Creation of Secure Applications Serenity Proposal for Secure Software Development ā€¢ Developers include references to S&D patterns in applications by means of references to S&D artefacts ā€¢ Developers are supported by S&D patterns libraries where they can find artefacts (called S&D Libraries) ā€¢ SERENITY includes tools supporting developers for managing on-line S&D libraries (e.g. plugin for Eclipse)
  • 48. Creation of Secure Applications S&D Pattern Development S&D pattern Addition to S&D development S&D library library Security Community
  • 49. Creation of Secure Applications S&D Pattern Development S&D pattern Addition to S&D development S&D library library Security Community Application Development Inclusion of S&D pattern Application references in search and deployment Development Team application selection
  • 50. Creation of Secure Applications S&D Pattern Development S&D pattern Addition to S&D development S&D library library Security Community Application Development Inclusion of S&D pattern Application references in search and deployment Development Team application selection Runtime Support Runtime Application execution S&D pattern assembling Runtime monitoring Running app
  • 51. Creation of Secure Applications S&D Pattern Development S&D pattern Addition to S&D Serenity Development development S&D library library Security Community Framework Application Development Application Inclusion of references in S&D pattern search and deployment Development Team application selection Runtime Support Runtime Application execution S&D pattern assembling Runtime monitoring Running app
  • 52. Creation of Secure Applications S&D Pattern Development S&D pattern Addition to S&D development S&D library library Security Community Application Development Inclusion of S&D pattern Application references in search and deployment Development Team application selection Runtime Support Serenity Runtime Framework Runtime S&D pattern assembling Application execution Runtime monitoring Running app
  • 53. Creation of Secure Applications ā€¢ One of SERENITY main features is the run-time support: ā€“ Dynamic substitution of S&D Patterns at run-time ā€“ The more abstract level of the artefact selected at development-time is, the more flexible selecting the S&D Pattern the SRF is ā€“ At run-time S&D Patterns are monitored
  • 54. Creation of Secure Applications ā€¢ SERENITY approach can be integrated in most of current development processes ā€¢ Let us see how does it fitā€¦ SERENITY SERENITY development runtime time framework framework
  • 55. Creation of Secure Applications And if we go to Agile Developmentā€¦
  • 56. Creation of Secure Applications How does it fit in Agile Developmentā€¦ Sprint Review: Approve Detailed threat Decide on the controls: Sprint Planning: residual risk analysis -Address the threat Threat analysis (new sprint backlog) based on - Postpone the work properties for (new product backlog) largest risks
  • 57. Creation of Secure Applications How does it fit in Agile Developmentā€¦ Sprint Review: Approve Detailed threat Decide on the controls: residual risk analysis -Address the threat Sprint Planning: (new sprint backlog) Threat analysis - Postpone the work for largest risks (new product backlog) SERENITY SERENITY development runtime time framework framework
  • 58. Creation of Secure Applications ā€¢ The integration of SERENITY is achieved by means of new paths in security engineering techniques: S&D properties, formal proofs, and a library. ā€¢ Application developers profit of expertise of security experts by using SERENITY patterns
  • 59. Creation of Secure Applications ļ‚§ Differences between current secure software development and the SERENITY approach ļ‚§ SERENITY applications life cycle ļ‚§ Developing SERENITY applications ļ‚§ Using Java to develop SERENITY applications ļ‚§ Run-time support ļ‚§ Advantages of the SERENITY approach
  • 60. Creation of Secure Applications Developing applications in Serenity ā€¢ Application Developer: Our client needs a secure and reliable online applicationā€¦ 1) Identify S&D Requirements ā€¢ Properties vs. threats ā€¢ Usually expressed as S&DProperties ā€¢ Looking for the appropriate S&DProperties in S&DProperties repositories 2) Develop applications ā€¢ Search into development time S&DLibrary for the appropriate S&D solutions ā€¢ Developing the code including references to the S&D Solutions functionalities
  • 61. Creation of Secure Applications The whole process Information from context S&D Pattern Runtime reference selection Serenity-aware Application SRF Run-time Support Access to S&D Pattern functionallities Monitoring Activation rules Executable Monitoring Component Service implementing an S&D Pattern Monitorization and events
  • 62. Creation of Secure Applications An example: runtime selection cd Obj ect model1 SimpleTransmisionConfidentiality.iso.org : S&DClass ConfidentialityByDES_Encryption.iso.org :S&DPattern ConfidentialityBySecureChannel.ieee.org : S&DPattern NokiaDES : SAPDES : ThalesDES : S&DImplementation S&DImplementation S&DImplementation ATCSecureChannel : SetcceSecureChannel : S&DImplementation S&DImplementation SAPDES : ExecutableComponent ATCSecureChannel : ExecutableComponent NokiaDES : ThalesDES : ExecutableComponent ExecutableComponent SetcceSecureChannel : ExecutableComponent
  • 63. Creation of Secure Applications From developerā€™s perspective 1. I launch my favourite programming IDE 2. I start coding my application 3. I import the SERENITY API 4. I launch the SERENITY search tool 5. I look for the pattern I want to use in my application 6. I add calls to the pattern using a. the semantic information retrieved from the pattern description b. and, the SERENITY API
  • 64. Creation of Secure Applications From developerā€™s perspective 1. I launch my favourite programming IDE 2. I start coding my application 3. I import the SERENITY API 4. I launch the SERENITY search tool 5. I look for the pattern I want to use in my application 6. I add calls to the pattern using a. the semantic information retrieved from the pattern description b. and, the SERENITY API I just need a I do not need reference to include the to the pattern pattern itself
  • 65. Creation of Secure Applications From developerā€™s perspective 1. I launch my favourite programming IDE 2. I start coding my application 3. I import the SERENITY API 4. I launch the SERENITY search tool 5. I look for the pattern I want to use in my application 6. I add calls to the pattern using a. the semantic information retrieved from the pattern description b. and, the SERENITY API 7. I finish and compile my application 8. I deploy my application in a SERENITY enabled device Thatā€™s all, now my app is ready to run!
  • 66. Creation of Secure Applications SERENITY Tools ā€¢ Currently SERENITY provides an Eclipse plugin to navigate through a library of artefacts
  • 67. Creation of Secure Applications SERENITY Tools ā€¢ You can connect to remote S&D artefacts repositories
  • 68. Creation of Secure Applications SERENITY Tools ā€¢ You can navigate through solutions for specific S&D properties
  • 69. Creation of Secure Applications SERENITY Tools ā€¢ And you can search for specific S&D patterns, classesā€¦
  • 70. Creation of Secure Applications SERENITY Tools ā€¢ And security experts can edit S&D artefacts
  • 71. Creation of Secure Applications The whole process. Revisited Serenity-aware Application SRF Āæ? Executable Component Monitoring implementing Service an S&D Pattern
  • 72. Creation of Secure Applications The whole process. Revisited Serenity-aware Application SRF SERENITY API for application developers Executable Component Monitoring implementing Service Currently an S&D Pattern developed for JAVA
  • 73. Creation of Secure Applications ļ‚§ Differences between current secure software development and the SERENITY approach ļ‚§ SERENITY applications life cycle ļ‚§ Developing SERENITY applications ļ‚§Using Java to develop SERENITY applications ļ‚§ Run-time support ļ‚§ Advantages of the SERENITY approach
  • 74. Creation of Secure Applications An simplified example ā€¢ This test application just requests a S&D pattern for authentication and uses it My Serenity myEC confidentiality.uma.es Application sendConf() mySRF SRF mySRF = SRF_AP_AccessPoint(localhost); myEC = New SerenityExecutableComponent_AP( mySRF, ā€œP:confidentiality.uma.esā€, parameters );
  • 75. Creation of Secure Applications An simplified example ā€¢ This test application just requests a S&D pattern for authentication and uses it My Serenity myEC confidentiality.uma.es Application sendConf() mySRF SRF mySRF = SRF_AP_AccessPoint(localhost); myEC = New SerenityExecutableComponent_AP( mySRF, ā€œP:confidentiality.uma.esā€, parameters ); myEC.callOperation(ā€œsendConfā€, parameters);
  • 76. Creation of Secure Applications Java package for applications id SERENITY-application Support Library SERENITY-application Support Library SRF SRF_AP_AccessPoint + requestSolution() : EcHandler SRFRequests S&DManager Create EcHandler Application A Ā«useĀ» Ā«UseĀ» PointsTo SerenityExecutableComponent_AP Executable ECaccessPoint Component A + callOperation(oper, inParam, outParam) : void process
  • 77. Creation of Secure Applications An example: the code package SERENITY-application; importserenity.app.*; public class mySERENITYapplication{ // I connect to a SRF hosted on localhost SRF_AP_AccessPointmySRF = newSRF_AP_AccessPoint(localhost); // I am going to use an executableComponent SerenityExecutableComponent_APconfidentialitySolution; // Param for the SDRequest SerenitySolutionParametersListsParametersList = new SerenitySolutionParametersList(); // Param for the pattern functionallity SerenityOperationParametersListoperationParameters= new SerenityOperationParametersList(); // C: for a S&DClass // P: for a S&DPattern // I: for a S&DImplementation String solutionName = ā€œP:confidentiality.uma.esā€ public static void main() { ... // I am going to create the executableComponent access point object sParametertsList.addParam(ā€œtarget_IPā€,ā€127.0.0.1ā€); confidentialitySolution = newSerenityExecutableComponent_AP(mySRF, solutionName, sParametersList); ... // I am going to access one of the S&DClass interface operations operationParameters.addParam(ā€œMessageā€,ā€Hello worldā€); confidentialitySolution.callOperation(ā€œsendConfidentialā€, operationParameters); ... } }
  • 78. Creation of Secure Applications Considerations ā€¢ The API encapsulates the use of ECHandlers ā€“ The ECHandler is used by the executableComponent_AP ā€“ It is possible to use directly ECHandlers ā€¢ How do developers know the S&Dpatterns interface? ā€“ This information is part of the pattern definition retrieved from the development time library ā€“ Using a Serenity enabled IDE, it will help to develop the application presenting the list of appropriate calls (kind of auto completion) given the fact that S&D artefacts are machine readable. Tools and documentation available at: http://www.serenity-project.org/
  • 79. Creation of Secure Applications ļ‚§ Differences between current secure software development and the SERENITY approach ļ‚§ SERENITY applications life cycle ļ‚§ Developing SERENITY applications ļ‚§ Using Java to develop SERENITY applications ļ‚§ Run-time support ļ‚§ Advantages of the SERENITY approach
  • 80. Creation of Secure Applications Advantages of the SERENITY approach ā€¢ Applications become independent of the implementation of the security solutions they need ā€¢ Applications become responsive to the changes of the context ā€¢ The library of solutions is ever growing and continuously reviewed, without the need of revising the application ā€¢ It is possible to verify that applications comply with security policies applicable ā€¢ It enhances the process of security engineering, by promoting the separation of duties between security specialists and application developers ā€¢ It helps managing threats, since the focus is in the properties, not in the threats themselves ā€¢ Property + Context => Threats (it allows non security experts to identify new threats)
  • 81. Thank you Francisco Sanchez Cid cid@iti.upv.es