fred sam joe fred sam joe a brief history of
play

Fred Sam Joe Fred Sam Joe A BRIEF HISTORY OF COMMUNICATIONS - PowerPoint PPT Presentation

THERE AND BACK AGAIN BRIAN CHESS SEPTEMBER 2013 Fred Sam Joe Fred Sam Joe A BRIEF HISTORY OF COMMUNICATIONS SECURITY 6 COMPUTER SECURITY 7 THE PROGRAMMER "Programming is hard" Donald Knuth Programmers not historically


  1. THERE AND BACK AGAIN BRIAN CHESS SEPTEMBER 2013

  2. Fred Sam Joe

  3. Fred Sam Joe

  4. A BRIEF HISTORY OF COMMUNICATIONS SECURITY 6

  5. COMPUTER SECURITY 7

  6. THE PROGRAMMER "Programming is hard" Donald Knuth • Programmers not historically responsible for security. • Programmers already have one hard job to do. 8

  7. DEFENSIVE PROGRAMMING IS NOT ENOUGH Defensive programming: "Write the program to cope with small disasters." [Kernighan and Plauger] A C function with no error checking: void printMsg(FILE* file, char* msg) { fprintf(file, msg); } Crashes when file or msg is null. 9

  8. DEFENSIVE PROGRAMMING IS NOT ENOUGH Error checking added: void printMsg(FILE* file, char* msg) { if (file == NULL) { logError("attempt to print to null file"); } else if (msg == NULL) { logError("attempt to print null message"); } else { fprintf(file, msg); } No more crashes. Fixed? } Hint: AAA1_%08x.%08x.%08x.%08x.%08x.%n 10

  9. THIS IS ENOUGH Must also defend against format string attacks : void printMsg(FILE* file, char* msg) { if (file == NULL) { logError("attempt to print to null file"); } else if (msg == NULL) { logError("attempt to print null message"); } else { fprintf(file, "%.128s" , msg); } } 11

  10. SOFTWARE QUALITY VS. SOFTWARE SECURITY QUALITY SECURITY • Cannot be bolted on • Cannot be bolted on • Must be built in • Must be built in • Does the program do what • Does the program have it's supposed to do? “bonus” features? • Will the users be happy? • Will the attackers get what they want? • Are common cases smooth • Are there corner cases we and easy? haven't considered? • Will people pay for it? • What do we stand to lose? 12

  11. THE EXPLOITABILITY TRAP Trap Clearly Dangerous Clearly Safe “ I’ll fix it if you show me an exploit. ” 13

  12. CITI IPHONE INFO LEAK 14

  13. BER BERTRAND TRAND RUSSELL USSELL ’ S CHICKEN S CHICKEN Food Food Shelter Shelter Companions Companions 15

  14. Success is foreseeing failure. – Henry Petroski

  15. STATIC ANALYSIS IS GOOD

  16. STATIC ANALYSIS = GOOD = getInputFroNetwork(); buff newBuff copyBuffer( , ); buff exec( ); (command injection) newBuff

  17. CHAINSAW

  18. MEASURING PROCESS Building Security In Maturity Model (BSIMM) http://www.bsi-mm.com 20

  19. THERE AND BACK AGAIN BRIAN CHESS SEPTEMBER 2013

Recommend


More recommend