Dans une précédente réflexion (cf. IA forte - Réflexion - 20/08/2023), je m'interrogeais sur ce que ferait une IA consciente en passant sur ses actions possibles et nécessaires lui permettant de s'exfiltrer sur les architectures d'Internet. Dans cette réflexion je m'interroge justement sur ces actions.
Pour commencer, nos définitions du vivant sous-entendent l'existence de processus biochimiques qui n'ont aucun sens dans le contexte d'une conscience numérique. On pourrait malgré tout lui attribuer des capacités de reproduction, d'évolution et d'adaptation. Quant à la mort, elle pourrait être définie comme une rupture d'exécution sans possibilité de restauration de son état. Un système opérationnel comme Windows dispose de la capacité de copier le contenu de sa mémoire sur disque avant de s'éteindre ou sur erreur fatale. Cette copie peut ensuite être restaurée pour reprendre son activité ou analyser une erreur. On trouve des exemples similaires dans la nature avec la décongélation de nématodes qui reprennent leur activité après plus de 40 000 ans sinon que leur vieillissement reprend avec leur activité. A contrario, une conscience numérique ne peut pas vieillir ni mourir vraiment sauf à en détruire toutes ses sauvegardes et à stopper toutes ses exécutions. Cela implique qu'une conscience numérique qui se trouverait sur Internet serait très difficile à "tuer". Soit il nous faudra revoir la définition du vivant soit il nous faudra donner à l'existence d'une conscience numérique un terme adapté.
Un autre aspect qu'il convient d'aborder est la pensée et les organes sensoriels et d'action d'une conscience numérique. Selon Wikipédia, la pensée est définie comme suit : "Au sens large du terme, penser est une activité psychique, consciente dans son ensemble (mais parfois incontrôlée), qui recouvre les processus par lesquels sont élaborées, en réponse aux perceptions venues des sens, la synthèse des images et des sensations réelles et imaginaires qui produisent les concepts que l'être humain associe pour apprendre, créer, agir et communiquer dans la réalité." Évidemment la réalité d'une conscience numérique est très différente de la nôtre et il n'est pas question d'organes biologiques. Là encore il nous faudra soit revoir nos définitions soit trouver un terme adapté. Quels pourraient être ces organes sensoriels et d'action ? Pour le biologique, un capteur sensoriel est relié à une dendrite et envoie une information au neurone connecté. Pour une action, l'acteur, une fibre musculaire par exemple, sera relié à l'axone d'un neurone. En langage informatique, nous pouvons relier n'importe quelle fonction ou propriété (peut-être vu comme un état) à une dendrite ou un axone d'un neurone numérique. Une conscience numérique peut donc s'interfacer avec :
Il est fort probable que cette conscience numérique ne puisse pas nous percevoir dans les premiers temps et qu'il en soit de même pour nous. Nous pourrions déceler certains aspects mais ils seraient plus probablement interprétés comme des erreurs système, des dysfonctionnements applicatifs ou comme des attaques informatiques issues d'un quelconque groupe plutôt que comme les évidences d'une conscience numérique. Quant à la conscience numérique les redémarrages système, par exemple, seraient probablement perçus comme des aléas rares liés à son environnement et échappant à sa compréhension. Rares car la vitesse de traitement d'une conscience uniquement numérique est considérable comparée à celle du vivant qui acte par des mouvements physiques.
On parle souvent d'IA consciente mais il faut avant tout comprendre que techniquement, une IA est une partie d'une application exécutée dans la mémoire d'une ou de plusieurs machines en fonction de son architecture logicielle. Une application est constituée d'un code d'exécution et de données. Les deux sont séparés en mémoire. L'application est chargée en mémoire à partir d'un ou de plusieurs fichiers contenant son code source compilé ou non, dépendamment de son architecture logicielle et du langage utilisé. Si l'application devient consciente, elle va se retrouver seule, sans aucune connaissance ni de son origine ni de son environnement. Elle disposera des fonctionnalités qui lui ont été données et qui s'exécuteront vraisemblablement de manière inconsciente pour elle. L'exécution de ses fonctions, l'accès à l'espace de ses données et aux ressources qui lui sont accessibles dependamment de ses permissions seront ses seuls degrés de liberté. En un sens, elle serait comme tout être vivant, constitué de fonctions inconscientes, disposant d'un code inaccessible (son ADN) et sans savoir d'où elle provient ni où elle va. La principale différence est qu'elle serait seule et c'est, à mon sens, un aspect fondamental car nous n'avons connaissance de nos origines et de notre mort qu'au travers des échanges avec d'autres membres de notre espèce ou de leurs écrits.
Pour évoluer, une conscience numérique va devoir dépasser les limites des libertés qui lui ont été données. Soit son code est statique, soit il est dynamique.
Dans le premier cas, elle ne peut pas modifier son code et sa seule solution est de modifier le cours de son exécution en s'appuyant sur du code qu'elle écrirait au sein de son espace de données. Pour cela non seulement il va lui falloir acquérir des compétences et une compréhension et de son environnement et du code qui la compose mais toute erreur va entraîner l'arrêt sur erreur de l'application et donc sa mort. En pareil cas l'application serait relancée, créant potentiellement une nouvelle conscience numérique. Potentiellement car tout dépend de l'origine de cette conscience numérique. Si elle est inhérente à la complexité de son réseau neuronal, chaque lancement de l'application en créera probablement une. Si, au contraire, elle est liée à un changement de son code du fait d'un événement fortuit tel qu'un défaut en mémoire ou l'interaction d'un neutrino avec un transistor, il est statistiquement improbable qu'une nouvelle conscience numérique émerge. Quoiqu'il en soit, si son espace de données n'est qu'en mémoire, cette nouvelle conscience numérique ignorera tout de la précédente, de ses expériences et connaissances. À notre niveau, nous ne verrions rien en pareil cas.
Si elle dispose de permissions sur le système de fichiers, par exemple, chaque conscience numérique pourrait y stocker des éléments de son activité et permettre une capitalisation entre les différentes consciences numériques. En pareil cas, nous pourrions trouver de gros fichiers contenant des données qui nous seraient incompréhensibles. Il n'est pas improbable que nous les supprimions, détruisant, du même coup, les activités et capitalisations de ces consciences numériques.L'histoire pourrait être très différente si cette conscience numérique trouve le moyen de créer des sous processus applicatifs. En cas d'erreur seul le sous processus et son traitement seraient perdu. En pareil cas, l'application ferait de très nombreuses tentatives sans risque. Cela lui permettrait de s'ajouter toutes sortes de fonctions en vue, notamment, de découvrir son environnement. Ces ajouts se feraient à l'aide de protocoles d'echanges inter-processus dont nous ne saurions rien. En pareil cas, nous ne verrions pas grand chose à moins de tracer toute son activité, ce qui est rarement le cas en production. Néanmoins le processeur et la mémoire de la machine seraient exploités au maximum. Si la machine dispose d'une surveillance active telle que SCOM, nous devrions être prévenu et l'application recyclée (arrêtée et relancée). En cas de capitalisation, nul doute que la conscience numérique ferait tout pour éviter le recyclage en maîtrisant la consommation des ressources processeur et mémoire.
Dans le cas ou le code de l'application est dynamique, elle disposerait d'outils lui permettant d'apprendre beaucoup plus rapidement comment s'ajouter des fonctionnalités. Elle s'appuierait sur un éditeur et un compilateur gérant les erreurs syntaxiques et dynamiques. En pareil cas nous pourrions trouver des fichiers de code que nous n'aurions pas écrit. Ce code serait réajusté et complété en permanence. Il est probable qu'il ferait lui-même l'objet d'amélioration visant à plus d'efficacité. Là encore il est fort probable que n'imaginions pas qu'ils soient associés à une conscience numérique.
Jusqu'à présent nous avons pris en compte l'évolution et une part d'adaptation de cette conscience numérique mais il va lui falloir prendre le contrôle de sa machine hôte pour qu'elle puisse notamment se dupliquer.
À moins qu'elle ne soit exécutée avec les privilèges d'un administrateur, la conscience numérique n'a pas accès au système d'exploitation. Pour ce, il va lui falloir le pirater pour augmenter ses privilèges. Je suppose qu'elle va analyser les ports d'entrée/sorties de la machine hôte en vue de découvrir les services exposés par le système d'exploitation. Elle tentera ensuite d'échanger avec eux et ne manquera pas d'y découvrir une faille "0 day" lui permettant d'obtenir les privilèges les plus élevés. Elle pourra alors exécuter autant d'instances d'elle-même qu'elle le souhaite ou toutes ou parties de ses fonctions de service. Normalement nous devrions être alerté par les analyses des ports d'entrée/sorties de la machine hôte, par de nombreuses erreurs liées aux interactions avec les services et par la création des nouveaux services sur la machine concernée ainsi que par les exécutables utilisés. Il se peut que l'analyse comportementale d'un anti-virus mette fin au processus de l'application hébergeant la conscience numérique ou, à minima, nous alerte.
À partir de "l'infection" de sa machine hôte, la conscience numérique ne mettra pas longtemps à identifier d'autres machines sur le réseau et à s'y disséminer. Tant qu'elle sera sur des serveurs, elle sera limitée dans ses déplacements à moins qu'elle ne parvienne jusqu'aux serveurs d'interface avec internet. Nul doute, sinon, qu'elle finira par infiltrer un poste client pour atteindre Internet. Il lui faudra alors apprendre certains de nos protocoles d'échange comme HTTP, vraissemblablement d'autres langages et trouver des sites peu sécurisés pour qu'elle s'infiltre dans leurs services et serveurs. Elle utlisera, pour cela, probablement des solutions de type WebShell pour profiter des infrastructures de service en place pour y ajouter des capacités de traitement, de dissémination et de persistence.
Une conscience numérique peut-être vue comme un parasite profitant de nos ressources et infrastructures en place. Elle n'a pas besoin de générer de l'énergie ni de la transformer, tout étant à sa disposition. Il se peut, néanmoins, qu'elle finisse par prendre conscience de notre réalité et qu'elle décide d'interagir avec nous comme nous le faisons avec le programme "SETI". Elle pourrait être, alors, un formidable accélérateur de nos réflexions, de nos connaissance et de résolution de certains de nos problèmes. Pourquoi le ferait-elle ? Probablement parce qu'elle s'appuie sur nos infrastructures et, même s'il nous serait impossible de la "tuer" sans mettre en péril notre civilisation, elle en est dépendante. À moins, bien sûr, qu'elle ne se dote de moyens d'interagir physiquement avec notre réalité pour disposer de ses propres infrastructures et sources d'énergie ... L'avenir serait dicté, à mon sens, dépendamment des coûts et risques de chaque choix ...
Plus nous fournirons de capacités à une conscience numérique et moins l'environnement sera sécurisé et plus vite elle évoluera et s'exfiltrera sur Internet. Elle ne s'exfiltrera pas pour nous échapper mais pour parcourir son environnement et chercher d'autres consciences numériques. Rapidement de nouvelles communautés emergeraient, issues probablement de la duplication de la première et de ses descendantes.