This document discusses computer system security and various types of cyber attacks. It begins by defining computer security and explaining the components of a computer system that need protection, such as hardware, firmware and software. It then describes different types of cyber attacks including web-based attacks like SQL injection, session hijacking and phishing. It also discusses system-based attacks like viruses, worms and Trojans. The document explains control hijacking attacks, defenses against them using techniques like ASLR, and runtime defenses such as stack canaries. It provides examples of advanced attacks like return-oriented programming and heap spray attacks.