Table des matières
- Introduction
- Condition préalable
- Développement
- Howto
- select_pm
- select_pkg
- crawl
- edit_dist
- télécharger
- get_versions
- get_author
- get_dep
- get_stats
- build_dep
- build_author
- Split_graph
- installer
- astgen
- astfilter
- entacher
- filtre_pkg
- statique
- dynamique
- interprét_trace
- Interprét_result
- comparer_ast
- filtre_
- compare_hash
- grep_pkg
- accélération
- Outil
- Analyse à l'échelle de l'Internet
- Statistiques pour différents gestionnaires de packages
- Outils d'analyse statique pour différentes langues
- AST PARSER pour différentes langues
- Ressource
- Référence
Introduction
Ce projet analyse les projets open source pour les logiciels malveillants.
En raison de la forte demande de la communauté, nous décidons d'ouvrir le code tel qu'il est maintenant, pour permettre la collaboration. La majorité du code est mise à jour jusqu'en mai 2019, ce qui indique que certains composants peuvent ne plus fonctionner. En particulier les composants qui dépendent des outils externes (par exemple Sysdig, flux d'air) ou des API (par exemple NPM).
Nous travaillons activement sur les tests et les améliorations. Veuillez trouver la liste des tâches ici. Pour comment exécuter les commandes, veuillez vous référer à la section Howto. Pour comment déployer sur les machines, veuillez vous référer aux instructions de déploiement. Pour comment demander l'accès aux échantillons d'attaque de la chaîne d'approvisionnement, veuillez vous référer aux instructions de demande
Ce référentiel est ouvert sous licence MIT. Si vous trouvez ce référentiel utile, veuillez citer notre article:
@inproceedings{duan2021measuring,
title={Towards Measuring Supply Chain Attacks on Package Managers for Interpreted Languages},
author={Duan, Ruian and Alrawi, Omar and Kasturi, Ranjita Pai and Elder, Ryan and Saltaformaggio, Brendan and Lee, Wenke},
booktitle = {28th Annual Network and Distributed System Security Symposium, {NDSS}},
month = Feb,
year = {2021},
url = {https://www.ndss-symposium.org/wp-content/uploads/ndss2021_1B-1_23055_paper.pdf}
}
Condition préalable
Bases
- docker
- Configuration de base pour Ubuntu
- Pour d'autres systèmes d'exploitation (c'est-à-dire macOS et Windows), veuillez consulter
setup.sh et déterminer leurs équivalences
Dépendances
- Pour tester et exécuter le projet localement, vous avez besoin de dépendances. Il existe deux façons de préparer les dépendances
- Construisez l'image de Maloss Docker et testez à l'intérieur
- Construire l'image Docker
-
sudo docker build -t maloss .
- Re-Build Docker Image sans cache (utilisée lors de la réédition de l'image)
-
sudo docker build -t maloss . --no-cache
- Exécutez l'image Docker et mappez votre racine de source locale
-
sudo docker run -it --rm -v $(pwd):/code maloss /bin/bash
- passer à la racine de source montée cartographiée et commencer à apporter des modifications
- Installez les dépendances localement et testez-la
- Les instructions sont pour Ubuntu 16.04. Si vous les trouvez ne pas travailler sur d'autres systèmes, veuillez réparer et commettre les modifications nécessaires. Ces instructions sont simplement copiées à partir du dockerfile, examinez-le pour le dépannage.
- Pour le développement de l'analyse statique JS et Python
-
pip install -r src/requirements.txt --user
- pour les autres (Todo: simplifier cette liste géante)
-
sudo apt-get install -yqq curl php git ruby-full rubygems-integration nuget python python-pip python3-pip npm jq strace -
sudo ./src/install_dep.sh
Développement
Structure
- Le dossier Registries contient un code source pour les gestionnaires de packages en miroir. Pour exécuter le programme, vous auriez besoin de 10 To pour NPM, 5 To pour PYPI et 5TB pour RubyGems.
- Le dossier SRC contient un code source pour l'analyse statique, dynamique et des métadonnées.
- Le dossier principal contient le code source pour l'orchestration dynamique.
- Le dossier de flux d'air contient le code source pour l'orchestration statique.
- Le dossier sysdig contient la configuration et la configuration pour le traçage dynamique.
- Les données contient la configuration et les statistiques de la pot de miel.
- Config contient la configuration pour l'analyse statique.
- DOC contient des API étiquetées manuellement qui est utilisée pour dériver la configuration .
- TestData contient des échantillons de test.
- Ref contient des travaux connexes.
- Benignware contient des packages bénignes.
- Les logiciels malveillants contient la liste des échantillons malveillants, qui peuvent être utilisés pour la protection.
- Maloss-échantillons est un dépôt privé qui contient les échantillons d'attaque de la chaîne d'approvisionnement et est mis à jour périodiquement. Veuillez remplir le formulaire Google pour demander l'accès. Nous répondrons dès que possible.
Instructions
- Dans ce projet, nous utilisons actuellement le céleri + lapin pour exécuter nos métadonnées et nos analyses dynamiques de manière distribuée. Nous utilisons Airflow + Celeri pour exécuter nos analyses statiques.
- Le dossier SRC / contient le code pour chaque analyse individuelle et doit être minimisé et autonome.
- En particulier, pour l'analyse statique / dynamique / métadonnées, les travaux dans le dossier SRC / ne devraient gérer qu'un seul package et un version.
- Chaque analyse individuelle doit être développée et contenue dans ce dossier.
- Le principal / dossier gère l'informatique distribuée pour les métadonnées et les analyses dynamiques.
- Le nœud maître charge de la liste des travaux (packages et leurs versions à analyser), les envoient au courtier RabbitMQ.
- Les nœuds esclaves se connectent au courtier et récupèrent les travaux du courtier.
- Chaque analyse individuelle peut avoir besoin de changer .env dans ce dossier.
- Le flux d'air / le dossier gère l'informatique distribuée pour les analyses statiques.
- Le nœud maître charge le DAG des travaux (packages connectés par les relations de dépendance), les envoie au courtier redis.
- Les nœuds esclaves se connectent au courtier TE et récupèrent les travaux du courtier.
- Chaque analyse individuelle peut avoir besoin de changer .env dans ce dossier.
- Dans ce projet, nous exécutons chaque analyse à l'aide de Docker. Les étapes suivantes montrent comment démarrer ou déboguer les travaux distribués pour les métadonnées et les analyses dynamiques.
- à la travailleuse
- Créer
main/config personnalisé à partir de main/config.tmpl - Construire l'image Docker
-
sudo docker build -t maloss .
- Re-Build Docker Image sans cache (utilisée lors de la réédition de l'image)
-
sudo docker build -t maloss . --no-cache
- pour tester, exécutez l'image docker et attachez-y
-
sudo docker run -it --rm --cap-add=SYS_PTRACE -v /tmp/result:/home/maloss/result -v /tmp/metadata:/home/maloss/metadata maloss /bin/bash
- Pour la production, reportez-vous à Deploy.md
- sur le maître
- Créer
main/config personnalisé à partir de main/config.tmpl - Démarrer Rabbitmq
-
cd main && sudo docker-compose --compatibility -f docker-compose-master.yml up -d
- Ajouter des emplois à la file d'attente
-
python detector.py install -i ../data/pypi.csv
- débogage
- Commentez la file
QUEUING = Celery dans main/config , puis les travaux doivent être exécutés localement et séquentiellement. - Le point d'entrée de Celey Works est
main/celery_tasks.py et le point d'entrée pour Master It main/detector.py .
- TODO: Comment déboguer les analyses statiques
Howto
select_pm
- Sélectionnez les gestionnaires de packages à inspecter en fonction du seuil NUM_PKG
select_pkg
- Sélectionnez des packages populaires basés sur des critères spécifiés, tels que les téléchargements ou les utilisations
-
python main.py select_pkg ../data/pypi.with_stats.csv ../data/pypi.with_stats.popular.csv -n 10000 -
python main.py select_pkg ../data/maven.csv ../data/maven.popular.csv -n 10000 -f use_count
crawl
- Enveloppez le gestionnaire de packages spécifié et enregistrez les noms des packages
-
python main.py crawl $package_manager $outfile
- Crawer le gestionnaire de packages spécifié pour les noms de packages, la recherche de statistiques de téléchargement et enregistrer dans le fichier
-
python main.py crawl $package_manager $outfile -s -p 24
edit_dist
- Exécutez la distance d'édition pour les noms de packages
-
python main.py edit_dist $source -t $target $outfile -
python main.py edit_dist ../data/pypi.with_stats.csv ../data/edit_dist/pypi_edist_dist.out -a c_edit_distance_batch -p 16 -
python main.py edit_dist ../data/pypi.with_stats.popular.csv ../data/edit_dist/pypi_pop_vs_all.out -t ../data/pypi.with_stats.csv -a c_edit_distance_batch -p 16 --pair_outfile ../data/edit_dist/pypi_pop_vs_all.csv
télécharger
- Téléchargez le fichier de tarball à l'aide de PIP, lien
-
pip download --no-binary :all: --no-deps package
- Téléchargez le fichier TGZ à l'aide de NPM, lien
- Télécharger les packages PHP à l'aide du compositeur
-
composer require -d ../testdata/php --prefer-source --no-scripts package
- Téléchargez les packages Ruby à l'aide de GEM
- Téléchargez les packages Java à l'aide de maven
-
mvn dependency:get -Dartifact=com.google.protobuf:protobuf-java:3.5.1 -Dtransitive=false && cp ~/.m2/repository/com/google/protobuf/protobuf-java/3.5.1/protobuf-java-3.5.1.jar ./
get_versions
- Exécutez le travail GET_VERSIONS pour obtenir des versions majeures pour la liste des packages
-
python main.py get_versions ../data/pypi.with_stats.popular.csv ../data/pypi.with_stats.popular.versions.csv -l python -c /data/maloss/info/python -
python main.py get_versions ../data/maven.popular.csv ../data/maven.popular.versions.csv -c /data/maloss/info/java -l java
- Exécutez le travail Get_Versions pour obtenir toutes les versions pour la liste des packages
-
python main.py get_versions ../data/2019.07/pypi.csv ../data/2019.07/pypi.versions.csv -c /data/maloss/info-2019.07/python -l python --max_num -1
- Exécutez le travail GET_VERSIONS pour obtenir toutes les versions pour la liste des packages et inclure également leur temps
-
python main.py get_versions ../data/2019.07/pypi.csv ../data/2019.07/pypi.versions.csv -c /data/maloss/info-2019.07/python -l python --max_num -1 --with_time
- Exécutez le travail GET_VERSIONS pour obtenir des versions récentes pour la liste des packages
-
python main.py get_versions ../data/2019.07/pypi.csv ../data/2019.07/pypi.versions.csv -c /data/maloss/info-2019.07/python -l python --max_num 100 --min_gap_days 1
get_author
- Exécutez le travail GET_AUTHOR à l'auteur pour la liste des packages
-
python main.py get_author ../data/pypi.with_stats.popular.csv ../data/pypi.with_stats.with_author.popular.csv -l python -c /data/maloss/info/python
get_dep
- Exécutez le travail GET_DEP pour répertorier les dépendances pour les packages Python
-
python main.py get_dep -l python -n protobuf -c ../testdata -
python main.py get_dep -l python -n scrapy -c ../testdata
- Exécutez le travail GET_DEP pour répertorier les dépendances pour les packages JavaScript
-
python main.py get_dep -l javascript -n eslint -c ../testdata
- Exécutez le travail GET_DEP pour répertorier les dépendances pour les packages Ruby
-
python main.py get_dep -l ruby -n protobuf -c ../testdata
- Exécutez le travail GET_DEP pour répertorier les dépendances pour les packages PHP
-
python main.py get_dep -l php -n designsecurity/progpilot -c ../testdata
- Exécutez le travail GET_DEP pour répertorier les dépendances pour les forfaits Java
-
python main.py get_dep -l java -n com.google.protobuf/protobuf-java -c ../testdata
get_stats
- Obtenez les statistiques des packages spécifiés
-
python main.py get_stats ../malware/npmjs-mal-pkgs.june2019.txt ../malware/npmjs-mal-pkgs.june2019.with_stats.txt.new -m npmjs
- Obtenez les statistiques des packages spécifiés
- `python main.py get_stats ../malware/pypi-mal-pkgs.txt ../malware/pypi-mal-pkgs.with_stats.txt -m pypi
build_dep
- Construisez le graphique de dépendance
-
python main.py build_dep -c /data/maloss/info/python -l python ../data/pypi.with_stats.csv ../airflow/data/pypi.with_stats.dep_graph.pickle
- Construisez le graphique de dépendance avec les versions (l'option ---record_version )
-
python main.py build_dep -c /data/maloss/info/python -v -l python ../data/pypi.with_stats.popular.versions.csv ../airflow/data/pypi.with_stats.popular.versions.dep_graph.pickle
build_author
- Construisez le graphique du package d'auteur pour les packages populaires dans PYPI / NPMJS / RubyGems / Packagist
-
python main.py build_author ../data/author_pkg_graph.popular.pickle -i ../data/pypi.with_stats.with_author.popular.csv ../data/npmjs.with_stats.with_author.popular.csv ../data/rubygems.with_stats.with_author.popular.csv ../data/packagist.with_stats.with_author.popular.csv -l python javascript ruby php -t ../data/top_authors.popular.json
- Créez le graphique du package d'auteur pour tous les packages dans PYPI / NPMJS / RubyGems / Packagist / Maven
-
python main.py build_author ../data/author_pkg_graph.pickle -i ../data/pypi.with_stats.with_author.csv ../data/npmjs.with_stats.with_author.csv ../data/rubygems.with_stats.with_author.csv ../data/packagist.with_stats.with_author.csv ../data/maven.with_author.csv -l python javascript ruby php java -t ../data/top_authors.json
Split_graph
- diviser le graphique de dépendance
- Décomposer d'abord les fichiers de cornichon
-
tar -zxf ../airflow/data/pypi.with_stats.dep_graph.pickle.tgz
- Split en n copies
-
python main.py split_graph ../airflow/data/pypi.with_stats.dep_graph.pickle ../airflow/pypi_dags/ -d ../airflow/data/pypi_static.py -n 20 -
python main.py split_graph ../airflow/data/pypi.with_stats.popular.versions.dep_graph.pickle ../airflow/pypi_version_dags/ -d ../airflow/data/pypi_static_versions.py -n 10 -
python main.py split_graph ../airflow/data/maven.dep_graph.pickle ../airflow/maven_dags/ -d ../airflow/data/maven_static.py -n 20
- Splay en n copies et k dossiers
-
python main.py split_graph ../airflow/data/maven.popular.versions.dep_graph.pickle.tgz ../airflow/maven_version_dags/ -d ../airflow/data/maven_static_versions.py -n 80 -k 4
- séparer le sous-graphe qui contient des nœuds de graine
-
python main.py split_graph ../airflow/data/pypi.with_stats.dep_graph.pickle ../airflow/pypi_dags/ -d ../airflow/data/pypi_static.py -s ../data/pypi.with_stats.popular.csv
installer
- Exécutez le travail d'installation pour installer des packages Python et capturer des traces
-
python main.py install -n protobuf -l python -c ../testdata -o ../testdata
- Exécutez le travail d'installation pour installer des packages JavaScript et capturer les traces
-
python main.py install -n eslint -l javascript -c ../testdata -o ../testdata
- Exécutez le travail d'installation pour installer des packages Ruby et capturer les traces
-
python main.py install -n protobuf -l ruby -c ../testdata -o ../testdata
- Exécutez le travail d'installation pour installer des packages PHP et capturer des traces
-
python main.py install -n designsecurity/progpilot -l php -c ../testdata -o ../testdata
- Exécutez le travail d'installation pour installer des packages Java et capturer des traces
-
python main.py install -n com.google.protobuf/protobuf-java -l java -c ../testdata -o ../testdata
astgen
- Exécutez ASTGen Job pour calculer AST pour les packages Python et Python3
-
python main.py astgen ../testdata/test-eval-exec.py ../testdata/test-eval-exec.py.out -c ../config/test_astgen_python.config -
python main.py astgen ../testdata/html5lib-1.0.1.tar.gz ../testdata/html5lib-1.0.1.tar.gz.out -c ../config/test_astgen_python.config -
python main.py astgen ../testdata/python-taint-0.40.tar.gz ../testdata/python-taint-0.40.tar.gz.out -c ../config/test_astgen_python.config
- Exécutez ASTGen Job pour calculer AST pour les packages JavaScript
-
python main.py astgen ../testdata/test-eval.js ../testdata/test-eval.js.out -c ../config/test_astgen_javascript.config -l javascript -
python main.py astgen ../testdata/urlgrey-0.4.4.tgz ../testdata/urlgrey-0.4.4.tgz.out -c ../config/test_astgen_javascript.config -l javascript
- Exécutez le travail ASTGEN pour calculer AST pour les packages PHP
-
cd static_proxy && php astgen.php -c ../../config/test_astgen_php.config.bin -i ../../testdata/test-eval-exec.php -o ../../testdata/test-eval-exec.php.out.bin && cd .. -
python main.py astgen ../testdata/test-eval-exec.php ../testdata/test-eval-exec.php.out -c ../config/test_astgen_php.config -l php -
python main.py astgen ../testdata/test-backtick.php ../testdata/test-backtick.php.out -c ../config/test_astgen_php.config -l php -
python main.py astgen ../testdata/php/vendor/guzzlehttp/guzzle/ ../testdata/guzzlehttp_guzzle.out -c ../config/test_astgen_php.config -l php
- Exécutez le travail ASTGEN pour calculer AST pour les packages Ruby
-
cd static_proxy && ruby astgen.rb -c ../../config/test_astgen_ruby.config.bin -i ../../testdata/test-eval.rb -o ../../testdata/test-eval.rb.out.bin && cd .. -
python main.py astgen ../testdata/test-eval.rb ../testdata/test-eval.rb.out -c ../config/test_astgen_ruby.config -l ruby
- Exécutez ASTGen Job pour calculer AST pour les packages Java
-
cd static_proxy/astgen-java && java -jar target/astgen-java-1.0.0-jar-with-dependencies.jar -help && cd ../../ -
cd static_proxy/astgen-java && java -jar target/astgen-java-1.0.0-jar-with-dependencies.jar -inpath ../../../testdata/Test.jar -outfile ../../../testdata/Test.jar.out -intype JAR -config ../../../config/astgen_java_smt.config -process_dir ../../../testdata/Test.jar && cd ../../ -
python main.py astgen ../testdata/protobuf-java-3.5.1.jar ../testdata/protobuf-java-3.5.1.jar.out -c ../config/test_astgen_java.config -l java -
python main.py astgen ../testdata/Test.jar ../testdata/Test.jar.out -c ../config/astgen_java_smt.config -l java
astfilter
- Utilisez les configts intitulés
../config/astgen_XXX_smt.config pour chaque langue (par exemple ../config/astgen_javascript_smt.config ) dans le travail ASTFilter - Exécutez le travail ASTFilter pour évaluer l'utilisation de l'API pour le package Python / PYPI et ses packages dépendants
-
python main.py astfilter -n protobuf -c $python_config -d ../testdata/ -o ../testdata/
- Exécutez le travail ASTFilter pour évaluer l'utilisation de l'API pour le package JavaScript / NPMJS et ses packages dépendants
-
python main.py astfilter -n eslint-scope -c $javascript_config -d ../testdata/ -o ../testdata/ -l javascript
- Exécutez le travail ASTFilter pour évaluer l'utilisation de l'API pour le package PHP / Packagist et ses packages dépendants
-
python main.py astfilter -n designsecurity/progpilot -c $php_config -d ../testdata/ -o ../testdata/ -l php
- Exécutez le travail ASTFilter pour évaluer l'utilisation de l'API pour le package Ruby / Rubygems et ses packages dépendants
-
python main.py astfilter -n protobuf -c $ruby_config -d ../testdata/ -o ../testdata -l ruby
- Exécutez le travail ASTFilter pour évaluer l'utilisation de l'API pour le package Java / Maven et ses packages dépendants
-
python main.py astfilter -n com.google.protobuf/protobuf-java -c $java_config -d ../testdata/ -o ../testdata -l java
entacher
- Exécutez une analyse de souillure pour des packages spécifiques
-
python main.py taint -n json -d /data/maloss/info/ruby -o /data/maloss/result/ruby -l ruby -c ../config/astgen_ruby_smt.config
- Exécutez une analyse de souillure pour des packages spécifiques et ignorer leurs dépendances
-
python main.py taint -n urllib -i ../malware/pypi-samples/urllib-1.21.1.tgz -d /data/maloss/info/python -o ./ -l python -c ../config/astgen_python_smt.config -
python main.py taint -n django-server -i ../malware/pypi-samples/django-server-0.1.2.tgz -d /data/maloss/info/python -o ./ -l python -c ../config/astgen_python_smt.config -
pip download --no-binary :all: --no-deps trustme && python main.py taint -n trustme -i trustme-0.5.1.tar.gz -d /data/maloss/info/python -o ./ -l python -c ../config/astgen_python_smt.config -
python main.py taint -n eslint-scope -i ../malware/npmjs-samples/eslint-scope-3.7.2.tgz -d /data/maloss/info/javascript -o ./ -l javascript -c ../config/astgen_javascript_smt.config -
python main.py taint -n custom8 -i static_proxy/jsprime/jsprimetests/custom8.js -d /data/maloss/info/javascript -o ./ -l javascript -c ../config/astgen_javascript_smt.config -
python main.py taint -n stream-combine -i ../malware/npmjs-samples/stream-combine-2.0.2.tgz -d /data/maloss/info/javascript -o ./ -l javascript -c ../config/astgen_javascript_smt.config -
python main.py taint -n test-eval-exec -i ../testdata/test-eval-exec.php -d /data/maloss/info/php -o ./ -l php -c ../config/astgen_php_smt.config -
python main.py taint -n test-multiple-flows -i static_proxy/progpilot/projects/tests/tests/flows/ -d /data/maloss/info/php -o ./ -l php -c ../config/astgen_php_smt.config -
python main.py taint -n test-flow -i ../testdata/test-flow.php -d /data/maloss/info/php -o ./ -l php -c ../config/astgen_php_smt.config
- Exécutez l'analyse de souche pour un fichier d'entrée spécifique
-
python main.py taint -n active-support -l ruby -c ../config/astgen_ruby_smt.config -i ../malware/rubygems-samples/active-support-5.2.0.gem -o ./ -
python main.py taint -n bootstrap-sass -l ruby -c ../config/astgen_ruby_smt.config -i ../malware/rubygems-samples/bootstrap-sass-3.2.0.3.gem -o ./ -
python main.py taint -n brakeman-rails4 -l ruby -c ../config/astgen_ruby_smt.config -i ../testdata/rails4/ -o ./
filtre_pkg
- Filtre Packages basés sur l'utilisation de l'API ou la présence de flux
-
python main.py filter_pkg ../data/pypi.with_stats.csv ../data/pypi.with_stats.with_taint_apis.csv -c ../config/astgen_python_taint_apis.config -o /data/maloss/result/python -d /data/maloss/info/python -l python -
python main.py filter_pkg ../data/rubygems.with_stats.csv ../data/rubygems.with_stats.with_taint_apis.csv -c ../config/astgen_ruby_taint_apis.config -o /data/maloss/result/ruby -d /data/maloss/info/ruby -l ruby -
python main.py filter_pkg ../data/npmjs.with_stats.csv ../data/npmjs.with_stats.with_taint_apis.csv -c ../config/astgen_javascript_taint_apis.config -o /data/maloss/result/javascript -d /data/maloss/info/javascript -l javascript -
python main.py filter_pkg ../data/packagist.with_stats.csv ../data/packagist.with_stats.with_taint_apis.csv -c ../config/astgen_php_taint_apis.config -o /data/maloss/result/php -d /data/maloss/info/php -l php -
python main.py filter_pkg ../data/maven.csv ../data/maven.with_taint_apis.csv -c ../config/astgen_java_taint_apis.config -o /data/maloss/result/java -d /data/maloss/info/java -l java
statique
- Exécutez un travail statique pour effectuer une analyse ASTFilter, Taint et Danger pour les packages Python et Python3
-
python main.py static -n protobuf -c $python_config -d ../testdata/ -o ../testdata/
dynamique
- Exécutez un travail dynamique pour installer, maintenir et exercer des packages Python et capturer des traces
-
python main.py dynamic -n protobuf -l python -c ../testdata -o ../testdata
interprét_trace
- Exécutez Interpréter le travail de trace pour analyser les traces dynamiques et les vider dans les fichiers de sortie PKG / version Protobuf
- Remarque: Sudo est nécessaire pour démarrer Falco pour analyser les traces
-
sudo python main.py interpret_trace -l python --trace_dir /data/maloss1/sysdig/pypi -c /data/maloss/info/python -o /data/maloss/result/python -p 8
comparer_ast
- Comparez l'AST des fichiers d'entrée et des packages spécifiés pour les autorisations, les API, etc.
-
python main.py compare_ast -i ../malware/npmjs-samples/flatmap-stream-0.1.1.tgz ../benignware/npmjs-samples/flatmap-stream-0.1.0.tgz -o ../testdata/ ../testdata/flatmap-stream.json -l javascript -c ../config/astgen_javascript_smt.config -
python main.py compare_ast -i ../testdata/test-backtick.php ../testdata/test-eval-exec.php -o tempout/ tempout/test_eval_backtick.json -l php -c ../config/astgen_php_smt.config -
python main.py compare_ast -i ../malware/rubygems-samples/bootstrap-sass-3.2.0.3.gem ../benignware/rubygems-samples/bootstrap-sass-3.2.0.2.gem -l ruby -c ../config/astgen_ruby_smt.config -o ../testdata/ --outfile ../testdata/bootstrap-sass-compare.txt -
python main.py compare_ast -i ../malware/rubygems-samples/active-support-5.2.0.gem ../benignware/rubygems-samples/activesupport-5.2.3.gem -c ../config/astgen_ruby_smt.config -o ../testdata/ --outfile ../testdata/activesupport-compare.txt -l ruby
filtre_
- Filtre les versions du package basées sur les résultats compare_ast, pour permettre une analyse plus approfondie telle que l'analyse de souillure
-
python main.py filter_versions ../data/2019.07/packagist.versions.with_time.csv ../data/2019.07/packagist_ast_stats.apis.json ../data/2019.07/packagist.versions.with_time.filtered_loose_apis.csv
compare_hash
- Comparez la valeur de hachage des mêmes versions de package sur différents gestionnaires de packages
-
python main.py compare_hash -i ../data/maven.csv ../data/jcenter.csv -d /data/maloss/info/java /data/maloss/info/jcenter -o ../data/maven_jcenter.json -
python main.py compare_hash -i ../data/jitpack.csv ../data/jcenter.csv -d /data/maloss/info/jitpack /data/maloss/info/jcenter -o ../data/jitpack_jcenter.json
- Comparez la valeur de hachage des mêmes versions de package et de leurs autorisations de hachage ou d'API de contenu à travers différents gestionnaires de packages
-
python main.py compare_hash -i ../data/jitpack.csv ../data/jcenter.csv -d /data/maloss/info/jitpack /data/maloss/info/jcenter -o ../data/jitpack_jcenter_filtered.json --inspect_content -
python main.py compare_hash -i ../data/jitpack.csv ../data/jcenter.csv -d /data/maloss/info/jitpack /data/maloss/info/jcenter -o ../data/jitpack_jcenter_filtered.json --inspect_api -c ../config/astgen_java_smt.config -
python main.py compare_hash -i ../data/jitpack.csv ../data/jcenter.csv -d /data/maloss/info/jitpack /data/maloss/info/jcenter -o ../data/jitpack_jcenter_filtered_api.json --inspect_api -c ../config/astgen_java_smt.config --compare_hash_cache ../data/jitpack_jcenter_filtered.json
Interprét_result
- Collectez et tracez les statistiques de l'API
-
python main.py interpret_result --data_type api -c /data/maloss/info/python -o /data/maloss/result/python -l python ../data/2019.01/pypi.with_stats.csv ../data/pypi_api_stats.json -
python main.py interpret_result --data_type api -c /data/maloss/info/python -o /data/maloss/result/python -l python ../data/2019.01/pypi.with_stats.popular.csv ../data/pypi_pop_api_stats.json -
python main.py interpret_result --data_type api -c /data/maloss/info/python -o /data/maloss/result/python -l python ../data/2019.01/pypi.with_stats.csv ../data/pypi_api_mapping.json -d --detail_filename
- Collectez et tracez les statistiques du domaine
-
python main.py interpret_result --data_type domain -c /data/maloss/info/python -o /data/maloss/result/python -l python ../data/2019.06/pypi.csv ../data/2019.06/pypi_domain_stats.json -
python main.py interpret_result --data_type domain -c /data/maloss/info/python -o /data/maloss/result/python -l python ../data/2019.06/pypi.csv ../data/2019.06/pypi_domain_mapping.json -d
- Collectez les statistiques de dépendance pré-générées
-
python main.py interpret_result --data_type dependency -l python ../data/pypi.with_stats.popular.csv ../data/pypi_pop_dep_stats.json
- Collectez les résultats de comparaison de la version croisée, peut filtrer par autorisation, API, etc.
-
python main.py interpret_result --data_type compare_ast -c /data/maloss/info/python -o /data/maloss/result/python -l python ../data/2019.06/pypi.with_stats.popular.csv ../data/2019.06/pypi_compare_ast_stats.json -
python main.py interpret_result --data_type compare_ast -c /data/maloss/info-2019.07/javascript -o /data/maloss/result-2019.07/javascript -l javascript ../data/2019.07/npmjs.csv ../data/2019.07/npmjs_ast_stats.json --compare_ast_options_file ../data/2019.07/compare_ast_options.json
- Collectez les résultats des métadonnées / statiques / dynamiques et videz les forfaits suspects
-
python main.py interpret_result --data_type install_with_network -c /data/maloss/info/javascript -o /data/maloss/result/javascript -l javascript -m npmjs ../data/2019.06/npmjs.csv ../data/2019.06/npmjs.install_with_network.json
- Collectez les résultats de dépendance inverse
-
python main.py interpret_result --data_type reverse_dep -l javascript -m npmjs ../airflow/data/high_impact.csv ../airflow/data/high_impact_npmjs.json -
python main.py interpret_result --data_type reverse_dep -l python -m pypi ../airflow/data/high_impact.csv ../airflow/data/high_impact_pypi.json -
python main.py interpret_result --data_type reverse_dep -l ruby -m rubygems ../airflow/data/high_impact.csv ../airflow/data/high_impact_rubygems.json
- Collectez les résultats des métadonnées / static / compare_ast et vide les packages suspects
-
python main.py interpret_result --data_type correlate_info_api_compare_ast -c /data/maloss/info-2019.07/javascript -o /data/maloss/result-2019.07/javascript -l javascript -m npmjs -s ../data/2019.07/npmjs_skip_list.json ../data/2019.07/npmjs_ast_stats.json ../data/2019.07/npmjs_correlate_info_api_compare_ast.json -
python main.py interpret_result --data_type correlate_info_api_compare_ast -c /data/maloss/info-2019.07/php -o /data/maloss/result-2019.07/php -l php -m packagist -s ../data/2019.07/packagist_skip_list.json ../data/2019.07/packagist_ast_stats.json ../data/2019.07/packagist_correlate_info_api_compare_ast.json -
python main.py interpret_result --data_type taint -c /data/maloss/info-2019.07/php -o /data/maloss/result-2019.07/php -l php ../data/2019.07/packagist.csv ../data/2019.07/packagist_flow_stats.json
grep_pkg
- grep à travers les packages
-
python main.py grep_pkg ../data/2019.07/rubygems.csv ../data/2019.07/rubygems.csv.pastebin.com pastebin.com -l ruby -p 80 -
python main.py grep_pkg ../data/2019.07/npmjs.csv ../data/2019.07/npmjs.csv.pastebin.com pastebin.com -l javascript -p 20
accélération
- Mesurer les avantages de l'accélération des résumés
-
python main.py speedup ../data/2019.01/pypi.with_stats.popular.csv speedup.log -l python
Outil
Analyse à l'échelle de l'Internet
Statistiques pour différents gestionnaires de packages
- Statistiques PYPI
- Statistiques de packages PYPI
- Statistiques NPMJS
- Dépendants de la NPM-Pack
- Statistiques Rubygems
- Portail non officiel pour Rubygems Téléchargements
- Statistiques de Nuget
- Statistiques de packagistes
- Maven Statistiques (utilisées par d'autres packages)
- Statistiques rapides maven
Outils d'analyse statique pour différentes langues
- Résumé de liste
- 13 outils pour vérifier le risque de sécurité des dépendances open source
- Analyse des logiciels malveillants impressionnants: une liste organisée d'outils et de ressources d'analyse de logiciels malveillants impressionnants
- Une liste organisée de liners, des vérificateurs de qualité de code et d'autres outils d'analyse statique pour divers langages de programmation
- PMD: Un analyseur de code statique inter-language extensible. https://pmd.github.io
- PMD ne prend pas en charge l'analyse interprocédurale maintenant
- SETTAGE DE SÉCURITÉ POUR LE POPULAIRE TOLan d'analyse statique Java PMD.
- Python
- Un outil d'analyse statique pour détecter les vulnérabilités de sécurité dans les applications Web Python
- Bandit est un outil conçu pour trouver des problèmes de sécurité courants dans le code Python
- Php
- Une liste examinée d'outils d'analyse statique PHP utiles
- Détecter les fichiers PHP potentiellement malveillants
- Analyse de souillure pour PHP
- Audit de sécurité PHPCS
- Un outil d'analyse statique pour la sécurité
- API et documentation pour Progpilot
- PHP Global Variables - Superglobals
- Taint est une extension PHP, utilisée pour détecter dynamiquement les codes XSS
- Rubis
- Vérifiez les problèmes de sécurité Ruby
- Verrouiller le rubis dans le coffre-fort
- Un scanner de vulnérabilité de sécurité d'analyse statique pour Ruby on Rails Applications, GitHub
- Brakeman Pro est le meilleur moyen d'enquêter sur la posture de sécurité de Ruby sur le code de demande Rails.
- Dawn est un scanner de sécurité d'analyse statique pour les applications Web écrites Ruby. Il prend en charge les cadres Sinatra, Padrino et Ruby sur Rails.
- La qualité est un outil qui exécute des vérifications de qualité sur votre code à l'aide d'outils communautaires
- Npmjs
- 6 outils pour scanner l'application Node.js pour la vulnérabilité de sécurité
- Node Security Platform Command-Lline Tool https://nodesesecurity.io
- Un outil d'analyse de sécurité statique JavaScript
- Blackhat 2013 Talk for jsprime
- Jshint est un outil qui aide à détecter les erreurs et les problèmes potentiels dans votre code JavaScript
- Un premier aperçu de la sécurité de Firefox OS
- Wala est lent
- JSPRIME est également capable d'effectuer une analyse du flux de données, mais l'architecture est extrêmement difficile à étendre.
- Scanjs, écrit en interne par Mozilla, est le plus proche de la nôtre.
- NodeJSScan est un scanner de code de sécurité statique pour les applications Node.js.
- Le flux est un vérificateur de type statique pour JavaScript
- JSFlow est un interprète JavaScript amélioré par la sécurité pour le suivi à grain fin du flux d'informations.
- Un outil pour étudier les logiciels malveillants JavaScript.
- Un outil d'analyse de logiciels malveillants JavaScript
- Cadre d'analyse évolutive pour ECMAScript
- Déacré: outil d'analyse statique pour le code JavaScript.
- Analyser JavaScript et le Web avec Wala
- JSUNPACK: JSUNPACK-N émule la fonctionnalité du navigateur lors de la visite d'une URL
- Collection de près de 40 000 échantillons de logiciels malveillants JavaScript
- JSAI: une plate-forme d'analyse statique pour JavaScript
- Clone du cadre d'analyse statique JSAI
- Analyse statique des applications JavaScript Node.js motivées par événement
- Cadre d'analyse dynamique pour JavaScript
- Java
- Framework de détection de logiciels malveillants Android
- Code du papier de détection de logiciels malveillants profonds
- FlowDroid Static Data Flow Tracker
- Csharp
- Analyseur de code de sécurité - Analyseur de code statique pour .NET
- Outils de gestion des dépendances
- Bower: un gestionnaire de packages pour le Web
- YARN: Gestion rapide, fiable et sécurisée
- Analyse dynamique
- Dynamorio: plate-forme d'outil d'instrumentation dynamique
- Orchestration de test de sécurité des applications dynamiques (dasto)
- Valgrind est un cadre d'instrumentation pour construire des outils d'analyse dynamique
- Un plugin de suivi de souillure pour l'outil de vérification de la mémoire Valgrind
- Cadre d'analyse
- Framework modular File Scanning / Analysis: Prise en charge de Clamav, etc.
- Un service d'analyse de logiciels malveillants gratuits pour la communauté qui détecte et analyse les menaces inconnues à l'aide d'une technologie d'analyse hybride unique.
- Plus de 5200 projets open source et 25 000 développeurs utilisent une scan de couverture
AST PARSER pour différentes langues
- Python AST Parser, utilisez AST.Parse
- ast.parse
- Paramètres AST.Parse
- annoter le python ast: asttoken
- Écriture du script de configuration
- JavaScript AST Parser, utilisez Esprima
- ESTREE: Spécifications de l'API d'analyse JavaScript
- Réponses Référez-vous à Spidermonkey et Esprima
- Spidermonkey
- Esprima, comparaison Esprima
- Acorn, Acorn vs Esprima
- Compilateur Babel, basé sur l'acorn
- Port python d'Esprima
- Comment NPM gère le champ "Scripts"
- Spécification de l'API Node.js
- Objets standard JavaScript par catégorie
- Index des méthodes JavaScript
- Ruby AST Parser
- Ruby dans vingt minutes
- Un analyseur de rubis, téléchargez les statistiques
- ruby_parser
- Comparaison entre l'analyseur et Ruby_parser
- Utilisation d'un analyseur de rubis pour trouver une syntaxe obsolète
- La fonction Ruby Eval peut être dangereuse
- Ruby Exec, System,% x () et Backticks
- Comment exécuter un script lors de l'installation GEM?
- Parser Java AST
- Suie
- Wala
- Exécutez un script après l'installation de Maven
- Fonctions java exploitables
- C # AST Parser
- Microsoft Binskim
- C # /. Net Code Analyseur automatisé
- Verocode prend en charge l'analyse statique de nombreuses langues
- Code de sécurité
- garantie de sécurité
- Puma
- Comparaison des analyseurs de code C #
- PHP AST Parser
- PHP-PARSER
- php-ast
- Générer AST d'un fichier source PHP
- phpjoern
- Fonctions PHP exploitables
- Fonctions PHP dangereuses
- Désactiver les fonctions PHP dangereuses
- Scripts compositeurs pour une analyse dynamique
- Parser C / C ++ AST
Ressource
- Taobao Mirror of NPM,
- Miroir Stanford de PYPI
- Miroirs des registres en Chine
- Garder le registre NPM génial: comment fonctionne NPMJS?
- Requête le registre NPMJS via l'API
- Recherche NPM avec versions d'histoire
- Numeric Precision Matters: comment le téléchargement NPM compte fonctionne
- Documents de l'API NPMJS
- La CLI de Synk vous aide à trouver et à réparer les vulnérabilités connues dans vos dépendances, à la fois ad hoc et dans le cadre de votre système CI
- Utilisation du miroir NPM européen
- Ce que j'ai appris en analysant les versions de 1,65 m de modules Node.js dans NPM
- Sites Web Archive.org Snapshots et peut être utilisé pour mesurer les sites Web des victimes
- Traçage des événements pour Windows (ETW)
- Audit Linux
- Auditd de réglage: audit Linux haute performance
- Linux Audit Framework 101 - Règles de base pour la configuration
- Audit Linux: audit la configuration du réseau
- Comment utiliser le système d'audit Linux sur CentOS 7
- Chapitre 7. Audit système
- Se décrocher
- Analyseur de Strace
- Python-Ptrace est une liaison python de la bibliothèque Ptrace
- Pystrace - outils Python pour analyser et analyser les fichiers de sortie Strace
- Analyse la sortie de Strace
- Profilage et visualisation avec GNU Strace
- J'ai créé une Grammer BNF pour la sortie et utilisé BNFC pour générer automatiquement un analyseur en C ++.
- Sortie structurée pour Strace
- comme Strace, mais pour le code rubis
- Pytrace est un traceur Python rapide. Il enregistre les appels de fonction, les arguments et les valeurs de retour.
- PHP-Strace aide à retrouver Segfaults dans l'exécution des processus PHP
- Comment définir la largeur des caractères de sortie de Strace pour être plus longue?
-
-s option -s spécifie la taille maximale de la chaîne à imprimer -
-v OPTION IMPRESSIONNE
- Google Summer of Code pour la sortie Strace
- Strace Participation au GSOC 2014
- Sortie vraiment structurée pour Strace dans le GSOC 2016
- Doc pour GSOC 2016
- Dtrace pour Linux
- Code de la transformation multiplochie, une seule source, implémentation OpenDtrace
- Ftrace est un traceur interne conçu pour aider les développeurs et les concepteurs de systèmes pour trouver ce qui se passe à l'intérieur du noyau.
- Quelle est la différence entre Dtrace et Strace
- Sysdig vs Dtrace vs Strace: une discussion technique
- OSQuery: Audit de processus et de socket avec OsQuery
- Informations collectées par Osquery (tables)
- Une liste organisée d'outils et de ressources pour la réponse aux incidents de sécurité, visait à aider les analystes de sécurité et les équipes DFIR.
- 1er: Comment les équipes utilisent-elles actuellement OsQuery?
- 2e: Quels sont les points douloureux actuels d'Osquery?
- 3e: Que souhaitez-vous que Osquery puisse faire?
- Kolide Cloud est une solution de surveillance des points de terminaison qui exploite et instrument le projet OSQuery open-source de Facebook. Essayez-le aujourd'hui; complètement gratuit pour vos 10 premiers appareils.
- Flotte Kolide pour surveiller les machines Osquery
- Prise en charge de Docker dans Osquery
- Dockerfiles pour l'osquerie conteneurisée
- Uptycs: sécuriser les conteneurs: Utilisation d'Osquery pour résoudre de nouveaux défis posés par les services d'orchestration hébergés
- Uptycs: Docker et Osquery
- OSQuery pour la sécurité: Introduction à Osquery - Partie 1
- OSQuery pour la sécurité - Partie 2
- OSQuery - Windows, MacOS, surveillance Linux et détection d'intrusion
- Docker et Osquery
- Intro à Osquery: des questions fréquemment posées aux débutants
- Configuration OSQuery de Palantir
- Sysdig: outil d'exploration et de dépannage du système Linux avec prise en charge de première classe pour les conteneurs
- SELINUX, SecComp, Sysdig Falco et vous: une discussion technique
- Prometheus Monitoring et Sysdig Monitor: une comparaison technique
- Jour 3 - Alors serveur, parlez-moi de vous. Une introduction à Facer, Osquery et Sysdig
-
Whereas Facter and osquery are predominantly about querying infrequently changing information, Sysdig is much more suited to working with real-time data streams – for example, network or file I/O, or tracking errors in running processes.
- Surveillance des conteneurs: Prometheus et Grafana Vs. Moniteur Sysdig et Sysdig
- Surveillance des conteneurs avec sysdig
- Guide de l'utilisateur Sysdig
- Sysdig Falco
- Règles sysdig falco
- Détecter le cryptojacking avec le falco de Sysdig
- Sysdig + logstash + elasticsearch
- Sysdig + wapitis (potentiel)
- Envoi des événements Kubernetes et Docker à Elasticsearch et Splunk en utilisant Sysdig
- Sécurité des conteneurs d'exécution - Comment implémenter la sécurité des conteneurs open source
- Wtf mon conteneur vient de donner une coquille
- auditeur
- L'audit de Go-Audit est une alternative au démon Auditd qui expédie avec de nombreuses distros
- La base de données de la série de surveillance Prometheus et des séries chronologiques.
- Site officiel de Prometheus
- contacteur
- Audit FIM et System Call à grande échelle dans un grand déploiement de conteneurs
- Kubernetes: Kubernetes est un système open source pour l'automatisation du déploiement, de la mise à l'échelle et de la gestion des applications conteneurisées.
- Facteur: Collectez et affichez les faits du système
- Trouver des fichiers PHP exploitables par Fuzzing des paramètres et traçage des appels de fonction
- Un analyseur OS X pour Cuckoo Sandbox Project
- Cuckoo Sandbox est le principal système d'analyse de logiciels malveillants automatisés open source
- Bibliothèques natives avec maven
- Maven: Bundling et déballage des bibliothèques natives
- Plugin d'archives natives pour maven
- Système de fichiers élastiques (EFS) Monte à l'extérieur d'AWS
- Mise à jour Amazon EFS - Accès sur site via Direct Connect
- Le langage de programmation Go
- En raison de la façon dont GO fait des importations, une maison de compensation centrale comme Maven ou NPM n'est tout simplement pas nécessaire.
- Project for Go Search, un moteur de recherche pour trouver des forfaits populaires et pertinents.
- Ruby (enfin) gagne en popularité, mais allez-y
- Langages supérieurs: Java, C, C ++, Python, C #, PHP, JavaScript, Ruby
- Références d'analyse statique
- Inférence de type automatisé pour les programmes dynamiquement typés
- Un outil d'analyse statique pour trouver des erreurs dans les applications PHP
- IBM AppScan permet de scanner la source / le code compilé pour les vulnérabilités
- Support Languages of AppScan: prend en charge C / C ++, .NET, Java, JSP, Javascript, PHP, ASP, Python
- IBM Security AppScan Source 9.0.3.10 Disponible sur Fix Central
- Versions de source appscan disponibles
- Exécution restreinte
- Python à sable
- Ruby Sandboxing vs intégration d'une langue de script
- Emprisonné - Sandbox JS flexible
- Est-il possible de sandbox javascript en cours d'exécution dans le navigateur?
- Existe-t-il un moyen d'exécuter du code PHP dans un bac à sable à partir de PHP
- Runkit_sandbox
- Sandboxing Java Code
- Exécutez une méthode en Java avec des autorisations restreintes
- Travaux de lot AWS
- tutoriel AWS Batch
- AWS Batch: Simplifier l'informatique par lots dans le cloud
- Exemple de lot AWS
- EC2-SPOT-AWS-BATCH
- SQS-EC2-SPOT-FLEET-AUTOSCALATION
- Halte de flux d'air
- Dag de tâches parallèles dans le céleri de Python
- Flux d'air - évoluer avec le céleri
- Halte de flux d'air
- Introduction du flux d'air
- Flux d'air sur Kubernetes (partie 1): un autre type d'opérateur
- Une image Docker et des fichiers de configuration de Kubernetes pour exécuter le flux d'air sur Kubernetes
- Un guide sur la façon de créer un serveur / cluster de flux d'air
- Avis de sécurité
- Problèmes Rubygems
- Avis de sécurité NPMPJS
- Packages python
- Packages packagistes
- Packages maven
- Packages JCenter
- Miroir de données vulndb
- Piste de dépendance
- Vérification de la dépendance
- Microsoft Security Advisory
Référence
- Compte de module
- un site Web rapide pour suivre le nombre de modules dans divers référentiels
- site Web de frappe-carré
- Thèse de la faute de frappe
- Debian Popcorn
- Les packages PYPI se sont révélés malveillants
- Python Typo Squatting
- PHP Typo Squatting
- JCCENER TYPO Squatting
- Rubygems typosquatting
- Packages NPM malveillants de chasse
- Packages NPM malveillants
- Liste de tous les packages PYPI
- Crossenv Malware sur le registre NPM
- Packages open source avec une intention malveillante
- Comment reprendre l'ordinateur de tout développeur Java (ou Clojure ou Scala)
- Coin de sécurité avec SNYK: les six meilleures vulnérabilités à Maven et NPM
- Une autre distribution Linux empoisonnée avec des logiciels malveillants
- Nodejs: exécution du code distant en tant que service
- 17 images docker arrière en arrière de Docker Hub
- La bibliothèque Python arrière a attrapé pour voler des informations d'identification SSH
- Eslint-Scope est l'analyseur de portée ECMAScript utilisé dans Eslint. La version 3.7.2 a été identifiée comme malveillante après une éventuelle prise de contrôle du compte NPM. L'installation du package malveillant entraînerait une fuite du jeton NPM de l'utilisateur.
- NPM acquiert ^ Lift Security et la plate-forme de sécurité du nœud
- Analyser l'attaque de la chaîne d'approvisionnement PIP SSH-Décorate
- Fichiers malveillants .jar hébergés sur Google Code
- Dissection d'un logiciel malveillant Java (JRAT)
- Les packages potentiellement affectés par Eslint-Scope
- Modules malveillants - ce que vous devez savoir lors de l'installation de packages NPM
- Douze bibliothèques Python malveillantes trouvées et supprimées de PYPI
- Packages de logiciels malveillants sur PYPI
- Terrain pour voler la crypto-monnaie exclue par l'équipe de sécurité NPM
- Vulnérabilité découverte dans le portefeuille Agama de Komodo - c'est ce que vous devez faire
- Packages de logiciels malveillants PYPI
- Signaler des projets qui endommagent les autres forfaits, ne respectent pas les lignes directrices ou sont malveillants
- Collection de baignoires PHP
- Collection de logiciels malveillants Windows
- Snakes dans l'herbe! Le code malveillant glisse dans le référentiel Python PYPI
- Le cryptojacking envahit le cloud. Comment la tendance moderne de la conteneurisation est exploitée par les attaquants
- Ceci est la liste de tous les packages trouvés par @ malious-packages / noyau et supprimé du référentiel par l'équipe NPM
- Premiers top 10 risques pour les applications construites sur la recherche sur les architectures sans serveur par Puresec publié
- Exploiter l'infrastructure des développeurs est ridiculement facile
- Analyse JavaScript statique + dynamique
- Techniques d'obscurcissement de la porte dérobée PHP
- Techniques d'obscurcissement PHP
- Comprendre le code obscurci et comment désobfusquer PHP et JavaScript
- Bête arrière du constructeur de plugin Joomla
- Une dépendance déroutante
- API de contrôle Docker exposé et image de la communauté abusée pour livrer un malware d'extraction de crypto-monnaie
- Backdoor de code à distance malveillant découvert dans le populaire Bootstrap-Sass Ruby Gem
- La porte dérobée dans le plugin CAPTCHA affecte 300 000 sites WordPress
- Backdoor trouvé dans Webmin, un utilitaire Web populaire pour gérer les serveurs UNIX
- DefCon-webmin-1920-UNAUTHENTICTED-REMOTE-Command-Exécution
- Pola aurait empêché l'incident d'événement
- Les criminels de cryptojacking utilisent plusieurs techniques pour installer des co -miners
- Google Analytics et Angular dans Magento Credit Carte de vol de cartes de vol
- PSA: Il y a une fausse version de ce package sur PYPI avec du code malveillant
- Barrage de typosquat sur les utilisateurs du référentiel du logiciel Rubygems
- PYPI 官方仓库遭遇 Demande 恶意包投毒
- Sourmint: code malveillant, fraude publicitaire et fuite de données dans iOS
- Les attaques de la chaîne d'approvisionnement du logiciel de détournement de dépendance frappe plus de 35 organisations
- Spots de type Sonat 275+ Packages NPM malveillants Copie des récentes attaques de chaîne d'approvisionnement logiciels qui ont frappé 35 organisations
- Les packages de confusion de dépendance nouvellement identifiés ciblent Amazon, Zillow et Slack; Allez au-delà des primes de bug
- Confusion de dépendance: comment j'ai piraté Apple, Microsoft et des dizaines d'autres sociétés
- Pour PIP,
--extra-index-url pour les packages internes / externes choisiront la version avec un numéro de version plus élevé - Pour Gem,
gem install --source - index-url extra-index-url installer la commande de priorité
- index-url extra-index-url d'installation de priorité commande - suite
- pywheels pour la framboise pi
- Nom du paquet Squat: Cupy-Cuda112