Welcome to my site. I use this site as a repository to dump knowledge I come across, generally in the areas of software engineering and information technologies, but may include other miscellaneous tidbits. Most of the posts are written as notes for my personal reference.
if i.hear then
i.forget
if i.see then
i.remember
if i.do then
i.understand
SQL Injection = no sanitizing Cross-site scripting = inject javascript via uri https://example.com/test.php?color=green&background=</style><script>alert(String.fromCharCode(88,83,83))</script> Path Traversal = Allowing for path or directory traversal on your server is an amazingly bad idea. You would be allowing people to list the folders on your server and to navigate from folder to folder. This allows attackers to go […]
Introduction to Software Security What is computer security? Systems may fail for many reasons Reliability deals with accidental failures Usability deals with problems arising from operating mistakes by users Security deals with intentional failures created by intelligent parties Computing in the presence of an adversary Examples of Software Problems Therac-25 medical accelerator Killed […]
Computer System Components Hardware Provides basic computer resources (CPU, memory, I/O devics) Maybe addons Possible firmware Operating System Controls hardware and various apps Application Programs Users What is an Operating System Program that acts as an intermediary between user and computer hardware Efficiency – better utilization of resources Convenience – ease of use […]
Basic, Fundamental Problem Client → Server How do you prove that you are who you claim to be? Users and servers prove themselves in different ways Different attack models Different assumptions about what they can feasibly do Authentication Determination of identity, usually based on a combination of Something the person has (smart card, […]
Malware Malicious code that is stored on and runs on a victim’s system How does it get to run? Attacks a user – or network-facing vulnerable service (often using techniques we’ve just learned!) Backdoor: Added by a malicious developer Social engineering: Trick the user into running/clicking/installing Trojan horse: Offer a good service, add in the […]
Covert Channels Covert means of transferring data Channel that transfers information in a way that violates a security policy An insider process leaks information to an outsider process not normally allowed to access that information Often divided into two (three) main categories: Storage Communication done in some memory space Timing Delay or some action in […]
Access Control Provides the essential services of authorization, identification and authentication, access approval, and accountability authorization specifies what a subject can do identification and authentication ensure that only legitimate subjects can log on to a system access approval grants access during operations, by association of users with the resources that they are allowed to access, […]
Review of different types of authentication attacks. This is examined through an example where user wants an application X to access their files on application Y and needs to delegate those permissions. Exposing Credentials Giving out your credentials is bad. Plain and simple. Minus the risk of exposure, having full credentials doesn’t allow for […]
The following are some notes taken during a lecture. Matrices: Overview Matrices are useful discrete structures that can be used in many ways. For example, they are used to: Describe certain types of functions known as linear transformations. Express which vertices of a graph are connected by edges. In Machine Learning, Data Mining, and Information […]
Cardinality Revisited Definition: The cardinality of a set A is equal to the cardinality of a set B, denoted |A| = |B|, if and only if there is a one-to-one correspondence (i.e., a bijection) from A to B. If there is a one-to-one function (i.e., an injection) from A to B, the cardinality of A […]