Search This Blog

Thursday, February 3, 2022

Programming In Cybersecurity

 

In Cybersecurity, having a minimal amount of programming knowledge can be very beneficial and provide a more productive workflow. Just to clear the air a bit, hackers don't spend all their time within target networks unless they have to. They spend their time learning about new technologies implemented in most of our modern day infrastructures in order to be able to broaden their knowledge base. 

Hidden within dark web forums and underground hacking forums are various exploits (programs which take advantage of vulnerabilities in systems and software) being sold and these programs, also known as zero-day exploits, are exploits which take exploit vulnerabilities that white hats and security researchers have not yet uncovered within their systems and software. This goes further to raise conversation on the importance of programming when it comes to actually learning offensive security and becoming proficient in it.

The answer is YES. You need to be well aware of what you're working with. Aside from knowing the inner workings of networking, knowing programming can provide effective automation for repetitive tasks one can definitely stumble upon.

Consider the following:

You're researching and investigating for vulnerabilities inside an particular router. As we all know, routers are made as "default gateways" and provide the service of providing IP Addresses via DHCP to the different devices connected to it to access the internet. Within the router is an admin page which is necessary for administrative tasks such as changing the WIFI password to any of your choice, changing the access points name from the default name assigned by the manufacturer to any other name of your choice as well as data management. If you're familiar with configuring routers, you'll know that router manufacturers configure their admin panel to be hosted on HTTP (http://192.168.8.1/admin) for example.

HTTP has a better entry point into a server maliciously (aside from various other protocols so this will depend on what the routers' services are) so you fuzz and investigate on how data is handled on the server in order to find a misbehavior or a vulnerability to access the source code written in Javascript & PHP hosted on the server or potentially other useful data. Keyword: SOURCE CODE. Hackers, most of the time have to deal with reading and understanding code in order to find a way to bypass any security and finally find a way to exploit a vulnerability within the code itself. Suppose you don't find a vulnerability within the code and you decide to go deeper into your investigation. You decide to extract the firmware, which in essence is the code that lies deep within the router (firmware typically found as C programs), in order to find low level vulnerabilities such as a format string vulnerability or buffer overflow vulnerability. Suppose you've found one and now its time to program the exploit in programming languages such as python and ruby which are also scripting languages. YOU NEED PROGRAMMING. Not only for the exploit but to have a better understanding of the inner workings of the router in a low-level perspective. 

This is just an example and probably not well detailed but the underlying message is more important. Below are a culmination of benefits of knowing programming both in general and within security:

1. Improves problem-solving capabilities

2. Gives a deeper understanding of systems

3. Increases persistence

Conclusion

If one is completely starting with computer security, learning programming really isn't all that but as you go along, knowing programming at beginner level can at least propel one forward...as I've seen with my own experience over the years. You simply can't become effective in the cybersecurity without having programming as a skill, especially with the goal of being advanced in the skill. Besides just crafting exploits, it can automate network penetration testing as well as other tedious tasks. Taking time out to learn first of the OWASP Top 10 Vulnerabilities can help you learn programming and how to analyze it indirectly as constantly having a auto-didactic mindset will propel you to make your own findings on various programming issues online.



No comments:

Post a Comment