SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
Automated Verification of Security Policies in
              Mobile Code

                     Natasha Sharygina

              University of Lugano, Switzerland
            and Carnegie Mellon University, USA




  Joint work with Chiara Braghin and Katerina Barone-Adesi



                            Automated Verification of Security Policies in Mobile Code – p. 1/25
Motivation (1)
                           GSM Network


                        9600 bps


                                                                                           Internet
              GSM
              Phone
                                                                                                            WAN Host


                                   Base
                                   Transceiver                                               Router
                                                            Public Switched
                                   Station                Telephone Network (PSTN)
              PCMCIA
Mobile Node   Data
              Adapter
                                                 Modem Pool
                           Mobile Services
                                                                                                            LAN Host
                           Switching Center       MODEM                         MODEM     Dialup
                                                                                MODEM     Server
                                   IWF            MODEM
                                                                                                          LAN



        Formal methods are needed for the specification and verification of
        mobile distributed systems, focusing on security issues.


                                                              Automated Verification of Security Policies in Mobile Code – p. 2/25
Motivation (2)

Mobile systems are a special case of multi-threaded distributed
programs.
Differences:
    Threads may run in different locations (e.g., administrative
    domains, hosts, physical locations);
    Threads may migrate from one location to another;
    Thread communication takes into account geographical
    distribution:
       distinction among local and global (remote) communication;
       remote communication may be restricted by security policies
       (migration can occur only between directly linked net locations).




                               Automated Verification of Security Policies in Mobile Code – p. 3/25
Objectives

Expressive formalism for specifying mobile systems:
    explicit specification of the thread location and location net
    formalization of different synchronization and communication
    mechanisms
Formal analysis of mobile systems by model checking of security and
safety properties:
    not restricted to a single security policy
    abstraction-based approach for efficiency
    sound modeling of unbounded thread creation.




                              Automated Verification of Security Policies in Mobile Code – p. 4/25
Outline of Talk

Part I: Preliminaries
    Existing programming languages for mobile code
    Verification: possible techniques
    Software model checking in a nutshell
Part II: Modeling
    Explicit notion of location
    Location-aware threads as LKS
Part III: Verification
    A language for specifying different security policies
    A model-checking framework for verification of mobile programs
    A location-based efficient abstraction




                             Automated Verification of Security Policies in Mobile Code – p. 5/25
State of the Art

Programming languages for mobile code:
    Special purpose languages: Telescript, Obliq, Klaim, · · ·
    General purpose languages: Java, C, · · ·
Current validation techniques:
    Testing and simulation
    Type system or Abstract Interpretation:
      on process algebrae (π-calculus, Mobile Ambients, Dpi, etc.)
      on very small fragments of programming languages
    Dynamic policy verification (e.g., Java sandbox)
    Model checking




                              Automated Verification of Security Policies in Mobile Code – p. 6/25
Software Model Checking

Software verification with model checking:
    fully automated
    diagnostic counter-examples
    state space explosion problem
Different model checking techniques:
    explicit model checking
    symbolic model checking
    bounded model checking
    CEGAR-based model checking




                              Automated Verification of Security Policies in Mobile Code – p. 7/25
CEGAR-based Model Checking (1)




              Automated Verification of Security Policies in Mobile Code – p. 8/25
CEGAR-based Model Checking (2)

Build Abstract Model
    Using predicate abstraction and initial set of predicates P
Model Check the abstract model
    Generate reachable states explicitly/symbolically
    Obtain a counterexample
Check if the counterexample is spurious
    Simulate the counterexample on the concrete model
Abstraction Refinement
    Find new predicates to add to P in order to eliminate the
    counterexample
    Use the spurious counterexample to refine the abstraction




                                Automated Verification of Security Policies in Mobile Code – p. 9/25
Multi-threads - Classical Representation

  T    ::=                                threads
             T1 | T2                       parallel comp.
        |    Instr                         sequential exec.
Instr ::=                                 instructions
             Instr1 ; Instr2               sequential exec.
        |    x := e                        assignment
        |    if (Expr != 0) Instr          condition
        |    while (Expr != 0) Instr       loop
        |    skip                          skip
        |    m                             sync. call
        |    fork                          thread creation




                                 Automated Verification of Security Policies in Mobile Code – p. 10/25
