Mining for Bugs with Graph Database Queries
|
|
|
- Stephen Spencer
- 10 years ago
- Views:
Transcription
1 Mining for Bugs with Graph Database Queries Fabian Yamaguchi 31C3 GEORG-AUGUST-UNIVERSITÄT GÖTTINGEN
2 Hello 31C3!» It s been 5 years since my last CCC talk» Talk back then: mostly about hard earned bugs» Talk today: my attempts since then to make bug hunting a little less painful. 2
3 Pattern Recognition for Vulnerability Discovery» Finding tiny problems in huge code bases» Move away from precise but hard to scale methods typical for program analysis» Engineering perspective Robust (inexact) analysis that recognizes bugs in noisy code bases» Assist auditors in their daily work, don t try to replace them. 3
4 Combining two areas of research Good old CS Shiny and new Graph Databases 4
5 Stefan Esser s libssh2 Bug (Syscan 13) Store attacker controlled data in 32 bit integer From: Mountain Lion/iOS Vulnerabilities Garage Sale, Syscan 13 5
6 Stefan Esser s libssh2 Bug Summation inside allocation From: Mountain Lion/iOS Vulnerabilities Garage Sale, Syscan 13 6
7 Heap-based buffer overflow Stefan Esser s libssh2 Bug From: Mountain Lion/iOS Vulnerabilities Garage Sale, Syscan 13 7
8 » Q: How did he find the bug?» Whitebox fuzzer enhanced with symbolic execution?» Machine learning powered anomaly detector?» Theorem proving? Model checking? 8
9 » Q: How did he find the bug?» Whitebox fuzzer enhanced with symbolic execution?» Machine learning powered anomaly detector?» Theorem proving? Model checking?» A: regular expression for grep. ALLOC[A-Z0-9_]*\s*\([^,]*,[^;]*[*+-][^>][^;]*\)\s*; 9
10 What I think this should tell us» If used right, even primitive tools like grep are powerful Allow auditor knowledge to guide the analysis!» Query is a simple model making auditor knowledge explicit» High false positive rates are often tolerated in practice 10
11 Goal: A Robust Search Engine for Source Code Source Code Robust Parser Query Response Pattern Recognition 11
12 Aspects of code a query should be able to model» What do statements look like?» Can we get from one statement to another?» How do statements affect each other?» Let s see how compilers deal with this 12
13 Typical graph representations for code analysis AST CFG PDG 13
14 Representations have different strengths» None of these representations can do it all» Typical query: Find a call to foo in a statement where data flow exists to a statement that contains a call to bar.» Creates the need to transition from one graph representation to the other. (here: AST -> PDG -> AST)» Can t we get a representation to account for all of these aspects and allow transitions? 14
15 Idea: Merge representations at statement nodes CFG AST PDG» Sub-graphs for statements in AST, CFG and PDG 15
16 Code Property Graph Describe vulnerabilities as sub-graphs of the code property graph! 16
17 Now, let s just put it in a database and we re done» A number of great RE tools use RDBMS backends» Tried to map graphs to tables failed» Tried to map graphs to documents failed» Tried to map graphs to graphs. Succeeded immediately ;) 17
18 Native storage format of RDBMs: Tables» Relationships can be expressed via JOIN tables» Lookup time proportional to size of JOIN table => inefficient lookups for data with lots of many-to-many relationships» Well suited to store data that comes in tables in the first place 18 Image from:
19 Bid data! Cloud Era! NoSQL!» Ignore the guy in the suit, this stuff actually makes sense from a technical point of view» NoSQL : Storing and querying databases differently» A search for alternatives to the relational database model» Graph databases: NoSQL database that uses graphs as a native storage format 19
20 Native storage format of GraphDBs: Property Graphs 20 Image from:
21 Querying property graphs with Traversals» Choose a set of start nodes» Describe where to walk from there Cypher Query Language» If it s possible to walk the graph according to your description, nodes reached by the walk are returned.» Ex.: Return all objects created by people over the age of 30» Start nodes: all nodes where age > 30» Follow outgoing created edges 21
22 Start at all nodes. Filter for age > 30 Gremlin traversal: g.v.filter{ it.age > 30}.out( created ) 22 Image from:
23 Following outgoing created edges Gremlin traversal: g.v.filter{ it.age > 30 }..out( created ) 23 Image from:
24 Stored procedures : Custom Steps: filter{ it.age > 30} out( created ) =: PeopleWeCanFireNow Gremlin.defineStep( PeopleWeCanFireNow, [Vertex, Pipe], { _().filter{ it.age > 30 }..out( created ).back(1) }) 24
25 Graph databases: a perfect match for social networks!» Example: Facebook Graph Search 25
26 Graph databases: a perfect match for social networks!» Example: Facebook Graph Search 26 From:
27 Graph databases: a perfect match for social networks!» Example: Facebook Graph Search 27 From:
28 But they are not limited to storage of useless crap!» Code property graphs are property graphs by design!» You can store code property graphs in graph databases! 28
29 filter{ it.age filter{ > it.age 30} > 30} out( created ) =: Allows us to define a domain specific query language for vulnerability discovery! PeopleWeCanFireNow Gremlin.defineStep( PeopleWeCanFireNow, [Vertex, Pipe], { _().filter{ it.age > 30 }..out( created ) }) 29
30 » A platform for code analysis based on code property graphs stored in a graph database» Extensible query language» Scriptable via a python interface (python-joern)» Shell tools for common operations (joern-tools)» Known to work on other people s machines! ;)» 30
31 Architecture Filesystem:.joernIndex/ (2) Start database server Importer (1) Import code REST API Port: 7474 (3) Run your scripts from joern.all import JoernSteps query = j = JoernSteps() j.connecttodatabase() res = j.rungremlinquery(query) for r in res: print r (4) Or use the shell utils python-joern joern-tools 31
32 Our first test subject: The VLC Media Player Disclaimer:» Auditing code for vulnerabilities is NOT about making fun of people.» VLC developers are doing an exceptionally good job at coding.» The fact that this is a popular program with a lot of functionality makes it interesting for us.» Bugs have been reported and should be fixed in the next release. 32
33 Importing code and starting the server $ joern /home/fabs/sourcecode/vlc-2.1.5/ $ neo4j console $ firefox 33
34 Selecting nodes using Apache Lucene Integrated Text Search Engine for start node selection ls -lh.joernindex total 473M [ ] 4.0K Dec 14 14:45 index [ ] 36M Dec 14 14:45 neostore.nodestore.db [ ] 233M Dec 14 14:45 neostore.propertystore.db [ ] 44M Dec 14 14:45 neostore.propertystore.db.strings [ ] 161M Dec 14 14:45 neostore.relationshipstore.db 34
35 Lucene Queries with joern-lookup Get all files matching *demux* Lucene Query Language echo "type:file AND filepath:*demux*" joern-lookup -c Node id Attributes filepath: /modules/demux/tta.c type:file filepath: /modules/demux/ty.c type:file filepath: /modules/demux/vc1.c type:file 35
36 Gremlin Queries with joern-lookup -g Get names of all functions in files matching *demux* Custom step Lucene Query Language echo 'querynodeindex("type:file AND filepath:*demux*").out().filter{it.type == "Function"}.name' joern-lookup -g Control Demux Close Open parse_chunk_headers get_chunk_header 36
37 But how do I know what is in the database? echo 'getfunctionsbyname("getaoutbuffer").id joern-lookup -g tail -n 1 joern-plot-proggraph -ddg -cfg Plot data flow Plot control flow Plot control and data flow for function GetAoutBuffer Big thanks to Alwin Maier for writing the plotting tools! 37
38 Let s look for a variation of the libssh bug in VLC Get calls to malloc where first argument contains and additive expression and a call to memcpy is reached by data flow where the third argument also contains an additive expression and the two additive expression are not equal. echo 'getcallsto("malloc").itharguments("0").sideeffect{cnt = it.code }.match{ it.type =="AdditiveExpression"}.statements().out("REACHES").match{ it.type == "CallExpression" && it.code.startswith("memcpy")}.itharguments("2").filter{it.code!= cnt }.match{it.type == "AdditiveExpression"}.id joern-lookup -g sort uniq joern-location > foo 38
39 $ cat foo /src/input/vlmshell.c:844:0:26302:29833 /modules/audio_output/pulse.c:85:0:2962:3621 /modules/codec/quicktime.c:667:0:22561:29957 /modules/demux/mp4/libmp4.c:2595:0:81633:82214 mp4 looks nice. I have some mp4s. $ grep mp4 foo joern-code 39
40 p_box->i_size = 7 triggers the overflow static int MP4_ReadBox_name( stream_t *p_stream, MP4_Box_t *p_box ) { MP4_READBOX_ENTER( MP4_Box_data_name_t ); p_box->data.p_name->psz_text = malloc( p_box->i_size ); /* +\0, -name, -size */ if( p_box->data.p_name->psz_text == NULL ) MP4_READBOX_EXIT( 0 ); memcpy( p_box->data.p_name->psz_text, p_peek, p_box->i_size - 8 ); p_box->data.p_name->psz_text[p_box->i_size - 8] = '\0'; MP4_READBOX_EXIT( 1 ); } 40
41 From The Art of Software Security Assessment In fact, two of your authors typically start reviewing a new codebase by finding the equivalent of the util/ directory and reading the framework and glue code line by line., Dowd, McDonald, Schuh (2006)» Finding fundamental difficulties in using internal and external APIs can help uncover a lot of vulnerabilities» Let s checkout the API for processing of data streams in VLC» Include/vlc_stream.h 41
42 Difficulty: Handling files larger than 4GB» Size of a stream can be larger than UINT32_MAX» sizeof(size_t) == sizeof(uint32_t) on 32 bit platforms» Any allocation that depends on stream_size will need to ensure that the stream_size fits into a size_t! 42
43 Difficulty: Handling files larger than 4GB» Size of a stream can be larger than UINT32_MAX» sizeof(size_t) == sizeof(uint32_t) on 32 bit platforms» Any allocation that depends on stream_size will need to ensure that the stream_size fits into a size_t! 43
44 Truncations in allocations Give me statements containing calls to stream_size and the symbol int64_t where data flow exists to statements containing the symbol malloc. echo 'getcallsto("stream_size").statements().filter{ it.code.contains("int64_t") }.out("reaches").filter{ it.code.contains("malloc")}.code' joern-lookup -g chunk -> data = malloc ( size ) uint8_t * data = ( uint8_t * ) malloc ( size ) ; char * p_buffer = ( i_size > 0 )? malloc ( i_size ) : NULL ; psz_update_data = malloc ( i_read + 1 ) uint8_t * p_buf = ( uint8_t * ) malloc ( i_size ) ; uint8_t * p_unarmored = ( uint8_t * ) malloc ( ( i_size * 3 ) / ) ; uint8_t * p_buf = ( uint8_t * ) malloc ( i_size ) ; Updater 44
45 VLC Automatic Updater 45
46 Side-note: Signatures are used to verify updates 46
47 VLC Automatic Updater 47
48 Let s look at the binary straight away 48
49 Following the red arrow: Confirms our suspicion 49
50 » Edited...\etc\hosts: update.videolan.org => my web server» Created a Byte of A s (vlc/status-win-x86)» Attached Debugger and checked for updates in VLC
51 lolwut?!?» Edited...\etc\hosts: update.videolan.org => my web server» Created a Byte of A s (vlc/status-win-x86)» Attached Debugger and checked for updates in VLC That s convenient! 51
52 lolwut?!?» Edited...\etc\hosts: update.videolan.org => my web server» Created a Byte of A s (vlc/status-win-x86)» Attached Debugger and checked for updates in VLC Arguing in favor of patching just got a lot easier. 52
53 Notes on exploitation» stream_read is our friend» Header Content-Length: triggers bug» Attacker fully controls amount of data to actually copy» Data is copied in blocks by stream_read» In between copy-operations, stream_read uses dereferences function pointers!» ASLR/DEP enabled but limited amount of position dependant code allows for custom ROP chain» Downsides: multiple threads make stable exploitation difficult» Demo. 53
54 Our second test subject: The Linux Kernel» Large code base with a lot of users» Well suited for static analysis as hardware for drivers is typically not available 54
55 Defining steps for more complex traversals» Unsanitized» The traversal returns attacker-controlled sources only if they meet the following two conditions.» There exists a path from the source statement to the sink statement in the control flow graph such that no node on the path matches any of the sanitizer descriptions.» A variable defined by the source and used by the sink reaches the sink via the control flow path, i.e., the variable is not redefined by any node on the path.» Pretty complex, so let s implement it once and the re-use it From: Modeling and Discovering Vulnerabilities with Code Property Graphs 55
56 Example: Query for buffer overflows in write handlers sink sanitizers source query1 = getfunctionastsbyname('*_write*').getarguments('(copy_from_user OR memcpy)', '2').sideEffect{ paramname = 'c(ou)?nt'; }.filter{ it.code.matches(paramname) }.unsanitized( { it._().or( _().ischeck('.*' + paramname + '.*'), _().codecontains('.*alloc.*' + paramname + '.*'), _().codecontains('.*min.*') )} ).param( '.*c(ou)?nt.*' ).locations() 56
57 Slight variation of the query query2 = getarguments('(copy_from_user OR memcpy)', '2').filter{!it.argToCall().toList()[0].code.matches('.*(sizeof min).*') }.sideeffect{ argument = it.code; } /* store argument */.sideeffect{ dstid = it.statements().tolist()[0].id; } /* store id of sink */.unsanitized({ it._().or( _().ischeck('.*' + Pattern.quote(argument) + '.*'), _().codecontains('.*alloc.*' + Pattern.quote(argument) + '.*'), _().codecontains('.*min.*') ) }, { it._().filter{ it.code.contains('copy_from_user')} } ).filter{ it.id!= dstid } /* filter flows from node to self */.locations() 57
58 Profit: Seven 0-days in eleven hits Running queries 1 and 2 58
59 CVE : qeth buffer overflow in snmp ioctl 59
60 Practical Evaluation with Nico Golde (Qualcomm)» Get somebody working in the industry to actually try this!» Found about 100 issues in an internal audit at Qualcomm in their kernel code (9 queries)» Evaluation for paper: audit of the Linux Kernel Mainline» Buffer overflows (2 queries)» Zero-byte allocation (1 query)» Memory mapping bugs (1 query)» Memory disclosure (1 query) 60
61 Kernel 0-day» 18 vulnerabilities, acknowledged /fixed by developers 61
62 Conclusion» Introduced a system to mine code bases for vulnerabilities» Built a bridge between program analysis and graph DBs» Found real exploitable bugs in popular code bases» Part of a larger effort to explore what we can do with pattern recognition and data mining techniques to discover vulnerabilities 62
63 Thank you! Questions?» Implementation» (webpage + documentation)» (main system)» (traversals)» (shell utils)» Fabian Yamaguchi» [email protected]» (my webpage)» 63
Hunting Vulnerabilities with Graph Databases
Hunting Vulnerabilities with Graph Databases Fabian fabs Yamaguchi Nico Golde (Qualcomm) INBOT 14 GEORG-AUGUST-UNIVERSITÄT GÖTTINGEN CVE-2013-6381: qeth buffer overflow in snmp ioctl 2 CVE-2013-6381: qeth
Modeling and Discovering Vulnerabilities with Code Property Graphs
Modeling and Discovering Vulnerabilities with Code Property Graphs Fabian Yamaguchi, Nico Golde, Daniel Arp and Konrad Rieck University of Göttingen, Germany Qualcomm Research Germany Abstract The vast
Exploiting nginx chunked overflow bug, the undisclosed attack vector
Exploiting nginx chunked overflow bug, the undisclosed attack vector Long Le [email protected] About VNSECURITY.NET CLGT CTF team 2 VNSECURITY.NET In this talk Nginx brief introduction Nginx chunked
Visualizing a Neo4j Graph Database with KeyLines
Visualizing a Neo4j Graph Database with KeyLines Introduction 2! What is a graph database? 2! What is Neo4j? 2! Why visualize Neo4j? 3! Visualization Architecture 4! Benefits of the KeyLines/Neo4j architecture
Snare System Version 6.3.6 Release Notes
Snare System Version 6.3.6 Release Notes is pleased to announce the release of Snare Server Version 6.3.6. Snare Server Version 6.3.6 New Features Added objective and user documentation to the email header,
How To Fix A Snare Server On A Linux Server On An Ubuntu 4.5.2 (Amd64) (Amd86) (For Ubuntu) (Orchestra) (Uniden) (Powerpoint) (Networking
Snare System Version 6.3.5 Release Notes is pleased to announce the release of Snare Server Version 6.3.5. Snare Server Version 6.3.5 Bug Fixes: The Agent configuration retrieval functionality within the
Pattern Insight Clone Detection
Pattern Insight Clone Detection TM The fastest, most effective way to discover all similar code segments What is Clone Detection? Pattern Insight Clone Detection is a powerful pattern discovery technology
ERNW Newsletter 51 / September 2015
ERNW Newsletter 51 / September 2015 Playing With Fire: Attacking the FireEye MPS Date: 9/10/2015 Classification: Author(s): Public Felix Wilhelm TABLE OF CONTENT 1 MALWARE PROTECTION SYSTEM... 4 2 GAINING
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
Ching-Yung Lin, Ph.D. Adjunct Professor, Dept. of Electrical Engineering and Computer Science IBM Chief Scientist, Graph Computing. October 29th, 2015
E6893 Big Data Analytics Lecture 8: Spark Streams and Graph Computing (I) Ching-Yung Lin, Ph.D. Adjunct Professor, Dept. of Electrical Engineering and Computer Science IBM Chief Scientist, Graph Computing
HP Client Automation Standard Fast Track guide
HP Client Automation Standard Fast Track guide Background Client Automation Version This document is designed to be used as a fast track guide to installing and configuring Hewlett Packard Client Automation
How graph databases started the multi-model revolution
How graph databases started the multi-model revolution Luca Garulli Author and CEO @OrientDB QCon Sao Paulo - March 26, 2015 Welcome to Big Data 90% of the data in the world today has been created in the
SEO - Access Logs After Excel Fails...
Server Logs After Excel Fails @ohgm Prepare for walls of text. About Me Former Senior Technical Consultant @ builtvisible. Now Freelance Technical SEO Consultant. @ohgm on Twitter. ohgm.co.uk for my webzone.
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
CS423 Spring 2015 MP4: Dynamic Load Balancer Due April 27 th at 9:00 am 2015
CS423 Spring 2015 MP4: Dynamic Load Balancer Due April 27 th at 9:00 am 2015 1. Goals and Overview 1. In this MP you will design a Dynamic Load Balancer architecture for a Distributed System 2. You will
Coverity White Paper. Reduce Your Costs: Eliminate Critical Security Vulnerabilities with Development Testing
Reduce Your Costs: Eliminate Critical Security Vulnerabilities with Development Testing The Stakes Are Rising Security breaches in software and mobile devices are making headline news and costing companies
Testing Automation for Distributed Applications By Isabel Drost-Fromm, Software Engineer, Elastic
Testing Automation for Distributed Applications By Isabel Drost-Fromm, Software Engineer, Elastic The challenge When building distributed, large-scale applications, quality assurance (QA) gets increasingly
Bug hunting. Vulnerability finding methods in Windows 32 environments compared. FX of Phenoelit
Bug hunting Vulnerability finding methods in Windows 32 environments compared FX of Phenoelit The goal: 0day What we are looking for: Handles network side input Runs on a remote system Is complex enough
Security Products Development. Leon Juranic [email protected]
Security Products Development Leon Juranic [email protected] Security Products Development Q: Why I picked this boring topic at all? A: Avoidance of any hackingrelated topics for fsec (khm.) :) Security
The Advantages of Block-Based Protocol Analysis for Security Testing
The Advantages of Block-Based Protocol Analysis for Security Testing Dave Aitel Immunity,Inc. 111 E. 7 th St. Suite 64, NY NY 10009, USA [email protected] February, 4 2002 Abstract. This paper describes
Real-time Streaming Analysis for Hadoop and Flume. Aaron Kimball odiago, inc. OSCON Data 2011
Real-time Streaming Analysis for Hadoop and Flume Aaron Kimball odiago, inc. OSCON Data 2011 The plan Background: Flume introduction The need for online analytics Introducing FlumeBase Demo! FlumeBase
Virtually Secure. a journey from analysis to remote root 0day on an industry leading SSL-VPN appliance
Virtually Secure a journey from analysis to remote root 0day on an industry leading SSL-VPN appliance Who am I? Tal Zeltzer Independent security researcher from Israel Reverse engineering (mostly embedded
InfiniteGraph: The Distributed Graph Database
A Performance and Distributed Performance Benchmark of InfiniteGraph and a Leading Open Source Graph Database Using Synthetic Data Objectivity, Inc. 640 West California Ave. Suite 240 Sunnyvale, CA 94086
I Control Your Code Attack Vectors Through the Eyes of Software-based Fault Isolation. Mathias Payer, ETH Zurich
I Control Your Code Attack Vectors Through the Eyes of Software-based Fault Isolation Mathias Payer, ETH Zurich Motivation Applications often vulnerable to security exploits Solution: restrict application
Braindumps.C2150-810.50 questions
Braindumps.C2150-810.50 questions Number: C2150-810 Passing Score: 800 Time Limit: 120 min File Version: 5.3 http://www.gratisexam.com/ -810 IBM Security AppScan Source Edition Implementation This is the
Compromise-as-a-Service
ERNW GmbH Carl-Bosch-Str. 4 D-69115 Heidelberg 3/31/14 Compromise-as-a-Service Our PleAZURE Felix Wilhelm & Matthias Luft {fwilhelm, mluft}@ernw.de ERNW GmbH Carl-Bosch-Str. 4 D-69115 Heidelberg Agenda
Automating Security Testing. Mark Fallon Senior Release Manager Oracle
Automating Security Testing Mark Fallon Senior Release Manager Oracle Some Ground Rules There are no silver bullets You can not test security into a product Testing however, can help discover a large percentage
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
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
Overview on Graph Datastores and Graph Computing Systems. -- Litao Deng (Cloud Computing Group) 06-08-2012
Overview on Graph Datastores and Graph Computing Systems -- Litao Deng (Cloud Computing Group) 06-08-2012 Graph - Everywhere 1: Friendship Graph 2: Food Graph 3: Internet Graph Most of the relationships
Index Terms Domain name, Firewall, Packet, Phishing, URL.
BDD for Implementation of Packet Filter Firewall and Detecting Phishing Websites Naresh Shende Vidyalankar Institute of Technology Prof. S. K. Shinde Lokmanya Tilak College of Engineering Abstract Packet
Oracle Big Data Spatial & Graph Social Network Analysis - Case Study
Oracle Big Data Spatial & Graph Social Network Analysis - Case Study Mark Rittman, CTO, Rittman Mead OTN EMEA Tour, May 2016 [email protected] www.rittmanmead.com @rittmanmead About the Speaker Mark
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.
Linux Driver Devices. Why, When, Which, How?
Bertrand Mermet Sylvain Ract Linux Driver Devices. Why, When, Which, How? Since its creation in the early 1990 s Linux has been installed on millions of computers or embedded systems. These systems may
Custom Penetration Testing
Custom Penetration Testing Compromising a Vulnerability through Discovery and Custom Exploitation Stephen Sims Advanced Penetration Testing - 2009 SANS 1 Objectives Penetration Testing Precompiled Tools
Unified access to all your data points. with Apache MetaModel
Unified access to all your data points with Apache MetaModel Who am I? Kasper Sørensen, dad, geek, guitarist @kaspersor Long-time developer and PMC member of: Founder also of another nice open source project:
CS3235 - Computer Security Thirteenth topic: System attacks. defenses
Overflows... Security case studies CS3235 - Computer Security Thirteenth topic: System attacks and defenses Hugh Anderson National University of Singapore School of Computing March/April, 2016 Hugh Anderson
Review and Exploit Neglected Attack Surface in ios 8. Tielei Wang, Hao Xu, Xiaobo Chen of TEAM PANGU
Review and Exploit Neglected Attack Surface in ios 8 Tielei Wang, Hao Xu, Xiaobo Chen of TEAM PANGU BlackHat 2015 Agenda ios Security Background Review of Attack Surfaces Fuzz More IOKit and MIG System
Intrusion Detection and Prevention: Network and IDS Configuration and Monitoring using Snort
License Intrusion Detection and Prevention: Network and IDS Configuration and Monitoring using Snort This work by Z. Cliffe Schreuders at Leeds Metropolitan University is licensed under a Creative Commons
NDK: NOVELL NSS AUDIT
www.novell.com/documentation NDK: NOVELL NSS AUDIT Developer Kit August 2015 Legal Notices Novell, Inc., makes no representations or warranties with respect to the contents or use of this documentation,
File Management. Chapter 12
Chapter 12 File Management File is the basic element of most of the applications, since the input to an application, as well as its output, is usually a file. They also typically outlive the execution
Fuzzing in Microsoft and FuzzGuru framework
Fuzzing in Microsoft and FuzzGuru framework OWASP-IL May-2007 John Neystadt [email protected] Lead Program Manager Forefront Edge, Microsoft Agenda Overview Introduction to Fuzzing FuzzGuru Architecture
! E6893 Big Data Analytics Lecture 9:! Linked Big Data Graph Computing (I)
! E6893 Big Data Analytics Lecture 9:! Linked Big Data Graph Computing (I) Ching-Yung Lin, Ph.D. Adjunct Professor, Dept. of Electrical Engineering and Computer Science Mgr., Dept. of Network Science and
Summer Student Project Report
Summer Student Project Report Dimitris Kalimeris National and Kapodistrian University of Athens June September 2014 Abstract This report will outline two projects that were done as part of a three months
Sandy. The Malicious Exploit Analysis. http://exploit-analysis.com/ Static Analysis and Dynamic exploit analysis. Garage4Hackers
Sandy The Malicious Exploit Analysis. http://exploit-analysis.com/ Static Analysis and Dynamic exploit analysis About Me! I work as a Researcher for a Global Threat Research firm.! Spoke at the few security
Visualizing Information Flow through C Programs
Visualizing Information Flow through C Programs Joe Hurd, Aaron Tomb and David Burke Galois, Inc. {joe,atomb,davidb}@galois.com Systems Software Verification Workshop 7 October 2010 Joe Hurd, Aaron Tomb
The Hacker Strategy. Dave Aitel [email protected]. Security Research
1 The Hacker Strategy Dave Aitel [email protected] Security Research Who am I? CTO, Immunity Inc. History: NSA->@stake -> Immunity Responsible for new product development Vulnerability Sharing Club
Lecture 10: Dynamic Memory Allocation 1: Into the jaws of malloc()
CS61: Systems Programming and Machine Organization Harvard University, Fall 2009 Lecture 10: Dynamic Memory Allocation 1: Into the jaws of malloc() Prof. Matt Welsh October 6, 2009 Topics for today Dynamic
IOActive Security Advisory
IOActive Security Advisory Title Severity Discovered by Admin ACL Bypass and Double Fetch Issue in F-Secure Internet Security 2015 High/Important Ilja van Sprundel Advisory Date September 3, 2015 Affected
6.828 Operating System Engineering: Fall 2003. Quiz II Solutions THIS IS AN OPEN BOOK, OPEN NOTES QUIZ.
Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY 6.828 Operating System Engineering: Fall 2003 Quiz II Solutions All problems are open-ended questions. In
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
Static Taint-Analysis on Binary Executables
Static Taint-Analysis on Binary Executables Sanjay Rawat, Laurent Mounier, Marie-Laure Potet VERIMAG University of Grenoble October 2011 Static Taint-Analysis on Binary Executables 1/29 Outline 1 Introduction
Graph Analytics in Big Data. John Feo Pacific Northwest National Laboratory
Graph Analytics in Big Data John Feo Pacific Northwest National Laboratory 1 A changing World The breadth of problems requiring graph analytics is growing rapidly Large Network Systems Social Networks
Hadoop at Yahoo! Owen O Malley Yahoo!, Grid Team [email protected]
Hadoop at Yahoo! Owen O Malley Yahoo!, Grid Team [email protected] Who Am I? Yahoo! Architect on Hadoop Map/Reduce Design, review, and implement features in Hadoop Working on Hadoop full time since Feb
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
A1 and FARM scalable graph database on top of a transactional memory layer
A1 and FARM scalable graph database on top of a transactional memory layer Miguel Castro, Aleksandar Dragojević, Dushyanth Narayanan, Ed Nightingale, Alex Shamis Richie Khanna, Matt Renzelmann Chiranjeeb
Binary search tree with SIMD bandwidth optimization using SSE
Binary search tree with SIMD bandwidth optimization using SSE Bowen Zhang, Xinwei Li 1.ABSTRACT In-memory tree structured index search is a fundamental database operation. Modern processors provide tremendous
Scaling Graphite Installations
Scaling Graphite Installations Graphite basics Graphite is a web based Graphing program for time series data series plots. Written in Python Consists of multiple separate daemons Has it's own storage backend
A Comparison Of Shared Memory Parallel Programming Models. Jace A Mogill David Haglin
A Comparison Of Shared Memory Parallel Programming Models Jace A Mogill David Haglin 1 Parallel Programming Gap Not many innovations... Memory semantics unchanged for over 50 years 2010 Multi-Core x86
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
From Rivals to BFF: WAF & VA Unite OWASP 07.23.2009. The OWASP Foundation http://www.owasp.org
From Rivals to BFF: WAF & VA Unite 07.23.2009 Brian Contos, Chief Security Strategist Imperva Inc. [email protected] +1 (650) 832.6054 Copyright The Foundation Permission is granted to copy, distribute
2013 Ruby on Rails Exploits. CS 558 Allan Wirth
2013 Ruby on Rails Exploits CS 558 Allan Wirth Background: Ruby on Rails Ruby: Dynamic general purpose scripting language similar to Python Ruby on Rails: Popular Web app framework using Ruby Designed
Snare System Version 6.3.4 Release Notes
Snare System Version 6.3.4 Release Notes is pleased to announce the release of Snare Server Version 6.3.4. Snare Server Version 6.3.4 New Features The behaviour of the Snare Server reflector has been modified
Graph Database Proof of Concept Report
Objectivity, Inc. Graph Database Proof of Concept Report Managing The Internet of Things Table of Contents Executive Summary 3 Background 3 Proof of Concept 4 Dataset 4 Process 4 Query Catalog 4 Environment
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
Pwning Intranets with HTML5
Javier Marcos de Prado Juan Galiana Lara Pwning Intranets with HTML5 2009 IBM Corporation Agenda How our attack works? How we discover what is in your network? What does your infrastructure tell us for
The Native AFS Client on Windows The Road to a Functional Design. Jeffrey Altman, President Your File System Inc.
The Native AFS Client on Windows The Road to a Functional Design Jeffrey Altman, President Your File System Inc. 14 September 2010 The Team Peter Scott Principal Consultant and founding partner at Kernel
Turning your managed Anti-Virus
Turning your managed Anti-Virus into my Botnet Jérôme NOKIN http://funoverip.net About me # id Jérôme Nokin http://funoverip.net [email protected] # job Penetration Tester Verizon Enterprise Solutions
Apache Thrift and Ruby
Apache Thrift and Ruby By Randy Abernethy In this article, excerpted from The Programmer s Guide to Apache Thrift, we will install Apache Thrift support for Ruby and build a simple Ruby RPC client and
Risks with web programming technologies. Steve Branigan Lucent Technologies
Risks with web programming technologies Steve Branigan Lucent Technologies Risks with web programming technologies Abstract Java applets and their kind are bringing new life to the World Wide Web. Through
CS 40 Computing for the Web
CS 40 Computing for the Web Art Lee January 20, 2015 Announcements Course web on Sakai Homework assignments submit them on Sakai Email me the survey: See the Announcements page on the course web for instructions
ANNEXURE-1 TO THE TENDER ENQUIRY NO.: DPS/AMPU/MIC/1896. Network Security Software Nessus- Technical Details
Sub: Supply, Installation, setup and testing of Tenable Network Security Nessus vulnerability scanner professional version 6 or latest for scanning the LAN, VLAN, VPN and IPs with 3 years License/Subscription
Hadoop Basics with InfoSphere BigInsights
An IBM Proof of Technology Hadoop Basics with InfoSphere BigInsights Part: 1 Exploring Hadoop Distributed File System An IBM Proof of Technology Catalog Number Copyright IBM Corporation, 2013 US Government
MapReduce and Hadoop Distributed File System
MapReduce and Hadoop Distributed File System 1 B. RAMAMURTHY Contact: Dr. Bina Ramamurthy CSE Department University at Buffalo (SUNY) [email protected] http://www.cse.buffalo.edu/faculty/bina Partially
How to Sandbox IIS Automatically without 0 False Positive and Negative
How to Sandbox IIS Automatically without 0 False Positive and Negative Professor Tzi-cker Chiueh Computer Science Department Stony Brook University [email protected] 2/8/06 Blackhat Federal 2006 1 Big
Penetration Testing Lessons Learned. Security Research
1 Penetration Testing Lessons Learned Security Research 2 Who am I? CTO at Immunity, Inc. Privately held information security company Consulting Training Specialized Security Products CANVAS SILICA Based
Hadoop-based Open Source ediscovery: FreeEed. (Easy as popcorn)
+ Hadoop-based Open Source ediscovery: FreeEed (Easy as popcorn) + Hello! 2 Sujee Maniyam & Mark Kerzner Founders @ Elephant Scale consulting and training around Hadoop, Big Data technologies Enterprise
Cloud9 Parallel Symbolic Execution for Automated Real-World Software Testing
Cloud9 Parallel Symbolic Execution for Automated Real-World Software Testing Stefan Bucur, Vlad Ureche, Cristian Zamfir, George Candea School of Computer and Communication Sciences Automated Software Testing
Data Structure Reverse Engineering
Data Structure Reverse Engineering Digging for Data Structures Polymorphic Software with DSLR Scott Hand October 28 th, 2011 Outline 1 Digging for Data Structures Motivations Introduction Laika Details
Computer Security: Principles and Practice
Computer Security: Principles and Practice Chapter 24 Windows and Windows Vista Security First Edition by William Stallings and Lawrie Brown Lecture slides by Lawrie Brown Windows and Windows Vista Security
BIG DATA SOLUTION DATA SHEET
BIG DATA SOLUTION DATA SHEET Highlight. DATA SHEET HGrid247 BIG DATA SOLUTION Exploring your BIG DATA, get some deeper insight. It is possible! Another approach to access your BIG DATA with the latest
Hadoop and Map-Reduce. Swati Gore
Hadoop and Map-Reduce Swati Gore Contents Why Hadoop? Hadoop Overview Hadoop Architecture Working Description Fault Tolerance Limitations Why Map-Reduce not MPI Distributed sort Why Hadoop? Existing Data
Secure in 2010? Broken in 2011!
Secure in 2010? Broken in 2011! Matias Madou Principal Security Researcher Abstract In 2010, a security research firm stumbled on a couple of vulnerabilities in Apache OFBiz, a widely used open source
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,
IS TEST 3 - TIPS FOUR (4) levels of detective controls offered by intrusion detection system (IDS) methodologies. First layer is typically responsible for monitoring the network and network devices. NIDS
Detecting Computer Worms in the Cloud
Detecting Computer Worms in the Cloud Sebastian Biedermann and Stefan Katzenbeisser Security Engineering Group Department of Computer Science Technische Universität Darmstadt {biedermann,katzenbeisser}@seceng.informatik.tu-darmstadt.de
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
Analyzing cluster log files using Logsurfer
Analyzing cluster log files using Logsurfer James E. Prewett The Center for High Performance Computing at UNM (HPC@UNM) Abstract. Logsurfer is a log file analysis tool that simplifies cluster maintenance
Project 4: IP over DNS Due: 11:59 PM, Dec 14, 2015
CS168 Computer Networks Jannotti Project 4: IP over DNS Due: 11:59 PM, Dec 14, 2015 Contents 1 Introduction 1 2 Components 1 2.1 Creating the tunnel..................................... 2 2.2 Using the
CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study
CS 377: Operating Systems Lecture 25 - Linux Case Study Guest Lecturer: Tim Wood Outline Linux History Design Principles System Overview Process Scheduling Memory Management File Systems A review of what
Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.
Handout 1 CS603 Object-Oriented Programming Fall 15 Page 1 of 11 Handout 1 Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner. Java
MapReduce and Hadoop Distributed File System V I J A Y R A O
MapReduce and Hadoop Distributed File System 1 V I J A Y R A O The Context: Big-data Man on the moon with 32KB (1969); my laptop had 2GB RAM (2009) Google collects 270PB data in a month (2007), 20000PB
Using MySQL for Big Data Advantage Integrate for Insight Sastry Vedantam [email protected]
Using MySQL for Big Data Advantage Integrate for Insight Sastry Vedantam [email protected] Agenda The rise of Big Data & Hadoop MySQL in the Big Data Lifecycle MySQL Solutions for Big Data Q&A
Software Testing & Analysis (F22ST3): Static Analysis Techniques 2. Andrew Ireland
Software Testing & Analysis (F22ST3) Static Analysis Techniques Andrew Ireland School of Mathematical and Computer Science Heriot-Watt University Edinburgh Software Testing & Analysis (F22ST3): Static
Penetration Testing LAB Setup Guide
Penetration Testing LAB Setup Guide (Internal Attacker - Beginner version) By: magikh0e - [email protected] Last Edit: July 07 2012 This guide assumes a few things... 1. You have installed Backtrack before
