SlideShare a Scribd company logo
1 of 48
Silvio Cesare
           Deakin University
<silvio.cesare@gmail.com>
   PhD student at Deakin University.

   Research
    ◦ Malware classification using static analysis
    ◦ Bug and vulnerability detection

   Presented at Blackhat, Cansecwest, Ruxcon.

   This presentation is some of my research.
   Combine decompilation with static analysis
    for bug finding.

   Abstract Interpretation.

   Has found bugs and vulns in Linux binaries.

   Plan to submit research papers for
    publication.

   Under active development.
   Introduction

   Problem Statement and Our Approach

   Embedded Package Detection

   Related Packages Detection

   Vulnerability Detection from Embedded Clones

   Cross Distribution Vulnerabilities

   Evaluation and Discussion

   Availability, Future Work and Conclusion
   Software defects are major cause of internet
    insecurity.

   Detecting software defects before the bad
    guys improves security.

   Incorporating detection early in QA makes
    software more secure from the beginning.

   Automated detection an important research
    area.
   Theorem Proving                {P}S{Q}, {Q}T {R}
    ◦ Axiomatic semantics              {P}S ; T {R}
    ◦ Hoare logic etc


   Model Checking 


   Static analysis
    ◦ Abstract interpretation etc   
   Developers may “embed” or “clone” code from
    3rd party projects.
    ◦   Statically link against external library.
    ◦   Maintain an internal copy of a library‟s source.
    ◦   Fork a copy of a library‟s source.
    ◦   E.g., compression libraries, image processing libraries,
        parsers.
   Linux package policies generally disallow.

   Why?
    ◦ 2+ versions of library need to be maintained.
    ◦ Bug fixes must be manually incorporated.
    ◦ Old embedded libraries often insecure.
   E.g., zlib vulnerability in 2005
    ◦   Uncertainty of which Linux packages embed zlib.
    ◦   Manual signatures generated to identify zlib.
    ◦   Scan of Debian Linux package repository.
    ◦   Many vulnerable packages.

   More recently, libtiff 3.9.4 in April 2011.
    ◦ How many packages are still vulnerable?
   Sigs based on version strings embedded in
    libraries.
   E.g.
bzlib_private.h:#define BZ_VERSION   "1.0.5, 10-Dec-2007"


tiffvers.h:#define TIFFLIB_VERSION_STR "LIBTIFF, Version
3.8.2nCopyright (c) 1988-1996 Sam LefflernCopyright (c)
1991-1996 Silicon Graphics, Inc."


png.h:#define PNG_HEADER_VERSION_STRING 
    " libpng version 1.2.27 - April 29, 2008n"
   We made sigs for bzip2, libtiff <= 3.9.2,
    and libpng.

   Scanned Debian and Fedora Linux.

   Found 5 vulnerable packages.

   Firefox embeds libpng, has had vulnerable
    windows of 3+ months.
   Scale of the problem
    ◦ 10,000+ packages in Linux distributions.
    ◦ Debian manually track 420 embedded packages.
    ◦ Other distributions don‟t track at all.
   Automation
    ◦ Manual tracking is a time consuming and
      challenging task.
    ◦ A need to automatically identify embedded
      packages.
   What bugs could we find automatically?
   We define the problem.

   We propose algorithms to identify embedded
    packages.

   We propose algorithms to infer outstanding
    vulnerabilities.

   We implement a complete system
    ◦ Results are useful and being used by vendors.
    ◦ Identifies previously unknown vulnerabilities.
   Areas
    ◦ Plagiarism Detection
    ◦ Code Clone Detection

   Approaches
    ◦   Text streams
    ◦   Tokens
    ◦   Abstract Syntax Trees
    ◦   Program Dependence Graphs
1.   Determine if package A is embedded in
     package B.

2.   Find clusters of packages that share code.

3.   Infer vulnerabilities using advisories and
     embedded package relationships.
1.       If a source package has the other package‟s
         filenames as a subset, it is embedded.

2.       Packages that share files are related. A graph
         of relationships has related packages as
         cliques.

3.       Vulnerabilities
     ◦    Packages that embed clones inherit their vulns.
     ◦    Packages that share clones share vulns.
     ◦    Equivalent packages between distros share vulns.
   Use source packages.

   Filenames in source tend to be the same
    between software versions.

   Filenames are a feature.

   Ignore frequently used filenames, e.g.
    Makefile, README etc.
expat-2.0.1/lib     tla-1.3.5+dfsg/src/expat/lib/
amigaconfig.h
ascii.h             ascii.h
asciitab.h          asciitab.h
expat.dsp           expat.dsp
expat_external.h    expat_external.h
expat.h             expat.h
expat_static.dsp    expat_static.dsp
expatw.dsp          expatw.dsp
expatw_static.dsp   expatw_static.dsp
iasciitab.h         iasciitab.h
internal.h          internal.h
latin1tab.h         latin1tab.h
libexpat.def        libexpat.def
libexpatw.def       libexpatw.def
macconfig.h         macconfig.h
Makefile.MPW        Makefile.MPW
nametab.h           nametab.h
utf8tab.h           utf8tab.h
winconfig.h         winconfig.h
xmlparse.c          xmlparse.c
xmlrole.c           xmlrole.c
xmlrole.h           xmlrole.h
xmltok.c            xmltok.c
xmltok.h            xmltok.h
xmltok_impl.c       xmltok_impl.c
xmltok_impl.h       xmltok_impl.h
xmltok_ns.c         xmltok_ns.c
   Treat source tree (filenames) of package as
    set.
   Package A is embedded in package B
    ◦ If majority of set A is a subset of set B

    ◦ Set A is embedded in set B if    A       B
                                                   t
                                           B