Location-aware Threads (1)

 LT   ::=                                location-aware threads
        |   ℓ[ T ]
             [                             single thread
        |   LT1 LT2                        parallel composition
  T   ::=                                threads
            T1 | T2                       parallel comp.
        |   Instr                         sequential exec.
Instr ::=                                instructions
            Instr1 ; Instr2               sequential exec.
       |    x := e                        assignment
       |    if (Expr != 0) Instr          condition
       |    while (Expr != 0) Instr       loop
       |    skip                          skip
       |    m                             sync. call
       |    fork                          thread creation
       |    M Instr                       moving instr, go in(ℓ), go out(ℓ)
                                Automated Verification of Security Policies in Mobile Code – p. 11/25
Location-aware Threads (2)

Explicit notion of location ( ℓ[ T ] ).
                               [
Ability to capture the geographical distribution of the Web:
    location net is used to encapsulates the hierarchical nesting
       location net: a tree, with nodes labeled by unique location
       names;
       mobility: updates of the location net;
    the structure of the location net can be constrained to formalize
    various security policies.
Ability to locate multi-threaded programs.




                               Automated Verification of Security Policies in Mobile Code – p. 12/25
Location Net - Example

Consider a system with the following set of locations:

                          Loc = {env, ℓ0 , ℓ1 , ℓ2 , ℓ3 , ℓ4 }.

The location net is:
                       {env.ℓ0 .ℓ1 , env.ℓ2 , env.ℓ3 , env.ℓ4 },

which corresponds to the following tree:




                                         Automated Verification of Security Policies in Mobile Code – p. 13/25
The Computational Model (1)

A location-aware thread is a Labeled Kripke Structure
T = (S, Init, AP, L, Σ, R), with:
    The set of states S = (Vl , Vg , pc, ϕ, η):
       Vl evaluation of local variables,
       Vg evaluation of global variables,
       pc the program counter,
       ϕ : Loc → Loc is a partial order function denoting the location
       net (where Loc is the set of location names),
       η : N → Loc is a partial function denoting the thread location.
R ⊆ S × Σ × S ∪ { S × S } is a total labeled transition relation
                  fork
   notice that s − − → (s′ , s), with s′ the next state of s, and
                  −−
   s = Init the initial state of the newly created thread.



                               Automated Verification of Security Policies in Mobile Code – p. 14/25
The Computational Model (2)

Inference rules for the labeled transition relation Ri for thread Ti .
                (F ORK - ACTION )
                             Instr(s.pc) = fork
                    fork
                s − − i (s′ , s) [s′ .pc = s.pc + 1; s = Initi ]
                   −→

    (in- ACTION )
    Instr(s.pc) = go in(ℓ) ∧ (∃ℓ1 s.t.: ℓ1 := s.η(i) ∧ s.ϕ(ℓ1 ) = s.ϕ(ℓ))
                 go_in(l)
              s − − − i s′ [s′ .pc = s.pc + 1; s.ϕ ∪ {ℓ → ℓ1 }]
                 −−→

                            (S YNC - ACTION )
                                 Instr(s.pc) = m
                               m
                            s − i s′ [s′ .pc = s.pc + 1]
                               →

                                       Automated Verification of Security Policies in Mobile Code – p. 15/25
The Computational Model (3)

     The set of Σ is split into mutually disjoint sets ΣM , ΣS , ΣT , Στ ,
     representing moving, synchronization, thread creation, and τ actions.
The labeled transition relation for the composition of two threads T1                                   T2 .

     (S YNC - ACTION )
                    1   a        ′1                        a        ′2
     a∈    ΣS
            1   ∧s − 1 s ∧a∈
                   →                       ΣS
                                            2        →2
                                                 ∧ s − 2 s ∧ s1 .η(1) = s2 .η(2)
                                       1   2    a         ′1   ′2
                                      (s , s ) − (s , s )
                                               →

     (L-PAR )                                                       (R-PAR )
                        a        ′1                                                   2    a        ′2
     a∈    ΣM
            1   ∧s− 1s
                  →                                                 a∈       ΣM
                                                                              2   ∧s − 2s
                                                                                     →
       1   2    a           ′1   2                                       1   2    a            1   ′2
     (s , s ) − 1 (s , s )
              →                                                     (s , s ) − 2 (s , s )
                                                                             →


                                               Automated Verification of Security Policies in Mobile Code – p. 16/25
Verification of Security Policies (1)

Mandatory Access Control
    If ℓ is a location/host that contains confidential information, need to
    check that the information is not leaked (i.e., no write to remote
    locations).
Information Flow
    If Ti is a shopping agent searching the best airfare for a flight from
    Lugano to London and buying it by using the user’s credit card
    number, need to validate to whom the threads reveals the
    confidential information (by exploiting the trail of the actions of the
    thread).
“Bad” Traces
    If Ti is a downloaded applet, need to check for Trojan horses, i.e.,
    sequences of malicious instructions (e.g., installing a backdoor or a
    keylogger).


                               Automated Verification of Security Policies in Mobile Code – p. 17/25
Verification of Security Policies (2)

A security policy consists of a set of rules or conditions stating which
actions are prohibited in the system:

          policy   −>     { sec_levels | operation_def | deny statement }
deny statement     − > deny to deny_target [ code base ][ code origin ]
                          { permission entry {, permission entry } }
    deny_target    − > public| entity list


The location may play an important role in determining access rights:

           code base    − > codeBase IPv4 addr
          code origin   − > codeOrigin( location | remote)
             location   −>      location_id {: location_id }
                                Automated Verification of Security Policies in Mobile Code – p. 18/25
Verification of Security Policies (3)

A permission entry specifies which actions are denied:

            permission entry     − > permission action
                      action     −>        function | operation


In case of a function, it is possible to specify (i) formal parameters
(variable names), (ii) actual parameters (the value of the arguments
passed), (iii) an empty string, denying access to the function regardless
of the arguments to it, or (iv) the keyword high (no high variables can
be passed as arguments to this function).

           function   − > function function_id parameters
        parameters    −>       actual par | formal par | high | ε

                                Automated Verification of Security Policies in Mobile Code – p. 19/25
Verification of Security Policies (4)

Java sandbox policy: it is responsible for protecting a number of
resources by preventing applets from accessing the local hard disk and
the network.
operation read_file_system { fread, read, scanf, gets, fgets}
deny to public codeOrigin remote
{ permission function connect_to_location,
  permission operation read_file_system }
A naive multi-level security policy:
High={confidential_var, x}
deny to public codeOrigin remote
{ permission function fopen high}



                               Automated Verification of Security Policies in Mobile Code – p. 20/25
Automated Security Verification




Program P ′ is annotated with the security invariants expressed in the
security policy;
A security monitor function is created for each permission statement in
the policy;
P ′ consists of the product of P with all the monitor functions
corresponding to the security policy S.


                               Automated Verification of Security Policies in Mobile Code – p. 21/25
An Efficient Security-driven abstraction

Idea: Remove from the system the behavior not related to the
location-specific policy:
    Location Projection, π ↓ ℓ: thread executions for a particular
    location.
    Moving Projection, π ↓M i: all moving actions executed by thread
    Ti .
    Thread Projection, π ↓ i: all actions executed by thread Ti .




                              Automated Verification of Security Policies in Mobile Code – p. 22/25
The CEGAR Loop Revisited




          Automated Verification of Security Policies in Mobile Code – p. 23/25
Experiments

    policy          time (s)   # iterations      # predicates         pv?      SATABS: pv?
    1 (sa)         151.644          7                   17            yes              yes
  2 local (sa)     100.234          5                   15             no              no
 2 remote (sa)     524.866         12                   36            yes              yes
3 codeBase (sa)    340.011         12                   22            yes              yes

                           Sample policy (2(sa)):
                      deny to public codeOrigin remote
                 { permission function fopen "/etc/passwd"}




                                        Automated Verification of Security Policies in Mobile Code – p. 24/25
Conclusion

Expressive formalism for specifying mobile systems:
– it explicitly models thread location, location distribution and thread
moving operations;
– it preserves both data and communication structures of mobile
systems.
Specification language for specifying security policies of mobile code:
– information flow;
– access control policies;
Integrated model checking framework to support exhaustive analysis of
security policies;
Location-specific abstractions enable the efficient verification of large
mobile code applications.




                               Automated Verification of Security Policies in Mobile Code – p. 25/25

Mais conteúdo relacionado

Mais procurados

A Novel Method for Speaker Independent Recognition Based on Hidden Markov Model
A Novel Method for Speaker Independent Recognition Based on Hidden Markov ModelA Novel Method for Speaker Independent Recognition Based on Hidden Markov Model
A Novel Method for Speaker Independent Recognition Based on Hidden Markov ModelIDES Editor
 
Optimized rationalize security and efficient data gathering in wireless senso...
Optimized rationalize security and efficient data gathering in wireless senso...Optimized rationalize security and efficient data gathering in wireless senso...
Optimized rationalize security and efficient data gathering in wireless senso...ijmnct
 
Label based dv-hop localization against wormhole attacks in wireless sensor n...
Label based dv-hop localization against wormhole attacks in wireless sensor n...Label based dv-hop localization against wormhole attacks in wireless sensor n...
Label based dv-hop localization against wormhole attacks in wireless sensor n...ambitlick
 
Automatic Speaker Recognition system using MFCC and VQ approach
Automatic Speaker Recognition system using MFCC and VQ approachAutomatic Speaker Recognition system using MFCC and VQ approach
Automatic Speaker Recognition system using MFCC and VQ approachAbdullah al Mamun
 
Combining cryptographic primitives to prevent jamming attacks in wireless net...
Combining cryptographic primitives to prevent jamming attacks in wireless net...Combining cryptographic primitives to prevent jamming attacks in wireless net...
Combining cryptographic primitives to prevent jamming attacks in wireless net...JPINFOTECH JAYAPRAKASH
 
Secure Communication with Privacy Preservation in VANET
Secure Communication with Privacy Preservation in VANETSecure Communication with Privacy Preservation in VANET
Secure Communication with Privacy Preservation in VANETAnkit Gupta
 
Abstract
AbstractAbstract
Abstractrajugnt
 
Speaker identification using mel frequency
Speaker identification using mel frequency Speaker identification using mel frequency
Speaker identification using mel frequency Phan Duy
 
FPGA based Data Scrambler for Ultra-Wideband Communication Systems
FPGA based Data Scrambler for Ultra-Wideband Communication SystemsFPGA based Data Scrambler for Ultra-Wideband Communication Systems
FPGA based Data Scrambler for Ultra-Wideband Communication Systemsidescitation
 
Networked Dynamic Systems: Identification, Controllability, and Randomness
Networked Dynamic Systems: Identification, Controllability, and RandomnessNetworked Dynamic Systems: Identification, Controllability, and Randomness
Networked Dynamic Systems: Identification, Controllability, and RandomnessMarzieh Nabi
 
Comparative Analysis of Distortive and Non-Distortive Techniques for PAPR Red...
Comparative Analysis of Distortive and Non-Distortive Techniques for PAPR Red...Comparative Analysis of Distortive and Non-Distortive Techniques for PAPR Red...
Comparative Analysis of Distortive and Non-Distortive Techniques for PAPR Red...IDES Editor
 
Ber performance analysis of mimo systems using equalization
Ber performance analysis of mimo systems using equalizationBer performance analysis of mimo systems using equalization
Ber performance analysis of mimo systems using equalizationAlexander Decker
 
3 packet-hiding methods for preventing selective
3   packet-hiding methods for preventing selective3   packet-hiding methods for preventing selective
3 packet-hiding methods for preventing selective11W91D5809
 
Sandberg v deetzen_trcomm_2010
Sandberg v deetzen_trcomm_2010Sandberg v deetzen_trcomm_2010
Sandberg v deetzen_trcomm_2010Nitesh Chilakala
 

Mais procurados (19)

A Novel Method for Speaker Independent Recognition Based on Hidden Markov Model
A Novel Method for Speaker Independent Recognition Based on Hidden Markov ModelA Novel Method for Speaker Independent Recognition Based on Hidden Markov Model
A Novel Method for Speaker Independent Recognition Based on Hidden Markov Model
 
Rfid based localization
Rfid based localizationRfid based localization
Rfid based localization
 
Optimized rationalize security and efficient data gathering in wireless senso...
Optimized rationalize security and efficient data gathering in wireless senso...Optimized rationalize security and efficient data gathering in wireless senso...
Optimized rationalize security and efficient data gathering in wireless senso...
 
Label based dv-hop localization against wormhole attacks in wireless sensor n...
Label based dv-hop localization against wormhole attacks in wireless sensor n...Label based dv-hop localization against wormhole attacks in wireless sensor n...
Label based dv-hop localization against wormhole attacks in wireless sensor n...
 
Bz25454457
Bz25454457Bz25454457
Bz25454457
 
Automatic Speaker Recognition system using MFCC and VQ approach
Automatic Speaker Recognition system using MFCC and VQ approachAutomatic Speaker Recognition system using MFCC and VQ approach
Automatic Speaker Recognition system using MFCC and VQ approach
 
Combining cryptographic primitives to prevent jamming attacks in wireless net...
Combining cryptographic primitives to prevent jamming attacks in wireless net...Combining cryptographic primitives to prevent jamming attacks in wireless net...
Combining cryptographic primitives to prevent jamming attacks in wireless net...
 
Secure Communication with Privacy Preservation in VANET
Secure Communication with Privacy Preservation in VANETSecure Communication with Privacy Preservation in VANET
Secure Communication with Privacy Preservation in VANET
 
Abstract
AbstractAbstract
Abstract
 
Speaker identification using mel frequency
Speaker identification using mel frequency Speaker identification using mel frequency
Speaker identification using mel frequency
 
FPGA based Data Scrambler for Ultra-Wideband Communication Systems
FPGA based Data Scrambler for Ultra-Wideband Communication SystemsFPGA based Data Scrambler for Ultra-Wideband Communication Systems
FPGA based Data Scrambler for Ultra-Wideband Communication Systems
 
Networked Dynamic Systems: Identification, Controllability, and Randomness
Networked Dynamic Systems: Identification, Controllability, and RandomnessNetworked Dynamic Systems: Identification, Controllability, and Randomness
Networked Dynamic Systems: Identification, Controllability, and Randomness
 
Comparative Analysis of Distortive and Non-Distortive Techniques for PAPR Red...
Comparative Analysis of Distortive and Non-Distortive Techniques for PAPR Red...Comparative Analysis of Distortive and Non-Distortive Techniques for PAPR Red...
Comparative Analysis of Distortive and Non-Distortive Techniques for PAPR Red...
 
241 250
241 250241 250
241 250
 
Indoor Localization in Wireless Sensor Networks
Indoor Localization in Wireless Sensor NetworksIndoor Localization in Wireless Sensor Networks
Indoor Localization in Wireless Sensor Networks
 
Ber performance analysis of mimo systems using equalization
Ber performance analysis of mimo systems using equalizationBer performance analysis of mimo systems using equalization
Ber performance analysis of mimo systems using equalization
 
Self Healing
Self HealingSelf Healing
Self Healing
 
3 packet-hiding methods for preventing selective
3   packet-hiding methods for preventing selective3   packet-hiding methods for preventing selective
3 packet-hiding methods for preventing selective
 
Sandberg v deetzen_trcomm_2010
Sandberg v deetzen_trcomm_2010Sandberg v deetzen_trcomm_2010
Sandberg v deetzen_trcomm_2010
 

Semelhante a 20080502 software verification_sharygina_lecture03

Secure Checkpointing Approach for Mobile Environment
Secure Checkpointing Approach for Mobile EnvironmentSecure Checkpointing Approach for Mobile Environment
Secure Checkpointing Approach for Mobile Environmentidescitation
 
Network coding combined with onion routing for anonymous and secure communica...
Network coding combined with onion routing for anonymous and secure communica...Network coding combined with onion routing for anonymous and secure communica...
Network coding combined with onion routing for anonymous and secure communica...IJCNCJournal
 
AN ANTI-CLONE ATTACK KEY MANAGEMENT SCHEME FOR WIRELESS SENSOR NETWORKS
AN ANTI-CLONE ATTACK KEY MANAGEMENT SCHEME FOR WIRELESS SENSOR NETWORKSAN ANTI-CLONE ATTACK KEY MANAGEMENT SCHEME FOR WIRELESS SENSOR NETWORKS
AN ANTI-CLONE ATTACK KEY MANAGEMENT SCHEME FOR WIRELESS SENSOR NETWORKScsandit
 
WSN_Data Link Layer _latest development_by_AbhinavAshish.pptx
WSN_Data Link Layer _latest development_by_AbhinavAshish.pptxWSN_Data Link Layer _latest development_by_AbhinavAshish.pptx
WSN_Data Link Layer _latest development_by_AbhinavAshish.pptxAbhinavAshish21
 
Data Link Layer _latest development_project.pptx
Data Link Layer _latest development_project.pptxData Link Layer _latest development_project.pptx
Data Link Layer _latest development_project.pptxAbhinavAshish21
 
Network security java ieee projects 2012 @ Seabirds ( Trichy, Pudukkottai, Ta...
Network security java ieee projects 2012 @ Seabirds ( Trichy, Pudukkottai, Ta...Network security java ieee projects 2012 @ Seabirds ( Trichy, Pudukkottai, Ta...
Network security java ieee projects 2012 @ Seabirds ( Trichy, Pudukkottai, Ta...SBGC
 
SEAD: Source Encrypted Authentic Data for Wireless Sensor Networks
SEAD: Source Encrypted Authentic Data for Wireless Sensor NetworksSEAD: Source Encrypted Authentic Data for Wireless Sensor Networks
SEAD: Source Encrypted Authentic Data for Wireless Sensor NetworksIJERD Editor
 
IEEE Projects 2012-2013 Network Security
IEEE Projects 2012-2013 Network SecurityIEEE Projects 2012-2013 Network Security
IEEE Projects 2012-2013 Network SecuritySBGC
 
Provably secure nested one time secrete key
Provably secure nested one time secrete keyProvably secure nested one time secrete key
Provably secure nested one time secrete keysalaimamani
 
Detection of Various Attacks using Zero Knowledge Protocol in Wireless Security
Detection of Various Attacks using Zero Knowledge Protocol in Wireless SecurityDetection of Various Attacks using Zero Knowledge Protocol in Wireless Security
Detection of Various Attacks using Zero Knowledge Protocol in Wireless Securityijceronline
 
Wireless Security and Mobile DevicesChapter 12Princi.docx
Wireless Security and Mobile DevicesChapter 12Princi.docxWireless Security and Mobile DevicesChapter 12Princi.docx
Wireless Security and Mobile DevicesChapter 12Princi.docxadolphoyonker
 
Hierarchical Key Agreement Protocol for Wireless Sensor Networks
Hierarchical Key Agreement Protocol for Wireless Sensor NetworksHierarchical Key Agreement Protocol for Wireless Sensor Networks
Hierarchical Key Agreement Protocol for Wireless Sensor Networksidescitation
 
Conference Paper: Formal Verification of the Security for Dual Connectivity i...
Conference Paper: Formal Verification of the Security for Dual Connectivity i...Conference Paper: Formal Verification of the Security for Dual Connectivity i...
Conference Paper: Formal Verification of the Security for Dual Connectivity i...Ericsson
 
Finding Diversity In Remote Code Injection Exploits
Finding Diversity In Remote Code Injection ExploitsFinding Diversity In Remote Code Injection Exploits
Finding Diversity In Remote Code Injection Exploitsamiable_indian
 
Use of NS-2 to Simulate MANET Routing Algorithms
Use of NS-2 to Simulate MANET Routing AlgorithmsUse of NS-2 to Simulate MANET Routing Algorithms
Use of NS-2 to Simulate MANET Routing AlgorithmsGiancarlo Romeo
 
IRJET - Identification and Classification of IoT Devices in Various Appli...
IRJET -  	  Identification and Classification of IoT Devices in Various Appli...IRJET -  	  Identification and Classification of IoT Devices in Various Appli...
IRJET - Identification and Classification of IoT Devices in Various Appli...IRJET Journal
 
SECURE LOCATION BASED ROUTING FOR MANETS
SECURE LOCATION BASED ROUTING FOR MANETSSECURE LOCATION BASED ROUTING FOR MANETS
SECURE LOCATION BASED ROUTING FOR MANETSAnkur Singhal
 
IRJET- SDN Simulation in Mininet to Provide Security Via Firewall
IRJET- SDN Simulation in Mininet to Provide Security Via FirewallIRJET- SDN Simulation in Mininet to Provide Security Via Firewall
IRJET- SDN Simulation in Mininet to Provide Security Via FirewallIRJET Journal
 

Semelhante a 20080502 software verification_sharygina_lecture03 (20)

Secure Checkpointing Approach for Mobile Environment
Secure Checkpointing Approach for Mobile EnvironmentSecure Checkpointing Approach for Mobile Environment
Secure Checkpointing Approach for Mobile Environment
 
Network coding combined with onion routing for anonymous and secure communica...
Network coding combined with onion routing for anonymous and secure communica...Network coding combined with onion routing for anonymous and secure communica...
Network coding combined with onion routing for anonymous and secure communica...
 
AN ANTI-CLONE ATTACK KEY MANAGEMENT SCHEME FOR WIRELESS SENSOR NETWORKS
AN ANTI-CLONE ATTACK KEY MANAGEMENT SCHEME FOR WIRELESS SENSOR NETWORKSAN ANTI-CLONE ATTACK KEY MANAGEMENT SCHEME FOR WIRELESS SENSOR NETWORKS
AN ANTI-CLONE ATTACK KEY MANAGEMENT SCHEME FOR WIRELESS SENSOR NETWORKS
 
WSN_Data Link Layer _latest development_by_AbhinavAshish.pptx
WSN_Data Link Layer _latest development_by_AbhinavAshish.pptxWSN_Data Link Layer _latest development_by_AbhinavAshish.pptx
WSN_Data Link Layer _latest development_by_AbhinavAshish.pptx
 
Data Link Layer _latest development_project.pptx
Data Link Layer _latest development_project.pptxData Link Layer _latest development_project.pptx
Data Link Layer _latest development_project.pptx
 
Network security java ieee projects 2012 @ Seabirds ( Trichy, Pudukkottai, Ta...
Network security java ieee projects 2012 @ Seabirds ( Trichy, Pudukkottai, Ta...Network security java ieee projects 2012 @ Seabirds ( Trichy, Pudukkottai, Ta...
Network security java ieee projects 2012 @ Seabirds ( Trichy, Pudukkottai, Ta...
 
SEAD: Source Encrypted Authentic Data for Wireless Sensor Networks
SEAD: Source Encrypted Authentic Data for Wireless Sensor NetworksSEAD: Source Encrypted Authentic Data for Wireless Sensor Networks
SEAD: Source Encrypted Authentic Data for Wireless Sensor Networks
 
IEEE Projects 2012-2013 Network Security
IEEE Projects 2012-2013 Network SecurityIEEE Projects 2012-2013 Network Security
IEEE Projects 2012-2013 Network Security
 
Provably secure nested one time secrete key
Provably secure nested one time secrete keyProvably secure nested one time secrete key
Provably secure nested one time secrete key
 
Detection of Various Attacks using Zero Knowledge Protocol in Wireless Security
Detection of Various Attacks using Zero Knowledge Protocol in Wireless SecurityDetection of Various Attacks using Zero Knowledge Protocol in Wireless Security
Detection of Various Attacks using Zero Knowledge Protocol in Wireless Security
 
Wireless Security and Mobile DevicesChapter 12Princi.docx
Wireless Security and Mobile DevicesChapter 12Princi.docxWireless Security and Mobile DevicesChapter 12Princi.docx
Wireless Security and Mobile DevicesChapter 12Princi.docx
 
Hierarchical Key Agreement Protocol for Wireless Sensor Networks
Hierarchical Key Agreement Protocol for Wireless Sensor NetworksHierarchical Key Agreement Protocol for Wireless Sensor Networks
Hierarchical Key Agreement Protocol for Wireless Sensor Networks
 
Conference Paper: Formal Verification of the Security for Dual Connectivity i...
Conference Paper: Formal Verification of the Security for Dual Connectivity i...Conference Paper: Formal Verification of the Security for Dual Connectivity i...
Conference Paper: Formal Verification of the Security for Dual Connectivity i...
 
Finding Diversity In Remote Code Injection Exploits
Finding Diversity In Remote Code Injection ExploitsFinding Diversity In Remote Code Injection Exploits
Finding Diversity In Remote Code Injection Exploits
 
Use of NS-2 to Simulate MANET Routing Algorithms
Use of NS-2 to Simulate MANET Routing AlgorithmsUse of NS-2 to Simulate MANET Routing Algorithms
Use of NS-2 to Simulate MANET Routing Algorithms
 
B43040610
B43040610B43040610
B43040610
 
IRJET - Identification and Classification of IoT Devices in Various Appli...
IRJET -  	  Identification and Classification of IoT Devices in Various Appli...IRJET -  	  Identification and Classification of IoT Devices in Various Appli...
IRJET - Identification and Classification of IoT Devices in Various Appli...
 
Majorppt
MajorpptMajorppt
Majorppt
 
SECURE LOCATION BASED ROUTING FOR MANETS
SECURE LOCATION BASED ROUTING FOR MANETSSECURE LOCATION BASED ROUTING FOR MANETS
SECURE LOCATION BASED ROUTING FOR MANETS
 
IRJET- SDN Simulation in Mininet to Provide Security Via Firewall
IRJET- SDN Simulation in Mininet to Provide Security Via FirewallIRJET- SDN Simulation in Mininet to Provide Security Via Firewall
IRJET- SDN Simulation in Mininet to Provide Security Via Firewall
 

Mais de Computer Science Club

20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugsComputer Science Club
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12Computer Science Club
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11Computer Science Club
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10Computer Science Club
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09Computer Science Club
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02Computer Science Club
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01Computer Science Club
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04Computer Science Club
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01Computer Science Club
 

Mais de Computer Science Club (20)

20141223 kuznetsov distributed
20141223 kuznetsov distributed20141223 kuznetsov distributed
20141223 kuznetsov distributed
 
Computer Vision
Computer VisionComputer Vision
Computer Vision
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04
 
20140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-0320140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-03
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01
 
20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 

Último

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
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
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
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
 

Último (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
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
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
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
 

20080502 software verification_sharygina_lecture03

  • 1. Automated Verification of Security Policies in Mobile Code Natasha Sharygina University of Lugano, Switzerland and Carnegie Mellon University, USA Joint work with Chiara Braghin and Katerina Barone-Adesi Automated Verification of Security Policies in Mobile Code – p. 1/25
  • 2. Motivation (1) GSM Network 9600 bps Internet GSM Phone WAN Host Base Transceiver Router Public Switched Station Telephone Network (PSTN) PCMCIA Mobile Node Data Adapter Modem Pool Mobile Services LAN Host Switching Center MODEM MODEM Dialup MODEM Server IWF MODEM LAN Formal methods are needed for the specification and verification of mobile distributed systems, focusing on security issues. Automated Verification of Security Policies in Mobile Code – p. 2/25
  • 3. Motivation (2) Mobile systems are a special case of multi-threaded distributed programs. Differences: Threads may run in different locations (e.g., administrative domains, hosts, physical locations); Threads may migrate from one location to another; Thread communication takes into account geographical distribution: distinction among local and global (remote) communication; remote communication may be restricted by security policies (migration can occur only between directly linked net locations). Automated Verification of Security Policies in Mobile Code – p. 3/25
  • 4. Objectives Expressive formalism for specifying mobile systems: explicit specification of the thread location and location net formalization of different synchronization and communication mechanisms Formal analysis of mobile systems by model checking of security and safety properties: not restricted to a single security policy abstraction-based approach for efficiency sound modeling of unbounded thread creation. Automated Verification of Security Policies in Mobile Code – p. 4/25
  • 5. Outline of Talk Part I: Preliminaries Existing programming languages for mobile code Verification: possible techniques Software model checking in a nutshell Part II: Modeling Explicit notion of location Location-aware threads as LKS Part III: Verification A language for specifying different security policies A model-checking framework for verification of mobile programs A location-based efficient abstraction Automated Verification of Security Policies in Mobile Code – p. 5/25
  • 6. State of the Art Programming languages for mobile code: Special purpose languages: Telescript, Obliq, Klaim, · · · General purpose languages: Java, C, · · · Current validation techniques: Testing and simulation Type system or Abstract Interpretation: on process algebrae (π-calculus, Mobile Ambients, Dpi, etc.) on very small fragments of programming languages Dynamic policy verification (e.g., Java sandbox) Model checking Automated Verification of Security Policies in Mobile Code – p. 6/25
  • 7. Software Model Checking Software verification with model checking: fully automated diagnostic counter-examples state space explosion problem Different model checking techniques: explicit model checking symbolic model checking bounded model checking CEGAR-based model checking Automated Verification of Security Policies in Mobile Code – p. 7/25
  • 8. CEGAR-based Model Checking (1) Automated Verification of Security Policies in Mobile Code – p. 8/25
  • 9. CEGAR-based Model Checking (2) Build Abstract Model Using predicate abstraction and initial set of predicates P Model Check the abstract model Generate reachable states explicitly/symbolically Obtain a counterexample Check if the counterexample is spurious Simulate the counterexample on the concrete model Abstraction Refinement Find new predicates to add to P in order to eliminate the counterexample Use the spurious counterexample to refine the abstraction Automated Verification of Security Policies in Mobile Code – p. 9/25
  • 10. Multi-threads - Classical Representation T ::= threads T1 | T2 parallel comp. | Instr sequential exec. Instr ::= instructions Instr1 ; Instr2 sequential exec. | x := e assignment | if (Expr != 0) Instr condition | while (Expr != 0) Instr loop | skip skip | m sync. call | fork thread creation Automated Verification of Security Policies in Mobile Code – p. 10/25
  • 11. Location-aware Threads (1) LT ::= location-aware threads | ℓ[ T ] [ single thread | LT1 LT2 parallel composition T ::= threads T1 | T2 parallel comp. | Instr sequential exec. Instr ::= instructions Instr1 ; Instr2 sequential exec. | x := e assignment | if (Expr != 0) Instr condition | while (Expr != 0) Instr loop | skip skip | m sync. call | fork thread creation | M Instr moving instr, go in(ℓ), go out(ℓ) Automated Verification of Security Policies in Mobile Code – p. 11/25
  • 12. Location-aware Threads (2) Explicit notion of location ( ℓ[ T ] ). [ Ability to capture the geographical distribution of the Web: location net is used to encapsulates the hierarchical nesting location net: a tree, with nodes labeled by unique location names; mobility: updates of the location net; the structure of the location net can be constrained to formalize various security policies. Ability to locate multi-threaded programs. Automated Verification of Security Policies in Mobile Code – p. 12/25
  • 13. Location Net - Example Consider a system with the following set of locations: Loc = {env, ℓ0 , ℓ1 , ℓ2 , ℓ3 , ℓ4 }. The location net is: {env.ℓ0 .ℓ1 , env.ℓ2 , env.ℓ3 , env.ℓ4 }, which corresponds to the following tree: Automated Verification of Security Policies in Mobile Code – p. 13/25
  • 14. The Computational Model (1) A location-aware thread is a Labeled Kripke Structure T = (S, Init, AP, L, Σ, R), with: The set of states S = (Vl , Vg , pc, ϕ, η): Vl evaluation of local variables, Vg evaluation of global variables, pc the program counter, ϕ : Loc → Loc is a partial order function denoting the location net (where Loc is the set of location names), η : N → Loc is a partial function denoting the thread location. R ⊆ S × Σ × S ∪ { S × S } is a total labeled transition relation fork notice that s − − → (s′ , s), with s′ the next state of s, and −− s = Init the initial state of the newly created thread. Automated Verification of Security Policies in Mobile Code – p. 14/25
  • 15. The Computational Model (2) Inference rules for the labeled transition relation Ri for thread Ti . (F ORK - ACTION ) Instr(s.pc) = fork fork s − − i (s′ , s) [s′ .pc = s.pc + 1; s = Initi ] −→ (in- ACTION ) Instr(s.pc) = go in(ℓ) ∧ (∃ℓ1 s.t.: ℓ1 := s.η(i) ∧ s.ϕ(ℓ1 ) = s.ϕ(ℓ)) go_in(l) s − − − i s′ [s′ .pc = s.pc + 1; s.ϕ ∪ {ℓ → ℓ1 }] −−→ (S YNC - ACTION ) Instr(s.pc) = m m s − i s′ [s′ .pc = s.pc + 1] → Automated Verification of Security Policies in Mobile Code – p. 15/25
  • 16. The Computational Model (3) The set of Σ is split into mutually disjoint sets ΣM , ΣS , ΣT , Στ , representing moving, synchronization, thread creation, and τ actions. The labeled transition relation for the composition of two threads T1 T2 . (S YNC - ACTION ) 1 a ′1 a ′2 a∈ ΣS 1 ∧s − 1 s ∧a∈ → ΣS 2 →2 ∧ s − 2 s ∧ s1 .η(1) = s2 .η(2) 1 2 a ′1 ′2 (s , s ) − (s , s ) → (L-PAR ) (R-PAR ) a ′1 2 a ′2 a∈ ΣM 1 ∧s− 1s → a∈ ΣM 2 ∧s − 2s → 1 2 a ′1 2 1 2 a 1 ′2 (s , s ) − 1 (s , s ) → (s , s ) − 2 (s , s ) → Automated Verification of Security Policies in Mobile Code – p. 16/25
  • 17. Verification of Security Policies (1) Mandatory Access Control If ℓ is a location/host that contains confidential information, need to check that the information is not leaked (i.e., no write to remote locations). Information Flow If Ti is a shopping agent searching the best airfare for a flight from Lugano to London and buying it by using the user’s credit card number, need to validate to whom the threads reveals the confidential information (by exploiting the trail of the actions of the thread). “Bad” Traces If Ti is a downloaded applet, need to check for Trojan horses, i.e., sequences of malicious instructions (e.g., installing a backdoor or a keylogger). Automated Verification of Security Policies in Mobile Code – p. 17/25
  • 18. Verification of Security Policies (2) A security policy consists of a set of rules or conditions stating which actions are prohibited in the system: policy −> { sec_levels | operation_def | deny statement } deny statement − > deny to deny_target [ code base ][ code origin ] { permission entry {, permission entry } } deny_target − > public| entity list The location may play an important role in determining access rights: code base − > codeBase IPv4 addr code origin − > codeOrigin( location | remote) location −> location_id {: location_id } Automated Verification of Security Policies in Mobile Code – p. 18/25
  • 19. Verification of Security Policies (3) A permission entry specifies which actions are denied: permission entry − > permission action action −> function | operation In case of a function, it is possible to specify (i) formal parameters (variable names), (ii) actual parameters (the value of the arguments passed), (iii) an empty string, denying access to the function regardless of the arguments to it, or (iv) the keyword high (no high variables can be passed as arguments to this function). function − > function function_id parameters parameters −> actual par | formal par | high | ε Automated Verification of Security Policies in Mobile Code – p. 19/25
  • 20. Verification of Security Policies (4) Java sandbox policy: it is responsible for protecting a number of resources by preventing applets from accessing the local hard disk and the network. operation read_file_system { fread, read, scanf, gets, fgets} deny to public codeOrigin remote { permission function connect_to_location, permission operation read_file_system } A naive multi-level security policy: High={confidential_var, x} deny to public codeOrigin remote { permission function fopen high} Automated Verification of Security Policies in Mobile Code – p. 20/25
  • 21. Automated Security Verification Program P ′ is annotated with the security invariants expressed in the security policy; A security monitor function is created for each permission statement in the policy; P ′ consists of the product of P with all the monitor functions corresponding to the security policy S. Automated Verification of Security Policies in Mobile Code – p. 21/25
  • 22. An Efficient Security-driven abstraction Idea: Remove from the system the behavior not related to the location-specific policy: Location Projection, π ↓ ℓ: thread executions for a particular location. Moving Projection, π ↓M i: all moving actions executed by thread Ti . Thread Projection, π ↓ i: all actions executed by thread Ti . Automated Verification of Security Policies in Mobile Code – p. 22/25
  • 23. The CEGAR Loop Revisited Automated Verification of Security Policies in Mobile Code – p. 23/25
  • 24. Experiments policy time (s) # iterations # predicates pv? SATABS: pv? 1 (sa) 151.644 7 17 yes yes 2 local (sa) 100.234 5 15 no no 2 remote (sa) 524.866 12 36 yes yes 3 codeBase (sa) 340.011 12 22 yes yes Sample policy (2(sa)): deny to public codeOrigin remote { permission function fopen "/etc/passwd"} Automated Verification of Security Policies in Mobile Code – p. 24/25
  • 25. Conclusion Expressive formalism for specifying mobile systems: – it explicitly models thread location, location distribution and thread moving operations; – it preserves both data and communication structures of mobile systems. Specification language for specifying security policies of mobile code: – information flow; – access control policies; Integrated model checking framework to support exhaustive analysis of security policies; Location-specific abstractions enable the efficient verification of large mobile code applications. Automated Verification of Security Policies in Mobile Code – p. 25/25