1

As a developer of multiple standalone apps (Web-/Native apps) I am wondering, what things I should keep in mind / what are typical approaches of a blackhat (besides of these scriptkiddies checking for sql injection etc.) to identify such vulnerabilities.

During my web research I only found very broad information and no detail on how a blackhat actually finds a zero day vulnerability.

Regardless network/phishing/social engineering vulnerabilities.

I'd like to know what is the approach to find a zero day exploit/vulnerability and how can I, as a developer, make my software more consistent?

  • Seems like you are asking generally about: 1) exploiting software; 2) building secure software. On these topics, I like Gary McGraw's textbooks. For example: 1) "Exploiting Software: How to Break Code"; 2) "Software Security: Building Security In." He has other books as well, e.g., regarding online games, etc. – hft May 10 '18 at 2:31
  • @hft this is not the essence of my questions, but also covers it somehow. I'd like to know the approaches blackhats are using to find such 0day exploits, imho I think I can prevent way better from attacks than just writing "safe" code – 0x2E5 May 10 '18 at 2:36
  • 2
    Blackhats often look for APIs that parse complex data or which deal with privileged actions, etc. and then either read the source code or disassembly for that component, or fuzz it. – forest May 10 '18 at 8:00
  • Typically, reverse engineering the binary and performing static analysis, checking for the use of vulnerable functions or just poorly-implemented logic. Fuzz testing and dynamic analysis tend to come next. – Henry F Oct 15 '18 at 2:26
1

I'd like to know what is the approach to find a zero day exploit/vulnerability and how can I, as a developer, make my software more consistent?

Learn and understand fuzzing techniques if your goal is to develop your skills in finding zero day vulnerabilities in your software (and other software)

From Wikipedia:

Fuzzing or fuzz testing is an automated software testing technique that involves providing invalid, unexpected, or random data as inputs to a computer program. The program is then monitored for exceptions such as crashes, or failing built-in code assertions or for finding potential memory leaks -https://en.wikipedia.org/wiki/Fuzzing

Metasploit Unleashed created an excellent starter tutorial on Fuzzing: Writing a Simple Fuzzer

Google Project Zero is known to conduct Fuzzing at scale (Maybe the entire Internet?) Learn more about their fuzzing approach here: Google Fuzzing at Scale

Remember to have fun, be safe, and always practice responsible disclosure.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.