IP Library › Granted Patent US 11,275,676
Granted Patent B2
US 11,275,676 · App. 16/849,127 · Granted Mar 15, 2022

Constraint guided hybrid fuzzing test system for application programs

Inventor: Peng Li (Sunnyvale, CA)
Assignee: BAIDU USA LLC
G06F11/3688G06F11/3608G06F11/3684G06F11/3692G06F21/14
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,275,676
App. No.
16/849,127
Granted
Mar 15, 2022
Kind
B2
Abstract

Embodiments disclose a system/method for constraint-guided hybrid fuzzing. According to one embodiment, a system performs a grey box fuzzing for a program code, where the performing mutates an initial seed input to generate a first set of seed inputs. The system performs a concolic execution for the program code using the first set of seed inputs to generate a second set of seed inputs. The system determines constraint information associated with the second set of seed inputs by analyzing the concolic execution. The system performs one or more modified grey box fuzzing based on the second set of seed inputs bounded to the constraint information. That way the bounded portion of the second set of seed inputs are not mutated by the grey box fuzzing.

Claims (34)

1. A computer-implemented method for fuzz testing, the method comprising:

performing a grey box fuzzing for a program code, wherein the performing mutates an initial seed input to generate a first set of seed inputs;

performing a concolic execution for the program code using the first set of seed inputs to generate a second set of seed inputs;

determining constraint information associated with the second set of seed inputs by analyzing the concolic execution; and

performing one or more modified grey box fuzzing based on the second set of seed inputs bounded to the constraint information, wherein the one or more modified grey box fuzzing causes at least a portion of a seed input corresponding to the constraint information to be immutable while the rest of the seed input are mutable so subsequent mutations only mutate mutable portions.

2. The method of claim 1 , wherein the modified grey box fuzzing is a constraint-bounded grey box fuzzing where seed inputs for the constraint-bounded grey box fuzzing are bounded to the constraint information.

3. The method of claim 2 , wherein the constraint information includes immutable constraints.

4. The method of claim 1 , wherein performing one or more modified grey box fuzzing based on the second set of seed inputs bounded to the constraint information comprises mutating the seed inputs of the second set bounded to the constraint information to generate additional seed inputs.

5. The method of claim 4 , wherein the additional seed inputs are fed back as inputs to the concolic execution, wherein the concolic execution and the one or more modified grey box fuzzing are performed consecutively.

6. The method of claim 1 , further comprising generating a first and a second binary executable for the program code, wherein the grey box fuzzing or the one or more modified grey box fuzzing is performed on the first binary executable.

7. The method of claim 6 , wherein performing the concolic execution on the program code comprises performing the concolic execution on the first or the second binary executable.

8. A non-transitory machine-readable medium having instructions stored therein, which when executed by a processor, cause the processor to perform operations, the operations comprising:

performing a grey box fuzzing for a program code, wherein the performing mutates an initial seed input to generate a first set of seed inputs;

performing a concolic execution for the program code using the first set of seed inputs to generate a second set of seed inputs;

determining constraint information associated with the second set of seed inputs by analyzing the concolic execution; and

performing one or more modified grey box fuzzing based on the second set of seed inputs bounded to the constraint information, wherein the one or more modified grey box fuzzing causes at least a portion of a seed input corresponding to the constraint information to be immutable while the rest of the seed input are mutable so subsequent mutations only mutate mutable portions.

9. The non-transitory machine-readable medium of claim 8 , wherein the modified grey box fuzzing is a constraint-bounded grey box fuzzing where seed inputs for the constraint-bounded grey box fuzzing are bounded to the constraint information.

10. The non-transitory machine-readable medium of claim 9 , wherein the constraint information includes immutable constraints.

11. The non-transitory machine-readable medium of claim 8 , wherein performing one or more modified grey box fuzzing based on the second set of seed inputs bounded to the constraint information comprises mutating the seed inputs of the second set bounded to the constraint information to generate additional seed inputs.

12. The non-transitory machine-readable medium of claim 11 , wherein the additional seed inputs are fed back as inputs to the concolic execution, wherein the concolic execution and the one or more modified grey box fuzzing are performed consecutively.

13. The non-transitory machine-readable medium of claim 8 , wherein the operations further comprise generating a first and a second binary executable for the program code, wherein the grey box fuzzing or the one or more modified grey box fuzzing is performed on the first binary executable.

14. The non-transitory machine-readable medium of claim 13 , wherein performing the concolic execution on the program code comprises performing the concolic execution on the first or the second binary executable.

15. A data processing system, comprising:

a processor; and

a memory coupled to the processor to store instructions, which when executed by the processor, cause the processor to perform operations, the operations including performing a grey box fuzzing for a program code, wherein the performing mutates an initial seed input to generate a first set of seed inputs;

performing a concolic execution for the program code using the first set of seed inputs to generate a second set of seed inputs;

determining constraint information associated with the second set of seed inputs by analyzing the concolic execution; and

performing one or more modified grey box fuzzing based on the second set of seed inputs bounded to the constraint information, wherein the one or more modified grey box fuzzing causes at least a portion of a seed input corresponding to the constraint information to be immutable while the rest of the seed input are mutable so subsequent mutations only mutate mutable portions.

16. The system of claim 15 , wherein the modified grey box fuzzing is a constraint-bounded grey box fuzzing where seed inputs for the constraint-bounded grey box fuzzing are bounded to the constraint information.

17. The system of claim 16 , wherein the constraint information includes immutable constraints.

18. The system of claim 15 , wherein performing one or more modified grey box fuzzing based on the second set of seed inputs bounded to the constraint information comprises mutating the seed inputs of the second set bounded to the constraint information to generate additional seed inputs.

19. The system of claim 18 , wherein the additional seed inputs are fed back as inputs to the concolic execution, wherein the concolic execution and the one or more modified grey box fuzzing are performed consecutively.

20. The system of claim 15 , wherein the operations further comprise generating a first and a second binary executable for the program code, wherein the grey box fuzzing or the one or more modified grey box fuzzing is performed on the first binary executable.

21. The system of claim 20 , wherein performing the concolic execution on the program code comprises performing the concolic execution on the first or the second binary executable.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2020
From: LI, PENG
To: BAIDU USA LLC
Reel/Frame 052403/0229 →
Continuity (1)
Related Publication 20210326246A1 · Oct 21, 2021