Identification of Covert Channels inside Linux Kernel Based on Source Code.

Slides:



Advertisements
Similar presentations
Symbol Table.
Advertisements

Intermediate Code Generation
Chapter 23 Database Security and Authorization Copyright © 2004 Pearson Education, Inc.
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Describing Process Specifications and Structured Decisions Systems Analysis and Design, 7e Kendall & Kendall 9 © 2008 Pearson Prentice Hall.
CSE 425: Semantic Analysis Semantic Analysis Allows rigorous specification of a program’s meaning –Lets (parts of) programming languages be proven correct.
Automated creation of verification models for C-programs Yury Yusupov Saint-Petersburg State Polytechnic University The Second Spring Young Researchers.
Database Management System
1 Static Testing: defect prevention SIM objectives Able to list various type of structured group examinations (manual checking) Able to statically.
Honors Compilers Semantic Analysis and Attribute Grammars Mar 5th 2002.
Chapter 6: User-Defined Functions I
Tutorial 6 & 7 Symbol Table
Semantic analysis Enforce context-dependent language rules that are not reflected in the BNF, e.g.a function must have a return statement. Decorate AST.
Verifiable Security Goals
1 Building with Assurance CSSE 490 Computer Security Mark Ardis, Rose-Hulman Institute May 10, 2004.
C++ Programming: From Problem Analysis to Program Design, Second Edition Chapter 6: User-Defined Functions I.
Semantic analysis Enforce context-dependent language rules that are not reflected in the BNF, e.g.a function must have a return statement. Decorate AST.
Chapter 2 Access Control Fundamentals. Chapter Overview Protection Systems Mandatory Protection Systems Reference Monitors Definition of a Secure Operating.
Chapter 6: User-Defined Functions I
Lecture 7 Access Control
By : Nimish Agarwal.  … are those which are neither designed nor intended to transfer information at all.  … are based on "transmission by storage into.
Abstract Interpretation (Cousot, Cousot 1977) also known as Data-Flow Analysis.
AICT5 – eProject Project Planning for ICT. Process Centre receives Scenario Group Work Scenario on website in October Assessment Window Individual Work.
Chapter 6: User-Defined Functions I Instructor: Mohammad Mojaddam
C++ Code Analysis: an Open Architecture for the Verification of Coding Rules Paolo Tonella ITC-irst, Centro per la Ricerca Scientifica e Tecnologica
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
Software Engineering Research Group, Graduate School of Engineering Science, Osaka University Analysis and Implementation Method of Program to Detect Inappropriate.
Session 2 - Security Models and Architecture. 2 Overview Basic concepts The Models –Bell-LaPadula (BLP) –Biba –Clark-Wilson –Chinese Wall Systems Evaluation.
Foundations of Software Testing Chapter 5: Test Selection, Minimization, and Prioritization for Regression Testing Last update: September 3, 2007 These.
Describing Process Specifications and Structured Decisions Systems Analysis and Design, 7e Kendall & Kendall 9 © 2008 Pearson Prentice Hall.
Lesson 3 McManus COP  You have to tell them ◦ what to do ◦ what to use ◦ in what order to do itand ◦ what to do if your user does not do what.
RELATIONAL FAULT TOLERANT INTERFACE TO HETEROGENEOUS DISTRIBUTED DATABASES Prof. Osama Abulnaja Afraa Khalifah
Agenda Introduction Overview of White-box testing Basis path testing
Chapter 6: User-Defined Functions
Prepared By Ms.R.K.Dharme Head Computer Department.
Lattice-Based Access Control Models Ravi S. Sandhu Colorado State University CS 681 Spring 2005 John Tesch.
Chapter 5 Network Security
R Environment and Variable Lookup Apr R Environment and Variable Lookup Outline  R Environment and Variable Lookup  R Byte-Code Interpreter.
Comp 249 Programming Methodology Chapter 13 Interfaces & Inner Classes Dr. Aiman Hanna Department of Computer Science & Software Engineering Concordia.
CE Operating Systems Lecture 21 Operating Systems Protection with examples from Linux & Windows.
C++ Programming: From Problem Analysis to Program Design, Fourth Edition Chapter 6: User-Defined Functions I.
Mantid Stakeholder Review Nick Draper 01/11/2007.
C++ Programming: Program Design Including Data Structures, Fourth Edition Chapter 6: User-Defined Functions I.
COEN 350: Network Security Authorization. Fundamental Mechanisms: Access Matrix Subjects Objects (Subjects can be objects, too.) Access Rights Example:
A Lattice Model of Secure Information Flow By Dorothy E. Denning Presented by Drayton Benner March 22, 2000.
Functions Math library functions Function definition Function invocation Argument passing Scope of an variable Programming 1 DCT 1033.
Archictecture for MultiLevel Database Systems Jeevandeep Samanta.
Chapter 3: User-Defined Functions I
Computer Security: Principles and Practice
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
C++ Programming: From Problem Analysis to Program Design, Fourth Edition Chapter 6: User-Defined Functions I.
/ PSWLAB Evidence-Based Analysis and Inferring Preconditions for Bug Detection By D. Brand, M. Buss, V. C. Sreedhar published in ICSM 2007.
White Box Testing by : Andika Bayu H.
Overview of Compilation Prepared by Manuel E. Bermúdez, Ph.D. Associate Professor University of Florida Programming Language Principles Lecture 2.
Design and Implementation MAC in Security Operating System CAI Yi, ZHENG Zhi-rong, SHEN Chang-xiang Presented By, Venkateshwarlu Jangili. 1.
Foundations of Software Testing Chapter 5: Test Selection, Minimization, and Prioritization for Regression Testing Last update: September 3, 2007 These.
Access Controls Mandatory Access Control by Sean Dalton December 5 th 2008.
Information Security Principles and Practices by Mark Merkow and Jim Breithaupt Chapter 5: Security Architecture and Models.
Defects of UML Yang Yichuan. For the Presentation Something you know Instead of lots of new stuff. Cases Instead of Concepts. Methodology instead of the.
BIL 104E Introduction to Scientific and Engineering Computing Lecture 4.
Lecture 9 Symbol Table and Attributed Grammars
Software Project Configuration Management
Verifiable Security Goals
Chapter 6: User-Defined Functions I
User-Defined Functions
Official levels of Computer Security
2011/11/10: Lecture 21 CMSC 104, Section 4 Richard Chang
Problem Solving Skill Area 305.1
Chapter 6: User-Defined Functions I
Presentation transcript:

