I've been studying the cyber security field with great interest. I understand how networking can help cyber security but I am not sure how advanced programming knowledge can help fight cyber crime or why certain cyber security experts need programming knowledge. In my experience so far with penetration testing tools and networks i came across some need for it, such as bash shell scripts and a bit of python but not enough to become an expert. In what ways can programming help fight cyber crime? Hope the question is not too general.
Many security "holes" are the result of programming mistakes. Programmers necessarily make assumptions about how their programs will be used and sometimes these assumptions are incorrect.
A good example is Bobby Tables. At one time it was considered a common practice to accept input from a user, concatenate that with commands to a database, then execute the commands. This has now been shown to be harmful.
Without skill in programming a security expert will be severely limited in his/her ability to recognize new vulnerabilities, devise counter measures, or even successfully test a system.