Hacking The Framework Nimrod Luria Head Of Consulting Services, 2Bsecure. Security MVP.NET Security User Group Leader. Microsoft affiliate consultant.

Slides:



Advertisements
Similar presentations
Security Issues of Peer-to-Peer Systems February 14, 2001 OReilly Peer-to-Peer Conference Nelson Minar, CTO POPULAR POWER.
Advertisements

High Performance Research Network. Development Lab. / Supercomputing Center 1 Design of the Detection and Response System against DDoS attacks Yoonjoo.
DETECTING A CYBER-ATTACK SOURCE IN REAL TIME R. Romanyak 1), A. Sachenko 1), S. Voznyak 1), G. Connolly 2), G. Markowsky 2) 1) Ternopil Academy of National.
New Security Issues Raised by Open Cards Pierre GirardJean-Louis Lanet GERMPLUS R&D.
BP5- METHODS BY WHICH PERSONAL DATA CAN BE PROTECTED Data Protection.
Protection from Internet Theft By James Seegars. What Is Hacking? Definition – A)To change or alter(Computer Program) – B) To gain access to (a computer.
Two-Factor Authentication & Tools for Password Management August 29, 2014 Pang Chamreth, IT Development Innovations 1.
1 MD5 Cracking One way hash. Used in online passwords and file verification.
Security Issues and Challenges in Cloud Computing
Presented by: Luke Speed Computer Security. Why is computer security important! Intruders hack into computers to steal personal information that the user.
1 Telstra in Confidence Managing Security for our Mobile Technology.
Increasing customer value through effective security risk management
Lecture 2 Page 1 CS 236, Spring 2008 Security Principles and Policies CS 236 On-Line MS Program Networks and Systems Security Peter Reiher Spring, 2008.
Client/Server Computing Model of computing in which very powerful personal computers (clients) are connected in a network with one or more server computers.
Using Cryptographic ICs For Security and Product Management Misconceptions about security Network and system security Key Management The Business of Security.
1 Distributed File System, and Disk Quotas (Week 7, Thursday 2/21/2007) © Abdou Illia, Spring 2007.
Encryption An Overview. Fundamental problems Internet traffic goes through many networks and routers Many of those networks are broadcast media Sniffing.
User studies. Why user studies? How do we know security and privacy solutions are really usable? Have to observe users! –you may be surprised by what.
Assessing the Threat How much money is lost due to cyber crimes? –Estimates range from $100 million to $100s billions –Why the discrepancy? Companies don’t.
100% Security “ The only system which is truly secure is one which is switched off and unplugged, locked in a titanium lined safe, buried in a concrete.
DDos Distributed Denial of Service Attacks by Mark Schuchter.
D ATABASE S ECURITY Proposed by Abdulrahman Aldekhelallah University of Scranton – CS521 Spring2015.
Sorting Out Digital Certificates Bill blog.codingoutloud.com ··· Boston Azure ··· 13·Dec·2012 ···
Computer Security Tran, Van Hoai Department of Systems & Networking Faculty of Computer Science & Engineering HCMC University of Technology.
Introduction Our Topic: Mobile Security Why is mobile security important?
Best Practices in Deploying a PKI Solution BIEN Nguyen Thanh Product Consultant – M.Tech Vietnam
Copyright © 2002 ProsoftTraining. All rights reserved. Operating System Security.
Lecture 18 Page 1 CS 111 Online Design Principles for Secure Systems Economy Complete mediation Open design Separation of privileges Least privilege Least.
Computer Science and Engineering 1 Csilla Farkas Associate Professor Center for Information Assurance Engineering Dept. of Computer Science and Engineering.
Lecture 10 Intrusion Detection modified from slides of Lawrie Brown.
Week #7 Objectives: Secure Windows 7 Desktop
1  Carnegie Mellon University Protecting Information Infrastructures Rich Pethia Software Engineering Institute Carnegie Mellon University Pittsburgh,
Computer & Internet Security Sean Lanham, CISSP - ISO University of Texas at Arlington Information Security Office.
Computer Security and Penetration Testing Chapter 16 Windows Vulnerabilities.
1 C-DAC/Kolkata C-DAC All Rights Reserved Computer Security.
Larry Clinton Operations Officer Internet Security Alliance
Computer & Internet Security. Today’s Situation – Universal Access… There are an estimated 304 million people with Internet access. All 304 million of.
Attacks On systems And Networks To understand how we can protect our system and network we need to know about what kind of attacks a hacker/cracker would.
Feedback #2 (under assignments) Lecture Code:
Chapter 17 Security. Information Systems Cryptography Key Exchange Protocols Password Combinatorics Other Security Issues 12-2.
Compatibility and Interoperability Requirements
APPLICATION PENETRATION TESTING Author: Herbert H. Thompson Presentation by: Nancy Cohen.
Encryption Questions answered in this lecture: How does encryption provide privacy? How does encryption provide authentication? What is public key encryption?
Understanding Computer Viruses: What They Can Do, Why People Write Them and How to Defend Against Them Computer Hardware and Software Maintenance.
Hacking Windows 9X/ME. Hacking framework Initial access physical access brute force trojans Privilege escalation Administrator, root privileges Consolidation.
1 Network and E-commerce Security Nungky Awang Chandra Fasilkom Mercu Buana University.
TCOM Information Assurance Management System Hacking.
Lecture 13 Page 1 CS 236 Online Principles for Secure Software Following these doesn’t guarantee security But they touch on the most commonly seen security.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation.
06/02/06 Workshop on knowledge sharing using the new WWW tools May 30 – June 2, 2006 GROUP Presentation Group 5 Group Members Ambrose Ruyooka Emmanuel.
Security Vulnerabilities in A Virtual Environment
Understand Permissions LESSON Security Fundamentals.
Computer Security By Duncan Hall.
High Performance Research Network Dept. / Supercomputing Center 1 DDoS Detection and Response System NetWRAP : Running on KREONET Yoonjoo Kwon
Lecture 15 Page 1 CS 236 Online Evaluating Running Systems Evaluating system security requires knowing what’s going on Many steps are necessary for a full.
1  Carnegie Mellon University Overview of the CERT/CC and the Survivable Systems Initiative Andrew P. Moore CERT Coordination Center.
Information Systems Design and Development Security Precautions Computing Science.
Session 2.  Recap of Services We Provide  Refund Policy  Selling Tools Demo(s)  CRM Demo  Commission/Bonus Recap  Teen to show how to configure.
Source Code Inspection and Software Reuse
Security of Digital Signatures
CHAPTER 4 Methodology.
Best Practices for Dynamics NAV Administration and Security
Legal and Ethical Issues in Computer Security
POPULAR POWER Security Issues of Peer-to-Peer Systems
Rootkit A rootkit is a set of tools which take the ability to access a computer or computer network at administrator level. Generally, hackers install.
.NET Framework: Backdoors
CS 465 Terminology Slides by Kent Seamons Last Updated: Sep 7, 2017.
Operating System Security
O.S. Security.
Security Principles and Policies CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
Presentation transcript:

Hacking The Framework Nimrod Luria Head Of Consulting Services, 2Bsecure. Security MVP.NET Security User Group Leader. Microsoft affiliate consultant.

High Low password guessing password cracking exploiting known vulnerabilities disabling audits back doors hijacking sessions sniffers packet spoofing GUI automated probes/scans denial of service www attacks Tools Attackers Intruder Knowledge Attack Sophistication “stealth” / advanced scanning techniques burglaries network mgmt. diagnostics distributed attack tools binary encryption Source: CERT/CC (used w/o permission & modified “Can you say ‘fair use?’ Sure, I knew you could.” IHO Fred Rogers ) Attack sophistication vs. Intruder Technical Knowledge

Warm Up - Demo Why you shouldn’t use Custom validator

Why should we be aware of security? 1st Scenario : In my current smart card company, most of the information stored within our SDK are highly confidential. We do not want our SDK to be manipulated by our competitors. 2nd Scenario : You took a year to write a software and in the process consumed a lot of resources and time for its development. Then you sell your software, you find that all your hard work in past 12 months were easily manipulated. Therefore, steps must be taken to ensure this does not happen. 3rd Scenario : One day, my manager came to me and asked me this question. Questions: Are.NET assemblies that secure? Answer: Nothing is secure, but all we can do is to try to make things harder for a hacker.

Reflector Demo

Don’t trust the Registry Back in 1990s, you may have noticed that some shareware programs implements this kind of verification technique. When you install the software, it will create a key in the Windows registry. Basically what it does, is stores the serial number inside the registry as either a plain text or encrypted version. Yes, I have seen people placing plain text in registry. So when your program runs, it will check the registry to verify the existence that particular key. If you have a wrong serial number or that particular key is not there, it will prompt you an error. Right now I will try to simulate this verification technique in C# step by step.

Demo Manipulating The Registry Listening with RegMon

Internal Representation of Methods by the CLR

Let’s Change the code How to use ILdasm and ILasm to manipulate the code. Type ildasm CrackingIL.exe /out=CrackingIL.il Open CrackingIL.il with any text editor Just remove all the codes from IL_0000 to IL_0075.(Clean FrmSecureApp_Load event) type 'ilasm CrackingIL.il'. You are done !

protect your.NET assemblies from being tampered Strong Name key is a RSA 1024 bit encryption, and to break it is not that easy at all. You need to have huge computing power to get that private key. Why Strong Name??

Strong Name, is it strong enough ? It did not encrypt my codes nor did it hide my codes from decompilers such as.NET Reflector. It isn't even related to obfuscation. So then what is Strong Name for? Some marketing tool to convince the public that the assemblies it protects is secure?

What people doing in the industry ? Your superior comes to you and asks you to implement a Strong Name key in your assemblies. And then when you reply, why Strong Name, they would say this is what other people are doing in the industry; we should follow them as well.

It’s seems to be strong

But It’s NOT !

How to break Strong Name.NET Assemblies Questions: Question : Is Strong Name key secure? Answer : Yes, Strong Name key uses RSA 1024 bit encryption. Question : Is Strong Name key breakable? Answer : If you have enough computing power, time and knowledge on how to break RSA, the answer is yes. Question : Can Strong Name key be removed from.NET assemblies? Answer : Yes, it can be removed very easily if you know how.

Demo Removing the signature. Tempering the code.

Hijacking.NET type members defined with a private access modifier are not actually private Even though the method is private, calling clients can still set the state of the object whenever they want using reflection.

Demo Calling private methods using reflection

The Solution Modifying Rotors Source Code [DebuggerStepThroughAttribute] [Diagnostics.DebuggerHidden] public override void SetValue(Object obj,Object val,BindingFlags invokeAttr,Binder binder,CultureInfo culture) { InternalSetValue(obj, val, invokeAttr, binder, culture, true, binder == Type.DefaultBinder); } InternalSetValue(obj, val, invokeAttr, binder, culture, true, binder == Type.DefaultBinder); } to: [DebuggerStepThroughAttribute] [Diagnostics.DebuggerHidden] public override void SetValue(Object obj,Object val,BindingFlags invokeAttr,Binder binder,CultureInfo culture) { // Add the check. if (this.IsPrivate) { throw new Exception("Access denied!!! Cannot set the value of private fields."); } InternalSetValue(obj, val, invokeAttr, binder, culture, true, binder == Type.DefaultBinder); } [DebuggerStepThroughAttribute] [Diagnostics.DebuggerHidden] public override void SetValue(Object obj,Object val,BindingFlags invokeAttr,Binder binder,CultureInfo culture) { // Add the check. if (this.IsPrivate) { throw new Exception("Access denied!!! Cannot set the value of private fields."); } InternalSetValue(obj, val, invokeAttr, binder, culture, true, binder == Type.DefaultBinder); }

VS 2005 Exploit Demo

Solutions To make sure that only trusted assemblies are calling your assembly you can use StrongNameIdentityPermission Class You should use sn.exe –o to get the signature. You can use imperative or declarative checks. _ Public Class myClass... _ Public Class myClass...

Evidence Use the wizards

Encrypt Your code ReactorCryptKey Preemptive.NET obfuscation

In Got We Trust ! Don’t trust any code. Use sandbox to test downloaded code or 3 rd party assemblies. Use CAS Follow the least privilege principle. Review your code. Test your applications for security.

?

Thank You ! Nimrod Luria Head Of Consulting Services, 2Bsecure. Security MVP.NET Security User Group Leader.