1.   Match file names.

2.   Then, prune files using fuzzy hashing.

      If content‟s fuzzy hashes are similar, and packages
       share files, then two packages are related.

      We use ssdeep to do the fuzzy hashing.
   Package A and package B related if:
    ◦ If two packages share at least x number of files with
      similar content.
   Draw an undirected graph
    ◦ Node is a package.
    ◦ Edge between packages if they are related.
   A clique is a complete subgraph with edges
    between all nodes.



   Cliques in graph identify that code is shared.

   Maximal cliques identify the largest sets of
    packages that share the same code.

   That is, they all embed the same code.
   Finding maximal cliques in a graph is NP.

   Hard to approximate.

   Heuristics make it practical.

   We use a tool called CFinder.
   If package A is embedded in package B
   Then
    ◦ B inherits A‟s vulnerabilities
   So
    ◦ Foreach vuln v in A
      If v not in B
          Report B as potentially vulnerable to v




                                Firefox Vulnerabilities
                                                          libpng Vulnerabilities
   If 80% of related packages are vulnerable to
    X.
    ◦ Then remaining 20% probably also vulnerable.
   But two packages have different CVEs for
    vulns.
    ◦ Solution: If two vulns appear with 3 months of each
      other, then treat them as the same.
                                           Clone Vulnerabilities




                                   Package A             Package B
                                  Vulnerabilities       Vulnerabilities
1.   If package A in Linux distribution Da is vuln.

2.   And there exists package B in distribution
     Db

3.   And B is a cross distro package to A.

4.   Then package B is vuln.
   Set similarity of filenames again.


   One similarity measure is Jaccard Index.

                                   A   B
   Set A is similar to set B if           t
                                   A   B
   1-J(A,B) is metric which allows for faster than
    exhaustive similarity searches of a database.
   Implemented a complete system.

   6,000 LOC C++/Python/Shell scripting.

   4,000 LOC Java visualization and navigation.
   Is it a good feature?
   National Vulnerability Database (NVD)
    references vulnerable filenames.
           Summary:      Off-by-one     error    in    the
           __opiereadrec function in readrec.c in
           libopie in OPIE 2.4.1-test1 and earlier, as used
           on FreeBSD 6.4 through 8.1-PRERELEASE and
           other platforms, allows remote attackers to
           cause a denial of service (daemon crash) or
           possibly execute arbitrary code via a long
           username, as demonstrated by a long USER
           command to the FreeBSD 8.0 ftpd.
1.    Scan NVD for .c and .cpp filenames.
2.    Scan Linux source for those files.
3.    If package doesn‟t report vuln (CVE), flag.

    We found 9 vulnerabilities.
    E.g., off-by-1 libpam-opie in FreeBSD
     vulnerable in Debian Linux.
Package             Embedded Package          Package           Embedded Package
OpenSceneGraph                  lib3ds              boson                  lib3ds
mrpt-opengl                     lib3ds              libopenscenegraph7     lib3ds
mingw32-OpenSceneGraph          lib3ds              libfreeimage           libpng
libtlen                         expat               libfreeimage           libtiff
centerim                        expat               libfreeimage           openexr
mcabber                         expat               r-base-core            libbz2
                                                    r-base-core-ra         libbz2
udunits2                        expat
                                                    lsb-rpm                libbz2
libnodeupdown-backend-ganglia   expat
                                                    criticalmass           libcurl
libwmf                          gd                  albert                 expat
kadu                            mimetex             mcabber                expat
cgit                            git                 centerim               expat
tkimg                           libpng              wengophone             gaim
tkimg                           libtiff             libpam-opie            libopie
ser                             php-Smarty          pysol-sound-server     libmikod
pgpoolAdmin                     php-Smarty          gnome-xcf-thumnailer   xcftool
sepostgresql                    postgresql          plt-scheme             libgd
   Security enhanced Postgres SQL in Fedora.

   A fork of a beta version of postgresql.

   Beta version had a post auth TCL code
    execution bug.
   Did a one time scan of Fedora and Debian

   Found 1 unreported vulnerability in Debian‟s
    gnucash package.

   Needs to be repeated at regular intervals to
    find more vulns.
   Fedora Linux now using our embedded
    packages results for a database.

   Debian Linux gave us SVN write access to
    incorporate our results with their database.

   http://anonscm.debian.org/viewvc/secure-
    testing/data/embedded-code-copies?view=markup
   Only Fedora report „related‟ CVEs in an
    advisory.

   CVEs ideally would report canonical
    embedded upstream vulnerabilities.

   Could use CPE (a software package identifier)
    information for reporting.

   Useful for these types of analyses.
   Linking package names to CPEs is useful,
    e.g., to track equivalencies between distros.

   Debian check CPE related vulns against their
    own distro because they track.

   They find unfixed vulnerabilities.

   Other distros don‟t link CPEs to packages.
   Future plan to publish academic research
    papers.

   Integrate with distributions developer
    packaging.

   Binary analysis for Windows.
   Detected embedded packages and found
    vulnerabilities.

   Demonstrated results on Linux.

   Open source release.

   Benefits vendors and improves security.
   Complete but unbuildable system is open source.


   Research page http://www.foocodechu.com


   Book on “Software similarity and classification”
    available in 2012.


   Wiki on software similarity and classification
    http://www.foocodechu.com/wiki