Identification of Covert Channels inside Linux Kernel Based on Source Code

Covert channel definition. Possible sources of CCA (Covert Channel Analysis). Methods of CCA in Source Code. Proposed tool to automate CCA on source code of Linux kernel. Conclusion. Agenda

Definition 1 - A communication channel is covert if it is neither designed nor intended to transfer information at all. Definition 2 - A communication channel is covert if it is based on transmission by storage into variables that describe resource states. Definition 3 - Covert channels are those that use entities not normally viewed as data objects to transfer information from one subject to another. Several Definitions of Covert Channels

Does not make it obvious that a covert channel is irrelevant in case of a discretionary security policy (Trojan Horses can anyway leak information via valid system calls). The previous definitions don’t acknowledge the fact that a covert channel is a result of a specific mandatory security policy being enforced and its implementation. Problem with previous definitions

a communication channel that allows a process to transfer information in a manner that violates the system's security policy. Given a nondiscretionary (e.g., mandatory) security policy model M and its interpretation I(M) in an operating system, any potential communication between two subjects I(S h ) and I(S i ) of I(M) is covert if and only if any communication between the corresponding subjects S h and S i of the model M is illegal in M. TCSEC Definition

The TCSEC is divided into four divisions: D, C, B, and A An important set of TCSEC requirements, which appears in classes B2 to A1,is that of covert channel analysis (CCA) TCSEC Definition Cont.

