検索 - みる会図書館

全データから 12271件ヒットしました。

Surreptitious software obfuscation watermarking and tamperproofing for software protection


Surreptitious Software Obfuscation, Watermarking, and Tamperproofing for Software Protection Christian Collberg Jasvir Nagra #Addison-Wesley Upper Saddle River, NJ ・ Boston ・ lndian 叩 olis ・ San Francisco New York ・ Toronto ・ Montreal ・ London ・ Munich ・ Paris ・ Madrid C 叩 etown ・ Sydney ・ T0kY0 ・ Singapore ・ MexiC0 CitY

Surreptitious software obfuscation watermarking and tamperproofing for software protection


Surreptitious Software

Surreptitious software obfuscation watermarking and tamperproofing for software protection


Methods Attack and Defense here is a saymg: "lf you build a better mouse trap, someone will build a better mouse," and that could well describe the eternal struggle between Doris and Axel in our surreptitious software scenarios from the last chapter. Axel comes up with a new way tO analyze and modify Doris' code, Doris retaliates with a cleverer watermarking algorithm and additional layers of obfuscation and tamperproofing, which prompts Axel tO develop better analysis techniques, and SO on. At present we see no end tO this escalating war—as Of yet there are no theoretical results or practical t001S that could put an end t0 it once and for all, tipping the scales permanently in Doris' or Axel's favor, SO this situation is simply something Doris and Axel need tO learn tO live with. ln practice, this will mean that Doris can expect tO have tO monitor Axel's lmproving attack capabilities and continually upgrade her defenses' and Axel can expect that the attacks he develops tOday will be rendered useless tomorrow. What both Doris and Axel desperately want at this point is a theoretical model that would allow them tO compare their own abilities tO their adversaries' abilities. Doris would like tO know the ways ⅲ which Axel can crack her software protection, how long it will take him to do it, and what the software will be like after he's done. ldeally, she would like for it to take Axel a long time to break through her defenses and for the resulting program t0 be much larger, much slowen and much more brittle. She would also, of course, like to have a good model of her own protection t001S SO that she can choose the right combinations Of algorithms that will thwart Axel's attacks for the required length of time. Axel would like access to 59

Surreptitious software obfuscation watermarking and tamperproofing for software protection


XXII Preface watermarking and birthmarking can bolster your case by allowing you to present evidence of theft. There is one final category of people that we have yet to touch upon that makes extenslve use Of surreptltious software: bad guys. Virus wrlters have been spectac- ularly successful in obfuscating their code t0 prevent it from being intercepted by virus scanners. lt is interesting tO note that while the techniques the good guys use (for example, to protect DVDs, games, or cable (V) seem to be regularly broken by the bad guys, the techniques the bad guys use ()o build malware) seem much harder for the good guys to protect against. What's the Go of This Book? The go al of surreptitious s oftware research is to invent algorithms th at slow down our adversames as much as possible while adding as little computational overhead as possible. ・ We alSO need tO devise evaluation techniques that allow us to say, "After applying algorithm ス t0 your program, it will take an average hacker T extra time to crack it compared to the original code, while adding 0 amount of overhead, " or, failing that, at least be able to say that "compared to algorithm お , algorithm ス produces code that is harder tO crack. " lt's important tO emphasize that research into surreptitious software is still in its infancy, and that the algorithms and evaluation techniques that we'll present in this bOOk while representing the state of the art, are nowhere near perfect. ln this book we attempt to organize and systematize all that is currently known about surreptitious software research. Each chapter covers a particular technique and describes application areas and available algorithms. ln Ch 叩 ter 1 (What ls た ′ 印 / ″ あ 郷 、 ゞ 0 ア ル 4 尾 ? ) , we give an overview of the area, and in Chapter 2 (Methods of Attack and Defense) , we discuss our adversarial model, i. e. what hacker tools and techniques we should try tO protect ourselves against and what ideas are available to us as defenders. ln Chapter (Program Analysis), we detail the techniques that both attackers and defenders can use to analyze programs. Ch 叩 ter 4 (Code Obfus- cation) , Chapter う (Obfuscation Theory), and Chapter 6 (Dynamic Obfuscation) give algorithms for code obfuscation. Ch 叩 ter 7 (Software Tamperproofing) gives tamperproofing algorithms, Ch 叩 ter 8 (S0ftware Watermarking) and Ch 叩 ter 9 (Dynamic Watermarking) give watermarking algorithms, and Ch 叩 ter 10 (Software Similarity Analysis) gives birthmarking algorithms. Ch 叩 ter 11 (Hardware for pro- tecting Software) presents hardware-based protection techniques. If you're a manager interested in learmng about the state of the art in surrepti- t10us software research and hOW it can be applied ⅲ your organization, you'll want to

