Patents by Inventor David Brumley

David Brumley has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 9619375
    Abstract: An automatic software testing machine may be configured to provide an advanced symbolic execution approach to software testing that combines dynamic symbolic execution and static symbolic execution, leveraging the strengths of each and avoiding the vulnerabilities of each. One or more software testing machines within a software testing system may be configured to automatically and dynamically alternate between dynamic symbolic execution and static symbolic execution, based on partial control flow graphs of portions of the software code to be tested. In some example embodiments, a software testing machine begins with dynamic symbolic execution, but switches to static symbolic execution opportunistically. In static mode, instead of checking entire programs for verification, the software testing machine may only check one or more program fragments for testing purposes. Thus, the software testing machine may benefit from the strengths of both dynamic and static symbolic execution.
    Type: Grant
    Filed: May 21, 2015
    Date of Patent: April 11, 2017
    Assignee: Carnegie Mellon University
    Inventors: Thanassis Avgerinos, Alexandre Rebert, David Brumley
  • Patent number: 9542559
    Abstract: Systems and methods for performing hybrid symbolic execution to detect exploitable bugs in binary code are described. In some example embodiments, the systems and methods determine that resources associated with an execution client performing symbolic execution of a target program are below, at, or above a threshold performance level, generate checkpoints for active executing paths of the online symbolic execution, and cause the execution client to perform symbolic execution in response to the determination that the resources are at or above the threshold performance level.
    Type: Grant
    Filed: August 17, 2015
    Date of Patent: January 10, 2017
    Assignee: Carnegie Mellon University
    Inventors: David Brumley, Sang Kil Cha, Thanassis Avgerinos, Alexandre Rebert
  • Publication number: 20160196433
    Abstract: Systems and methods for performing hybrid symbolic execution to detect exploitable bugs in binary code are described. In some example embodiments, the systems and methods determine that resources associated with an execution client performing symbolic execution of a target program are below, at, or above a threshold performance level, generate checkpoints for active executing paths of the online symbolic execution, and cause the execution client to perform symbolic execution in response to the determination that the resources are at or above the threshold performance level.
    Type: Application
    Filed: August 17, 2015
    Publication date: July 7, 2016
    Inventors: David Brumley, Sang Kil Cha, Thanassis Avgerinos, Alexandre Rebert
  • Publication number: 20150339217
    Abstract: An automatic software testing machine may be configured to provide an advanced symbolic execution approach to software testing that combines dynamic symbolic execution and static symbolic execution, leveraging the strengths of each and avoiding the vulnerabilities of each. One or more software testing machines within a software testing system may be configured to automatically and dynamically alternate between dynamic symbolic execution and static symbolic execution, based on partial control flow graphs of portions of the software code to be tested. In some example embodiments, a software testing machine begins with dynamic symbolic execution, but switches to static symbolic execution opportunistically. In static mode, instead of checking entire programs for verification, the software testing machine may only check one or more program fragments for testing purposes. Thus, the software testing machine may benefit from the strengths of both dynamic and static symbolic execution.
    Type: Application
    Filed: May 21, 2015
    Publication date: November 26, 2015
    Inventors: Thanassis Avgerinos, Alexandre Rebert, David Brumley
  • Patent number: 9183396
    Abstract: Systems and methods for performing hybrid symbolic execution to detect exploitable bugs in binary code are described. In some example embodiments, the systems and methods determine that resources associated with an execution client performing symbolic execution of a target program are below, at, or above a threshold performance level, generate checkpoints for active executing paths of the online symbolic execution, and cause the execution client to perform symbolic execution in response to the determination that the resources are at or above the threshold performance level.
    Type: Grant
    Filed: May 21, 2013
    Date of Patent: November 10, 2015
    Assignee: Carnegie Mellon University
    Inventors: David Brumley, Sang Kil Cha, Thanassis Avgerinos, Alexandre Rebert
  • Patent number: 9135405
    Abstract: A system and method for automatically generating exploits, such as exploits for target code, is described. In some implementations, the system received binary code and/or source code of a software applications, finds one or more exploitable bugs within the software application, and automatically generates exploits for the exploitable bugs.
    Type: Grant
    Filed: May 25, 2012
    Date of Patent: September 15, 2015
    Assignee: Carnegie Mellon University
    Inventors: David Brumley, Sang Kil Cha, Thanassis Avgerinos
  • Publication number: 20130312103
    Abstract: Systems and methods for performing hybrid symbolic execution to detect exploitable bugs in binary code are described. In some example embodiments, the systems and methods determine that resources associated with an execution client performing symbolic execution of a target program are below, at, or above a threshold performance level, generate checkpoints for active executing paths of the online symbolic execution, and cause the execution client to perform symbolic execution in response to the determination that the resources are at or above the threshold performance level.
    Type: Application
    Filed: May 21, 2013
    Publication date: November 21, 2013
    Applicant: Carnegie Mellon University
    Inventors: David Brumley, Sang Kil Cha, Thanassis Avgerinos, Alexandre Rebert
  • Publication number: 20120317647
    Abstract: A system and method for automatically generating exploits, such as exploits for target code, is described. In some implementations, the system received binary code and/or source code of a software applications, finds one or more exploitable bugs within the software application, and automatically generates exploits for the exploitable bugs.
    Type: Application
    Filed: May 25, 2012
    Publication date: December 13, 2012
    Applicant: CARNEGIE MELLON UNIVERSITY
    Inventors: David Brumley, Sang Kil Cha, Thanassis Avgerinos
  • Publication number: 20070219982
    Abstract: Systems and methods for preparing electronic searches are disclosed. In situations involving large number of items for many models of products, searches can be burdensome to the database. Moreover, variations in user skills can make many search requests inefficient and even meaningless. In one embodiment, search requests from users are prepared at a web server so as to form a more focused and meaningful search query for the database. Because such computing resource investments can be made at one or more servers, burden of heavy search loads can be distributed to the servers from the database. Various techniques for forming search queries can include translating abbreviations, nomenclatures, and misspellings. Moreover, use of standardized words allows for more efficient searches. In one embodiment, large number of automobile parts can be searched efficiently by prioritized matching of vehicle model information and part information from a search request in forming the search query.
    Type: Application
    Filed: October 5, 2006
    Publication date: September 20, 2007
    Inventors: James Piper, David Brumley, Jason McNeeley, Clark Limbacher
  • Publication number: 20070112969
    Abstract: A generic application-level protocol analyzer (GAPA) is adaptable to model an application and its response to messages in different protocols, including multiple, layered protocols in a network context. One mode of a GAPA includes an analysis engine having a plurality of objects adaptable to model an application and its response to messages. The objects may include a session dispatching object, a state machine object, a message parsing object, a protocol layering object, and a handler object. The analysis engine may be used to evaluate real-time network streams or to evaluate recorded network traces. The GAPA is adapted to specific applications using a generic application-level protocol analyzer engine language (GAPAL). The GAPAL uses a high-level syntax similar to those in existing protocol specification descriptions. The GAPAL supports binary and text-based protocols. Using the GAPAL, objects are described without writing low-level code to model specific objects or specify message formats.
    Type: Application
    Filed: November 15, 2005
    Publication date: May 17, 2007
    Applicant: Microsoft Corporation
    Inventors: Jiahe Wang, Nikita Borisov, David Brumley
  • Publication number: 20050125513
    Abstract: A cache-based system management architecture named “the Collective” automates system management and supports mobile computing. The Collective manages systems by manipulating virtual appliances, each encapsulating a system state. A virtual appliance (VA) may comprise a virtual network of VAs. Distributed repositories separately storing the VAs and user data. Publishers create and maintain VAs. A user plugs a bootable portable storage device implementing a VA transceiver (VAT) into a host computer. The VAT, comprising a Manager, a Cache Client, and a virtual machine monitor (VMM), authenticates the user, retrieves a copy of the latest version of a subscribed VA from the appropriate network repository, obtains user data, and automatically backs up the user data over the network in the background while running the subscribed VA. Multiple VAs can be run at the same time. With the novel caching protocol and cache charging process, the Collective performs well and has numerous advantages.
    Type: Application
    Filed: December 8, 2004
    Publication date: June 9, 2005
    Inventors: Monica Sin-Ling Lam, Constantine Sapuntzakis, Ramesh Chandra, Nickolai Zeldovich, Mendel Rosenblum, James Chow, David Brumley
  • Patent number: D543986
    Type: Grant
    Filed: June 30, 2006
    Date of Patent: June 5, 2007
    Assignee: Microsoft Corporation
    Inventors: Emily Rimas-Ribikauskas, Christian Colando, Sears Young, Lisa Osse, Dustin Hubbard, David Brumley, Victor Blanco
  • Patent number: D543987
    Type: Grant
    Filed: June 30, 2006
    Date of Patent: June 5, 2007
    Assignee: Microsoft Corporation
    Inventors: Emily Rimas-Ribikauskas, Christian Colando, Sears Young, Lisa Osse, Dustin Hubbard, David Brumley, Victor Blanco
  • Patent number: D544492
    Type: Grant
    Filed: June 30, 2006
    Date of Patent: June 12, 2007
    Assignee: Microsoft Corporation
    Inventors: Emily Rimas-Ribikauskas, Christian Colando, Sears Young, Lisa Osse, Dustin Hubbard, David Brumley, Victor Blanco
  • Patent number: D548239
    Type: Grant
    Filed: June 30, 2006
    Date of Patent: August 7, 2007
    Assignee: Microsoft Corporation
    Inventors: Emily Rimas-Ribikauskas, Christian Colando, Sears Young, Lisa Osse, Dustin Hubbard, David Brumley, Victor Blanco