170 likes | 312 Views
CS162 Discussion. Section 11. Administrivia. Project 4 Initial Design Due next Tuesday, April 29 at 11:59 pm Midterm 2 April 28 th 4-5:30 pm in 245 LKS and 100 GPB Lectures 13-24 Closed books and notes, no calculators One double-sided cheat sheet allowed
E N D
CS162 Discussion Section 11
Administrivia • Project 4 Initial Design • Due next Tuesday, April 29 at 11:59 pm • Midterm 2 • April 28th 4-5:30 pm in 245 LKS and 100 GPB • Lectures 13-24 • Closed books and notes, no calculators • One double-sided cheat sheet allowed • Review Session: Friday April 25th 4-6pm in LKS • Project 4 • Code still due Thursday, May 8th at 11:59 pm
Quiz True/False 1. AES (Advanced Encryption Standard) is an example of public key encryption. False 2. Asymmetric key encryption is the same speed as symmetric key encryption. False 3. A digital certificate ensures that the private key has a trusted authority confirming it. False 4. Two-Factor Authentication is used with passwords to ensure you are who you say you are. True 5. A worm replicates itself using a buffer overflow attack. True 6. A system is protected from a buffer overflow attack if they have a non-executable stack and heap. False 7. After the worm starts to spread, the function of infected hosts can be best represented in linear time. False Short Answer • What protocol does https use to ensure CIA? (SSL / TLS) • What is the security device whose goal is to prevent computers from outside your network gaining access to what is inside your network? Firewall
Security Requirements • Authentication • Ensures that a user is who is claiming to be • Data integrity • Ensure that data is not changed from source to destination or after being written on a storage device • Confidentiality • Ensures that data is read only by authorized users • Non-repudiation • Sender/client can’t later claim didn’t send/write data • Receiver/server can’t claim didn’t receive/write data
Securing Communication: Cryptography • Cryptography: communication in the presence of adversaries • Studied for thousands of years • See the Simon Singh’s The Code Book for an excellent, highly readable history • Central goal: confidentiality • How to encode information so that an adversary can’t extract it, but a friend can • General premise: there is a key, possession of which allows decoding, but without which decoding is infeasible • Thus, key must be kept secret and not guessable
Integrity: Cryptographic Hashes • Basic building block for integrity: cryptographic hashing • Associate hash with byte-stream, receiver verifies match • Assures data hasn’t been modified, either accidentally – or maliciously • Approach: • Sender computes a secure digest of message m using H(x) • H(x) is a publicly known hash function • Digest d = HMAC (K, m) = H (K | H (K | m)) • HMAC(K, m) is a hash-based message authentication function • Send digest d and message m to receiver • Upon receiving m and d, receiver uses shared secret key, K, to recompute HMAC(K, m) and see whether result agrees with d
Asymmetric Encryption (Public Key) • Idea: use two different keys, one to encrypt (e) and one to decrypt (d) • A key pair • Crucial property: knowing e does not give away d • Therefore e can be public: everyone knows it! • If Alice wants to send to Bob, she fetches Bob’s public key (say from Bob’s home page) and encrypts with it • Alice can’t decrypt what she’s sending to Bob … • … but then, neither can anyone else (except Bob)
Non-Repudiation: RSA Crypto & Signatures • Suppose Alice has published public key KE • If she wishes to prove who she is, she can send a message x encrypted with her private key KD (i.e., she sends E(x, KD)) • Anyone knowing Alice’s public key KE can recover x, verify that Alice must have sent the message • It provides a signature • Alice can’t deny it non-repudiation
Authentication: Passwords • Shared secret between two parties • Since only user knows password, someone types correct password must be user typing it • Very common technique • System must keep copy of secret to check against passwords • What if malicious user gains access to list of passwords? • Need to obscure information somehow • Mechanism: utilize a transformation that is difficult to reverse without the right key (e.g., encryption)
Host Compromise • One of earliest major Internet security incidents • Morris Worm (1988): compromised almost every BSD-derived machine on Internet • Today: estimated that a single worm could compromise 10M hosts in < 5 min using a zero-day exploit • Attacker gains control of a host • Reads data (e.g., passwords, credit card numbers, …) • Compromises another host • Launches denial-of-service attack on another host • Erases data • Encrypts data and demands a ransom • Cryptolocker virus (2013)
Buffer Overflow • Part of the request sent by the attacker too large to fit into buffer program uses to hold it • Spills over into memory beyond the buffer • Allows remote attacker to inject executable code void get_cookie(char *packet) { . . . (200 bytes of local vars) . . . munch(packet); . . . } void munch(char *packet) { int n; char cookie[512]; . . . code here computes offset of cookie in packet, stores it in n strcpy(cookie, &packet[n]); . . . }
Return-oriented Programming • Attacker can’t inject code anymore, but doesn’t need to! • Application and system libraries have all the code an attacker needs, sort of… • Look for useful fragments of code followed by a return instruction – these are called “gadgets” • Instead of injecting code, attacker injects arguments for and addresses of existing code fragments (gadget + args!) • Uses existing return call to runsequence of gadgets
Firewalls: Properties • Easier to deploy firewall than secure all internal hosts • Doesn’t prevent user exploitation/social networking attacks • Tradeoff between availability of services (firewall passes more ports on more machines) and security • If firewall is too restrictive, users will find way around it, thus compromising security • E.g., tunnel all services using port 80
Denial of Service • Huge problem in current Internet • Major sites attacked: Yahoo!, Amazon, eBay, CNN, Microsoft • 12,000 attacks on 2,000 domains in 1 week (2001) • Almost all attacks launched from compromised hosts • CyberBunker.com 300Gb/s DDoS attack against Spamhaus • Spring 2013: more than 600,000 packets/second! • 35 yr old Dutchman “S.K.” arrested in Spain on 4/26 • Was using van with “various antennas” as mobile office • General Form • Prevent legitimate users from gaining service by overloading or crashing a server • E.g., SYN attack
SYN Attack • Attacker: send at max rate TCP SYN with random spoofed source address to victim • Spoofing: use a different source IP address than own • Random spoofing allows one host to pretend to be many • Victim receives many SYN packets • Send SYN+ACK back to spoofed IP addresses • Holds some memory until 3-way handshake completes • Usually never, so victim times out after long period (e.g., 3 minutes)