PenTesting and security research resources for beginners

January 01, 2021

“The best computer scientists are lifelong learners”, this is a phrase my boss has repeated to me many times this academic year and it is something I agree with. So when I found myself with 3 weeks of vacation for our winter break I went searching for an area of computer science where I know I could improve that I needed to learn more about.

One of these areas is penetration testing/ethical hacking.

Pretext

During 2020 I was concluding my MSc, for my final project I built a web-based prototype for a live classroom quiz platform called QuizWig - open beta coming in 2021.

This was the first ever large scale project I had written with the MEVN stack (MongoDB, Express.js, Vue.js, Node.js) so a lot of the development process came with a learning curve. As the project progressed, I became more and more aware of the gaps in my knowledge relating to application security - especially for this new (to me) technology stack. This lead me to think, what pitfalls do I need to make myself aware of? What are the common attacks that can befall a system? How do hackers learn to hack?!

The last 3 weeks have given me a chance to begin to answer these questions.

What are the dangers?

First things first, it’s important to know what sort of attacks I was up against. OWASP - The Open Web Application Security Project is a non-profit foundation working to improve the security of web applications. Their role is to educate developers on how to keep applications secure make the web a safer place for everyone.

One of their flagship resources is their top 10 web application security risks which are as follows:

  1. Injection
  2. Broken Authentication
  3. Sensitive Data Exposure
  4. XML External Entities (XXE)
  5. Broken Access Control
  6. Security Misconfiguration
  7. Cross-Site Scripting (XSS)
  8. Insecure Deserialization
  9. Using Components with Known Vulnerabilities
  10. Insufficient Logging & Monitoring

As you can see, there are multiple avenues that attacks can employ against a system to try to gain unlawful access to your systems and data. So what is the best way to test an application for these sorts of vulnerabilities?

Attack is the best form of defense!

To keep out attackers you need to think and act like an attacker. To protect your applications from break-ins you need to try to break in…Learn the tricks, techniques, and tools that hackers regularly employ so you can employ them against your own systems and patch any issues as you find them. To be able to do this, you need to brush up on your knowledge of programming, Linux and cryptography. To get you started, here are some of the sites I’ve been using to guide me over the last few weeks.

Websites for learning hacking:

Final thoughts

There is a growing need for penetration testers and infosec experts. As the world is ever more inter-connected, it’s more and more important that computer scientists are aware of the steps required to keep their systems secure. It is reported that there is a global shortage of computer security experts which is part of the reason why platforms like PicoCTF were originally created.

The sooner you start exploring computer system security, the better prepared you will be to build robust, secure systems in the future.

« Accessibility testing with ChromeLens
1 to 10 - #100DaysOfCode »

Recent projects