Retour sur le rapport Old Dogs New Tricks de BlackBerry
jeu, 16/09/2021 - 13:02
Suite à la publication du rapport Old Dogs New Tricks par Blackberry, nous avons posé quelques questions à Jim Simpson, senior manager – Threat Research (Blackberry)
Quel langage informatique recommandez-vous et pourquoi ?
Cela dépend. Tous les langages présentent des avantages différents pour chaque développeur. Il s’agit surtout d’une question de préférence personnelle. Les nouveaux langages sont souvent plus efficaces aussi bien d’un point de vue du développement que de l’exécution. Comme tout développeur, les développeurs de logiciels malveillants essaieront, de rester proches de ce qu'ils connaissent et apprécient.
Il y a quelques mois, Google et d'autres acteurs ont déclaré qu'ils incluraient le langage RUST dans le développement de nouveaux projets. Par exemple : le nouveau code du noyau Linux pourrait être en RUST. RUST est-il un bon nouveau langage ?
RUST est un langage solide et, au vu de son adoption par certains des grands ateliers de développement, il est manifestement considéré comme un langage d'avenir dans lequel il vaut la peine d'investir son temps.
Pensez-vous que les attaques / logiciels malveillants vont se complexifier en écho à la complexification de l’environnement informatique ?
Si l'on se place dans une logique de rétro-ingénierie, absolument. La compréhension des structures de données impliquées dans un fichier exécutable peut prendre des années à être maîtrisée. L'introduction de nouveaux langages apporte avec elle de nouvelles structures de données et de nouveaux paradigmes qu’il est important de connaître. Comme nous l'évoquons dans notre rapport, l'identification et la neutralisation des logiciels malveillants utilisant de nouveaux langages posent des problèmes techniques. Les connaissances acquises grâce à la rétro-ingénierie doivent être réinjectées dans le développement de solutions etc., afin d’observer ce qu’implique, concrètement, ce nouvel espace de programmation est plus diversifié.
Comment assurez-vous la continuité des fonctionnalités de vos applications et solutions lorsque le langage utilisé change ? Comment conciliez-vous les avantages de chacun des langages ?
La technique basée sur l’utilisation de plusieurs langages dans une « attack chain » permet d’agglomérer ou d’englober un fichier exécutable codé dans un autre langage. Il n’est pas ici question d'interopérabilité des langages, mais plutôt de l’objectif que vous cherchez à atteindre. Nous avons pu observer que des applications, complètement réécrites bazarloader/minzaloader présentaient un flux du code inchangé.
Les hackers utilisent-ils toujours les dernières technologies/infrastructures pour créer des malwares (comme Code, Ansible, Salt, Terraform, etc.) ?
D'après ce que nous avons observé, les cybercriminels utilisent le langage approprié à chaque problème. Comme partout, cela se résume aux limites et aux avantages du langage lui-même, ainsi qu'aux préférences et aux compétences personnelles vis-à-vis de ces nouveaux outils. En général, si un code ou langage fonctionne encore, les acteurs de la menace continueront de les utiliser et ne chercheront à le faire évoluer que si cela est nécessaire.
Comme indiqué dans notre rapport, les fournisseurs souhaitent contrecarrer les attaques le plus tôt possible dans leur processus d'exécution - se concentrant alors sur l'arrêt de l'exécution des « loaders/droppers » -. De ce fait, l’utilisation de nouveaux langages a été initiée par une tendance à créer des « loaders/droppers ».