In this episode, we're going to cover the wonderful world of programming languages.
Now, I've got some really great news for you.
You do not need to be a programmer to pass the CFA exam.
However, you need to know the differences between each programming languages so that you can actually
pass the exam.
So even if you hate programming probably as much as I do, you're okay.
We're going to get through this together.
We're going to hit each of them side by side, one at a time, and we're going to go through them very
clearly and very concisely as we move through.
This exam requires you to understand the differences between the programming languages, but they don't
expect you to learn actual programming.
And this is a good thing, because if you're like me, you hate programming.
Programming languages are essential for customizing and identifying the different aspects within your
network.
From a automated perspective, we can use programming languages for basic scripting.
We can use them for automating different tasks.
We can actually go into the command line interface and change different aspects of our coding as we
move through.
Now, just because we can doesn't mean we always do.
And this is where understanding the programming perspective really comes into play.
Remember, Sisa is looking from a perspective that you understand programming, not that you actually
do the programming.
And this is good from a perspective as an analyst, because as an analyst, you need to understand that
if I've got a problem with a specific software or a web application, that you should understand the
basic principles to go to your developers and say, this isn't working and I need it to do this, I
would look into this specific library or this specific aspect of the program.
You should be able to identify the differences between XML and say, JSON, Python, PowerShell, and
shell Script and have semi-intelligent conversation with your peers when you're discussing programming
languages.
But again, you don't need to program to pass your Sisa exam.
I know this topic makes a lot of people nervous, especially in the IT when they have a background specifically
in it.
I'm telling you right off the bat, you do not need to know programming at an in-depth level to pass
the exam, but you do need to know the differences between the different programming languages as we
move through.
The next one I want to talk about is Extensible Markup Language, or XML.
Extensible Markup Language serves as a markup language for encoding documents in a format readable to
humans and machines like it's used in web development, particularly building in Soap or simple Object
Access Protocol.
Applications and XML documents are structured with elements enclosed in opening and closing tags, making
it easier to read.
This includes attributes which provide additional element information that you may see in the slide
that we provided you.
You can often find XML commonly utilized for exchanging threat intelligence information between various
security tools and platforms like our Siem.
For instance, the Structured Threat Information Expression or Sticks language is relevant representing
and sharing cyber threat intelligence and employs XML for data formatting.
Numerous security tools like Siems and threat information or intelligence platforms rely on XML to represent
an exchange to an intelligence data, and this facilitates a seamless integration of sharing across
diverse systems.
Next is JSON or JavaScript Object Notation.
Now, JSON is a little bit different from XML because it offers simplicity and adaptability, making
it more favored choice in various applications.
JSON encapsulates key value pairs and closes braces, which you can see on our screenshot here.
This provides us values depicted as strings, numbers, arrays, or objects.
JSON doesn't have a formal schema and is structured informally and governed by data models, specifically
with elements, types, and structures.
It plays a significant role in facilitating data exchange and storage across diverse systems and platforms.
Python is perhaps the most notable one that you'll find in cybersecurity.
It's highly versatile programming language, employs widely used for cybersecurity and scripting automation,
data analysis, and machine learning.
You should understand Python, insomuch that it goes through the processes of programming by providing
a very lightweight structure, meaning that it's easy to program in Python than it is, say, in Java
or C, or pretty much any other language out there.
Python finds extensible use in vulnerability scanning, malware analysis, network reconnaissance,
web application penetration testing, and, of course, data analysis.
It's rich for set for built in libraries like requests and beautiful shop facilitates automation and
data retrieval for diverse sources.
As a cyber security analyst, you should understand Python probably more in depth level than you understand
the other ones, and if you don't, I'd recommend taking a course on it when possible.
Python is somewhat easy to learn and provides us a really abundant use of different programming in a
language that is sometimes easier to use than a lot of the other programming that we see available.
Next, I want to talk about PowerShell.
This was developed by Microsoft as an object oriented scripting language designed for automating and
managing a windows environment.
We can see PowerShell not just on windows environment, but most notably in new Windows or Linux environments
as well as they start to move forward with the idea that PowerShell is something that we should see
or utilize on the world of cybersecurity.
PowerShell facilitates various tasks like system administration, network configuration, and task automation.
A key strength of PowerShell is the seamless integration with the windows operating system, allowing
for an interaction with the system components like the registry, file system, and network.
PowerShell scripts can also engage in Com objects or.
Net classes or even other PowerShell scripts, making it somewhat versatile for both administrators,
but attackers as well.
In the Unix or Linux environment, we often can see something called a shell script.
Now, shell scripting involves creating scripts using command line shells like bash, tailored for the
execution of the operating system.
These scripts are streamlined for repetitive tasks such as system maintenance, file manipulation,
and process control.
As you're reading through this slide, I want you to pay attention to the fact that the very top left
hand side you can see bin bash on there.
This is indicative of a Linux bash or shell script.
Don't worry, you might actually see a question on your CSA that makes you identify the type of programming
available.
And this aspect.
If you just look at the top left and you see bash, that's the answer.
It's shell scripting.
Finally there's regex or regular expressions.
This is common as they serve as a text processing and facilitating the search of specific patterns within
data sets like log files or network traffic.
We can use that to analyze efficiently and extract pertinent information ranging from IP addresses to
URLs, and they enable identification of potential security threats and incidents.
However, in practice, regex is often integrated with scripting languages like Python in order to automate
various text processing and analysis tasks.
This often enhances our operational efficiency and scalability within a cybersecurity environment.