More Related Content

What's hot (6)

MSR09.ppt
MSR09.pptMSR09.ppt
MSR09.ppt
 
Future Programming Language
Future Programming LanguageFuture Programming Language
Future Programming Language
 
MARTINEZ KROMER RAWCooked
MARTINEZ KROMER RAWCookedMARTINEZ KROMER RAWCooked
MARTINEZ KROMER RAWCooked
 
Modular Pick and Place Simulator using ROS Framework
Modular Pick and Place Simulator using ROS FrameworkModular Pick and Place Simulator using ROS Framework
Modular Pick and Place Simulator using ROS Framework
 
ROS+GAZEBO
ROS+GAZEBOROS+GAZEBO
ROS+GAZEBO
 
FFMPEG and LibAV
FFMPEG and LibAVFFMPEG and LibAV
FFMPEG and LibAV
 

Similar to Automated Detection of Software Bugs and Vulnerabilities in Linux

Clonewise - Automatically Detecting Package Clones and Inferring Security Vu...
Clonewise  - Automatically Detecting Package Clones and Inferring Security Vu...Clonewise  - Automatically Detecting Package Clones and Inferring Security Vu...
Clonewise - Automatically Detecting Package Clones and Inferring Security Vu...Silvio Cesare
 
DEF CON 27 - DIMITRY SNEZHKOV - zombie ant farm practical tips
DEF CON 27 - DIMITRY SNEZHKOV - zombie ant farm practical tipsDEF CON 27 - DIMITRY SNEZHKOV - zombie ant farm practical tips
DEF CON 27 - DIMITRY SNEZHKOV - zombie ant farm practical tipsFelipe Prado
 
Simple Bugs and Vulnerabilities in Linux Distributions
Simple Bugs and Vulnerabilities in Linux DistributionsSimple Bugs and Vulnerabilities in Linux Distributions
Simple Bugs and Vulnerabilities in Linux DistributionsSilvio Cesare
 
LinuxCon Japan 2010 suzaki
LinuxCon Japan 2010 suzakiLinuxCon Japan 2010 suzaki
LinuxCon Japan 2010 suzakiKuniyasu Suzaki
 
SFScon19 - Paolo Boldi - Software Ecosystems as Networks the FASTEN project
SFScon19 - Paolo Boldi - Software Ecosystems as Networks the FASTEN projectSFScon19 - Paolo Boldi - Software Ecosystems as Networks the FASTEN project
SFScon19 - Paolo Boldi - Software Ecosystems as Networks the FASTEN projectSouth Tyrol Free Software Conference
 
Presentation of the FASTEN project, Conference SFScon, Bolzano, Italy
Presentation of the FASTEN project, Conference SFScon, Bolzano, Italy Presentation of the FASTEN project, Conference SFScon, Bolzano, Italy
Presentation of the FASTEN project, Conference SFScon, Bolzano, Italy Fasten Project
 
Through the firewall with miniCRAN
Through the firewall with miniCRANThrough the firewall with miniCRAN
Through the firewall with miniCRANRevolution Analytics
 
SFScon 2020 - Paolo Boldi - Software Ecosystems as Networks Advances on the F...
SFScon 2020 - Paolo Boldi - Software Ecosystems as Networks Advances on the F...SFScon 2020 - Paolo Boldi - Software Ecosystems as Networks Advances on the F...
SFScon 2020 - Paolo Boldi - Software Ecosystems as Networks Advances on the F...South Tyrol Free Software Conference
 
Advanced c programming in Linux
Advanced c programming in Linux Advanced c programming in Linux
Advanced c programming in Linux Mohammad Golyani
 
R Programming: Introduction To R Packages
R Programming: Introduction To R PackagesR Programming: Introduction To R Packages
R Programming: Introduction To R PackagesRsquared Academy
 
Hacking+linux+kernel
Hacking+linux+kernelHacking+linux+kernel
Hacking+linux+kernelrobertsong
 
maXbox Starter87
maXbox Starter87maXbox Starter87
maXbox Starter87Max Kleiner
 
VulnerableCode: Finding FOSS software vulnerabilities with FOSS tools
VulnerableCode: Finding FOSS software vulnerabilities with FOSS toolsVulnerableCode: Finding FOSS software vulnerabilities with FOSS tools
VulnerableCode: Finding FOSS software vulnerabilities with FOSS toolsMichael Herzog
 
