web-dev-qa-db-fra.com

Un virus contenu dans un flux de fichiers peut-il infecter un ordinateur?

J'ai une Java application web qui accepte base64 chaînes d'images des utilisateurs. Ces chaînes sont d'abord converties en un flux d'octets, après quoi le flux est analysé pour les virus. Après cela, le fichier est stocké en tant que version redimensionnée de l'image réelle.

Ma question est, lorsque le fichier a été transformé à partir d'un base64 chaîne vers un flux d'octets en mémoire et il se trouve qu'il contient un virus, ce virus pourra-t-il s'échapper du flux d'octets et infecter le reste du serveur? Ou peut-il le faire uniquement après que le flux a été transformé en un fichier stocké sur le disque?

5
Maurice

Ni.

Un virus se trouvant sur un disque en tant que fichier est inoffensif. Un virus se trouvant dans la mémoire lorsque les données sont inoffensives. Il ne peut infecter une machine que lorsque quelque chose essaie de l'exécuter ou l'interprète incorrectement. Cela peut se produire en raison de l'action de l'utilisateur (inciter quelqu'un à télécharger et exécuter un fichier .exe) ou en raison de faiblesses de l'application, c'est ce que vous demandez (par exemple, masquer des données malveillantes dans un PDF pour déclencher) une vulnérabilité dans un lecteur PDF et tromper l'application en exécutant des instructions malveillantes).

Donc, pour choisir quelques exemples de votre situation:

  1. Si votre serveur Web présente une vulnérabilité RCE, les données malveillantes de la demande peuvent exécuter un virus avant même qu'il n'atteigne votre application ( exemples )
  2. Une mauvaise gestion des entrées peut permettre à un attaquant de tromper votre application en exécutant des commandes malveillantes ( exemples , plus d'exemples )
  3. Une erreur dans le système de traitement de flux de votre langage de programmation peut permettre à une charge utile malveillante d'exécuter du code (ce qui est si peu probable que je n'en ai même pas d'exemples)
  4. Si l'emplacement où vous stockez votre fichier sur le disque est également un emplacement où votre application peut trouver et exécuter du code, un attaquant peut inciter votre application à enregistrer un virus, puis inciter votre application à l'exécuter ( exemples )
  5. Si votre bibliothèque de traitement d'image a une vulnérabilité connue, une image malveillante peut être en mesure d'exécuter des commandes sur votre serveur ( exemples )

Cependant, un virus ne peut pas causer de problèmes simplement en étant sur votre serveur. Il doit trouver un moyen de s'exécuter. La seule défense consiste à pratiquer une sécurité d'application appropriée et à tout mettre à jour.

11
Conor Mancone