240 likes | 402 Views
Security. David D. Clark July, 2012. Aspects of security. Attacks on the network Routing, supply chain Attacks on communication Confidentiality and integrity addressed with encryption. Availability?? The central objective of networks. What else? (Traffic analysis…) Attacks on the host
E N D
Security David D. Clark July, 2012
Aspects of security • Attacks on the network • Routing, supply chain • Attacks on communication • Confidentiality and integrity addressed with encryption. • Availability?? The central objective of networks. • What else? (Traffic analysis…) • Attacks on the host • Infiltration (can lead to most anything) • So either prevent infiltration or limit its consequences. • Denial of service • A special case of availability. • Information assurance. • Sign the information, not the connection. • National security
Attacks on the network itself • Today, routing is most obvious example. • Get back to DNS later… • Regions issuing rogue routing assertions. • E.g. Pakistan and false routes to Youtube. • Seems like a technical problem with a technical solution. • All routing assertions should be signed. • NOT a technical problem—no root of trust. • International tiff…
Some attacks on communication • Deep packet inspection • Should we call this an “attack”? • Re-writing of parts of content. • Changing embedded URLs in web pages. • Byzantine packet handling. • Re-routing, adding and dropping. • Man in the middle attacks. • DNS corruption (pharming) • No architectural support today to mitigate this. • Design is redundant, but not in face of malice.
A simple approach • Deal with confidentiality and integrity (spying and changing) by using end-to-end encryption. • Raises a number of subsidiary issues, but a good place to start. • The classic taxonomy misses a major issue. • Talking to actors you don’t trust. • The norm today—email, web sites, etc. • Encrypted communication with an actor you don’t trust is like meeting a stranger in a dark alley. • No witnesses. • What does that leave? • Availability. What else? • If “all” a network does is deliver packets, then availability is the crux of the requirement. • Why do we lack a theory of availability?
Availability • First, as much as possible, make attacks on network and communication into failures of availability. • Limit the range of attacks and responses. • Think: what is excluded…? • Mechanism: wrap an end-to-end confirmation of identity around a connection. • Cleanly makes many attacks on/by the network into an availability problem. • Second, develop a theory of availability. • At a high level: • All critical resources must be supported in a rich, heterogeneous, diverse form. • It must be possible to detect and distinguish (to some degree) failures. • The point of detection must be able to invoke different resources. • In general, only the end-points can detect failures.
End-to-end checks • To turn misdirection attacks into “availability problems”, need a means to confirm with whom you are communicating. • An issue of identity and shared information. • What notion(s) of identity will be suitable? (See below.) • “You” means the end-nodes, but not just the human. If the end-node can be trusted, software can help. • Corrupted end-nodes are a central issue here. • Can a trusted helper node help? • To detect Byzantine attacks, fault detection must be integrated into the carriage of data. • Security and management are entangled.
Security mechanisms • Security mechanisms do not ensure correct successful operation. • DNSSEC • SSL/TLS • IPsec • SBGP and its kin • Self-signed identifiers (public key hashes, etc) • They only give a clean indication of failure. • What we wanted was success. • Successful operation depends on the ability to select and use trustworthy components.
Traffic analysis • Recording addresses, not content. • Who talks to whom? • Incredibly powerful tool for intelligence gathering. • Hardly need “wiretap”, which is the term for getting the content. • Encryption does not help. • This is “security” vs. “national security”. • Counter-measure: encapsulate to hide address.
Example of encapsulation • Onion routing (TOR). • See www.torproject.org. • Pick a sequence of presumably trustworthy TOR nodes from around the globe. • In turn, encrypt your packet (addresses and all) using the public key of each node. • Each node peels off its layer of encryption (like peeling an onion—get it?) and forwards it. • Who uses TOR today? • Bad guys. Dissidents. Spies.
Protecting the end-node • Node security • Classic end-nodes will always be insecure, but we can build fixed-function nodes that are pretty good. • Can we build secure virtual machines? • What parts do we have to work with? • Applications define the range of patterns of communication that can be utilized, and what can be seen/modified in the communication. • Elements in the network can examine what is revealed. • End-node controls the initiation of connections and what is sent. • Encryption blunts the power of examination/modification. • Network controls topology and completion of connections. • A tussle over availability. • Can enforce communication patterns.
The design challenge • What trusted components, combined with application modes that exploit them, can protect untrustworthy end-nodes from attack (in particular infiltration, sabotage and exfiltration)? • The network can enforce the needed patterns of communication. • For example, OpenFlow. • Network elements can examine what the application chooses to reveal. • Trusted and untrusted… • Application design patterns and building blocks should be part of the future network.
Prevent infiltration • Require identity as part of session initiation. • Use agent to validate incoming service requests. • “Firewall of the future” • Allow end-node (or trusted helper) to open ports dynamically. • Eliminate well-known ports. • Make port scans less effective. • Inspect incoming data for “bad stuff”. • Represents a loss of privacy, so use selectively. • Host-centric actions. • Virtual machines for risky actions. • Outsource risky apps to different machine.
Prevent exfiltration • If a machine is penetrated, limit the bad consequences. • Could be use as zombie, deletion or corruption of data, or theft. • (This uncertainty is a major policy issue today.) • Theft is a major problem today. • The problem with controlling theft: • How can an external agent tell if the transfer is legitimate?
Case studies • Three stories: • Foreign hackers penetrate a system and send information back to their country. • We try to block it. • Foreign citizens download public information from a U.S. web site. • Their country tries to block it. • Users download pirated material from foreign site. • The user’s country tries to block it. • What is the difference? • We relabeled the actors. • In one case, had to penetrate the sender to implement the pattern. • In one case, the sender’s regime tries to block, in others the receiver’s regime tries to block.
The design challenge, part two • How can we design applications and patterns of communication that can distinguish between these three stories, even if the sending machine has been penetrated?
Distinguish the stories • In the first story: • Require that data being sent get an export permit (from a trusted machine), that the user must concur, and that we get a strong identity of the receiver before issuing the permit. • In the second story: • Put the data into an open publish-subscribe or peer-to-peer distribution system. • Another example of the theory of availability. • But protect the privacy of the requester… • But how to tell the second and third apart… • Balance the interests… • Don’t forget other stories, such as unwelcome sending. • These solutions involve application design.
Certain attacks can be degraded • For attacks that are economically motivated, it may be possible to render them no longer cost-effective. • Hint: • Attacks against business--high value. • Attacks against home computer--low value. • Requires collective action. • Users cannot do this on their own.
Information assurance • Today we validate information by validating the source. • Make a secure connection. • Most servers today do not support this... • Once you have information (e.g. a web page), no way to confirm it is legitimate. • If information is signed, then it can be authenticated independent of how it is distributed. • But how do we know to trust the signature?
Remaining topics • DDoS • National security • I ignore these due lack of time…
Summary • Good security is a balance among competing considerations. • It is not a problem that we can or should try to solve (totally) “in the network”. • Many problems arise (and must be handled) in the applications. • Encouraging the design of secure applications is central to a more secure future.
Aspects of security • Attacks on the network • Routing, supply chain • Attacks on communication • Confidentiality and integrity addressed with encryption. • Availability?? The central objective of networks. • What else? • Attacks on the host • Infiltration (can lead to most anything) • So either prevent infiltration or limit its consequences. • Denial of service • A special case of availability. • Information assurance. • Sign the information, not the connection. • National security
Who is responsible? • Attacks on the network. • The network. • Attacks on communication. • Confidentiality and integrity can be delegated to end-nodes. • But remember communication among untrusting parties. • Availability is a shared responsibility. • Mechanisms lead to clean failures, end-nodes (applications) must recover. • Attacks on hosts. • Many parties have a role: end-node, trusted components, network, application designer, user. • DDoS. • A contested space. • Information assurance • Sign the content, but how to trust the signature? • National security.
Issues to consider • Security • Availability and resilience • Better management • Economic viability • Meet society’s needs • Support for tomorrow’s computing • Exploit tomorrow’s networking • Support tomorrow’s applications • Fit for purpose (it works…)