Coding in Security: An Overview

December 8, 2024

In cybersecurity, there’s an elephant in the room, and that is programming. I think often people who are for and against coding are talking past each other. Traditionally formal education was not required and lot of professionals in the field came up from the help desk through analyst roles. A common myth, brought on in no small part by so-called cybersecurity boot camps, is that anyone can transition from their dead end job into cybersecurity with nothing more than a Security+ cert and a couple of classes. The reality is that cybersecurity is not an entry-level position and as a novice you will be competing with people who are more experienced than you for “entry-level” cybersecurity jobs. So what does this mean for you? Well, honestly does any of that really matter? What matters is that you develop in-demand skills and be able to demonstrate those skills. That’s not to say there aren’t job requirements that you just don’t meet, but if 2/3 of the job postings you see require Python maybe consider learning Python.

Personally, I don’t really like to write code, I can do it, but one of my goals is to improve my programming ability. I didn’t get into it young because my family didn’t own a computer, and as a result I got into tech at a much later date. I basically learned it for the reason I listed above. I saw that it was in job postings. I’ll probably be documenting a fair bit of my process learning more about programming here.

If you’re an analyst I would 100% recommend that you understand how to use PowerShell or Bash to automate tasks or enhance your visibility of system status. It should be noted that this doesn’t mean having an encyclopedic knowledge of PowerShell and Bash scripting, but having a good foundation to build off of and the curiosity to investigate the possibilities is essential. Actually, as I’m writing I’m thinking of the next post where I’ll break down analysts versus engineers because there is a difference in mindset that needs to be shared.

If you’re a security engineer, I would expect you to have basic programming skills. Depending on your specific position this could range anywhere from writing simple network tools to developing custom applications from my research on the field. For my own part, I can code a bit, my job doesn’t explicitly require it but I do write simple console applications for my specific needs. This is in addition to the extensive Bash and PowerShell scripting that I do. A skill that I thought I had time to learn was authenticating via OAuth 2.0, but one of my first projects ended up needing it. I guess the lesson is don’t worry about specifics learn the basics and be prepared to learn more.

Actually, more on that. Scripting using the built-in console tools is absolutely required in this field. What is unfair is that different things like network switches, Solarwinds, etc., have their own flavors of the standard tech stack. I have an okay foundation of SQL for example, but Solarwinds uses SWQL. In my limited experience, most of these just differ by a little bit, but they can also be entire subjects to learn by themselves.

Just know that things that you know may not have knowledge that directly applies to a specific piece of technology, but having a foundational understanding of something that you can translate to something new is completely acceptable, and in my experience it is generally understood in the field that this is a challenge for us individual contributors.

Leave a comment