Udaya Shyama Pallathadka Ganapathi Bhat CSCE 548 Student Presentation

Slides:



Advertisements
Similar presentations
Slides by Kent Seamons and Tim van der Horst Last Updated: Nov 11, 2011.
Advertisements

CMSC 414 Computer and Network Security Lecture 24 Jonathan Katz.
By Brian Vees.  SQL Injection  Username Enumeration  Cross Site Scripting (XSS)  Remote Code Execution  String Formatting Vulnerabilities.
Team BAM! Scott Amack, Everett Bloch, Maxine Major 1.
Chapter 18 I/O in C. Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display Standard C Library I/O commands.
Secure Software Development Chris Herrick 01/29/2007.
CMPE13 Cyrus Bazeghi Chapter 18 I/O in C. CMPE Standard C Library I/O commands are not included as part of the C language. Instead, they are part.
A Security Review Process for Existing Software Applications
CSCE 548 Secure Software Development Test 1 Review.
May 2, 2007St. Cloud State University Software Security.
August 1, The Software Security Problem August 1, 2006.
Exploitation: Buffer Overflow, SQL injection, Adobe files Source:
Chapter 6 Buffer Overflow. Buffer Overflow occurs when the program overwrites data outside the bounds of allocated memory It was one of the first exploited.
Computer Security and Penetration Testing
Brian E. Brzezicki. This tutorial just illustrates the underlying concepts of buffer overflows by way of an extremely simple stack overflow  Most buffer.
Top Five Web Application Vulnerabilities Vebjørn Moen Selmersenteret/NoWires.org Norsk Kryptoseminar Trondheim
OWASP Top Ten #1 Unvalidated Input. Agenda What is the OWASP Top 10? Where can I find it? What is Unvalidated Input? What environments are effected? How.
Chapter 18 I/O in C.
Security Attacks CS 795. Buffer Overflow Problem Buffer overflows can be triggered by inputs that are designed to execute code, or alter the way the program.
1 C Programming Week 2 Variables, flow control and the Debugger.
Overflow Examples 01/13/2012. ACKNOWLEDGEMENTS These slides where compiled from the Malware and Software Vulnerabilities class taught by Dr Cliff Zou.
CSCE 548 Integer Overflows Format String Problem.
A Tool for Pro-active Defense Against the Buffer Overrun Attack D. Bruschi, E. Rosti, R. Banfi Presented By: Warshavsky Alex.
Sairajiv Burugapalli. This chapter covers three main categories of classic software vulnerability: Buffer overflows Integer vulnerabilities Format string.
Security Attacks Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
Announcements Assignment 1 due Wednesday at 11:59PM Quiz 1 on Thursday 1.
CS 1704 Introduction to Data Structures and Software Engineering.
Defensive Programming. Good programming practices that protect you from your own programming mistakes, as well as those of others – Assertions – Parameter.
Programming Language Basics. What is a Programming Language? “A computer, human-created language used to write instructions for a computer.” “An artificial.
Srinivas Balivada USC CSCE548 07/22/2016.  Cookies are generally set server-side using the ‘Set-Cookie’ HTTP header and sent to the client  In PHP to.
USABILITY Ben Aaron.
Classic Buffer OVERFLOW ATTACKS CSCE 548 Student Presentation Mouiad Al Wahah.
CSC 482/582: Computer Security
A CSCE 548 presentation: Trusting Network Name Resolution
C++ Catastrophes “if C allows you to shoot yourself in the foot, then C++ is giving you a machine gun!” James Prince.
Sabrina Wilkes-Morris CSCE 548 Student Presentation
XSS (Client-side) CSCE 548 Building Secure Software(07/20/2016)
CSCE Student presentation LARRY PARKER
CSCE 548 Secure Software Development Risk-Based Security Testing
Formatted Input and Output
Execution with Unnecessary Privileges
CSC 495/583 Topics of Software Security Stack Overflows
K. K. Mookhey Network Intelligence India Pvt. Ltd.
Chapter 7 Text Input/Output Objectives
Chapter 7 Text Input/Output Objectives
Module 30 (Unix/Linux Security Issues II)
Logger, Assert and Invariants
Theodore Lawson CSCE548 Student Presentation, Topic #2
Failure to protect stored data
Chapter 7 Text Input/Output Objectives
C Language By Sra Sontisirikit
CSCE 548 Secure Software Development Final Exam – Review 2016
Chapter 18 I/O in C.
A Security Review Process for Existing Software Applications
Cross Sight scripting: Type-2
Recitation: C Review TA’s 19 Feb 2018.
Administrative things
Software Security Lesson Introduction
Format String.
Chapter 5 Handling Input.
Bugs & Debugging - Testing
Programming Language Basics
Buffer Overflows.
Introduction to C Programming
CS5123 Software Validation and Quality Assurance
Understanding and Preventing Buffer Overflow Attacks in Unix
EECE.2160 ECE Application Programming
Format String Vulnerability
Return-to-libc Attacks
Defensive Programming
Presentation transcript:

Udaya Shyama Pallathadka Ganapathi Bhat CSCE 548 Student Presentation Format string problems 24 Deadly sins of software security Michael howard david leblanc john viega Udaya Shyama Pallathadka Ganapathi Bhat CSCE 548 Student Presentation

Technical Overview What is Format String? 1 It consists of Format Function like printf, scanf Format String Parameter like %x, %s Format String would be like printf(“The magic number is: %d\n”,1911); Format String exploit happens when input is evaluated as a command by the application

Technical Overview What is the root cause for Format String Bugs? Who is responsible for it? Which are the most vulnerable coding languages? What could be the result of exploitation? Stickman Logo: https://www.flickr.com/photos/89763795@N02/8243547987/in/photostream/

Technical Overview Any application that takes input from user and passes it to formatting function is potentially at risk 2 Common mistakes that developer commits which leads to this Sin: Failing to properly validate user input Giving the user, freedom to provide format strings as input Failing to protect files using proper ACLs

Examples(Demo) Viewing the Stack Crashing the program (DoS Attack) Viewing the memory at any location Writing data to any arbitrary memory location Note: A live demonstration with respect to the above attacks will be shown during the Presentation on a Command Prompt with C compiler 3 https://youtu.be/AeEqGzkdjdc

Examples(Demo) Source: [2]

Spotting the sin 2 If an application takes user input and passes it to a formatting function then it is potentially at risk Understand the importance of Code Review to Spot the Sin Pass format specifiers into application and see if hexadecimal values are returned Check for variable length of format strings

Redemption steps 2 Never pass user input directly to a formatting function Do use fixed string formats or format string from a trusted source Do heed the warnings and errors that you receive upon compiling the code

Redemption steps 2 Check and limit locale to valid values Don’t use printf family of functions, if possible avoid it Consider using higher-level languages that tend to be less vulnerable to this issue

CONCLUSION It’s an implementation bug Easy to Find Code review is the way to spot this Sin Don’t allow user input directly to formatting functions Always validate and filter the input

References OWASP: Format String Attack. https://www.owasp.org/index.php/Format_string_attack, Last Revisited 04/16/2015 Howard, Michael, David LeBlanc, and John Viega. 24 Deadly Sins of Software Security: Programming Flaws and How to Fix Them. New York: McGraw-Hill, 2010. Print. Security Tube_Bot, Format String Vulnerabilities Megaprimer http://www.securitytube.net/groups?operation=view&groupId=3  A video series to understand the basics of Format String Vulnerabilities and how to exploit them