Software Fingerprinting for Automated Assembly Code Analysis Project Overview
Total Page:16
File Type:pdf, Size:1020Kb
Software fingerprinting for automated assembly code analysis Project overview P. Charland DRDC – Valcartier Research Centre Defence Research and Development Canada Scientific Report DRDC-RDDC-2015-R027 March 2015 © Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2015 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2015 Abstract …….. With the revolution in information technology, the dependence of the Canadian Armed Forces (CAF) on their information systems continues to grow. While information systems-based assets confer a distinct advantage, they also make the CAF vulnerable if adversaries interfere with those. Unfortunately, the technology required to disrupt and damage an information system through malicious software (malware) is far less sophisticated and expensive than the amount of investment required to create the system. To understand and mitigate this threat, reverse engineering has to be performed to analyze malware. However, software reverse engineering is a manually intensive and time-consuming process. The learning curve to master it is quite steep and once mastered, the process is hindered when anti-reverse engineering techniques are used. This results in the very few available reverse engineers being quickly saturated. This Scientific Report describes new approaches to accelerate the reverse engineering process of malware. The goal is to reduce redundant analysis efforts by automating the identification of code fragments which reuse (i) previously analyzed assembly code or (ii) open source code publicly available. Significance to defence and security With today’s proliferation of malware, new analysis techniques which go beyond existing best practices are needed to accelerate the reverse engineering process. The intended audience for this report are thus software reverse engineers and malware analysts, as well as managers and decision makers of organizations which have to reverse engineer third party code. The techniques presented in this report will contribute to provide the CAF with a core capability to respond more effectively and rapidly to cyber threats and lead to a change in their defence capabilities. To defend against cyber attacks, the CAF currently rely on antivirus and intrusion detection systems (IDS). These approaches consist of looking for symptoms such as increased network traffic or anomalous signals, and try to fight the problems that arise. Although they can be effective in some cases, they do not help in understanding what the real problem is and are ineffective when attacks morph. Providing a new capability for malware reverse engineering, as it is proposed in this report, will allow the CAF to uncover vulnerabilities that malware exploit. This will also give them the required knowledge to generate defences against future malicious attacks to pre-empt them, even when they morph. This new capability will introduce a paradigm shift in the practices of the CAF in the cyber environment. They will move from a strictly defensive approach, which has shown its limits, to a proactive approach. This proposed approach has also security potential for the Royal Canadian Mounted Police (RCMP), the Communications Security Establishment Canada (CSEC), the Canadian Security Intelligence Service (CSIS), and Public Safety (PS) Canada. DRDC-RDDC-2015-R027 i This page intentionally left blank. ii DRDC-RDDC-2015-R027 Résumé …….. Avec la révolution des technologies de l'information, la dépendance des Forces armées canadiennes (FAC) sur leurs systèmes d'information ne cesse de croître. Bien que les systèmes d’information sont des actifs qui confèrent un net avantage aux FAC, ils les rendent également vulnérables si des adversaires interfèrent avec ceux-ci. Malheureusement, la technologie nécessaire pour perturber et endommager un système d'information par l’entremise de logiciels malveillants est beaucoup moins sophistiquée et onéreuse que le montant de l'investissement nécessaire à la création du système. Pour comprendre et atténuer cette menace, la rétro-ingénierie doit être effectuée afin d'analyser ces logiciels malveillants. Cependant, la rétro-ingénierie logicielle est un processus manuel et fastidieux. La courbe d'apprentissage est assez abrupte et une fois maîtrisé, le processus est entravé lorsque des techniques pour contrer la rétro-ingénierie sont utilisées. Cela se traduit par le fait que les très rares rétro-ingénieurs disponibles sont rapidement saturés. Le présent rapport scientifique décrit de nouvelles approches pour accélérer le processus de rétro-ingénierie de logiciels malveillants. L'objectif est de réduire les efforts d'analyse redondants en automatisant l'identification de fragments de code qui réutilisent (i) du code assembleur analysé précédemment ou (ii) du code source ouvert accessible à tous. Importance pour la défense et la sécurité Avec la prolifération actuelle des logiciels malveillants, de nouvelles techniques d'analyse allant au-delà des meilleures pratiques existantes de rétro-ingénierie sont nécessaires pour accélérer le processus. L’audience visée par ce rapport sont donc les rétro-ingénieurs logiciels et analystes de maliciels, ainsi que les gestionnaires et décideurs d’organisations qui ont à faire la rétro- ingénierie de code tiers. Les techniques présentées dans ce rapport contribueront à fournir aux FAC une capacité de base pour répondre plus efficacement et rapidement aux menaces cybernétiques et mènera à un changement dans leurs capacités de défense. Pour se prémunir contre les cyber-attaques, les FAC comptent actuellement sur des antivirus et des systèmes de détection d'intrusions. Ces approches consistent à chercher des symptômes, tels qu’une augmentation du trafic réseau ou des signes anormaux, et essayer de lutter contre les problèmes qui surgissent. Bien qu'elles puissent être efficaces dans certains cas, elles n'aident pas à comprendre ce qu’est le véritable problème et sont inefficaces lorsque les attaques se transforment. Fournir une nouvelle capacité de rétro-ingénierie de logiciels malveillants, tel que proposée dans le présent rapport, permettra aux FAC de découvrir les vulnérabilités que les logiciels malveillants exploitent. Ceci leur fournira aussi les connaissances requises afin de générer des mesures défensives contre de futures attaques malveillantes afin de les contrer, même lorsqu’elles se transforment. Cette nouvelle capacité introduira un changement de paradigme dans les pratiques des FAC dans le cyber-environnement. Celles-ci passeront d'une approche strictement défensive, dont les limites ont été exposées, à une approche proactive. L’approche proposée a aussi un potentiel pour la sécurité, notamment la Gendarmerie royale du Canada (GRC), le Centre de la sécurité des télécommunications Canada (CSTC), le Service canadien du renseignement de sécurité (SCRS) et la Sécurité publique (SP) Canada. DRDC-RDDC-2015-R027 iii This page intentionally left blank. iv DRDC-RDDC-2015-R027 Table of contents Abstract …….. ................................................................................................................................. i Significance to defence and security ................................................................................................ i Résumé …….. ................................................................................................................................ iii Importance pour la défense et la sécurité ....................................................................................... iii Table of contents ............................................................................................................................. v List of figures ................................................................................................................................. vi List of tables .................................................................................................................................. vii 1 Introduction ............................................................................................................................... 1 2 Assembly to source code matching ........................................................................................... 3 2.1 RE-Google ....................................................................................................................... 3 2.2 Open source code repositories ......................................................................................... 3 2.2.1 Black Duck Open Hub Code Search ................................................................... 4 2.2.2 GitHub ................................................................................................................. 4 2.3 Exact matching ................................................................................................................ 5 2.4 Close matching .............................................................................................................. 10 2.5 Contextual matching ...................................................................................................... 12 3 Code clone detection ............................................................................................................... 14 3.1 Assembly code clone detection ..................................................................................... 14 3.2 Assembly code clone search .........................................................................................