FASTEN: Scaling static analyses to ecosystem, presented at FOSDEM 2020 in Bru...
FASTEN: Scaling static analyses to ecosystem, presented at FOSDEM 2020 in Bru...FASTEN: Scaling static analyses to ecosystem, presented at FOSDEM 2020 in Bru...
FASTEN: Scaling static analyses to ecosystem, presented at FOSDEM 2020 in Bru...Fasten Project
 
Spack - A Package Manager for HPC
Spack - A Package Manager for HPCSpack - A Package Manager for HPC
Spack - A Package Manager for HPCinside-BigData.com
 
[Defcon24] Introduction to the Witchcraft Compiler Collection
[Defcon24] Introduction to the Witchcraft Compiler Collection[Defcon24] Introduction to the Witchcraft Compiler Collection
[Defcon24] Introduction to the Witchcraft Compiler CollectionMoabi.com
 
Binary Packaging for HPC with Spack
Binary Packaging for HPC with SpackBinary Packaging for HPC with Spack
Binary Packaging for HPC with Spackinside-BigData.com
 
Securing your Container Environment with Open Source
Securing your Container Environment with Open SourceSecuring your Container Environment with Open Source
Securing your Container Environment with Open SourceMichael Ducy
 
MODERN MALWARE: OBFUSCATION AND EMULATION DEF CON CHINA 1.0 (2019)
MODERN MALWARE: OBFUSCATION AND EMULATION DEF CON CHINA 1.0 (2019)MODERN MALWARE: OBFUSCATION AND EMULATION DEF CON CHINA 1.0 (2019)
MODERN MALWARE: OBFUSCATION AND EMULATION DEF CON CHINA 1.0 (2019)Alexandre Borges
 

Similar to Automated Detection of Software Bugs and Vulnerabilities in Linux (20)

Clonewise - Automatically Detecting Package Clones and Inferring Security Vu...
Clonewise  - Automatically Detecting Package Clones and Inferring Security Vu...Clonewise  - Automatically Detecting Package Clones and Inferring Security Vu...
Clonewise - Automatically Detecting Package Clones and Inferring Security Vu...
 
DEF CON 27 - DIMITRY SNEZHKOV - zombie ant farm practical tips
DEF CON 27 - DIMITRY SNEZHKOV - zombie ant farm practical tipsDEF CON 27 - DIMITRY SNEZHKOV - zombie ant farm practical tips
DEF CON 27 - DIMITRY SNEZHKOV - zombie ant farm practical tips
 
Simple Bugs and Vulnerabilities in Linux Distributions
Simple Bugs and Vulnerabilities in Linux DistributionsSimple Bugs and Vulnerabilities in Linux Distributions
Simple Bugs and Vulnerabilities in Linux Distributions
 
LinuxCon Japan 2010 suzaki
LinuxCon Japan 2010 suzakiLinuxCon Japan 2010 suzaki
LinuxCon Japan 2010 suzaki
 
SFScon19 - Paolo Boldi - Software Ecosystems as Networks the FASTEN project
SFScon19 - Paolo Boldi - Software Ecosystems as Networks the FASTEN projectSFScon19 - Paolo Boldi - Software Ecosystems as Networks the FASTEN project
SFScon19 - Paolo Boldi - Software Ecosystems as Networks the FASTEN project
 
Presentation of the FASTEN project, Conference SFScon, Bolzano, Italy
Presentation of the FASTEN project, Conference SFScon, Bolzano, Italy Presentation of the FASTEN project, Conference SFScon, Bolzano, Italy
Presentation of the FASTEN project, Conference SFScon, Bolzano, Italy
 
Through the firewall with miniCRAN
Through the firewall with miniCRANThrough the firewall with miniCRAN
Through the firewall with miniCRAN
 
SFScon 2020 - Paolo Boldi - Software Ecosystems as Networks Advances on the F...
SFScon 2020 - Paolo Boldi - Software Ecosystems as Networks Advances on the F...SFScon 2020 - Paolo Boldi - Software Ecosystems as Networks Advances on the F...
SFScon 2020 - Paolo Boldi - Software Ecosystems as Networks Advances on the F...
 
Advanced c programming in Linux
Advanced c programming in Linux Advanced c programming in Linux
Advanced c programming in Linux
 
R Programming: Introduction To R Packages
R Programming: Introduction To R PackagesR Programming: Introduction To R Packages
R Programming: Introduction To R Packages
 
Hacking+linux+kernel
Hacking+linux+kernelHacking+linux+kernel
Hacking+linux+kernel
 
maXbox Starter87
maXbox Starter87maXbox Starter87
maXbox Starter87
 
VulnerableCode: Finding FOSS software vulnerabilities with FOSS tools
VulnerableCode: Finding FOSS software vulnerabilities with FOSS toolsVulnerableCode: Finding FOSS software vulnerabilities with FOSS tools
VulnerableCode: Finding FOSS software vulnerabilities with FOSS tools
 
FASTEN: Scaling static analyses to ecosystem, presented at FOSDEM 2020 in Bru...
FASTEN: Scaling static analyses to ecosystem, presented at FOSDEM 2020 in Bru...FASTEN: Scaling static analyses to ecosystem, presented at FOSDEM 2020 in Bru...
FASTEN: Scaling static analyses to ecosystem, presented at FOSDEM 2020 in Bru...
 
