GSC-8022 SOURCE:TSACC TITLE:Formal Methods for Quality of Standards, Conformity Assessment and Security AGENDA ITEM:GTSC-1 8.1 Formal Methods for Quality.

Slides:



Advertisements
Similar presentations
C++ Introduction.
Advertisements

A System to Generate Test Data and Symbolically Execute Programs Lori A. Clarke September 1976.
Software & Services Group, Developer Products Division Copyright© 2010, Intel Corporation. All rights reserved. *Other brands and names are the property.
IT253: Computer Organization Lecture 6: Assembly Language and MIPS: Programming Tonga Institute of Higher Education.
 2005 Pearson Education, Inc. All rights reserved Introduction.
Tam Vu Remote Procedure Call CISC 879 – Spring 03 Tam Vu March 06, 03.
CS 355 – Programming Languages
Testing Without Executing the Code Pavlina Koleva Junior QA Engineer WinCore Telerik QA Academy Telerik QA Academy.
 Firewalls and Application Level Gateways (ALGs)  Usually configured to protect from at least two types of attack ▪ Control sites which local users.
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 24 Network Management: SNMP.
1 Static Testing: defect prevention SIM objectives Able to list various type of structured group examinations (manual checking) Able to statically.
1 ICS103 Programming in C Lecture 3: Introduction to C (2)
Chapter3: Language Translation issues
Three types of computer languages
CS 330 Programming Languages 09 / 18 / 2007 Instructor: Michael Eckmann.
1 Achieving Trusted Systems by Providing Security and Reliability (Research Project #22) Project Members: Ravishankar K. Iyer, Zbigniew Kalbarczyk, Jun.
EE 4272Spring, 2003 EE4272: Computer Networks Instructor: Tricia Chigan Dept.: Elec. & Comp. Eng. Spring, 2003.
Achieving Trusted Systems by Providing Security and Reliability Ravishankar K. Iyer, Zbigniew Kalbarczyk, Jun Xu, Shuo Chen, Nithin Nakka and Karthik Pattabiraman.
Systems Engineering Project: System Validation and Verification Using SDL Ron Henry ENSE 623 November 30, 2004.
Testing a program Remove syntax and link errors: Look at compiler comments where errors occurred and check program around these lines Run time errors:
Moving To Code 3 More on the Problem-Solving Process §The final step in the problem-solving process is to evaluate and modify (if necessary) the program.
Chapter 18 I/O in C. Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display Standard C Library I/O commands.
SNMP: Simple Network Management Protocol
University of Washington CSE 351 : The Hardware/Software Interface Section 5 Structs as parameters, buffer overflows, and lab 3.
Programming Variables. Named area in the computer memory, intended to contain values of a certain kind (integers, real numbers, characters etc.) They.
CS102 Introduction to Computer Programming
INTRODUCTION TO WEB DATABASE PROGRAMMING
Presentation on Osi & TCP/IP MODEL
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 1 Chapter 1 Introduction to Computer Science.
System and Software Engineering Research 1 Motorola Copyright 2001 A Perspective on Harmonisation: Benefits and Barriers Clive Jervis Rapporteur Q15 Motorola.
Internet Concept and Terminology. The Internet The Internet is the largest computer system in the world. The Internet is often called the Net, the Information.
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.
Web Services Glossary Summary of Holger Lausen
Internet Addresses. Universal Identifiers Universal Communication Service - Communication system which allows any host to communicate with any other host.
Computer Security and Penetration Testing
OSI and TCP/IP Models And Some Vulnerabilities AfNOG th May 2011 – 10 th June 2011 Tanzania By Marcus K. G. Adomey.
International Telecommunication Union Geneva, 9(pm)-10 February 2009 Providing testability for ITU Recommendations Ostap Monkewich, OMCI ITU-T Workshop.
Chapter 2. C++ Program Structure C++ program is a collection of subprograms Subprograms in C++ are called FUNCTIONS Each function performs a specific.
Constants Numeric Constants Integer Constants Floating Point Constants Character Constants Expressions Arithmetic Operators Assignment Operators Relational.
DoS Suite and Raw Socket Programming Group 16 Thomas Losier Paul Obame Group 16 Thomas Losier Paul Obame.
CSCE 548 Integer Overflows Format String Problem.
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 19 Domain Name System (DNS)
What is exactly Exploit writing?  Writing a piece of code which is capable of exploit the vulnerability in the target software.
1 Formal Methods Demo Session Initiation Protocol (SIP) Vulnerability Testing.
Chapter 10 Instruction Sets: Characteristics and Functions Felipe Navarro Luis Gomez Collin Brown.
CS562 Advanced Java and Internet Application Introduction to the Computer Warehouse Web Application. Java Server Pages (JSP) Technology. By Team Alpha.
Communication Architecture and Network Protocol Layering Networks and Protocols Prepared by: TGK First Prepared on: Last Modified on: Quality checked by:
Slides by Kent Seamons and Tim van der Horst Last Updated: Nov 11, 2011.
Chapter – 8 Software Tools.
Announcements You will receive your scores back for Assignment 2 this week. You will have an opportunity to correct your code and resubmit it for partial.
Abstraction, Privacy, and the Internet. What is Abstraction? “The act of withdrawing or removing something” “The act or process of leaving out of consideration.
Chapter 10 Chapter 10 Implementing Subprograms. Implementing Subprograms  The subprogram call and return operations are together called subprogram linkage.
C Programming Day 2. 2 Copyright © 2005, Infosys Technologies Ltd ER/CORP/CRS/LA07/003 Version No. 1.0 Union –mechanism to create user defined data types.
TCP/IP Protocol Suite Suresh Kr Sharma 1 The OSI Model and the TCP/IP Protocol Suite Established in 1947, the International Standards Organization (ISO)
INTRODUCTION TO PROGRAMING System Development Mansoura October 2015.
Networks Standardisation & Protocols. Learning Objectives Explain the advantages of standardisation and describe some areas of standardisation such as.
Web fundamentals: Clients, Servers, and Communication
Computer Networks.
Vocabulary Prototype: A preliminary sketch of an idea or model for something new. It’s the original drawing from which something real might be built or.
Revision Lecture
ICS103 Programming in C Lecture 3: Introduction to C (2)
Vocabulary Prototype: A preliminary sketch of an idea or model for something new. It’s the original drawing from which something real might be built or.
High Coverage Detection of Input-Related Security Faults
Introduction to C++ Programming
Format String.
Understanding and Preventing Buffer Overflow Attacks in Unix
FIGURE Illustration of Stack Buffer Overflow
CHAPTER 6 Testing and Debugging.
Exceptions and networking
Presentation transcript:

GSC-8022 SOURCE:TSACC TITLE:Formal Methods for Quality of Standards, Conformity Assessment and Security AGENDA ITEM:GTSC Formal Methods for Quality of Standards, Conformity Assessment and Security O. Monkewich, Ph.D., P.Eng. OMC International Phone: Fax:

17 October 2015GSC-8, OTTAWASlide 2 Formal Methods and Security Error-free, unambiguous standards specified using SDL, MSC, ASN.1 and TTCN with formal syntax and semantics Tools based on formal syntax and semantics are certifiable as trusted tools by accredited organizations Machine-generated, tool-specific source code is difficult to understand or modify by attackers Source descriptions in SDL are easy to review by non- programmers – benefit from “many eyes” reviews Conformity assessment can find malicious content and vulnerabilities – test suites can be widely available Manual work offloaded to trusted tools.

17 October 2015GSC-8, OTTAWASlide 3 Understandability of open source code Figure 1 – (a) Illustrates an SDL process which adds two numbers, a and b, and return their sum. (b) is the corresponding hand-written code in the C programming language. The examples illustrate language readability characteristics from the point of view of the non-programmer. #include void main() { int x, y, sum; int calc(int, int); puts("\nPlease enter two integers:\n"); scanf("%d", &x); scanf("%d", &y); sum = calc(x,y); printf("\nThe sum of the two numbers you entered is: %d", sum); } int calc(m,n) int m, n; { int s; s = m + n; return (s); } number1, number2 DCL a,b,sum Integer; WaitForNumber1 number1(a) WaitForNumber2 number2(b) sum := CALL Add(a, b) result(sum) sum Add sum := a + b sum (a)(b)

17 October 2015GSC-8, OTTAWASlide 4 A common vulnerability can be detected with conformance testing (a) ANY WEB SITE VICTIMATTACKER SYN/ACK RESET SYN Figure 2 – A common attack method using TCP/IP SYN packets to transfer a covert program one ASCII character at a time. Figure 2 (a) shows how packets can be bounced off any Web site to make detection of the attacker more difficult; Figure 2 (b) represents the TCP packet format showing the Sequence Number field. (b)

17 October 2015GSC-8, OTTAWASlide 5 TCP Packet Sequence Number Conformance Test in TTCN Figure 3 - a test case in TTCN derived from SDL to test the value of the Sequence Number field in the TCP SYN packet.

17 October 2015GSC-8, OTTAWASlide 6 TCP Packet in ASN.1 and Constraint Figure 4 - ASN.1 representation of the TCP packet named TCP_SYN and the corresponding TCP_SYN1 with the field values filled in.

17 October 2015GSC-8, OTTAWASlide 7 Buffer Overflow Figure 5 – The normal program memory stack with two buffers intended to accept user input, such as credit card number, can be overwritten with attacker’s code. For attacker’s code to work, the attacker must know and understand the victim’s code. This is difficult for the attacker to achieve due to the nature of machine-generated code and the need for special tools to change the code. Formalisms that define language syntax and semantics makes it possible to prove the correctness of the language typing rules so that no data can flow into places not capable of holding it. Buffer 2 Buffer 1 Return Pointer Buffer 2 Attacker’s Machine Code New Return Pointer Fill Direction Memory Pointer (a)(b)

17 October 2015GSC-8, OTTAWASlide 8 ASN.1 code portability and Trusted Tools What is placed on the wire to transmit “John Smith”? Inside the protocol, define the variable type “Name” in ASN.1: Name := SEQUENCE { FirstName PrintableString, LastName PritnableString } Assign values to the variables FirstName and LastName: FirstName := ‘John’ LastName := ‘Smith’ The variable “Name” encoded as BER sequence in Hex: … … J o … S m Converted into a binary stream of zeros and ones: (Seq_Class) (No_Bytes) (Printable_Str) (No_bytes) (John) (Printable_Str) (No_bytes) (Smith) A 6F 68 6E D Figure 6 – Using ASN.1 and Basic Encoding Rules (BER) to encode “John Smith” for transmission. This is done using trusted tools – no errors due to manual coding.

17 October 2015GSC-8, OTTAWASlide 9 RFC Data Format This non-standard data format is dominant in the Internet literature today. It is changed in arbitrary ways by authors, usually to fit the page. This format cannot be compiled or validated. ASN.1 can be compiled and validated. Figure 7 – The tabular form of specifying packet structure and content is dominant in the literature today, but, machines cannot understand it.

17 October 2015GSC-8, OTTAWASlide 10 Conclusions Several aspects of network security can be improved through the use of –Higher quality protocol and test suite Recommendations specified in SDL, ASN.1, MSC and TTCN –Trusted tools based on SDL, ASN.1, MSC and TTCN for specification, validation, code generation and testing –Machine-generated code is error-free and difficult to modify by intruder –Conformance tests traceable to specification can detect malicious code

17 October 2015GSC-8, OTTAWASlide 11 Resolution That ITU-T Study Groups will apply Recommendation A.3 Supplement 1, Guidelines on the Quality Aspects of Protocol Related Recommendations, when developing new protocol related recommendations That ITU-T TSB will provide technical support and tools for the development and maintenance of complex Recommendations That companies that participate in GSC member organizations will make use of commercial tools based on formal methods in their reviews of draft Recommendations That companies that participate in GSC member organizations will promote the use of formal languages and tools in IETF