Code polymorphe

Partager
" Retour à l'index des glossaires

Polymorphic code is a type of ordinateur[1] code that constantly changes or mutates, posing a unique challenge for anti-virus software and intrusion detection systems. This code uses complex algorithms to alter itself, making it difficult for security[2] software to spot. Often employed by malicious programmers, they rewrite decryption engines to shield the encrypted code. Techniques like emulation in sandbox environments can potentially defeat this obfuscation. Metamorphic code, a related concept, adds another layer of complexity by executing without identifiable constant code blocks. An introductory example of polymorphic code is encryption via the XOR operator, where the encrypted code serves as a mutable payload. The decryption process involves changing encrypted code within defined markers. Other relevant concepts include alphanumeric shellcode, shellcode, obfuscated code, and oligomorphic code.

Définitions des termes
1. ordinateur. Un ordinateur est un appareil sophistiqué qui manipule des données ou des informations conformément à un ensemble d'instructions, appelées programmes. De par leur conception, les ordinateurs peuvent effectuer un large éventail de tâches, allant des simples calculs arithmétiques au traitement et à l'analyse de données complexes. Ils ont évolué au fil des ans, depuis les outils de comptage primitifs comme le boulier jusqu'aux machines numériques modernes. Le cœur d'un ordinateur est son unité centrale de traitement (UC), qui comprend une unité arithmétique et logique (UAL) pour effectuer les opérations mathématiques et des registres pour stocker les données. Les ordinateurs disposent également d'unités de mémoire, comme la ROM et la RAM, pour stocker les informations. Les autres composants comprennent des dispositifs d'entrée/sortie (E/S) qui permettent d'interagir avec la machine et des circuits intégrés qui améliorent la fonctionnalité de l'ordinateur. Des innovations historiques majeures, comme l'invention du premier ordinateur programmable par Charles Babbage et le développement du premier ordinateur numérique électronique automatique, l'ordinateur Atanasoff-Berry (ABC), ont grandement contribué à leur évolution. Aujourd'hui, les ordinateurs alimentent l'internet, relient des milliards d'utilisateurs dans le monde entier et sont devenus un outil essentiel dans presque tous les secteurs d'activité.
2. security. Security, as a term, originates from the Latin 'securus,' meaning free from worry. It is a concept that refers to the state of being protected from potential harm or threats. This protection can apply to a wide range of referents, including individuals, groups, institutions, or even ecosystems. Security is closely linked with the environment of the referent and can be influenced by different factors that can make it either beneficial or hostile. Various methods can be employed to ensure security, including protective and warning systems, diplomacy, and policy implementation. The effectiveness of these security measures can vary, and perceptions of security can differ widely. Important security concepts include access control, assurance, authorization, cipher, and countermeasures. The United Nations also plays a significant role in global security, focusing on areas like soil health and food security.
Code polymorphe (Wikipedia)

In computing, polymorphic code is code that uses a polymorphic engine to mutate while keeping the original algorithme intact - that is, the code changes itself every time it runs, but the function of the code (its semantics) stays the same. For example, the simple math expressions 3+1 and 6-2 both achieve the same result, yet run with different machine code in a CPU. This technique is sometimes used by computer viruses, shellcodes et computer worms to hide their presence.

Encryption is the most common method to hide code. With encryption, the main body of the code (also called its payload) is encrypted and will appear meaningless. For the code to function as before, a decryption function is added to the code. When the code is executed, this function reads the payload and decrypts it before executing it in turn.

Encryption alone is not polymorphism. To gain polymorphic behavior, the encryptor/decryptor pair is mutated with each copy of the code. This allows different versions of some code which all function the same.

" Retour à l'index des glossaires
fr_FRFR
Retour en haut