Spack - A Package Manager for HPC
Spack - A Package Manager for HPCSpack - A Package Manager for HPC
Spack - A Package Manager for HPC
 
[Defcon24] Introduction to the Witchcraft Compiler Collection
[Defcon24] Introduction to the Witchcraft Compiler Collection[Defcon24] Introduction to the Witchcraft Compiler Collection
[Defcon24] Introduction to the Witchcraft Compiler Collection
 
Binary Packaging for HPC with Spack
Binary Packaging for HPC with SpackBinary Packaging for HPC with Spack
Binary Packaging for HPC with Spack
 
Securing your Container Environment with Open Source
Securing your Container Environment with Open SourceSecuring your Container Environment with Open Source
Securing your Container Environment with Open Source
 
MODERN MALWARE: OBFUSCATION AND EMULATION DEF CON CHINA 1.0 (2019)
MODERN MALWARE: OBFUSCATION AND EMULATION DEF CON CHINA 1.0 (2019)MODERN MALWARE: OBFUSCATION AND EMULATION DEF CON CHINA 1.0 (2019)
MODERN MALWARE: OBFUSCATION AND EMULATION DEF CON CHINA 1.0 (2019)
 
NPM ecosystem threats
NPM ecosystem threatsNPM ecosystem threats
NPM ecosystem threats
 

More from Silvio Cesare

A BEGINNER’S JOURNEY INTO THE WORLD OF HARDWARE HACKING
A BEGINNER’S JOURNEY INTO THE WORLD OF HARDWARE HACKINGA BEGINNER’S JOURNEY INTO THE WORLD OF HARDWARE HACKING
A BEGINNER’S JOURNEY INTO THE WORLD OF HARDWARE HACKINGSilvio Cesare
 
A WHIRLWIND TOUR OF ACADEMIC TECHNIQUES FOR REAL-WORLD SECURITY RESEARCHERS
A WHIRLWIND TOUR OF ACADEMIC TECHNIQUES FOR REAL-WORLD SECURITY RESEARCHERSA WHIRLWIND TOUR OF ACADEMIC TECHNIQUES FOR REAL-WORLD SECURITY RESEARCHERS
A WHIRLWIND TOUR OF ACADEMIC TECHNIQUES FOR REAL-WORLD SECURITY RESEARCHERSSilvio Cesare
 
Simseer.com - Malware Similarity and Clustering Made Easy
Simseer.com - Malware Similarity and Clustering Made EasySimseer.com - Malware Similarity and Clustering Made Easy
Simseer.com - Malware Similarity and Clustering Made EasySilvio Cesare
 
Simseer and Bugwise - Web Services for Binary-level Software Similarity and D...
Simseer and Bugwise - Web Services for Binary-level Software Similarity and D...Simseer and Bugwise - Web Services for Binary-level Software Similarity and D...
Simseer and Bugwise - Web Services for Binary-level Software Similarity and D...Silvio Cesare
 
FooCodeChu - Services for Software Analysis, Malware Detection, and Vulnerabi...
FooCodeChu - Services for Software Analysis, Malware Detection, and Vulnerabi...FooCodeChu - Services for Software Analysis, Malware Detection, and Vulnerabi...
FooCodeChu - Services for Software Analysis, Malware Detection, and Vulnerabi...Silvio Cesare
 
Detecting Bugs in Binaries Using Decompilation and Data Flow Analysis
Detecting Bugs in Binaries Using Decompilation and Data Flow AnalysisDetecting Bugs in Binaries Using Decompilation and Data Flow Analysis
Detecting Bugs in Binaries Using Decompilation and Data Flow AnalysisSilvio Cesare
 
Wire - A Formal Intermediate Language for Binary Analysis
Wire - A Formal Intermediate Language for Binary AnalysisWire - A Formal Intermediate Language for Binary Analysis
Wire - A Formal Intermediate Language for Binary AnalysisSilvio Cesare
 
Effective flowgraph-based malware variant detection
Effective flowgraph-based malware variant detectionEffective flowgraph-based malware variant detection
Effective flowgraph-based malware variant detectionSilvio Cesare
 
Simseer - A Software Similarity Web Service
Simseer - A Software Similarity Web ServiceSimseer - A Software Similarity Web Service
Simseer - A Software Similarity Web ServiceSilvio Cesare
 
Faster, More Effective Flowgraph-based Malware Classification
Faster, More Effective Flowgraph-based Malware ClassificationFaster, More Effective Flowgraph-based Malware Classification
Faster, More Effective Flowgraph-based Malware ClassificationSilvio Cesare
 
Malware Variant Detection Using Similarity Search over Sets of Control Flow G...
Malware Variant Detection Using Similarity Search over Sets of Control Flow G...Malware Variant Detection Using Similarity Search over Sets of Control Flow G...
Malware Variant Detection Using Similarity Search over Sets of Control Flow G...Silvio Cesare
 
Fast Automated Unpacking and Classification of Malware
Fast Automated Unpacking and Classification of MalwareFast Automated Unpacking and Classification of Malware
Fast Automated Unpacking and Classification of MalwareSilvio Cesare
 
