Les virus informatiques, les vers et les chevaux de Troie ont été écris pour des douzaines de systèmes d’exploitation et applications. Néanmoins, un grand nombre d’autres systèmes d’exploitation et applications pour lesquels aucun malware n’a à ce jour été créé existent. Quelles est donc la différence entre ces deux groupes ?
Les malwares pour un système d’exploitation ou une application spécifique émergent quand les trois conditions suivantes surviennent simultanément :
- La popularité ou l’usage répandu d’un système d’exploitation spécifique
- Une documentation disponible : le système d’exploitation doit être suffisamment documenté
- La vulnérabilité du système : le système d’exploitation ne doit pas être protégé ou il doit exister des vulnérabilités dans son système de protection et/ou dans ses applications.
Chacune des conditions ci-dessus est nécessaire et la simultanéité des trois est suffisante pour que des programmes malveillants émergent dans le système.
Le système d’exploitation doit être populaire afin d’attirer l’attention d’au moins un cybercriminel ou hacker. Si le système n’existe que sous un nombre limité de copies, il y a peu de chances qu’il soit attaqué. Néanmoins, si le fabricant d’un système d’exploitation distribue ce dernier en masse, il y a de grandes chances pour qu’un jour un pirate ou un éditeur de virus essaie de l’utiliser dans son intérêt.
Il est donc naturel d’en venir à la conclusion que plus un système d’exploitation ou une application est populaire, plus il a de chance d’être attaqué par des virus. L’expérience le prouve : le nombre de programmes malveillants créés pour Windows, Linux et Mac OS correspond de près à leurs parts de marché respectives.
Une documentation complète doit être disponible pour une raison très simple : un créateur de virus (ou généralement un programmeur) a besoin d’une description technique afin de savoir comment utiliser les services du système d’exploitation et de créer des applications exécutables dans ce système. Par exemple, à la fin du siècle dernier, les fabricants de téléphones mobiles ne fournissaient pas de documentation sur leurs produits, les développeurs de logiciels et les pirates ne pouvaient donc pas créer de programmes pour ces appareils. Les téléphones qui supportent Java ainsi que les smartphones disposent d’une documentation expliquant comment développer des applications adaptées, et c’est comme ça que des malwares créés spécifiquement pour ce type d’appareils émergent.
Les vulnérabilités du logiciel peuvent être liées à sa programmation (une erreur dans le code du programme qui permet à un virus de se faufiler dans le programme et de prendre le contrôle du système) ou logique (une façon légale ou même documentée de pénétrer dans le système). Si des vulnérabilités sont découvertes au sein d’un système d’exploitation ou de ses applications, alors le système sera ouvert aux programmes malveillants peu importe qu’il soit bien protégé ou non.
La protection d’un système d’exploitation comprend les solutions architecturales qui empêchent une nouvelle application ou une application inconnue d’accéder complètement ou suffisamment aux fichiers stockés sur le disque (y compris à d’autres applications) et à des services du système potentiellement dangereux. Ces restrictions bloquent les activités malveillantes mais imposent également des restrictions aux programmes traditionnels.
Malheureusement, il n’existe pas d’exemple de systèmes d’exploitation ou d’applications multifonctions ouverts. Le système Java exerce en partie cette fonction de protection – le système lance des applications Java en mode sandbox, c’est-à-dire, en contrôlant toutes les actions des applications qui pourraient être dangereuses. D’ailleurs, cela fait un certain temps qu’aucun virus » réel » ou cheval de Troie n’a été détecté dans des applications Java, à l’exception de virus tests qui était pratiquement impossibles dans la vie réelle. Les applications Java malveillantes existent uniquement quand des méthodes permettant de contourner le système de sécurité intégré dans Java sont découvertes.
Les systèmes d’exploitation des téléphones mobiles standard (et non pas des smartphones ou de ceux qui ne sont pas supportés par des programmes Java externes) sont un exemple de systèmes protégés très largement utilisés. Néanmoins, les nouveaux programmes ne peuvent pas être installés sur ces systèmes et il n’existe pas de documentation permettant d’expliquer comment créer de nouveaux programmes pour eux. Ces systèmes sont donc extrêmement limités et leurs fonctionnalités ne peuvent pas être étendues. L’avantage de ces programmes est qu’il n’existe pas de virus pour eux.
La plateforme BREW est un autre exemple de plateforme fermée aux virus. Les téléphones mobiles qui utilisent cette plateforme autorisent uniquement l’installation d’applications certifiées par des signatures de chiffrement et seulement si elles proviennent du fournisseur de services mobiles. Des développeurs de logiciels tiers sont contractés et il existe de la documentation détaillée. Néanmoins, chaque application doit être certifiée, ce qui ralentit le développement des logiciels et complique le processus. C’est pourquoi ce système ne jouit pas d’une très grande popularité ou d’un grand nombre d’applications en comparaison à ses concurrents.
Il est difficile d’imaginer ce qui se passerait si les systèmes d’exploitations tels que Windows ou Mac OS utilisaient les mêmes principes. Dans ce cas, le développement de logiciels par des sociétés indépendantes deviendrait bien plus compliqué voire impossible. L’éventail de services Web réduirait considérablement, les processus opérationnels deviendraient bien plus lents. Le monde serait complètement différent – plus lent, plus terne et plus limité. C’est pourquoi on peut considérer que les dégâts causés par les attaques de malwares sont le prix à payer pour vivre dans un monde de hautes technologies dynamique.