Designing a Secure Cocoa App
by Graham Lee on Jul 08, 2009
- 1,395 views
A presentation I delivered to NSConference 2009, on security principles for Cocoa developers to follow.
A presentation I delivered to NSConference 2009, on security principles for Cocoa developers to follow.
Accessibility
Categories
Tags
Upload Details
Uploaded via SlideShare as Apple Keynote
Usage Rights
© All Rights Reserved
Statistics
- Favorites
- 0
- Downloads
- 22
- Comments
- 0
- Embed Views
- Views on SlideShare
- 1,370
- Total Views
- 1,395
Questions to ask are of risk: what could go wrong, how likely is it and what would the impact be? Can I live with that? How much am I (or my customers) willing to pay to reduce that risk?
My “Pythagoras theorem”, i.e. my fundamental rule of software security is to think of it like real-world security. Securing an office building by locking _everyone_ out would stop burglars getting in, but it would stop the workers getting in too. Ultimately the user has to be confident that they can get their work done without untoward problems, just as good real-world security provides assurance that law-abiders can go about their business.
Example: CanSecWest held the pwn2own competition, where competitors were encouraged to compromise various computers in order to win that computer as a prize. In that arena, the attacker is motivated by personal gain, there is little to no chance of recrimination so they’re likely to take huge risks and it’s also probable that they’d be security experts. That’s quite an edge case though.
Example: CanSecWest held the pwn2own competition, where competitors were encouraged to compromise various computers in order to win that computer as a prize. In that arena, the attacker is motivated by personal gain, there is little to no chance of recrimination so they’re likely to take huge risks and it’s also probable that they’d be security experts. That’s quite an edge case though.
Example: CanSecWest held the pwn2own competition, where competitors were encouraged to compromise various computers in order to win that computer as a prize. In that arena, the attacker is motivated by personal gain, there is little to no chance of recrimination so they’re likely to take huge risks and it’s also probable that they’d be security experts. That’s quite an edge case though.
Example: CanSecWest held the pwn2own competition, where competitors were encouraged to compromise various computers in order to win that computer as a prize. In that arena, the attacker is motivated by personal gain, there is little to no chance of recrimination so they’re likely to take huge risks and it’s also probable that they’d be security experts. That’s quite an edge case though.
Example: CanSecWest held the pwn2own competition, where competitors were encouraged to compromise various computers in order to win that computer as a prize. In that arena, the attacker is motivated by personal gain, there is little to no chance of recrimination so they’re likely to take huge risks and it’s also probable that they’d be security experts. That’s quite an edge case though.
Example: CanSecWest held the pwn2own competition, where competitors were encouraged to compromise various computers in order to win that computer as a prize. In that arena, the attacker is motivated by personal gain, there is little to no chance of recrimination so they’re likely to take huge risks and it’s also probable that they’d be security experts. That’s quite an edge case though.
The asset at risk could also be something which the app has access to but doesn’t actually “own”, such as the network connectivity or CPU time which are often the targets of zombie networks.
The asset at risk could also be something which the app has access to but doesn’t actually “own”, such as the network connectivity or CPU time which are often the targets of zombie networks.
The asset at risk could also be something which the app has access to but doesn’t actually “own”, such as the network connectivity or CPU time which are often the targets of zombie networks.
The asset at risk could also be something which the app has access to but doesn’t actually “own”, such as the network connectivity or CPU time which are often the targets of zombie networks.
The asset at risk could also be something which the app has access to but doesn’t actually “own”, such as the network connectivity or CPU time which are often the targets of zombie networks.
The asset at risk could also be something which the app has access to but doesn’t actually “own”, such as the network connectivity or CPU time which are often the targets of zombie networks.
* how much damage would be done (put another way: how much would it cost) if this asset were to be read by someone who shouldn’t be able to?
* how much damage would be done if the asset were modified in an unexpected fashion?
* how much damage would be done if the asset disappeared, or could not be used for the legitimate use cases?
* how much damage would be done (put another way: how much would it cost) if this asset were to be read by someone who shouldn’t be able to?
* how much damage would be done if the asset were modified in an unexpected fashion?
* how much damage would be done if the asset disappeared, or could not be used for the legitimate use cases?
* how much damage would be done (put another way: how much would it cost) if this asset were to be read by someone who shouldn’t be able to?
* how much damage would be done if the asset were modified in an unexpected fashion?
* how much damage would be done if the asset disappeared, or could not be used for the legitimate use cases?
* how much damage would be done (put another way: how much would it cost) if this asset were to be read by someone who shouldn’t be able to?
* how much damage would be done if the asset were modified in an unexpected fashion?
* how much damage would be done if the asset disappeared, or could not be used for the legitimate use cases?
Of course, it’s easier to change the permissions or ACLs on a file than it is to protect it against misuse - think carefully about what classes of user will be interacting with your app, and what they should be able to change or read.
Of course, it’s easier to change the permissions or ACLs on a file than it is to protect it against misuse - think carefully about what classes of user will be interacting with your app, and what they should be able to change or read.