Malware Classification Using Structured Control Flow
Malware Classification Using Structured Control FlowMalware Classification Using Structured Control Flow
Malware Classification Using Structured Control FlowSilvio Cesare
 
A Fast Flowgraph Based Classification System for Packed and Polymorphic Malwa...
A Fast Flowgraph Based Classification System for Packed and Polymorphic Malwa...A Fast Flowgraph Based Classification System for Packed and Polymorphic Malwa...
A Fast Flowgraph Based Classification System for Packed and Polymorphic Malwa...Silvio Cesare
 
Security Applications For Emulation
Security Applications For EmulationSecurity Applications For Emulation
Security Applications For EmulationSilvio Cesare
 
Auditing the Opensource Kernels
Auditing the Opensource KernelsAuditing the Opensource Kernels
Auditing the Opensource KernelsSilvio Cesare
 

More from Silvio Cesare (16)

A BEGINNER’S JOURNEY INTO THE WORLD OF HARDWARE HACKING
A BEGINNER’S JOURNEY INTO THE WORLD OF HARDWARE HACKINGA BEGINNER’S JOURNEY INTO THE WORLD OF HARDWARE HACKING
A BEGINNER’S JOURNEY INTO THE WORLD OF HARDWARE HACKING
 
A WHIRLWIND TOUR OF ACADEMIC TECHNIQUES FOR REAL-WORLD SECURITY RESEARCHERS
A WHIRLWIND TOUR OF ACADEMIC TECHNIQUES FOR REAL-WORLD SECURITY RESEARCHERSA WHIRLWIND TOUR OF ACADEMIC TECHNIQUES FOR REAL-WORLD SECURITY RESEARCHERS
A WHIRLWIND TOUR OF ACADEMIC TECHNIQUES FOR REAL-WORLD SECURITY RESEARCHERS
 
Simseer.com - Malware Similarity and Clustering Made Easy
Simseer.com - Malware Similarity and Clustering Made EasySimseer.com - Malware Similarity and Clustering Made Easy
Simseer.com - Malware Similarity and Clustering Made Easy
 
Simseer and Bugwise - Web Services for Binary-level Software Similarity and D...
Simseer and Bugwise - Web Services for Binary-level Software Similarity and D...Simseer and Bugwise - Web Services for Binary-level Software Similarity and D...
Simseer and Bugwise - Web Services for Binary-level Software Similarity and D...
 
FooCodeChu - Services for Software Analysis, Malware Detection, and Vulnerabi...
FooCodeChu - Services for Software Analysis, Malware Detection, and Vulnerabi...FooCodeChu - Services for Software Analysis, Malware Detection, and Vulnerabi...
FooCodeChu - Services for Software Analysis, Malware Detection, and Vulnerabi...
 
Detecting Bugs in Binaries Using Decompilation and Data Flow Analysis
Detecting Bugs in Binaries Using Decompilation and Data Flow AnalysisDetecting Bugs in Binaries Using Decompilation and Data Flow Analysis
Detecting Bugs in Binaries Using Decompilation and Data Flow Analysis
 
Wire - A Formal Intermediate Language for Binary Analysis
Wire - A Formal Intermediate Language for Binary AnalysisWire - A Formal Intermediate Language for Binary Analysis
Wire - A Formal Intermediate Language for Binary Analysis
 
Effective flowgraph-based malware variant detection
Effective flowgraph-based malware variant detectionEffective flowgraph-based malware variant detection
Effective flowgraph-based malware variant detection
 
Simseer - A Software Similarity Web Service
Simseer - A Software Similarity Web ServiceSimseer - A Software Similarity Web Service
Simseer - A Software Similarity Web Service
 
Faster, More Effective Flowgraph-based Malware Classification
Faster, More Effective Flowgraph-based Malware ClassificationFaster, More Effective Flowgraph-based Malware Classification
Faster, More Effective Flowgraph-based Malware Classification
 
Malware Variant Detection Using Similarity Search over Sets of Control Flow G...
Malware Variant Detection Using Similarity Search over Sets of Control Flow G...Malware Variant Detection Using Similarity Search over Sets of Control Flow G...
Malware Variant Detection Using Similarity Search over Sets of Control Flow G...
 
Fast Automated Unpacking and Classification of Malware
Fast Automated Unpacking and Classification of MalwareFast Automated Unpacking and Classification of Malware
Fast Automated Unpacking and Classification of Malware
 
Malware Classification Using Structured Control Flow
Malware Classification Using Structured Control FlowMalware Classification Using Structured Control Flow
Malware Classification Using Structured Control Flow
 
A Fast Flowgraph Based Classification System for Packed and Polymorphic Malwa...
A Fast Flowgraph Based Classification System for Packed and Polymorphic Malwa...A Fast Flowgraph Based Classification System for Packed and Polymorphic Malwa...
A Fast Flowgraph Based Classification System for Packed and Polymorphic Malwa...
 
Security Applications For Emulation
Security Applications For EmulationSecurity Applications For Emulation
Security Applications For Emulation
 
Auditing the Opensource Kernels
Auditing the Opensource KernelsAuditing the Opensource Kernels
Auditing the Opensource Kernels
 

Recently uploaded

What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 

Recently uploaded (20)

What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 

