Most of us have heard the term "cyber-security" owing to it's growing mention in the everyday news. These days the terms like multifactor authentication,ransomware attacks, firewalls, password managers have become a common jargon among software developers and even the common man. For me, that is all I knew about cyber security.
But what exactly is cyber security? How can I be develop a software to prevent hacking? What do cyber security professionals work on? My curiosity towards this subject was recently satiated when I was introduced to the depth and breadth of cyber security while working as a Lead Instructor for NYU's "Computer Science for Cyber Security Program."(CS4CS)
The Wikipedia mentions cyber security as- "the body of technologies, processes, and practices designed to protect networks, computers, programs and data from attack, damage or unauthorized access."
To keep it simple I am here to give you a brief introduction to how you can learn and develop an aptitude for cyber security.
1. Learning programming is necessary. Most of the cyber security attacks happen by writing programs or modifying pre-existing programs which act like bugs. Without the knowledge of a programming language, you cannot write exploits(a program causing unexpected behavior in your program) and neither prevent the web sites from being attacked. In the CS4CS program, we started by teaching Python as it's an easy language to grasp owing its similarity to the English language.
2. Read about Encryption, Decryption, Ciphers- You should read the history to gain an interest in Cyber Security. This dates back to the origin of Cybersecurity in olden days when Julius Caeser would encrypt messages by shifting the letters by some places to the right or left to hide the actual message. To read more: https://en.wikipedia.org/wiki/Caesar_cipher#History_and_usage. There are different types of Ciphers you can read about like - Caeser, Substitution, RSA, One Time Pad, Steganography, Skytale, Morse Code, Vignere Cipher to name a few.
3. Capture the flag Challenges- This was the most interesting part about learning hands on cyber security. I love to solve the capture the flag challenges. They make you think about events as if you are a cyber police. Capture the flag is a series of problems and challenges you need to solve by coding, analyzing disk images, analyzing web pages, reading through files and emails, learning about Databases and topics like SQL injections and more. Some of the websites you could look at to solve these challenges and practice are as follows:
Don't worry if you get stuck in the middle or don't get it at the first time. I get stuck all the time. It can be frustrating at times but that's what is fun and interesting about these challenges. Remind yourself that you are the investigator of a case. Use google and stackoverflow.com to help you through the challenges.
4. Some resourceful links to help start your education about cyber security- I realized that to learn about something you need to start reading about it, find resources online for free and paid services also to give you insights into the terms and technology used in the world of cybersecurity.
5. You may also want to learn about a few terms I learnt about such as -
Cross-site scripting- XSS, SQL injection, Buffer Overflow, Stack Overflow,Cross-Site Request Forgery.
I am sharing some links which may be helpful for beginners.
Attending summer camps like the one organized by NYU - "Computer Science for Cyber Security Program" help students understand and relate to these ideas and know if they have an interest in the given area. Listening to tech-talks by Company CEO's, asking questions on Quora and Mogul shall help you learn and understand as well.
So, what are you waiting for? Dive into the world of Cyber Security today.
Also read : OWASP Top 10 Most Critical Web Application Security Risks
The pdf is available online.
I have been pursuing my dream to be one of the best computer engineers. I am interested in gaining an in-depth knowledge in the fields of Artificial Intelligence, Robotics, and Human Computer Interaction (HCI).I enjoy programming and believe that in solving problems daily, we can build the [...]