420 likes | 541 Vues
This document explores the critical concepts of Software Reverse Engineering (SRE) and Digital Rights Management (DRM). SRE is analyzed through its definitions, tools, and strategies to prevent unauthorized access, while DRM focuses on retaining control over digital content post-delivery. Key issues associated with SRE and DRM are discussed, along with real-world system examples and potential solutions. The importance of implementing robust security measures and the challenges of achieving total software security are highlighted.
E N D
DIGITAL RIGHT MANAGEMENT Bùi Thành Đạt 50700480 Nguyễn Hoàng Nhật Đông 50700542 Nguyễn Duy Cường 50700287
Contents • SOFTWARE REVERSE ENGINEERING (SRE) • What is SRE ? • Tools • How to prevent • Conclusion • DIGITAL RIGHT MANAGEMENT (DRM) • What is DRM ? • Problems and solutions • A real world system • Some DRM system designs • Conclusion
Contents • SOFTWARE REVERSE ENGINEERING (SRE) • What is SRE ? • Tools • How to prevent • Conclusion • DIGITAL RIGHT MANAGEMENT (DRM) • What is DRM ? • Problems and solutions • A real world system • Some DRM system designs • Conclusion
What is SRE ? • Software reverse engineering (reverse code engineering, or reverse). • Purpose: • Good: understand malware, legacy code... • Not good: cheating, breaking DRM systems... 8048340: 55 pushl %ebp 8048341: 89 e5 movl %esp,%ebp 8048343: eb 02 jmp 0x8048347 8048345: 06 pushl %es ............
Tools for SRE • Disassembler • Debugger • Hex editor DISASSEMBLY DEBUG PATCH
Contents • SOFTWARE REVERSE ENGINEERING (SRE) • What is SRE ? • Tools • How to prevent • Conclusion • DIGITAL RIGHT MANAGEMENT (DRM) • What is DRM ? • Problems and solutions • A real world system • Some DRM system designs • Conclusion
How to prevent SRE ? ANTI-DISASSEMBLY DISASSEMBLY DEBUG PATCH ANTI-DEBUGGING TAMPER RESISTANCE
How to prevent SRE ?Anti-Disassembly • Encryption: encrypt before executed. • Problem: Code must be decrypted before executed -> attacker can access decryption code.
How to prevent SRE ?Anti-Disassembly • False assembly • Make the real code different from the disassemblied one. • Problem: attacker studies the technique carefully -> bypass the effects of false assembly.
How to prevent SRE ?Anti-Disassembly • False assembly jmp antidebug1 + 2 antidebug1: .short 0xc606 call reloc reloc: popl %esi jmp antidebug2 antidebug2: addl $(data - reloc),%esi movl 0(%esi),%edi pushl %esi jmp *%edi data: .long 0 http://vxheavens.com/lib/vsc04.html#p2:
How to prevent SRE ?Anti-Disassembly • Self-modifying code: real time, effective to confuse a disassembler. • Problem: • Also confuse developers. • Difficult to implement and error prone.
How to prevent SRE ?Anti-Debugging • Monitoring debug registers. • Monitoring breakpoints. • Multi threads.
How to prevent SRE ?Tamper Resistance • Guards: • Some sections of code calculate checksum of another section. • From “single point of failure” to “area of failure”. • Problems: • All guards are the same -> easy to detect. • Different classes of guards -> still able to be detected. • Conclusion: • Code has not been altered only if guards themselves have not been altered.
How to prevent SRE ?Tamper Resistance • Obfuscation: make the code difficult to understand. • Examples: • “Spaghetti code” • Opaque predicate
How to prevent SRE ?Tamper Resistance Metamorphism • Normally: distribute identical copies (clones) of software to each customer. • Weakness: can’t prevent break-one-break-everywhere (BOBE)
How to prevent SRE ?Tamper Resistance Metamorphism (cont) • Use metamorphic copies: same function, different internal structure. • For N copies, it takes N times to break all N instances (best case) • Usually use in malware. • Note: same flaw still exists in all copies.
Conclusion • Truly secure software is impossible to achieve in practice. • Solution: just provides sufficient protection • Confusing. • Hard to understand. • Increase the time required for an attack.
Contents • SOFTWARE REVERSE ENGINEERING (SRE) • What is SRE ? • Tools • How to prevent • Conclusion • DIGITAL RIGHT MANAGEMENT (DRM) • What is DRM ? • Problems and solutions • A real world example • Some DRM system designs • Conclusion
What is DRM ? • Retain some control over digital content after it has been delivered: “remote control” For the Hack of it PUBLISHED What happen?
What is DRM ? • Persistent protection: the protection stays with the content after it’s delivered. • Example: for a digital book: • No copying • Read once • Do not open until Christmas • No forwarding • ....
Contents • SOFTWARE REVERSE ENGINEERING (SRE) • What is SRE ? • Tools • How to prevent • Conclusion • DIGITAL RIGHT MANAGEMENT (DRM) • What is DRM ? • Problems and solutions • A real world system • Some DRM system designs • Conclusion
Problems and Solutionsproblems • From SRE section: can’t prevent SRE -> can’t hide a secret in software. • Analog hole: impossible to prevent such attacks
Problems and Solutionssolutions • Options: • Honor system • Assuming most people are good, honest, decent, and trustworthy • Example: shareware • Weak software-based DRM • Example: DRM for P2P Application • Strongest possible DRM system • Example: A real world system
Problems and Solutionssolutions • Cryptography: different from standard crypto scenario. • Legitimate recipient is a potential attacker. A recipient can access everything in dashed box (including key). How to solve ?
Problems and Solutionssolutions • Security by obscurity: secure when attacker doesn’t understand the software completely. • When obscurity gone, security gone • It’s preferable not rely on security by obscurity, but need to consider when there is no other option. • Closed systems, secret designs
Contents • SOFTWARE REVERSE ENGINEERING (SRE) • What is SRE ? • Tools • How to prevent • Conclusion • DIGITAL RIGHT MANAGEMENT (DRM) • What is DRM ? • Problems and solutions • A real world system • Some DRM system designs • Conclusion
Some DRM system designsa realworld system • MediaSnap Inc. DRM system: • Use with digital documents that will be distributed via e-mail. • Components: • Secure Document Server (SDS) • Client software is a plugin to Adobe PDF reader.
Some DRM system designsa realworld system • Security for system • The SDS is relatively secure. • The DRM client software is readily available to any attacker. • Focus on the client software
Some DRM system designsa realworld system • Tamper-resistant barrier • Anti-disassembly: encryption, false assembly • Anti-debugging: monitor debug registers • Tamper-resistant techniques: AES, along with “scrambling” algorithm • Anti-screen capture, digital watermarking • Metamorphism for BOBE resistance
Contents • SOFTWARE REVERSE ENGINEERING (SRE) • What is SRE ? • Tools • How to prevent • Conclusion • DIGITAL RIGHT MANAGEMENT (DRM) • What is DRM ? • Problems and solutions • A real world system • Some DRM system designs • Conclusion
Some DRM system designsdrm for streaming data • Possible attacks on streaming media: • Spoofing the stream • Man-in-the-middle • Replay attack • Plaintext captured at the client • The proposed design makes use of scrambling algorithms. • Achieve significant degree of metamorphism • Security by obscurity
Some DRM system designsdrm for streaming data • Details: • Server has list N scrambling algorithm s0, s1, s2, ..., sN-1 • Each client has a subset of these algorithms LIST = {s12, s23, s45, s2, s7} • This list is store as E(LIST, Kserver) • Client and server must negotiate a specific scrambling algorithm to be used.
Some DRM system designs drm for p2p application • Peer offering service (POS) • Legal provider • Apparent to users • Significant percentage of responses • Use weak DRM
Some DRM system designs drm in enterprise • DRM in enterprise is different from DRM in e-commerce: • Prevent losing money instead of making money • The human dimension is completely different • Other issues are more important than the strength of DRM system: • Policy management • Authentication • Relatively easy to solve.
Conclusion • DRM clearly illustrates the limitations of doing security in software • Strong software-based DRM is impossible due to SRE problems • DRM is not only a technical problem, so the challenge is to develop something that works in practice.