CyberLite Issue 14 Explainer

Explainers Apr 20, 2021

API: An application programming interface is a way for programs to easily send data and offer services to other programs in a structured way. For example Twitter has an API that allows users to do lots of Twitter functions like reading and posting tweets. This allows anyone to create a program that interacts with Twitter without needing to understand how Twitter works. Twitter can also be safe in the knowledge nobody's going to start digging through their servers as it knows exactly how any external programs will use the API given they designed it.

What do API's look like? Here's an API from Coindesk that you can use to get the current bitcoin price: https://api.coindesk.com/v1/bpi/currentprice.json. If you send an http request to this address or open it with a web browser you'll receive back the bitcoin price displayed in a format known as json that's easily readable by a computer program.

VPN: A virtual private network gives you online privacy and anonymity by creating a private network from a public Internet connection. VPNs mask your Internet protocol (IP) address so your online actions are virtually untraceable by your internet service provider.

Zero-Day: Vulnerabilities that are unknown to the parties responsible for patching or fixing them.

Buffer Overflow: A buffer is a memory storage region that holds data that is being used temporarily. A buffer overflow occurs when the volume of data exceeds the capacity of the buffer. This can cause processes to crash and behave in unanticipated ways.

In some cases it can be exploited by attackers to execute their own code. When an attacker overflows a buffer by inserting too much data it will start to overwrite the data that is next to the buffer - if this memory contains code that is being executed by the processor then overwriting it will cause the attacker’s code to be executed instead. This type of vulnerability occurs most prominently in the C programming language. When a developer creates a buffer but doesn’t set “bounds” or checks on what can be inserted into it.

Web Shell: A piece of code that enables a server to be controlled/administrated remotely. A user with access to a web shell for a server can send any commands they want to the server. Web shells are commonly accessed via a web browser.

Third-party Cookies: Third-party cookies are those not created by the domain your currently visiting. So if you’re visiting amazon.com and a cookie from facebook.com is running then the Facebook cookie is known as a third-party cookie. They’re primarily used by advertisers to track what websites you’re using and serve you targetted ads next time you visit their own site.

Use after Free: Pointers are used in the C family of programming languages to point to a specific location in computer memory. After you’ve finished using a section of memory it’s important to “free” that memory so that it can be used again later in the program or by other programs. However, you also have to “clear” the pointer so that it isn’t pointing to the memory that you’ve now freed. The reason for this is that if that section of memory is used for something else suddenly that pointer that you haven’t cleared will point to something completely different. This could cause your program to crash as a value that your program can’t handle is inserted, or more dangerously, an attacker could insert malicious code into the memory location that an uncleared pointer points to.

Oliver Kitchin

Cybersecurity consultant. Passionate about people, technology and the great outdoors. He/Him.

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.