Surreptitious software obfuscation watermarking and tamperproofing for software protection


XVIII Preface p atent application s. Mi crosoft owns several software watermarking [ 1040 う 4 ] , ob - fuscation [ 62 , 62 69 , 69 , 70 , 70 , 180078 ] , and birthmarking に 64 ] patents. lntertrust holds a huge patent portfolio related to digital rights management, including patents on obfuscation [ 91 , 169 ] and tamperproofing [ 168 ]. ln 2004, to the tune of $ 440 million [ 176 ] , Microsoft settled a long-running lawsuit with lntertrust by licens- ing their entire patent portfolio. That same year Microsoft also partnered [250] with PreEmptive Solution s ⅲ order to include PreEmptive's identifier obfusc ator (which is based on their patent 51 ] ) in VisuaI Studio. Arxan, a spin-off from pur- due University researchers, has made a successful business from their tamperproof- ing algorithm [ 2400 引 . Apple holds a patent on code obfuscation [ 197 ] , perh 叩 s lntended tO protect their iTunes software. lntel spun off a company, Convera, to ex- plore their tamperproofing algorithm [ 27 268 ー 270 ] for digital rights management. The Canadian telecom Northern Telecom spun 0 任 what to date has been the most successful company ⅲ this area, Cloakware, which holds patents [ 67 68 , 182 ] on what they call ル ん 7 訪 ox び Ⅳ 0 叩 の , how to hide cryptographic algorithms and keys ⅲ computer code. ln December 2007 Cloakware was sold for $ 72. う million to lrdeto, a Dutch company in the pay-TV business [ 162 ]. A relative latecomer, Sun Microsystems, has also recently filed several patent applications on code obfusca- tion [ IO う 一 110 ]. Skype's VoIP client is highly obfuscated and tamperproofed by techniques sim- ilar to those of Arxan [ 24 ] , lntel [ 2 刀 , and ourselves [ 89 ]. Protecting the integrity of their client is undoubtedly of the highest importance for Skype, since, if cracked, their protocol could be easily hijacked by cheaper competitors. Keeping their pro- t0C01 secret allO 、 ved them tO build an impressive user base, and this might have been one of the reasons eBay decided to acquire them for $ 2.6 billion in 200 う . ln essence, the protection afforded Skype by surreptitious software techniques bought them enough time to become VOIP market leaders. Even if, at this point, their protocol has been cracked (which it has; see Section 7.2.4 ) , it will be difficult for a competitor tO threaten this position. Academic researchers have approached surreptitious software from a variety 0f angles. Some, like us, come from a compiler and programming languages back- ground. This is natural since most algorithms involve code transformations that reqtllre static analysis, with which compiler optimizatlon researchers are lntlmately familiar. ln spite of the disdain cryptography researchers have in the past had for 砒 〃 り ro 〃 g る 0 ん 〃 り , some have recently applied their techniques to software watermarking and tO discovering the limits Of obfuscation. Researchers from me- dia watermarking, computer security, and software englneering have also published ln surreptitious software. Unfortunately, progress in the area has been hampered

Surreptitious software obfuscation watermarking and tamperproofing for software protection


SECURITY Theory,Techniques,andTooIs fO 「 Fighting Software Piracy,Tampering, and Malicious Reverse Engineering The last decade has seen significant progress in the development Of techniques for resisting software piracy and tampering. These techniques are indispensable for software developers seel<ing tO protect vitalintellectual property. 5 〃 ″ 2 〃 ″ ″ 0 財 5 50 ″ a ′ e is the first authoritative, comprehensive resource for researchers, deVeloperS, and students whO want tO understand these approaches, the level Of security they afford/ and the performance penalty they incur. Christian Collberg and Jasvir Nagra bring together techniques drawn from related areas Of computer science, including cryptographY/ steganography, watermarl<ing, software metrics/ reverse engineering, and compiler optimization. USing extensive sample code, they show readers hOW tO implement protection ■ Detecting software tampering in distributed system media against piracy and tampering 第 Using hardware techniques tO defend software and and birthmarking algorithms ー Detecting code theft via software similarity analysis watermarking and dynamic obfuscation ■ Strengthening content protection through dynamic respond tO illegal modifications Of code and data ■ Tamperproofing software using guards that detect and trace software pirates ・ Fingerprinting software tO identify its author and tO analyze and understand ■ Using code obfuscation tO make software harder tO use tO analyze programs ■ Mastering techniques that bOth attackers and defenders Coverage includes techniques. discuss the theoretical and practicallimitations Of these fingerprinting tO tamperproofing and birthmarking, and schemes ranging from COde obfuscation and SOftware ■ Understanding the theoreticallimits Of code obfuscation informit.com/softwaresecurityseries Cove 「 design by Chuti P 「 asertsith Cover illust 「 ation by Christine Schee 「 Text printed on 「 ecycled paper Addison-Wesley pearson Education ssowtsp.com FREE 0nline Edition with purchase 0f this b00k. 0 。 Details on Last Page “ 励 カ 00 々 亟 5 0 知 財 g sc カ 0 ね ′ CO / 2 ′ a 彑 e 0 ′ 2 〃 area 0 ′ ″ 加 / hl 〃 ね 〃 ce 加 COtn 〃 ″ ′ 52C 財 ′ ″ a 〃 が な sea 炻 カ e ら 5 加 れ 4 ョ れ d ′ c ″ c 加 彑 〃 知 5 ona ′ 加 50 ″ ″ a 〃 c ″ 0 ル ” Distinguished Professor Of Computer Science at Purdue University ー Mikhail AtaIIah, 0 $ 59.99 U. S.I $ 71.99 CANADA 0-321-54925-2 旧 BN -10 : 旧 BN -13 : 978-0-321-54925-9 at G009 厄 in California. programming-language—based security platforms. Currently he works on Of software executing on remote, untrusted and tamperproofing tO protect the integrity and has worked on applying obfuscation Of strong dynamic watermarking algorithms Jasvir Nagra has an interest in the design Of Sciences in Beijing, China. New Zealand, and at the Chinese Academy has 引 SO worked at the University Of Auckland, science from Lund University, Sweden, and birthmarking. He received a Ph. D. in computer obfuscation, software watermarking, and has done fundamental research in COde computer science at the University Of Arizona, Christian CoIIberg, associate professor 0f

Surreptitious software obfuscation watermarking and tamperproofing for software protection


Contents P 尾 々 化 ス み 0 ″ ス 4 0 パ ス 〃 0 ル / k な XXV XXVZZ 1 what ls 4 ″ 印 〃 0 0 盟 4 ? 1 1.1 12 13 1.4 1. う 1.6 1.7 1.8 Setting the Scene 1 Attack and Defense 6 Program Analysis 7 1.8.5 PhysicaI Barriers 54 1.8.4 Encrypted Execution う 2 1.83 Ensuring Safe Execution Environment 1.82 Tying the Program to the CPU 50 1.8.1 Distribution with Physical Token 49 Hardware-Based Protection Techniques 49 1.7.4 A Birthmarking Example 47 1.73 Birthmarking 4 う 1.7.2 Software Forensics 44 1.7.1 Plagiarism 4 ろ S oftware Similarity 4 1.6.2 Attacks on Watermarking Systems 41 1.6.1 An Example う 8 Softwa re Watermarking う 6 1 ユ 2 An Example め 1.5.1 Applications of Tamperproofing う ろ Tamperproofing う 2 1.43 Black Hat Code Obfuscation 26 1.4.2 Obfuscating Transformauons 20 1.4.1 Applications of Code Obfuscation 16 Code Obfuscation リ 13.1 A Simple Reverse Engineering Example 9 う 1 VII

Surreptitious software obfuscation watermarking and tamperproofing for software protection


Contents P 尾 々 化 ス み 0 ″ ス 4 0 パ ス 〃 0 ル / k な XXV XXVZZ 1 what ls 4 ″ 印 〃 0 0 盟 4 ? 1 1.1 12 13 1.4 1. う 1.6 1.7 1.8 Setting the Scene 1 Attack and Defense 6 Program Analysis 7 1.8.5 PhysicaI Barriers 54 1.8.4 Encrypted Execution う 2 1.83 Ensuring Safe Execution Environment 1.82 Tying the Program to the CPU 50 1.8.1 Distribution with Physical Token 49 Hardware-Based Protection Techniques 49 1.7.4 A Birthmarking Example 47 1.73 Birthmarking 4 う 1.7.2 Software Forensics 44 1.7.1 Plagiarism 4 ろ S oftware Similarity 4 1.6.2 Attacks on Watermarking Systems 41 1.6.1 An Example う 8 Softwa re Watermarking う 6 1 ユ 2 An Example め 1.5.1 Applications of Tamperproofing う ろ Tamperproofing う 2 1.43 Black Hat Code Obfuscation 26 1.4.2 Obfuscating Transformauons 20 1.4.1 Applications of Code Obfuscation 16 Code Obfuscation リ 13.1 A Simple Reverse Engineering Example 9 う 1 VII

Surreptitious software obfuscation watermarking and tamperproofing for software protection


Many of the designations used by manufacturers and sellers to distinguish their prod ucts are claimed as trademarks. Where those designations appear ⅲ this book, and the publisher was aware of a trademark claim, the designations have been printed with initial capital letters or in all capitals. authors and publisher have taken care ⅲ the preparation of this book, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages ln connection with or ar1Sing out 0f the use of the informatlon or programs contained herein. %e publisher offers excellent discounts on this book when ordered ⅲ quantity for bulk purchases or special sales , WhiCh may include electromc verSIOns and/or custom covers and content particular t0 your business , tralnlng goals , marketing focus , and b randing interests. For more information , please contact: U. S. Corporate and Government Sales ( 800 ) 582 419 [email protected] For sales outside the United States, please contact: lnternational Sales [email protected] ViSit us on the Web : www.informit.com/aw Lz 房 4 Co 〃 g 尾 朝 あ g g ー / 〃 - P 勗 ″ 加 〃 Da / 4 Collberg , Christian. Surreptitious software : obfuscation, watermarking, and tamperproofing for software protection / Christian Collberg, Jasvir Nagra.— lst ed. lncludes bibliographical references and index. ISBN 0 21-54925-2 (pbk. : a 慊 . paper) 1. Computer security. 2. Cryptography. 引 Data protection. 4. Copyright and electronic data processing—United States. I. Nagra, Jasvir,. Ⅱ . Title. QA76.9. A25C6165 2009 00 う .8 ー dc22 Copyright ◎ 2010 Pearson Education , lnc. 2009015 う 20 All rights reserved. Printed in the United States of America. This publication is protected by copyright, and permission must be obtained from the publisher prior to any prohibited reproduction, storage ln a retrieval system, or transmrssron ln any form Ot• by any means, electronic, mechanical photocopyrng, recording, or likewise. For information regarding permissions, write to: Pearson Education , lnc. Rights and Contracts Department う 01 Boylston Street, Suite 900 Boston, MA 02116 Fax: ( 617 ) 671 447 ISBN-13: 97 & 0 づ 21- う 492 う -9 ISBN-IO: 0-321- う 492 う -2 Text printed ⅲ the United States on recycled paper at Edwa rds Brothers ⅲ Ann Arbor, Michigan. First printing,July 2009

Surreptitious software obfuscation watermarking and tamperproofing for software protection


Preface 4 尸 e, 々 / z 〃 0 ″ ゞ 0 ア ル 4 尾 is the term we have chosen tO describe a new branch Of computer security research that has emerged over the last decade. lt's a field that borrows techniques not only from computer security, but SO from many Other areas Of computer SC1ence, such as cryptography, steganography, media watermark- lng, software metr1CS, reverse engineering, and compiler OPtlmizatlon. SUrrePtltlOUS software applies these techniques in order tO solve very different problems: lt is con- cerned with protecting the secrets contained within computer programs•We use the word ゞ ec ア な loosely, but the techniques we present in this bOOk (code obfuscation, software watermarking and fingerprintlng, tamperproofing, and birthmarking) are typically used tO prevent Others from exploiting the intellectual effort invested ⅲ producing a piece 0f software. For exampl% software fingerprmtlng can be used tO trace software pirates, code obfuscation can be used tO make it more difficult tO reverse engmeer a program, and tamperproofing can make it harder for a hacker tO remove a license check. So let's look at ル someone should read this book, ル る 。 they might be, and ル 4 / material the bOOk will cover. Why Should You Read This Book? Unlike traditional security research, surreptitlous software is not concerned with hOW tO protect your computer from V1ruses, but rather hO 从 , V1rus writers protect their code from you ! Similarly, we're not interested in hOW tO make your code free from security bugs, but rather how t0 riddle your program with buggy code that gets run only when someone tries t0 tamper with the program. And unlike cryptography research that protects the confidentiality Of data, assuming that a secret key remams hidden, we're interested ⅲ how t0 hide that key. 41i1e software engineering research has devised a multitude Of software metrics in order tO be able tO make programs 从 ℃ Ⅱ structured, we will use the same techniques tO make your programs more