Automated Detection of Software Bugs and Vulnerabilities in Linux

  • 1. Silvio Cesare Deakin University <silvio.cesare@gmail.com>
  • 2. PhD student at Deakin University.  Research ◦ Malware classification using static analysis ◦ Bug and vulnerability detection  Presented at Blackhat, Cansecwest, Ruxcon.  This presentation is some of my research.
  • 3. Combine decompilation with static analysis for bug finding.  Abstract Interpretation.  Has found bugs and vulns in Linux binaries.  Plan to submit research papers for publication.  Under active development.
  • 4. Introduction  Problem Statement and Our Approach  Embedded Package Detection  Related Packages Detection  Vulnerability Detection from Embedded Clones  Cross Distribution Vulnerabilities  Evaluation and Discussion  Availability, Future Work and Conclusion
  • 5.
  • 6. Software defects are major cause of internet insecurity.  Detecting software defects before the bad guys improves security.  Incorporating detection early in QA makes software more secure from the beginning.  Automated detection an important research area.
  • 7. Theorem Proving {P}S{Q}, {Q}T {R} ◦ Axiomatic semantics {P}S ; T {R} ◦ Hoare logic etc  Model Checking   Static analysis ◦ Abstract interpretation etc 
  • 8. Developers may “embed” or “clone” code from 3rd party projects. ◦ Statically link against external library. ◦ Maintain an internal copy of a library‟s source. ◦ Fork a copy of a library‟s source. ◦ E.g., compression libraries, image processing libraries, parsers.
  • 9. Linux package policies generally disallow.  Why? ◦ 2+ versions of library need to be maintained. ◦ Bug fixes must be manually incorporated. ◦ Old embedded libraries often insecure.
  • 10. E.g., zlib vulnerability in 2005 ◦ Uncertainty of which Linux packages embed zlib. ◦ Manual signatures generated to identify zlib. ◦ Scan of Debian Linux package repository. ◦ Many vulnerable packages.  More recently, libtiff 3.9.4 in April 2011. ◦ How many packages are still vulnerable?
  • 11. Sigs based on version strings embedded in libraries.  E.g. bzlib_private.h:#define BZ_VERSION "1.0.5, 10-Dec-2007" tiffvers.h:#define TIFFLIB_VERSION_STR "LIBTIFF, Version 3.8.2nCopyright (c) 1988-1996 Sam LefflernCopyright (c) 1991-1996 Silicon Graphics, Inc." png.h:#define PNG_HEADER_VERSION_STRING " libpng version 1.2.27 - April 29, 2008n"
  • 12. We made sigs for bzip2, libtiff <= 3.9.2, and libpng.  Scanned Debian and Fedora Linux.  Found 5 vulnerable packages.  Firefox embeds libpng, has had vulnerable windows of 3+ months.
  • 13. Scale of the problem ◦ 10,000+ packages in Linux distributions. ◦ Debian manually track 420 embedded packages. ◦ Other distributions don‟t track at all.  Automation ◦ Manual tracking is a time consuming and challenging task. ◦ A need to automatically identify embedded packages.  What bugs could we find automatically?
  • 14. We define the problem.  We propose algorithms to identify embedded packages.  We propose algorithms to infer outstanding vulnerabilities.  We implement a complete system ◦ Results are useful and being used by vendors. ◦ Identifies previously unknown vulnerabilities.
  • 15. Areas ◦ Plagiarism Detection ◦ Code Clone Detection  Approaches ◦ Text streams ◦ Tokens ◦ Abstract Syntax Trees ◦ Program Dependence Graphs
  • 16.
  • 17. 1. Determine if package A is embedded in package B. 2. Find clusters of packages that share code. 3. Infer vulnerabilities using advisories and embedded package relationships.
  • 18. 1. If a source package has the other package‟s filenames as a subset, it is embedded. 2. Packages that share files are related. A graph of relationships has related packages as cliques. 3. Vulnerabilities ◦ Packages that embed clones inherit their vulns. ◦ Packages that share clones share vulns. ◦ Equivalent packages between distros share vulns.
  • 19.
  • 20. Use source packages.  Filenames in source tend to be the same between software versions.  Filenames are a feature.  Ignore frequently used filenames, e.g. Makefile, README etc.
  • 21. expat-2.0.1/lib tla-1.3.5+dfsg/src/expat/lib/ amigaconfig.h ascii.h ascii.h asciitab.h asciitab.h expat.dsp expat.dsp expat_external.h expat_external.h expat.h expat.h expat_static.dsp expat_static.dsp expatw.dsp expatw.dsp expatw_static.dsp expatw_static.dsp iasciitab.h iasciitab.h internal.h internal.h latin1tab.h latin1tab.h libexpat.def libexpat.def libexpatw.def libexpatw.def macconfig.h macconfig.h Makefile.MPW Makefile.MPW nametab.h nametab.h utf8tab.h utf8tab.h winconfig.h winconfig.h xmlparse.c xmlparse.c xmlrole.c xmlrole.c xmlrole.h xmlrole.h xmltok.c xmltok.c xmltok.h xmltok.h xmltok_impl.c xmltok_impl.c xmltok_impl.h xmltok_impl.h xmltok_ns.c xmltok_ns.c
  • 22. Treat source tree (filenames) of package as set.  Package A is embedded in package B ◦ If majority of set A is a subset of set B ◦ Set A is embedded in set B if A B t B
  • 23.
  • 24. 1. Match file names. 2. Then, prune files using fuzzy hashing.  If content‟s fuzzy hashes are similar, and packages share files, then two packages are related.  We use ssdeep to do the fuzzy hashing.
  • 25. Package A and package B related if: ◦ If two packages share at least x number of files with similar content.  Draw an undirected graph ◦ Node is a package. ◦ Edge between packages if they are related.
  • 26.
  • 27. A clique is a complete subgraph with edges between all nodes.  Cliques in graph identify that code is shared.  Maximal cliques identify the largest sets of packages that share the same code.  That is, they all embed the same code.
  • 28. Finding maximal cliques in a graph is NP.  Hard to approximate.  Heuristics make it practical.  We use a tool called CFinder.
  • 29.
  • 30. If package A is embedded in package B  Then ◦ B inherits A‟s vulnerabilities  So ◦ Foreach vuln v in A  If v not in B  Report B as potentially vulnerable to v Firefox Vulnerabilities libpng Vulnerabilities
  • 31. If 80% of related packages are vulnerable to X. ◦ Then remaining 20% probably also vulnerable.  But two packages have different CVEs for vulns. ◦ Solution: If two vulns appear with 3 months of each other, then treat them as the same. Clone Vulnerabilities Package A Package B Vulnerabilities Vulnerabilities
  • 32.
  • 33. 1. If package A in Linux distribution Da is vuln. 2. And there exists package B in distribution Db 3. And B is a cross distro package to A. 4. Then package B is vuln.
  • 34. Set similarity of filenames again.  One similarity measure is Jaccard Index. A B  Set A is similar to set B if t A B  1-J(A,B) is metric which allows for faster than exhaustive similarity searches of a database.
  • 35.
  • 36. Implemented a complete system.  6,000 LOC C++/Python/Shell scripting.  4,000 LOC Java visualization and navigation.
  • 37. Is it a good feature?  National Vulnerability Database (NVD) references vulnerable filenames. Summary: Off-by-one error in the __opiereadrec function in readrec.c in libopie in OPIE 2.4.1-test1 and earlier, as used on FreeBSD 6.4 through 8.1-PRERELEASE and other platforms, allows remote attackers to cause a denial of service (daemon crash) or possibly execute arbitrary code via a long username, as demonstrated by a long USER command to the FreeBSD 8.0 ftpd.
  • 38. 1. Scan NVD for .c and .cpp filenames. 2. Scan Linux source for those files. 3. If package doesn‟t report vuln (CVE), flag.  We found 9 vulnerabilities.  E.g., off-by-1 libpam-opie in FreeBSD vulnerable in Debian Linux.
  • 39. Package Embedded Package Package Embedded Package OpenSceneGraph lib3ds boson lib3ds mrpt-opengl lib3ds libopenscenegraph7 lib3ds mingw32-OpenSceneGraph lib3ds libfreeimage libpng libtlen expat libfreeimage libtiff centerim expat libfreeimage openexr mcabber expat r-base-core libbz2 r-base-core-ra libbz2 udunits2 expat lsb-rpm libbz2 libnodeupdown-backend-ganglia expat criticalmass libcurl libwmf gd albert expat kadu mimetex mcabber expat cgit git centerim expat tkimg libpng wengophone gaim tkimg libtiff libpam-opie libopie ser php-Smarty pysol-sound-server libmikod pgpoolAdmin php-Smarty gnome-xcf-thumnailer xcftool sepostgresql postgresql plt-scheme libgd
  • 40. Security enhanced Postgres SQL in Fedora.  A fork of a beta version of postgresql.  Beta version had a post auth TCL code execution bug.
  • 41. Did a one time scan of Fedora and Debian  Found 1 unreported vulnerability in Debian‟s gnucash package.  Needs to be repeated at regular intervals to find more vulns.
  • 42. Fedora Linux now using our embedded packages results for a database.  Debian Linux gave us SVN write access to incorporate our results with their database.  http://anonscm.debian.org/viewvc/secure- testing/data/embedded-code-copies?view=markup
  • 43. Only Fedora report „related‟ CVEs in an advisory.  CVEs ideally would report canonical embedded upstream vulnerabilities.  Could use CPE (a software package identifier) information for reporting.  Useful for these types of analyses.
  • 44. Linking package names to CPEs is useful, e.g., to track equivalencies between distros.  Debian check CPE related vulns against their own distro because they track.  They find unfixed vulnerabilities.  Other distros don‟t link CPEs to packages.
  • 45.
  • 46. Future plan to publish academic research papers.  Integrate with distributions developer packaging.  Binary analysis for Windows.
  • 47. Detected embedded packages and found vulnerabilities.  Demonstrated results on Linux.  Open source release.  Benefits vendors and improves security.
  • 48. Complete but unbuildable system is open source.  Research page http://www.foocodechu.com  Book on “Software similarity and classification” available in 2012.  Wiki on software similarity and classification http://www.foocodechu.com/wiki