Come join CACI's exciting and cutting-edge Cyber Capabilities and Development Division as we push the envelope to enable our nation's cyberspace operations! As a Software Reverse Engineer you will perform various development, testing, and reverse engineering activities. You will work closely with cyber developers, researchers, and customers to solve hardware problems and reverse engineer complex systems.
You'll Bring These Qualifications:
Bachelor of Science degree in Computer Science, Software Engineering, Computer Engineering, or Electrical Engineering and at least five (5) years of related experience. Preferred: Master of Science degree in Computer Science, Software Engineering, Computer Engineering, or Electrical Engineering and at least three (3) years of related experience.
Experience developing exploits, standalone PoCs, and/or Metasploit modules. Ideally, you should have a body of work you can point to that showcases your vuln research and exploit development interests. Demonstrate how you discover the clues, connect dots and spot patterns!
Solid understanding of modern security mitigations and how to bypass them (e.g., stack cookies, SafeSEH, DEP, ASLR, CFG, etc.), as well as common detection capabilities and evasion techniques.
Knowledge of Metasploit Framework. Understand what it’s for and how to use it, and have opinions on developing module content that makes it better. The emphasis is on exploits, but scanner, post, payload, and evasion modules are also in scope.
Working knowledge of different OS and network structures and communications protocols; experience with different classes of coding flaws and offensive primitives (e.g. integer/stack/heap overflows, use-after-free bugs, info leaks).
Strong experience with vulnerability analysis, fuzzing, reverse engineering, and advanced exploitation techniques; hands-on familiarity with tools such as WinDBG, GDB, Wireshark, IDA Pro, Ghidra, Binary Ninja, etc.
Draft and deliver technical reports related to the scope, nature, and characteristics of the assessed software/firmware to both technical and non-technical audiences; articulating mission impacts.
Background demonstrating a thorough understanding of compiler specifics, operating system concepts, security models, and the causes of most vulnerabilities and how to exploit them.
Programming knowledge/background in C, C++, Python, and ARM/x86/x64 Assembly.