Common Errors in C/C++ Code and Static Analysis
|
|
|
- Nathaniel Phelps
- 10 years ago
- Views:
Transcription
1 Common Errors in C/C++ Code and Static Analysis Red Hat Ondřej Vašík and Kamil Dudka Abstract Overview of common programming mistakes in the C/C++ code, and comparison of a few available static analysis tools that can detect them.
2 Agenda 1 Static Analysis What Does It Mean? 2 Common Code Weaknesses in C/C++ Programs 3 Available Tools for Static Analysis 4 Beyond Static Analysis
3 Static Analysis What Does It Mean? Static Analysis generic definition: analysis of code without executing it various kinds of tools generic + specialized already done by the compiler (optimization, warnings,... ) we are interested in using static analysis to find bugs
4 Static Analysis What Does It Mean? Static Analysis Finding Bugs usually requires code that we are able to compile usually fast (time of analysis close to time of compilation) high level of automation can t cover all bugs in code problem with false positives any code change = risk of regressions
5 Static Analysis What Does It Mean? Static Analysis Techniques error patterns missing break, stray semicolon,... enhanced type checking may use attributes, such as attribute ((address space(num))) in sparse data-flow analysis solving of data flow equations, usually works at the CFG level abstract interpretation evaluates a program for all possible inputs at once over an abstract domain
6 Agenda 1 Static Analysis What Does It Mean? 2 Common Code Weaknesses in C/C++ Programs 3 Available Tools for Static Analysis 4 Beyond Static Analysis
7 Common Code Weaknesses in C/C++ Programs Common Code Weaknesses in C/C++ Programs CWE from MITRE (Common Weakness Enumeration) ( static analysis is especially good for: boundary checks resource leak checks memory safety checks dead code checks uninitialized/unused variables checks race conditions / synchronization checks various coded by humans issues
8 Common Code Weaknesses in C/C++ Programs Boundary Problems static/dynamic buffer overflows/underflows (CWE-125, CWE-120, CWE-170, CWE-124) types incompatibilities (signed/unsigned) (CWE-194) signedness overflow issue that caused segfault with multivolumes in star: diff -urnp star orig/star/buffer.c star-1.5.1/star/buffer.c --- star orig/star/buffer.c +++ star-1.5.1/star/buffer.c -799,7 +799,7 initbuf(nblocks) bigptr = bigbuf = malloc((size t) bufsize+10+pagesize, "buffer"); - bigptr = bigbuf = (char *)roundup((intptr t)bigptr, pagesize); + bigptr = bigbuf = (char *)roundup((uintptr t)bigptr, pagesize); fillbytes(bigbuf, bufsize, \0 ); fillbytes(&bigbuf[bufsize], 10, U );
9 Common Code Weaknesses in C/C++ Programs Resource Leaks memory leaks (CWE-404) descriptor leaks (CWE-404) recent util-linux resource leak fix in libmount/src/utils.c -427,6 +427,7 static int get filesystems(const char *filename, char ***filesystems, const char *pattern) { + int rc = 0; FILE *f; char -436,7 while (fgets(line, sizeof(line), f)) { char name[sizeof(line)]; - int rc; if (*line == # strncmp(line, "nodev", 5) == 0) -446,9 rc = add filesystem(filesystems, name); if (rc) - return rc; + break; } - return 0; + fclose(f); + return rc; }
10 Common Code Weaknesses in C/C++ Programs Memory Safety dereference null (CWE-476), use after free (CWE-416) double free (CWE-415), bad free (CWE-590) dual doublefree due to missing exit in policycoreutils(sepolgen-ifgen-attr-helper.c): -212,6 +213,7 int main(int argc, char **argv) /* Open the output policy. */ fp = fopen(argv[2], "w"); if (fp == NULL) { fprintf(stderr, "error opening output file\n"); policydb destroy(p); free(p); + return -1; }... policydb destroy(p); free(p); fclose(fp);
11 Common Code Weaknesses in C/C++ Programs Dead Code Checking unnecessary code (CWE-561) wrong error check (CWE-252, CWE-665, CWE-569) Uninitialized/Unused Variables unnecessary variable handling (CWE-563) using unitialized variable (CWE-457, CWE-456)
12 Common Code Weaknesses in C/C++ Programs Race Conditions / Synchronization Checks TOCTOU (time of check / time of use) (CWE-367) unsynchronized access to shared data in multithread apps (CWE-362) issues with locks (CWE-362) potential deadlock in kernel on fail path ( ) diff --git a/drivers/net/bna/bnad.c -2706,7 bnad set rx mode(struct net device *netdev) kzalloc((mc count + 1) * ETH ALEN, GFP ATOMIC); if (!mcaddr list) - return; + goto unlock; memcpy(&mcaddr list[0], &bnad bcast addr[0], ETH -2719,6 bnad set rx mode(struct net device *netdev) /* Should we enable BNAD CF ALLMULTI for err!= 0? */ kfree(mcaddr list); } +unlock: spin unlock irqrestore(&bnad->bna lock, flags); }
13 Common Code Weaknesses in C/C++ Programs Various coded by humans Issues various cut&paste issues, missing breaks (CWE-484) priority of operators issues(cwe-569) stray semicolon after if (CWE-398) missing asterisks in pointer operations (CWE-476) diff --git a/lib/rtsp.c b/lib/rtsp.c --- a/lib/rtsp.c +++ b/lib/rtsp.c -709,7 +709,7 while(*start && ISSPACE(*start)) start++; - if(!start) { + if(!*start) { failf(data, "Got a blank Session ID"); } else if(data->set.str[string RTSP SESSION ID]) {
14 Common Code Weaknesses in C/C++ Programs Defensive Programming not really static analysis technique, but good habbit use compiler protection mechanisms D FORTIFY SOURCE=2 stack-protector, PIE/PIC, RELRO, ExecShield don t ignore warnings (-Wall -Wextra) never trust anyone, never expect anything memory boundaries check return codes/error codes use descriptors respect uid/gids, don t over escalate privileges
15 Agenda 1 Static Analysis What Does It Mean? 2 Common Code Weaknesses in C/C++ Programs 3 Available Tools for Static Analysis 4 Beyond Static Analysis
16 Available Tools for Static Analysis Available Tools for Static Analysis GCC compile cleanly at high warning levels GCC plug-ins suitable for projects natively compiled by GCC Clang Static Analyzer uses LLVM Compiler Infrastructure sparse developed and used by kernel maintainers (C only) cppcheck easy to use, low rate of false positives commercial tools for static analysis (Coverity,... ) research tools for static analysis (frama-c,... ) some tools are not yet ready for industrial software (uno, splint,... )
17 Available Tools for Static Analysis GCC Plug-ins gcc source file preprocessor parser optimizer binary code generator object file plug-in as easy to use as adding a flag to CFLAGS no parsing errors, no unrecognized compilation flags one intermediate code used for both analysis and building repoquery --repoid=rawhide-source --arch=src --whatrequires gcc-plugin-devel gcc-python-plugin allows to write GCC plug-ins in python DragonEgg allows to use LLVM as a GCC backend
18 Available Tools for Static Analysis Clang Static Analyzer based on LLVM Compiler Infrastructure code needs to compile with LLVM for an autoconf-based project, you can hook clang this way: 1 scan-build./configure... 2 scan-build make 3 scan-view... the steps above may fail on projects using some obscure build systems (e.g. ksh is known to cause problems)
19 Available Tools for Static Analysis sparse supports only C, not fully compatible with GCC able to analyze the whole Linux kernel provides a GCC wrapper called cgcc (make CC=cgcc) provides a library to build custom analyzers sparse-llvm an LLVM front-end (still under development)
20 Available Tools for Static Analysis cppcheck uses its own parser and preprocessor reports only erorrs by default can be run directly on the sources (not always optimal) using the options -D and -I may help significantly --template gcc makes the output compatible with GCC -jn allows to run cppcheck in parallel [TODO: demo libedit]
21 Available Tools for Static Analysis Coverity enterprise tool, not freely available often used to analyze free software combination of all above mentioned static analysis techniques modular, various checkers advanced statistical methods for elimination of false positives
22 Available Tools for Static Analysis Coverity How Do We Use It in Red Hat? scans of minor RHEL updates = prevent new defects introduced by backports and new features scans selected package set from Fedora Rawhide = packages with potential for next RHEL, working with upstream, to improve overall source code quality packages, 150M LoC, 170k pot. defects, 90% scan success rate util-linux ( 70 bugs), ksh ( 50 bugs), e2fsprogs ( 40 bugs) and many other cleanups upstream based on scans scans of upstream projects developed by Red Hat = keeping upstream code quality at high level
23 Agenda 1 Static Analysis What Does It Mean? 2 Common Code Weaknesses in C/C++ Programs 3 Available Tools for Static Analysis 4 Beyond Static Analysis
24 Beyond Static Analysis Beyond Static Analysis static analysis is a good bug-hunting technique, but what about false negatives? some properties are hard to check using static analysis only absence of memory leaks error label reachability program termination software verification methods can guarantee zero false negatives for checking the properties above
25 Beyond Static Analysis Conclusion there is a lot of ready to use static analysis tools out there it is important not to rely on a single static analysis tool many of them are open source projects currently, the key problem of static analysis tools are false positives, which need to be filtered out manually
Fully Automated Static Analysis of Fedora Packages
Fully Automated Static Analysis of Fedora Packages Red Hat Kamil Dudka August 9th, 2014 Abstract There are static analysis tools (such as Clang or Cppcheck) that are able to find bugs in Fedora packages
Applying Clang Static Analyzer to Linux Kernel
Applying Clang Static Analyzer to Linux Kernel 2012/6/7 FUJITSU COMPUTER TECHNOLOGIES LIMITED Hiroo MATSUMOTO 管 理 番 号 1154ka1 Copyright 2012 FUJITSU COMPUTER TECHNOLOGIES LIMITED Abstract Now there are
8.5. <summary>...26 9. Cppcheck addons...27 9.1. Using Cppcheck addons...27 9.1.1. Where to find some Cppcheck addons...27 9.2.
Cppcheck 1.72 Cppcheck 1.72 Table of Contents 1. Introduction...1 2. Getting started...2 2.1. First test...2 2.2. Checking all files in a folder...2 2.3. Excluding a file or folder from checking...2 2.4.
Leak Check Version 2.1 for Linux TM
Leak Check Version 2.1 for Linux TM User s Guide Including Leak Analyzer For x86 Servers Document Number DLC20-L-021-1 Copyright 2003-2009 Dynamic Memory Solutions LLC www.dynamic-memory.com Notices Information
X05. An Overview of Source Code Scanning Tools. Loulwa Salem. Las Vegas, NV. IBM Corporation 2006. IBM System p, AIX 5L & Linux Technical University
X05 An Overview of Source Code Scanning Tools Loulwa Salem Las Vegas, NV Objectives This session will introduce better coding practices and tools available to aid developers in producing more secure code.
Source Code Review Using Static Analysis Tools
Source Code Review Using Static Analysis Tools July-August 05 Author: Stavros Moiras Supervisor(s): Stefan Lüders Aimilios Tsouvelekakis CERN openlab Summer Student Report 05 Abstract Many teams at CERN,
CSC230 Getting Starting in C. Tyler Bletsch
CSC230 Getting Starting in C Tyler Bletsch What is C? The language of UNIX Procedural language (no classes) Low-level access to memory Easy to map to machine language Not much run-time stuff needed Surprisingly
Secure Programming with Static Analysis. Jacob West [email protected]
Secure Programming with Static Analysis Jacob West [email protected] Software Systems that are Ubiquitous Connected Dependable Complexity U Unforeseen Consequences Software Security Today The line between
A Test Suite for Basic CWE Effectiveness. Paul E. Black. [email protected]. http://samate.nist.gov/
A Test Suite for Basic CWE Effectiveness Paul E. Black [email protected] http://samate.nist.gov/ Static Analysis Tool Exposition (SATE V) News l We choose test cases by end of May l Tool output uploaded
How I Learned to Stop Fuzzing and Find More Bugs
How I Learned to Stop Fuzzing and Find More Bugs Jacob West Fortify Software August 3-5, 2007 Las Vegas Agenda Introduction to fuzzing What is fuzzing? Challenges with fuzzing Introduction to static analysis
Detecting Critical Defects on the Developer s Desktop
Detecting Critical Defects on the Developer s Desktop Seth Hallem CEO Coverity, Inc. Copyright Coverity, Inc. 2006. All Rights Reserved. This publication, in whole or in part, may not be reproduced, stored
SQLITE C/C++ TUTORIAL
http://www.tutorialspoint.com/sqlite/sqlite_c_cpp.htm SQLITE C/C++ TUTORIAL Copyright tutorialspoint.com Installation Before we start using SQLite in our C/C++ programs, we need to make sure that we have
How to Write a Checker in 24 Hours
How to Write a Checker in 24 Hours Clang Static Analyzer Anna Zaks and Jordan Rose Apple Inc. What is this talk about? The Clang Static Analyzer is a bug finding tool It can be extended with custom checkers
Software security assessment based on static analysis
Software security assessment based on static analysis Christèle Faure Séminaire SSI et méthodes formelles Réalisé dans le projet Baccarat cofinancé par l union européenne Context > 200 static tools for
Virtuozzo Virtualization SDK
Virtuozzo Virtualization SDK Programmer's Guide February 18, 2016 Copyright 1999-2016 Parallels IP Holdings GmbH and its affiliates. All rights reserved. Parallels IP Holdings GmbH Vordergasse 59 8200
Chapter 15 Operating System Security
Operating Systems: Internals and Design Principles Chapter 15 Operating System Security Eighth Edition By William Stallings System Access Threats System access threats fall into two general categories:
First Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science
First Java Programs V. Paúl Pauca Department of Computer Science Wake Forest University CSC 111D Fall, 2015 Hello World revisited / 8/23/15 The f i r s t o b l i g a t o r y Java program @author Paul Pauca
Using Eclipse CDT/PTP for Static Analysis
PTP User-Developer Workshop Sept 18-20, 2012 Using Eclipse CDT/PTP for Static Analysis Beth R. Tibbitts IBM STG [email protected] "This material is based upon work supported by the Defense Advanced Research
D. Best Practices D.1. Assurance The 5 th A
Best Practices I&C School Prof. P. Janson September 2014 D. Best Practices D.1. Assurance The 5 th A 1 of 20 IT systems are insecure for two main reasons: People are fallible and systems are complex and
Using the Intel Inspector XE
Using the Dirk Schmidl [email protected] Rechen- und Kommunikationszentrum (RZ) Race Condition Data Race: the typical OpenMP programming error, when: two or more threads access the same memory
Real World Software Assurance Test Suite: STONESOUP
Real World Software Assurance Test Suite: STONESOUP Charles Oliveira/SAMATE Guest Researcher at Software and Systems Division, IT Laboratory NIST Outline - Introduction STONESOUP
Transparent Monitoring of a Process Self in a Virtual Environment
Transparent Monitoring of a Process Self in a Virtual Environment PhD Lunchtime Seminar Università di Pisa 24 Giugno 2008 Outline Background Process Self Attacks Against the Self Dynamic and Static Analysis
Debugging with TotalView
Tim Cramer 17.03.2015 IT Center der RWTH Aachen University Why to use a Debugger? If your program goes haywire, you may... ( wand (... buy a magic... read the source code again and again and...... enrich
Libmonitor: A Tool for First-Party Monitoring
Libmonitor: A Tool for First-Party Monitoring Mark W. Krentel Dept. of Computer Science Rice University 6100 Main St., Houston, TX 77005 [email protected] ABSTRACT Libmonitor is a library that provides
Oracle Solaris Studio Code Analyzer
Oracle Solaris Studio Code Analyzer The Oracle Solaris Studio Code Analyzer ensures application reliability and security by detecting application vulnerabilities, including memory leaks and memory access
Valgrind BoF Ideas, new features and directions
Valgrind BoF Ideas, new features and directions Everybody! Valgrind developers and users are encouraged to participate by joining the discussion. And of course by kindly (or bitterly:) complain about bugs
MPI-Checker Static Analysis for MPI
MPI-Checker Static Analysis for MPI Alexander Droste, Michael Kuhn, Thomas Ludwig November 15, 2015 Motivation 2 / 39 Why is runtime analysis in HPC challenging? Large amount of resources are used State
Security Vulnerability Management. Mark J Cox
Security Vulnerability Management Mark J Cox Responsibility & Accountability Unique challenges Many vendors all ship the same thing The vulnerabilities are there. The fact that somebody in the middle of
Secure Software Programming and Vulnerability Analysis
Secure Software Programming and Vulnerability Analysis Christopher Kruegel [email protected] http://www.auto.tuwien.ac.at/~chris Testing and Source Code Auditing Secure Software Programming 2 Overview
Parallel Computing. Shared memory parallel programming with OpenMP
Parallel Computing Shared memory parallel programming with OpenMP Thorsten Grahs, 27.04.2015 Table of contents Introduction Directives Scope of data Synchronization 27.04.2015 Thorsten Grahs Parallel Computing
COSC 6397 Big Data Analytics. Distributed File Systems (II) Edgar Gabriel Spring 2014. HDFS Basics
COSC 6397 Big Data Analytics Distributed File Systems (II) Edgar Gabriel Spring 2014 HDFS Basics An open-source implementation of Google File System Assume that node failure rate is high Assumes a small
Idea: Measuring the Effect of Code Complexity on Static Analysis Results
Idea: Measuring the Effect of Code Complexity on Static Analysis Results James Walden, Adam Messer, and Alex Kuhl Department of Computer Science Northern Kentucky University Highland Heights, KY 41099
Introduction to Static Analysis for Assurance
Introduction to Static Analysis for Assurance John Rushby Computer Science Laboratory SRI International Menlo Park CA USA John Rushby Static Analysis for Assurance: 1 Overview What is static analysis?
Bypassing Memory Protections: The Future of Exploitation
Bypassing Memory Protections: The Future of Exploitation Alexander Sotirov [email protected] About me Exploit development since 1999 Research into reliable exploitation techniques: Heap Feng Shui in JavaScript
Handling POSIX attributes for trusted Active Directory users and groups in FreeIPA
Handling POSIX attributes for trusted Active Directory users and groups in FreeIPA Alexander Bokovoy May 21th, 2015 Samba Team / Red Hat 0 A crisis of identity (solved?) FreeIPA What is
Linux Kernel. Security Report
Linux Kernel Security Report September 25 Authors: Andy Chou, Bryan Fulton and Seth Hallem Coverity has combined two years of analysis work carried out in a commercial setting at Coverity with four years
Static Analysis. Find the Bug! 15-654: Analysis of Software Artifacts. Jonathan Aldrich. disable interrupts. ERROR: returning with interrupts disabled
Static Analysis 15-654: Analysis of Software Artifacts Jonathan Aldrich 1 Find the Bug! Source: Engler et al., Checking System Rules Using System-Specific, Programmer-Written Compiler Extensions, OSDI
An Incomplete C++ Primer. University of Wyoming MA 5310
An Incomplete C++ Primer University of Wyoming MA 5310 Professor Craig C. Douglas http://www.mgnet.org/~douglas/classes/na-sc/notes/c++primer.pdf C++ is a legacy programming language, as is other languages
CSCE 665: Lab Basics. Virtual Machine. Guofei Gu
CSCE 665: Lab Basics Guofei Gu Virtual Machine Virtual Machine: a so?ware implementacon of a programmable machine(client), where the so?ware implementacon is constrained within another computer(host) at
Kernel Intrusion Detection System
Kernel Intrusion Detection System Rodrigo Rubira Branco [email protected] [email protected] Monica's Team!! Brazilian famous H.Q. story Amazon Forest Yeah, Brazilian country! Soccer Brazilian
LLVMLinux: Embracing the Dragon
LLVMLinux: Embracing the Dragon Presented by: Behan Webster ( lead) Presentation Date: 2014.08.22 Clang/LLVM LLVM is a Toolchain Toolkit (libraries from which compilers and related technologies can be
Informatica e Sistemi in Tempo Reale
Informatica e Sistemi in Tempo Reale Introduction to C programming Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa October 25, 2010 G. Lipari (Scuola Superiore Sant Anna)
Using the Juliet Test Suite to compare Static Security Scanners
Using the Juliet Test Suite to compare Static Security Scanners Andreas Wagner 1, Johannes Sametinger 2 1 GAM Project, IT Solutions, Schwertberg, Austria 2 Dept. of Information Systems Software Engineering,
Improve Fortran Code Quality with Static Analysis
Improve Fortran Code Quality with Static Analysis This document is an introductory tutorial describing how to use static analysis on Fortran code to improve software quality, either by eliminating bugs
TOOL EVALUATION REPORT: FORTIFY
TOOL EVALUATION REPORT: FORTIFY Derek D Souza, Yoon Phil Kim, Tim Kral, Tejas Ranade, Somesh Sasalatti ABOUT THE TOOL Background The tool that we have evaluated is the Fortify Source Code Analyzer (Fortify
Introduction to SPIN. Acknowledgments. Parts of the slides are based on an earlier lecture by Radu Iosif, Verimag. Ralf Huuck. Features PROMELA/SPIN
Acknowledgments Introduction to SPIN Parts of the slides are based on an earlier lecture by Radu Iosif, Verimag. Ralf Huuck Ralf Huuck COMP 4152 1 Ralf Huuck COMP 4152 2 PROMELA/SPIN PROMELA (PROcess MEta
Iron Chef: John Henry Challenge
Iron Chef: John Henry Challenge Brian Chess Pravir Chandra Black Hat 3/27/2008 Amsterdam Sean Fay Jacob West Concept We love Iron Chef. We can t cook. Concept Compare tools and manual code review in head-tohead
RED HAT DEVELOPER TOOLSET Build, Run, & Analyze Applications On Multiple Versions of Red Hat Enterprise Linux
RED HAT DEVELOPER TOOLSET Build, Run, & Analyze Applications On Multiple Versions of Red Hat Enterprise Linux Dr. Matt Newsome Senior Engineering Manager, Tools RED HAT ENTERPRISE LINUX RED HAT DEVELOPER
The Click2NetFPGA Toolchain. Teemu Rinta-aho, Mika Karlstedt, Madhav P. Desai USENIX ATC 12, Boston, MA, 13 th of June, 2012
The Click2NetFPGA Toolchain Teemu Rinta-aho, Mika Karlstedt, Madhav P. Desai USENIX ATC 12, Boston, MA, 13 th of June, 2012 Click2NetFPGA We have explored the possibilities of High Level Synthesis (HLS)
Operating System Structure
Operating System Structure Lecture 3 Disclaimer: some slides are adopted from the book authors slides with permission Recap Computer architecture CPU, memory, disk, I/O devices Memory hierarchy Architectural
/* File: blkcopy.c. size_t n
13.1. BLOCK INPUT/OUTPUT 505 /* File: blkcopy.c The program uses block I/O to copy a file. */ #include main() { signed char buf[100] const void *ptr = (void *) buf FILE *input, *output size_t
SHARED HASH TABLES IN PARALLEL MODEL CHECKING
SHARED HASH TABLES IN PARALLEL MODEL CHECKING IPA LENTEDAGEN 2010 ALFONS LAARMAN JOINT WORK WITH MICHAEL WEBER AND JACO VAN DE POL 23/4/2010 AGENDA Introduction Goal and motivation What is model checking?
Software Vulnerabilities
Software Vulnerabilities -- stack overflow Code based security Code based security discusses typical vulnerabilities made by programmers that can be exploited by miscreants Implementing safe software in
Manual vs. Automated Vulnerability Assessment: ACaseStudy
Manual vs. Automated Vulnerability Assessment: ACaseStudy JamesA.KupschandBartonP.Miller Computer Sciences Department, University of Wisconsin, Madison, WI, USA {kupsch,bart}@cs.wisc.edu Abstract The dream
Fortify on Demand Security Review. Fortify Open Review
Fortify on Demand Security Review Company: Project: Version: Latest Analysis: Fortify Open Review GNU m4 1.4.17 4/17/2015 12:16:24 PM Executive Summary Company: Project: Version: Static Analysis Date:
Binary compatibility for library developers. Thiago Macieira, Qt Core Maintainer LinuxCon North America, New Orleans, Sept. 2013
Binary compatibility for library developers Thiago Macieira, Qt Core Maintainer LinuxCon North America, New Orleans, Sept. 2013 Who am I? Open Source developer for 15 years C++ developer for 13 years Software
RISC-V Software Ecosystem. Andrew Waterman UC Berkeley [email protected]!
RISC-V Software Ecosystem Andrew Waterman UC Berkeley [email protected]! 2 Tethered vs. Standalone Systems Tethered systems are those that cannot stand alone - They depend on a host system to
Security Testing OpenGGSN: a Case Study
Security Testing OpenGGSN: a Case Study Esa Tikkala, Mikko Rapeli, Kaarina Karppinen, Hannu Honkanen VTT Technical Research Centre of Finland, Oulu, Finland Abstract As systems today are more and more
CSI 402 Lecture 13 (Unix Process Related System Calls) 13 1 / 17
CSI 402 Lecture 13 (Unix Process Related System Calls) 13 1 / 17 System Calls for Processes Ref: Process: Chapter 5 of [HGS]. A program in execution. Several processes are executed concurrently by the
Coding Rules. Encoding the type of a function into the name (so-called Hungarian notation) is forbidden - it only confuses the programmer.
Coding Rules Section A: Linux kernel style based coding for C programs Coding style for C is based on Linux Kernel coding style. The following excerpts in this section are mostly taken as is from articles
System Security Fundamentals
System Security Fundamentals Alessandro Barenghi Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano alessandro.barenghi - at - polimi.it April 28, 2015 Lesson contents Overview
Static Code Analysis Procedures in the Development Cycle
Static Code Analysis Procedures in the Development Cycle Tools, Technology, and Process in Engineering at Microsoft Mooly Beeri Microsoft Haifa R&D Center Agenda Static code analysis tools PREfix and PREfast
Squashing the Bugs: Tools for Building Better Software
Squashing the Bugs: Tools for Building Better Software Stephen Freund Williams College The Blue Screen of Death (BSOD) USS Yorktown Smart Ship 27 Pentium-based PCs Windows NT 4.0 September 21, 1997: data
Chapter 8 Software Testing
Chapter 8 Software Testing Summary 1 Topics covered Development testing Test-driven development Release testing User testing 2 Program testing Testing is intended to show that a program does what it is
Illustration 1: Diagram of program function and data flow
The contract called for creation of a random access database of plumbing shops within the near perimeter of FIU Engineering school. The database features a rating number from 1-10 to offer a guideline
Machine vs. Machine: Lessons from the First Year of Cyber Grand Challenge. Approved for Public Release, Distribution Unlimited
Machine vs. Machine: Lessons from the First Year of Cyber Grand Challenge 1 DARPA BAA 14-05 Autonomous cyber defense capabilities that combine the speed and scale of automation with reasoning abilities
SSVChecker: Unifying Static Security Vulnerability Detection Tools in an Eclipse Plug-In
SSVChecker: Unifying Static Security Vulnerability Detection Tools in an Eclipse Plug-In Josh Dehlinger Dept. of Computer Science Iowa State University [email protected] Qian Feng ABC Virtual Communications
Get the Better of Memory Leaks with Valgrind Whitepaper
WHITE PAPER Get the Better of Memory Leaks with Valgrind Whitepaper Memory leaks can cause problems and bugs in software which can be hard to detect. In this article we will discuss techniques and tools
CSE543 - Introduction to Computer and Network Security. Module: Operating System Security
CSE543 - Introduction to Computer and Network Security Module: Operating System Security Professor Trent Jaeger 1 OS Security So, you have built an operating system that enables user-space processes to
Scoping (Readings 7.1,7.4,7.6) Parameter passing methods (7.5) Building symbol tables (7.6)
Semantic Analysis Scoping (Readings 7.1,7.4,7.6) Static Dynamic Parameter passing methods (7.5) Building symbol tables (7.6) How to use them to find multiply-declared and undeclared variables Type checking
Lecture 17: Testing Strategies" Developer Testing"
Lecture 17: Testing Strategies Structural Coverage Strategies (White box testing): Statement Coverage Branch Coverage Condition Coverage Data Path Coverage Function Coverage Strategies (Black box testing):
Unix Security Technologies. Pete Markowsky <peterm[at] ccs.neu.edu>
Unix Security Technologies Pete Markowsky What is this about? The goal of this CPU/SWS are: Introduce you to classic vulnerabilities Get you to understand security advisories Make
Variable Base Interface
Chapter 6 Variable Base Interface 6.1 Introduction Finite element codes has been changed a lot during the evolution of the Finite Element Method, In its early times, finite element applications were developed
Format string exploitation on windows Using Immunity Debugger / Python. By Abysssec Inc WwW.Abysssec.Com
Format string exploitation on windows Using Immunity Debugger / Python By Abysssec Inc WwW.Abysssec.Com For real beneficiary this post you should have few assembly knowledge and you should know about classic
Continuous Integration/Testing and why you should assume every change breaks your code
MÜNSTER Continuous Integration/Testing and why you should assume every change breaks your code René Milk 4th November 2015 MÜNSTER Continuous Integration/Testing 2 /16 Not talking about C functions Continuous
CS 6371: Advanced Programming Languages
CS 6371: Advanced Programming Languages Dr. Kevin Hamlen Spring 2014 Fill out, sign, and return prereq forms: Course number: CS 6371 Section: 1 Prerequisites: CS 5343: Algorithm Analysis & Data Structures
Partitioning under the hood in MySQL 5.5
Partitioning under the hood in MySQL 5.5 Mattias Jonsson, Partitioning developer Mikael Ronström, Partitioning author Who are we? Mikael is a founder of the technology behind NDB
PHP in RPM distribution
PHP in RPM distribution Why things get better Presented by Remi Collet Senior Software Engineer, Red Hat Inc. License Licensed under Creative Commons Attribution Share Alike CC-BY-SA Today's Topics 1.
Jonathan Worthington Scarborough Linux User Group
Jonathan Worthington Scarborough Linux User Group Introduction What does a Virtual Machine do? Hides away the details of the hardware platform and operating system. Defines a common set of instructions.
static void insecure (localhost *unix)
static void insecure (localhost *unix) Eric Pancer [email protected] Information Security Team DePaul University http://infosec.depaul.edu Securing UNIX Hosts from Local Attack p.1/32 Overview
Detecting Software Vulnerabilities Static Taint Analysis
Vérimag - Distributed and Complex System Group Universitatea Politehnica București Detecting Software Vulnerabilities Static Taint Analysis Dumitru CEARĂ Supervisors Marie-Laure POTET, Ph.D, ENSIMAG, Grenoble
Application Security Testing How to find software vulnerabilities before you ship or procure code
Application Security Testing How to find software vulnerabilities before you ship or procure code Anita D Amico, Ph.D. Hassan Radwan 1 Overview Why Care About Application Security? Quality vs Security
OF 1.3 Testing and Challenges
OF 1.3 Testing and Challenges May 1 st, 2014 Ash Bhalgat (Senior Director, Products), Luxoft Santa Clara, CA USA April-May 2014 1 Agenda OpenFlow : What and Why? State of OpenFlow Conformance Challenges
RTI Routing Service. Release Notes
RTI Routing Service Release Notes Version 5.0.0 2012 Real-Time Innovations, Inc. All rights reserved. Printed in U.S.A. First printing. August 2012. Trademarks Real-Time Innovations, RTI, and Connext are
Towards OpenMP Support in LLVM
Towards OpenMP Support in LLVM Alexey Bataev, Andrey Bokhanko, James Cownie Intel 1 Agenda What is the OpenMP * language? Who Can Benefit from the OpenMP language? OpenMP Language Support Early / Late
CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)
Today: Source code control CPSC 491 Source Code (Version) Control Exercise: 1. Pretend like you don t have a version control system (e. g., no git, subversion, cvs, etc.) 2. How would you manage your source
Open-source Versus Commercial Software: A Quantitative Comparison
Open-source Versus Commercial Software: A Quantitative Comparison Rix Groenboom Reasoning NL BV [email protected] Agenda About Reasoning The Study Inspection Results Analysis Conclusions New
Source Code Security Analysis Tool Functional Specification Version 1.0
Special Publication 500-268 Source Code Security Analysis Tool Functional Specification Version 1.0 Paul E. Black Michael Kass Michael Koo Software Diagnostics and Conformance Testing Division Information
OpenSM Log Management
OpenSM Log Management OpenFabrics Software User Group Workshop Hal Rosenstock Mellanox Technologies 1 Agenda OpenSM Update Per Module Logging Feature 2 OpenSM Releases Releases nominally every 6-9 months
Building accurate intrusion detection systems. Diego Zamboni Global Security Analysis Lab IBM Zürich Research Laboratory
Building accurate intrusion detection systems Diego Zamboni Global Security Analysis Lab IBM Zürich Research Laboratory Outline Brief introduction to intrusion detection The MAFTIA project Accurate intrusion
WEB BASED Access Control/Time Attendance Software Manual V 1.0
WEB BASED Access Control/Time Attendance Software Manual V 1.0 2007/12/26 CONTENT 1. First Login...3 2. Terminal Setup...3 2.1 Add Terminal...4 2.2 Delete Terminal...5 2.3 Modify Terminal...5 2.4 List
Hands-on Hacking Unlimited
About Zone-H Attacks techniques (%) File Inclusion Shares misconfiguration SQL Injection DNS attack through social engineering Web Server external module intrusion Attack against the administrator/user
Actualtests.C2010-508.40 questions
Actualtests.C2010-508.40 questions Number: C2010-508 Passing Score: 800 Time Limit: 120 min File Version: 5.6 http://www.gratisexam.com/ C2010-508 IBM Endpoint Manager V9.0 Fundamentals Finally, I got
General Introduction
Managed Runtime Technology: General Introduction Xiao-Feng Li ([email protected]) 2012-10-10 Agenda Virtual machines Managed runtime systems EE and MM (JIT and GC) Summary 10/10/2012 Managed Runtime
