
La tendance actuelle dans le développement est d'utiliser de nombreux packages dans la phase de développement, même s'ils ne fournissent que des fonctionnalités triviales et se composent de 11 lignes de code. Lorsque nous combinons cela avec des politiques très libérales de publication de nouveaux forfaits, nous voyons maintenant une montée dans des attaques malveillantes ciblant les développeurs. Il y a eu plusieurs approches différentes par les acteurs de la menace:
Ce ne sont que quelques exemples des techniques par lesquelles un développeur peut se compromettre. Ceci est soutenu par le fait qu'il n'y a pas de processus de surveillance sur ce qui est téléchargé dans les référentiels tels que le PYPI ou le NPM, et un coup de chance a découvert les incidents précédents. Notre objectif est d'améliorer cela.
## Framework Aura Nous avons créé un cadre conçu pour scanner le code source à grande échelle (comme l'ensemble du référentiel PYPI), à la recherche d'anomalies et d'intention potentiellement malveillante ainsi que de vulnérabilités. Ce cadre est conçu pour analyser également le code source à la demande, par exemple lorsqu'un package est installé par un développeur ou tout simplement tout ensemble de fichiers / répertoires. L'implémentation cible actuellement le langage Python et le PYPI, cependant, il est conçu pour fournir une capacité d'inclure d'autres langues. (comme JavaScript et NPM)
L'ensemble des cas d'utilisation comprend, mais sans s'y limiter:
Un moteur d'analyse hybride hautement optimisé y parvient. Une analyse est effectuée dans un environnement complètement sûr en utilisant une analyse de code statique sans aucune exécution de code. Le moteur Core Aura analyse l'arborescence AST analysée à partir du code source, effectuant une analyse comportementale et un flux d'exécution de code. Le moteur prend également en charge la réécriture de l'arborescence AST à l'aide d'un ensemble de règles telles que la propagation constante, le pliage ou l'évaluation statique; Ce sont un ensemble de techniques que les compilateurs utilisent pour optimiser le code. C'est la raison pour laquelle cette approche d'analyse est "hybride" car elle améliore l'analyse statique avec une évaluation partielle complètement sûre qui nous permet de vaincre le mécanisme d'obscurcation plus simple.
Ci-dessous, vous pouvez voir une vitrine de différentes techniques de «obscurcissement» du code source reconnu par le moteur de transformation AURA AST:

Pour apprendre et commencer à utiliser le cadre, lisez la documentation d'installation, de configuration et d'utilisation.
La partie principale de l'AURA est d'analyser le code source des anomalies ou des vulnérabilités potentielles. AURA possède plusieurs analyseurs intégrés qui recherchent des anomalies telles que l'utilisation d'Eval dans le script de configuration; D'autres analyseurs examinent la structure du système de fichiers (code non source) en recherche par exemple pour la divulgation des informations d'identification, les jetons d'API à code dur, etc. Il est conseillé d'utiliser un jugement raisonnable des anomalies présentées en fonction de la fonctionnalité des données d'entrée. Par exemple, il est tout à fait normal qu'une bibliothèque de demandes d'inclure des appels liés au réseau, alors qu'il n'est pas prévu qu'une bibliothèque de traitement d'image envoie des données sur le réseau. Il existe également une prise en charge de la sortie des données au format JSON adapté aux analyses de référentiel massives ou à l'intégration dans d'autres produits. Pour la description et l'utilisation des autres composants, consultez la documentation.


##Documentation
Ce projet est autorisé en vertu de la licence GPLV3 - voir le fichier licence.txt pour plus de détails. Des parties de ce cadre contient des intégrations (facultatives) avec d'autres produits tels que la plate-forme R2C, les bibliothèques.io, etc.; qui sont soumis à leur licence et aux conditions d'utilisation.