Identification of covert channels. Determination of covert channels' maximum attainable bandwidth. Handling covert channels using a well-defined policy consistent with the TCSEC objectives. Generation of assurance evidence to show that all channels are handled according to the policy in force. Objectives of CCA

System reference manuals. Top-level TCB specification. Source code. Means of Identifying Covert Channels

Syntactic Information Flow Analysis. Semantic Information Flow Analysis. Shared Resource Matrix Method. Covert Flow Tree Method. Methods of Identification in source code

Information Flow is associated with each statement. ex: a:=b  Information flows from b to a if b is not a constant. Define Flow Policies. Generate Flow Formulas for the entire TCB. Use theorem prover. Check if a flow is real or a false illegal flow. Syntactic Information Flow

Examine all flows visible through a TCB interface and separate the legal from the illegal ones. Separation of real channels from potential ones must still be done manually. Separation of potential channels from all the possible flows is labor intensive compared to the above. Semantic Information Flow

A matrix containing user visible TCB primitives as rows and read/altered variables which represent attribute of a shared resource as columns is created. Each entry is marked R or M based on whether the variable is read or modified. Calculate the transitive closure and update the matrix. Shared Resource Matrix

Prototype Design

Traverse and scan all source code files. Extract function names and global variables. Global variables of simple types and complex types should be accounted for appropriately. Generate a list of segmented token of the format. Module of syntax analysis

Further code analysis based on Information flow rules. Readability and Modifiability of shared variables is analyzed. If a variable y modifies a variable x then y  x. If a variable x is read inside a function Fx then x  Fx. Module of constructing Info Flow Tree

If a variable x is modified from inside of a function Fx then Fx  x. Compound statements(CSx), Statements(Sx) and Expressions(Ex) are considered separately. Null statements, type declaration statements, goto satements, labelled statements and cont/break are ignored. Info Flow Tree Contd.

RIFA for Variable Declaration Statements

RIFA for if statements

RIFA for Function Definitions

struct mm_struct * mm_alloc(void) { struct mm_struct * mm; mm = allocate_mm(); if (mm) { memset(mm, 0, sizeof(*mm)); return mm_init(mm); } return NULL; } Sample Code From Linux kernel

Information Flow Trees are created using the above defined RIFA. Four types of nodes namely functions, statements, expressions and variables. Info Flow tree created as a binary tree. Info Flow Tree Creation

Information Flow tree is transformed into a graph such that information flows exist across each edge. Shared resource matrix and its transitive closure is calculated from the preprocessed information. The values in the matrix cells are taken as 1,2,3,0. Generate Info Flow Graph and Shared Resource Matrix

This tool was used to discover some real covert channels that existed in Linux kernel Only entry functions to system calls need be examined. All the.h files should be analyzed before the.c files. An automated tool need to be developed to create application scenarios to identify real covert channel from the potential ones. Conclusion

Virgil D. Gligor (1993). A Guide to understanding Covert Channel Analysis of Trusted Systems. Technical Report NCSC-TG-030, National Computer Security Centre. Gaoshou Zhai, Yufeng Zhang, Chengyu Liu, Na Yang, MinLi Tian, Hengsheng Yang. Automatic Identification of Covert Channels inside Linux Kernel Based on Source Codes. Dorothy E. Denning A Lattice Model of Secure Information Flow. Communications of the ACM 19, 5 (May 1976), C.R. Tsai, V.D. Gligor, C. S Chandersekaran A Formal Method for the Identification of Covert Storage Channels in Source Code. lEEE Transactions on Software Engineering 16, 6 (June 1990), Richard A. Kemmerer Shared Resource Matrix Methodology: An Approach to Identifying Storage and Timing Channels. ACM Transactions on Computer Systems 1, 3 (August 1983), Bibliography