Notre nouveau Robot antivirus pour des téléversements plus sûrs
À mesure que les gens transfèrent davantage d’aspects de leur vie sur des plateformes numériques, les enjeux augmentent et assurer leur sécurité devient plus important que jamais.
Que nous développions des applications natives, des API ou des applications web, il est de notre responsabilité, en tant que développeurs / ops, de consacrer suffisamment de réflexion et de temps à protéger nos utilisateurs des personnes malveillantes.
Assainir les données d’entrée, mettre en place des pare-feu, déployer des mises à niveau, limiter les versions de SSL utilisables : la liste ne cesse de s’allonger.
D’autres difficultés apparaissent lorsque vous autorisez les utilisateurs finaux à téléverser des fichiers, puisque vous permettez en pratique à quiconque sait utiliser un clavier de stocker des fichiers potentiellement malveillants sur votre plateforme, pourtant soigneusement sécurisée.
Il est bien sûr possible qu’un fichier malveillant reste simplement là, sans que rien ne se passe. Malgré tout, le risque d’incident existe toujours, et vous devez rester vigilant sur les points suivants :
Premièrement, vous devrez veiller tout particulièrement à ce qu’un fichier malveillant ne soit exécuté d’aucune manière. Vous avez probablement mis en place 100 mécanismes pour l’empêcher : retirer les bits d’exécution, échapper toutes les entrées utilisateur, etc. Mais il existe toujours une 101e façon de contourner toutes ces protections. Avec suffisamment de temps et de motivation, une personne habile en piratage trouvera cette faille et exécutera son fichier sur votre plateforme. Les risques vont de la divulgation de secrets à la destruction de données.
Deuxièmement, vous autorisez probablement les téléversements afin que d’autres utilisateurs puissent consulter le contenu. Cela signifie que, si un fichier malveillant a été téléversé, vous voilà distributeur de malwares. Impossible de savoir si les destinataires exécuteront le fichier, si leur antivirus local se déclenchera et les poussera à vous dénigrer, ou s’ils transmettront le virus à leur insu. De plus, si votre contenu est accessible aux robots d’indexation, les moteurs de recherche comme Google le remarqueront, ce qui nuira à votre classement et, par conséquent, à votre activité.
Quel que soit l’angle sous lequel vous envisagez la question, disposer d’un filtre capable de rejeter les chevaux de Troie, les virus, les malwares et les autres menaces malveillantes avant qu’ils n’atteignent votre plateforme réduirait considérablement les risques.
C’est pourquoi l’équipe Transloadit s’est mise au travail et a conçu un tout nouveau Robot pour vous y aider : /file/virusscan.
Bien qu’une sécurité à 100 % soit un mythe, /file/virusscan repose sur ClamAV, largement adopté. Utilisé comme filtre à l’entrée, il pourra reconnaître et rejeter près de 4 millions de chevaux de Troie, virus, malwares et autres menaces malveillantes.
Pour activer cette protection, il vous suffit d’ajouter quelques lignes à vos instructions.
Vos instructions convertissaient peut-être jusque-là les fichiers téléversés au format iPad, extrayaient quelques vignettes d’aperçu et exportaient les résultats vers votre serveur privé via SFTP :
{
"steps": {
"ipad": {
"use": ":original",
"robot": "/video/encode",
"preset": "ipad-high"
},
"thumbnails": {
"use": "ipad",
"robot": "/video/thumbs"
},
"store": {
"use": [":original", "ipad", "thumbnails"],
"robot": "/sftp/store",
"credentials": "sftp_destination",
"path": "./transloadit-uploads/${unique_prefix}/${file.url_name}"
}
}
}
Ces exemples utilisent la pile FFmpeg actuellement définie par défaut. Remplacez sftp_destination par vos
informations d’identification SFTP de Template et choisissez un chemin
de destination sur votre serveur.
Pour rejeter les malwares, ajoutez un Step scanned au début :
{
"steps": {
"scanned": {
"use": ":original",
"robot": "/file/virusscan"
},
"ipad": {
"use": "scanned",
"robot": "/video/encode",
"preset": "ipad-high"
},
"thumbnails": {
"use": "ipad",
"robot": "/video/thumbs"
},
"store": {
"use": ["scanned", "ipad", "thumbnails"],
"robot": "/sftp/store",
"credentials": "sftp_destination",
"path": "./transloadit-uploads/${unique_prefix}/${file.url_name}"
}
}
}
Comme vous le voyez, nous avons ajouté un Step d’analyse. Nous lui avons fait utiliser
:original et avons modifié les autres
Steps qui dépendaient auparavant de :original
pour qu’ils dépendent du Step scanned que nous venons d’ajouter. Cela ressemble
beaucoup à l’enchaînement de plusieurs outils Unix par des tubes. Vous appréciez la souplesse de
notre logique de flux des Assemblies, n’est-ce pas ? 😄
Dans cet exemple typique, nous filtrons les fichiers dès le premier Step. Toutefois, à l’image du fonctionnement de notre Robot /file/filter, vous pouvez insérer une analyse antivirus à n’importe quel Step. Cela se justifie si vous importez du contenu depuis d’autres sources, comme vous le feriez avec notre Robot /http/import. Dans ce cas, vous importeriez d’abord les fichiers, puis les analyseriez, et vous ne poursuivriez l’encodage et l’exportation que si nous ne trouvions aucune menace.
Pour en savoir plus sur ce Robot ou sur ses paramètres comme
error_on_decline, consultez sa documentation.
Vous pouvez commencer à utiliser /file/virusscan dès aujourd’hui, au tarif en $/GB de votre formule.
