Tabla de contenido
- Introducción
- Requisito previo
- Desarrollo
- De cómo
- select_pm
- select_pkg
- gatear
- edit_dist
- descargar
- get_versions
- get_author
- Get_Dep
- Get_stats
- build_dep
- build_author
- split_graph
- instalar
- astén
- austa
- mancha
- filtre_pkg
- estático
- dinámica
- Interpret_trace
- interpret_result
- comparar_ast
- Filter_versions
- comparar_hash
- grep_pkg
- aceleración
- Herramienta
- Escaneo en Internet
- Estadísticas para diferentes administradores de paquetes
- Herramientas de análisis estático para diferentes idiomas
- AST analizadores para diferentes idiomas
- Recurso
- Referencia
Introducción
Este proyecto analiza proyectos de código abierto para malware.
Debido a la alta demanda de la comunidad, decidimos abrir el código del código tal como es ahora, para permitir la colaboración. La mayoría del código se actualiza hasta mayo de 2019, lo que indica que algunos componentes pueden no funcionar más. Especialmente los componentes que dependen de las herramientas externas (por ejemplo, SYSDIG, Airflow) o API (por ejemplo, NPM).
Estamos trabajando activamente en las pruebas y mejoras. Encuentre la lista de TODO aquí. Para obtener los comandos de ejecutar, consulte la sección HowTto. Para obtener cómo implementar en máquinas, consulte las instrucciones de implementación. Para solicitar el acceso a las muestras de ataque de la cadena de suministro, consulte las instrucciones de solicitud
Este repositorio es de origen abierto bajo la licencia MIT. Si encuentra útil este repositorio, cite nuestro documento:
@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}
}
Requisito previo
Lo esencial
- estibador
- Configuración básica para Ubuntu
- Para otro sistema operativo (es decir, macOS y Windows), mire a
setup.sh y descubra sus equivalencias
Dependencias
- Para probar y ejecutar el proyecto localmente, necesita dependencias. Hay dos formas de preparar dependencias
- Construya la imagen de Maloss Docker y prueba dentro de ella
- Imagen de Docker de construcción
-
sudo docker build -t maloss .
- Re-construya la imagen de Docker sin caché (se usa al volver a construir la imagen)
-
sudo docker build -t maloss . --no-cache
- Ejecute la imagen de Docker y asigne su raíz de origen local
-
sudo docker run -it --rm -v $(pwd):/code maloss /bin/bash
- Cambiar a la raíz de origen montada asignada y comenzar a hacer cambios
- instalar dependencias localmente y probarlo
- Las instrucciones son para Ubuntu 16.04. Si los encuentra que no funcionan en otros sistemas, solucione y confirme los cambios necesarios. Estas instrucciones simplemente se copian del Dockerfile, lo busca para solucionar problemas.
- para el desarrollo de análisis estático JS y Python
-
pip install -r src/requirements.txt --user
- Para los demás (TODO: Simplifique esta lista gigante)
-
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
Desarrollo
Estructura
- La carpeta de registros contiene el código fuente para los administradores de paquetes de reflejo. Para ejecutar el programa, necesitaría 10 TB para NPM, 5TB para PYPI y 5TB para Rubygems.
- La carpeta SRC contiene el código fuente para el análisis estático, dinámico y de metadatos.
- La carpeta principal contiene código fuente para orquestación dinámica.
- La carpeta de flujo de aire contiene el código fuente para la orquestación estática.
- La carpeta SYSDIG contiene configuración y configuración para el rastreo dinámico.
- Los datos contienen la configuración y las estadísticas de Honeypot.
- config contiene configuración para análisis estático.
- DOC contiene API etiquetadas manualmente que se utiliza para derivar la configuración .
- TestData contiene muestras de prueba.
- REF contiene trabajo relacionado.
- Benignware contiene algunos paquetes benignos.
- El malware contiene la lista de muestras maliciosas, que se pueden usar para la protección.
- Maloss-Samples es un repositorio privado que contiene las muestras de ataque de la cadena de suministro y se actualizan periódicamente. Complete el formulario de Google para solicitar acceso. Responderemos lo antes posible.
Instrucciones
- En este proyecto, actualmente estamos utilizando Celery + RabbitMQ para ejecutar nuestros metadatos y análisis dinámicos de manera distribuida. Estamos utilizando Airflow + Celery para ejecutar nuestros análisis estáticos.
- La carpeta SRC/ contiene el código para cada análisis individual y debe minimizarse y ser autónomo.
- En particular, para el análisis estático/dinámico/metadatos, los trabajos en SRC/ carpeta deberían manejar solo un paquete y una verso.
- Cada análisis individual debe desarrollarse y contenerse en esta carpeta.
- La principal/ carpeta maneja la computación distribuida para metadatos y análisis dinámicos.
- El nodo maestro carga la lista de trabajos (paquetes y sus versiones para analizar), envíelos al corredor de RabbitMQ.
- Los nodos de esclavos se conectan al corredor y obtienen trabajos del corredor.
- Cada análisis individual puede necesitar cambiar .env en esta carpeta.
- El flujo de aire/ carpeta maneja la computación distribuida para análisis estáticos.
- El nodo maestro carga el DAG de trabajos (paquetes conectados por las relaciones de dependencia), envíalos al corredor de Redis.
- Los nodos de esclavos se conectan a TE Broker y obtienen trabajos de Broker.
- Cada análisis individual puede necesitar cambiar .env en esta carpeta.
- En este proyecto, ejecutamos cada análisis usando Docker. Los siguientes pasos muestran cómo iniciar o depurar los trabajos distribuidos para metadatos y análisis dinámicos.
- en trabajador
- Crear
main/config personalizado desde main/config.tmpl - Imagen de Docker de construcción
-
sudo docker build -t maloss .
- Re-construya la imagen de Docker sin caché (se usa al volver a construir la imagen)
-
sudo docker build -t maloss . --no-cache
- Para pruebas, ejecute la imagen de Docker y adjunte a ella
-
sudo docker run -it --rm --cap-add=SYS_PTRACE -v /tmp/result:/home/maloss/result -v /tmp/metadata:/home/maloss/metadata maloss /bin/bash
- Para la producción, consulte a implement.md
- en el maestro
- Crear
main/config personalizado desde main/config.tmpl - Iniciar Rabbitmq
-
cd main && sudo docker-compose --compatibility -f docker-compose-master.yml up -d
- Agregar trabajos a la cola
-
python detector.py install -i ../data/pypi.csv
- depuración
- Comente la línea
QUEUING = Celery en main/config , y luego los trabajos deben ejecutarse localmente y secuencialmente. - El punto de entrada para Celery Works es
main/celery_tasks.py y el punto de entrada para Master IT main/detector.py .
- TODO: Cómo depurar análisis estáticos
De cómo
select_pm
- Seleccione los administradores de paquetes para inspeccionar según el umbral num_pkg
select_pkg
- Seleccione paquetes populares basados en criterios especificados, como descargas o usos
-
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
gatear
- rastrear el administrador de paquetes especificado y guardar los nombres de los paquetes
-
python main.py crawl $package_manager $outfile
- rastrear el administrador de paquetes especificado para los nombres de los paquetes, las estadísticas de descarga de la búsqueda y guardar en el archivo
-
python main.py crawl $package_manager $outfile -s -p 24
edit_dist
- ejecutar la distancia de edición para los nombres de los paquetes
-
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
descargar
- Descargue el archivo de tarball usando PIP, enlace
-
pip download --no-binary :all: --no-deps package
- Descargue el archivo TGZ usando NPM, enlace
- Descargar paquetes PHP usando compositor
-
composer require -d ../testdata/php --prefer-source --no-scripts package
- Descargar paquetes Ruby usando GEM
- Descargar paquetes Java usando 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
- Ejecute el trabajo get_versions para obtener versiones importantes para la lista de paquetes
-
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
- Ejecute el trabajo get_versions para obtener todas las versiones para la lista de paquetes
-
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
- Ejecute el trabajo get_versions para obtener todas las versiones para la lista de paquetes e incluya su tiempo también
-
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
- Ejecute el trabajo get_versions para obtener versiones recientes para la lista de paquetes
-
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
- Ejecute el trabajo de get_author al autor para la lista de paquetes
-
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
- Ejecute el trabajo get_dep para enumerar las dependencias para los paquetes de Python
-
python main.py get_dep -l python -n protobuf -c ../testdata -
python main.py get_dep -l python -n scrapy -c ../testdata
- Ejecute el trabajo get_dep para enumerar las dependencias para los paquetes de JavaScript
-
python main.py get_dep -l javascript -n eslint -c ../testdata
- Ejecute el trabajo get_dep para listar dependencias para paquetes de rubí
-
python main.py get_dep -l ruby -n protobuf -c ../testdata
- Ejecute el trabajo get_dep para listar dependencias para paquetes PHP
-
python main.py get_dep -l php -n designsecurity/progpilot -c ../testdata
- Ejecute el trabajo get_dep para enumerar las dependencias para los paquetes Java
-
python main.py get_dep -l java -n com.google.protobuf/protobuf-java -c ../testdata
Get_stats
- Obtenga las estadísticas para paquetes especificados
-
python main.py get_stats ../malware/npmjs-mal-pkgs.june2019.txt ../malware/npmjs-mal-pkgs.june2019.with_stats.txt.new -m npmjs
- Obtenga las estadísticas para paquetes especificados
- `python main.py get_stats ../malware/pypi-mal-pkgs.txt ../malware/pypi-mal-pkgs.with_stats.txt -m pypi
build_dep
- construir el gráfico de dependencia
-
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
- Construya el gráfico de dependencia con versiones (la opción --secord_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
- Construya el gráfico del paquete de autor para paquetes populares en 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
- Construya el gráfico del paquete de autor para todos los paquetes en 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
- dividir el gráfico de dependencia
- Descompensar los archivos de Pickle primero
-
tar -zxf ../airflow/data/pypi.with_stats.dep_graph.pickle.tgz
- dividido en n copias
-
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
- dividido en n copias y carpetas k
-
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
- dividir el subgrafio que contiene nodos de semillas
-
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
instalar
- Ejecutar el trabajo de instalación para instalar paquetes de Python y capturar trazas
-
python main.py install -n protobuf -l python -c ../testdata -o ../testdata
- Ejecutar el trabajo de instalación para instalar paquetes de JavaScript y capturar trazas
-
python main.py install -n eslint -l javascript -c ../testdata -o ../testdata
- Ejecutar el trabajo de instalación para instalar paquetes de ruby y capturar rastros
-
python main.py install -n protobuf -l ruby -c ../testdata -o ../testdata
- Ejecute el trabajo de instalación para instalar paquetes PHP y trazas de captura
-
python main.py install -n designsecurity/progpilot -l php -c ../testdata -o ../testdata
- Ejecutar el trabajo de instalación para instalar paquetes Java y capturar trazas
-
python main.py install -n com.google.protobuf/protobuf-java -l java -c ../testdata -o ../testdata
astén
- Ejecute el trabajo de Astgen para calcular AST para los paquetes de Python y 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
- Ejecute el trabajo de Astgen para calcular AST para paquetes de 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
- Ejecute el trabajo ASTGEN para calcular AST para paquetes 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
- Ejecute el trabajo de Astgen para calcular AST para paquetes 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
- Ejecute el trabajo de Astgen para calcular AST para paquetes 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
austa
- Use las configuraciones tituladas
../config/astgen_XXX_smt.config para cada lenguaje (por ejemplo ../config/astgen_javascript_smt.config astgen_javascript_smt.config) en el trabajo de Astfilter - Ejecute el trabajo de Astfilter para evaluar el uso de API para el paquete Python/Pypi y sus paquetes dependientes
-
python main.py astfilter -n protobuf -c $python_config -d ../testdata/ -o ../testdata/
- Ejecute el trabajo de Astfilter para evaluar el uso de API para el paquete JavaScript/NPMJS y sus paquetes dependientes
-
python main.py astfilter -n eslint-scope -c $javascript_config -d ../testdata/ -o ../testdata/ -l javascript
- Ejecute el trabajo de Astfilter para evaluar el uso de API para el paquete PHP/Packagist y sus paquetes dependientes
-
python main.py astfilter -n designsecurity/progpilot -c $php_config -d ../testdata/ -o ../testdata/ -l php
- Ejecute el trabajo de Astfilter para evaluar el uso de API para el paquete Ruby/Rubygems y sus paquetes dependientes
-
python main.py astfilter -n protobuf -c $ruby_config -d ../testdata/ -o ../testdata -l ruby
- Ejecute el trabajo de Astfilter para evaluar el uso de API para el paquete Java/Maven y sus paquetes dependientes
-
python main.py astfilter -n com.google.protobuf/protobuf-java -c $java_config -d ../testdata/ -o ../testdata -l java
mancha
- Ejecutar el análisis de contaminación para paquetes específicos
-
python main.py taint -n json -d /data/maloss/info/ruby -o /data/maloss/result/ruby -l ruby -c ../config/astgen_ruby_smt.config
- Ejecute el análisis de contaminación para paquetes específicos e ignore sus dependencias
-
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
- Ejecutar el análisis de Taint para un archivo de entrada específico
-
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
- Paquetes de filtro basados en el uso de la API o la presencia de flujo
-
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
estático
- Ejecute un trabajo estático para realizar el análisis de Astfilter, Taint y Danger para los paquetes de Python y Python3
-
python main.py static -n protobuf -c $python_config -d ../testdata/ -o ../testdata/
dinámica
- Ejecute el trabajo dinámico para instalar, los paquetes de pitón principal y de ejercicio y las trazas de captura
-
python main.py dynamic -n protobuf -l python -c ../testdata -o ../testdata
Interpret_trace
- Ejecute Interpret Trace Job para analizar las trazas dinámicas y volcarlos en PKG/Versión Archivos de salida de ProtoBuf
- NOTA: Se necesita sudo para comenzar a Falco a trazar
-
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
comparar_ast
- Compare el AST de archivos y paquetes de entrada especificados para permisos, 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
Filter_versions
- Versiones de paquetes de filtro basados en resultados comparados_ast para permitir un análisis adicional como el análisis de mancha
-
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
comparar_hash
- Compare el valor hash de las mismas versiones de paquetes en diferentes administradores de paquetes
-
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
- Compare el valor hash de las mismas versiones de paquetes y su contenido hashs o permisos de API en diferentes administradores de paquetes
-
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
interpret_result
- Recopilar y trazar estadísticas de 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
- Recopilar y trazar estadísticas de dominio
-
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
- recopilar las estadísticas de dependencia previa a la generación
-
python main.py interpret_result --data_type dependency -l python ../data/pypi.with_stats.popular.csv ../data/pypi_pop_dep_stats.json
- Recopile los resultados de la comparación de la versión cruzada, puede filtrar por permisos, 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
- recolectar metadatos/resultados estáticos/dinámicos y volcar paquetes sospechosos
-
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
- Recopilar los resultados de dependencia inversa
-
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
- Recolectar resultados de metadatos/static/compare_ast y volcar paquetes sospechosos
-
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 a través de paquetes
-
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
aceleración
- Mida los beneficios de aceleración de los resúmenes
-
python main.py speedup ../data/2019.01/pypi.with_stats.popular.csv speedup.log -l python
Herramienta
Escaneo en Internet
Estadísticas para diferentes administradores de paquetes
- Estadísticas de pypi
- Estadísticas de paquetes de Pypi
- Estadísticas npmjs
- Dependientes de paquete de NPM
- Estadísticas de rubygems
- Portal no oficial para descargas de Rubygems
- Estadísticas nuget
- Estadísticas de paquete
- Maven Stats (utilizadas por otros paquetes)
- Maven estadísticas rápidas
Herramientas de análisis estático para diferentes idiomas
- Resumen de la lista
- 13 Herramientas para verificar el riesgo de seguridad de las dependencias de código abierto
- Análisis de malware impresionante: una lista curada de impresionantes herramientas y recursos de análisis de malware
- Una lista curada de revestimientos, verificadores de calidad de código y otras herramientas de análisis estático para varios lenguajes de programación
- PMD: un analizador de código estático cruzado extensible. https://pmd.github.io
- PMD no es compatible con el análisis interprocedural ahora
- Conjunto de reglas de seguridad personalizadas para la popular herramienta de análisis estático Java PMD.
- Pitón
- Una herramienta de análisis estático para detectar vulnerabilidades de seguridad en aplicaciones web de Python
- Bandit es una herramienta diseñada para encontrar problemas de seguridad comunes en el código de Python
- Php
- Una lista revisada de herramientas útiles de análisis estático de PHP
- Detectar archivos PHP potencialmente maliciosos
- Análisis de mancha para PHP
- Auditoría de seguridad PHPCS
- Una herramienta de análisis estático para la seguridad
- API y documentación para progpilot
- Variables globales de PHP - Superglobals
- Taint es una extensión de PHP, utilizada para detectar códigos XSS dinámicos
- Rubí
- Verifique los problemas de seguridad de Ruby
- Encerrando a Ruby en la caja fuerte
- Un escáner de vulnerabilidad de seguridad de análisis estático para aplicaciones Ruby on Rails, GitHub
- Brakeman Pro es la mejor manera de investigar la postura de seguridad del código de aplicación Ruby on Rails.
- Dawn es un escáner de seguridad de análisis estático para aplicaciones web escritas por Ruby. Apoya a Sinatra, Padrino y Ruby on Rails Frameworks.
- La calidad es una herramienta que ejecuta controles de calidad en su código utilizando herramientas de la comunidad
- Npmjs
- 6 Herramientas para escanear la aplicación Node.js para vulnerabilidad de seguridad
- Node Security Platform de comandos de comandos https://nodesecurity.io
- Una herramienta de análisis de seguridad estática de JavaScript
- Blackhat 2013 Talk For JSPrime
- JSHINT es una herramienta que ayuda a detectar errores y posibles problemas en su código JavaScript
- Un primer vistazo a Firefox OS Security
- Wala es lento
- JSPRIME también es capaz de realizar un análisis de flujo de datos, pero la arquitectura es extremadamente difícil de extender.
- Scanjs, escrito internamente por Mozilla, es el espíritu más cercano a los nuestros.
- NodeJSScan es un escáner de código de seguridad estático para aplicaciones Node.js.
- El flujo es un verificador de tipo estático para JavaScript
- JSFLOW es un intérprete JavaScript mejorado por la seguridad para el seguimiento de grano fino del flujo de información.
- Una herramienta para estudiar malware JavaScript.
- Una herramienta de análisis de malware JavaScript
- Marco de análisis escalable para ECMAScript
- Deprecida: herramienta de análisis estático para el código JavaScript.
- Análisis de JavaScript y la web con Wala
- JSUNPACK: JSUNPACK-N Emula la funcionalidad del navegador al visitar una URL
- Colección de casi 40,000 muestras de malware JavaScript
- JSAI: una plataforma de análisis estático para JavaScript
- Marco de análisis estático de Jsai
- Análisis estático de aplicaciones JavaScript de Node.js basadas en eventos
- Marco de análisis dinámico para JavaScript
- Java
- Marco de detección de malware de Android
- Código para papel de detección de malware de Android profundo
- Rastreador de flujo de datos estáticos de flujo
- Csharp
- Escaneo de código de seguridad: analizador de código estático para .NET
- Herramientas de gestión de dependencias
- Bower: un administrador de paquetes para la web
- Hilo: gestión de dependencia rápida, confiable y segura
- Análisis dinámico
- Dynamorio: plataforma de herramienta de instrumentación dinámica
- Orquestación de prueba de seguridad de aplicaciones dinámicas (Dasto)
- Valgrind es un marco de instrumentación para construir herramientas de análisis dinámico
- Un complemento de seguimiento de mancha para la herramienta de verificación de memoria de Valgrind
- Marco de análisis
- Marco de escaneo/análisis de archivos modulares: soporte clamav, etc.
- Un servicio de análisis de malware gratuito para la comunidad que detecta y analiza amenazas desconocidas utilizando una tecnología de análisis híbrido única.
- Más de 5200 proyectos de código abierto y 25000 desarrolladores utilizan escaneo de coveridad
AST analizadores para diferentes idiomas
- Python Ast Parser, usa Ast.Parse
- Ast. Parse
- parámetros de parada AST.
- Anotar el python Ast: Asttoken
- Escribir el script de configuración
- JavaScript AST PARSER, use Esprima
- Estree: Especificaciones de API de JavaScript Parser
- Respuestas Consulte Spidermonkey y Esprima
- Spidermonkey
- Esprima, comparación de esprima
- Bellota, bellota vs esprima
- Compilador de Babel, basado en bellota
- Puerto de Python de Esprima
- Cómo NPM maneja el campo "Scripts"
- Node.js API Especificación
- JavaScript Objetos estándar por categoría
- Índice de métodos JavaScript
- Ruby Ast Parser
- Ruby en veinte minutos
- Un analizador de rubí, descargar estadísticas
- ruby_parser
- Comparación entre analizador y ruby_parser
- Usar un analizador de rubí para encontrar sintaxis destrozado
- La función de evaluación de Ruby puede ser peligrosa
- Ruby Exec, System, %X () y Backticks
- ¿Cómo ejecutar un script mientras la instalación de gemas?
- Java Ast Parser
- Hollín
- Wala
- Ejecute un script después de la instalación de Maven
- Funciones de Java explotables
- C# AST PARSER
- Microsoft Binskim
- Analizador de código de red C#/.
- El verocódigo admite el análisis estático de muchos idiomas
- escaneo de código de seguridad
- guardia de seguridad
- Escaneo
- Comparación de analizadores de código C#
- PHP AST PARSER
- Php-Parser
- pHP-AT
- Genere AST de un archivo fuente de PHP
- phpJoer
- Funciones de PHP explotables
- Funciones de PHP peligrosas
- Deshabilitar funciones PHP peligrosas
- Scripts de compositor para análisis dinámico
- C/C ++ AST PARSER
Recurso
- Mirror de Taobao de NPM,
- Stanford Mirror of Pypi
- Espejos de registros en China
- Mantener el registro NPM impresionante: ¿Cómo funciona NPMJS?
- Registro de consulta NPMJS a través de API
- Búsqueda de NPM con versiones de historial
- Numérico Precision Matters: Cómo funcionan los recuentos de descarga de NPM
- documentos de la API NPMJS
- La CLI de Synk lo ayuda a encontrar y arreglar vulnerabilidades conocidas en sus dependencias, tanto ad hoc como como parte de su sistema CI
- Usando el espejo npm europeo
- Lo que aprendí al analizar las versiones de 1,65 millones de módulos Node.js en NPM
- Archive.org Santuarios de instantáneas y se puede utilizar para medir sitios web de víctimas
- Rastreo de eventos para Windows (ETW)
- Auditoría de Linux
- Auditd de sintonización: auditoría de Linux de alto rendimiento
- Linux Audit Framework 101 - Reglas básicas para la configuración
- Auditoría de Linux: auditar la configuración de la red
- Cómo usar el sistema de auditoría de Linux en Centos 7
- Capítulo 7. Auditoría del sistema
- Santa
- Analizador strace
- Python-Ptrace es una encuadernación de Python de la biblioteca Ptrace
- Pystrace - Herramientas de Python para análisis y análisis de archivos de salida de strace
- Analiza la salida de strace
- Perfilar y visualizar con Strace GNU
- Creé un BNF Grammer para la salida y usé BNFC para generar automáticamente un analizador en C ++.
- Salida estructurada para strace
- como Strace, pero para el código Ruby
- Pytrace es un marcador de pitón rápido. registra llamadas de función, argumentos y valores de retorno.
- PHP-Strace ayuda a rastrear SEGFaults en la ejecución de procesos PHP
- ¿Cómo establecer el ancho de la cadena de caracteres de salida de strace para que sea más largo?
-
-s opción especifica el tamaño máximo de cadena para imprimir -
-v opción imprime argv, stat, termios, etc. no aborviado
- Google Summer of Code para salida de strace
- Participación de Strace en el GSOC 2014
- Salida verdaderamente estructurada para Strace en el GSOC 2016
- Doc para GSOC 2016
- Dtrace para Linux
- Código para la implementación de la plataforma cruzada, fuente única, OpenDtrace
- FTRACE es un trazador interno diseñado para ayudar a los desarrolladores y diseñadores de sistemas a encontrar lo que está sucediendo dentro del núcleo.
- ¿Cuál es la diferencia entre dtrace y strace?
- Sysdig vs Dtrace vs Strace: una discusión técnica
- OSQUERY: Auditoría de procesos y sockets con Osquery
- Información recopilada por Osquery (tablas)
- Una lista curada de herramientas y recursos para la respuesta de incidentes de seguridad, tenía como objetivo ayudar a los analistas de seguridad y los equipos DFIR.
- 1st: ¿Cómo están usando los equipos actualmente Osquery?
- 2do: ¿Cuáles son los puntos débiles actuales de Osquery?
- 3er: ¿Qué deseas que Osquery pueda hacer?
- Kolide Cloud es una solución de monitoreo de punto final que aprovecha e instrumenta el proyecto Osquery de código abierto de Facebook. Pruébalo hoy; Completamente gratis para sus primeros 10 dispositivos.
- Flota de Kolide para monitorear máquinas Osquery
- Soporte de Docker en Osquery
- Dockerfiles para Osquery en contenedores
- UPTYCS: Asegurando contenedores: Uso de OSQuery para resolver nuevos desafíos planteados por los servicios de orquestación alojados
- UPTYCS: Docker y Osquery
- Osquery for Security: Introducción a Osquery - Parte 1
- Osquery for Security - Parte 2
- OSQUERY: Windows, MacOS, Monitoreo de Linux y detección de intrusos
- Docker y Osquery
- Introducción a Osquery: Preguntas frecuentes para principiantes
- Configuración de Osquery de Palantir
- Sysdig: Herramienta de exploración y solución de problemas de Linux System con soporte de primera clase para contenedores
- Selinux, SecComp, Sysdig Falco y usted: una discusión técnica
- Prometheus Monitoring y Sysdig Monitor: una comparación técnica
- Día 3 - Así que servidor, cuéntame sobre ti. Una introducción a Facter, Osquery y 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.
- Monitoreo de contenedores: Prometheus y Grafana vs. Sysdig y Sysdig Monitor
- Monitoreo de contenedores con SYSDIG
- Guía del usuario de SYSDIG
- Sysdig Falco
- Reglas de Sysdig Falco
- Detección de criptojacking con Falco de Sysdig
- Sysdig + logstash + elasticsearch
- Sysdig + Elk (potencial)
- Enviar eventos de Kubernetes y Docker a Elasticsearch y Splunk usando Sysdig
- Seguridad del contenedor de tiempo de ejecución: cómo implementar la seguridad del contenedor de código abierto
- Wtf mi contenedor acaba de generar un caparazón
- go-auditd
- El go-audit es una alternativa al demonio auditd que se envía con muchas distribuciones
- El sistema de monitoreo Prometheus y la base de datos de series temporales.
- Sitio oficial de Prometeo
- go-audit-continer
- FIM y la auditoría de llamadas al sistema a escala en una gran implementación de contenedores
- Kubernetes: Kubernetes es un sistema de código abierto para automatizar la implementación, escala y administración de aplicaciones contenedores.
- Facter: recolectar y mostrar hechos del sistema
- Encuentre archivos PHP explotables por parámetro Fuzzing and Function Llaming Tracing
- Un analizador OS X para el proyecto Cuckoo Sandbox
- Cuckoo Sandbox es el sistema principal de análisis de malware automatizado de código abierto
- Bibliotecas nativas con Maven
- Maven: Bundling y desempaquetando bibliotecas nativas
- Complemento de archivo nativo para maven
- Monte del sistema de archivos elástico (EFS) fuera de AWS
- Actualización de Amazon EFS: acceso a las instalaciones a través de Direct Connect
- El lenguaje de programación de Go
- Debido a la forma en que GO hace importaciones, una casa de compensación central como Maven o NPM simplemente no es necesaria.
- Proyecto para la búsqueda de Go, un motor de búsqueda para encontrar paquetes populares y relevantes.
- Ruby (finalmente) gana en popularidad, pero Go Plateus
- Lenguas principales: Java, C, C ++, Python, C#, PHP, JavaScript, Ruby
- Referencias de análisis estático
- Inferencia de tipo automatizado para programas tipados dinámicamente
- Una herramienta de análisis estático para encontrar errores en aplicaciones PHP
- IBM AppScan permite el código de escaneo/código compilado para vulnerabilidades
- Lenguajes de soporte de APPSCAN: Admite C/C ++, .NET, Java, JSP, JavaScript, PHP, ASP, Python
- IBM Security AppScan Fuente 9.0.3.10 Disponible en Fix Central
- Versiones de origen de AppScan disponibles
- Ejecución restringida
- Pitón de arena
- Ruby Sandboxing versus integración de un lenguaje de secuencias de comandos
- Cárcel - Flexible JS Sandbox
- ¿Es posible sandbox javaScript ejecutándose en el navegador?
- ¿Hay alguna forma de ejecutar el código PHP en una caja de arena desde PHP?
- Runkit_sandbox
- Código Java de sandboxing
- Ejecutar un método en Java con permisos restringidos
- Trabajos por lotes de AWS
- Tutorial de lotes de AWS
- Lote de AWS: simplificación de la computación por lotes en la nube
- Ejemplo de lotes de AWS
- lote de spot-spot-spot
- SQS-EC2-SPOT-FLEET-AUTOescaling
- Flujo de aire DAG
- Dag de tareas en funcionamiento paralelo en el apio de Python
- Airflow: escalar con apio
- Flujo de aire DAG
- Introducción de flujo de aire
- Airflow en Kubernetes (Parte 1): un tipo diferente de operador
- Una imagen Docker y archivos de configuración de Kubernetes para ejecutar Airflow en Kubernetes
- Una guía sobre cómo construir un servidor/clúster de flujo de aire
- Avisos de seguridad
- Problemas de rubygems
- Aventamientos de seguridad de NPMPJS
- Paquetes de Python
- Paquetes de paquete
- Paquetes maven
- Paquetes de JCenter
- Vulndb Data Mirror
- Pista de dependencia
- Comprobación de dependencia
- Aviso de seguridad de Microsoft
Referencia
- Contiene el módulo
- Un sitio web rápido para rastrear el número de módulos en varios repositorios
- Sitio web de un error tipográfico
- tesis de escritura para tipo
- palomitas de maíz Debian
- Los paquetes de Pypi se encuentran maliciosos
- Python Typo en cuclillas
- PHP Typo en cuclillas
- JCENTER TITUMO SECTRACIONES
- Rubygems tyipesquatting
- PAQUETOS MALICIOSOS MALICIOSOS DE CAZA
- Paquetes de NPM maliciosos
- Lista de todos los paquetes Pypi
- Crossenv malware en el registro de NPM
- Paquetes de código abierto con intención maliciosa
- Cómo hacerse cargo de la computadora de cualquier desarrollador de Java (o Clojure o Scala)
- Corner de seguridad con Snyk: las seis vulnerabilidades principales en Maven y NPM
- Otra distribución de Linux envenenada con malware
- NodeJS: ejecución de código remoto como servicio
- 17 imágenes de Docker traseros retiradas del Docker Hub
- Biblioteca Python de trasero atrapada robando credenciales de SSH
- Eslint-Scope es el analizador de alcance de ECMAScript utilizado en Eslint. La versión 3.7.2 se identificó como maliciosa después de una posible adquisición de la cuenta de NPM. Instalar el paquete malicioso conduciría a la fuga del token NPM del usuario.
- NPM adquiere ^Seguridad de elevación y la plataforma de seguridad del nodo
- Analizar el ataque de cadena de suministro PIP SSH
- Archivos .jar maliciosos alojados en el código de Google
- Disección de un malware Java (JRAT)
- Los paquetes potencialmente afectados por Eslint-Scope
- Módulos maliciosos: lo que necesita saber al instalar paquetes NPM
- Doce bibliotecas maliciosas de Python encontradas y eliminadas de Pypi
- Paquetes de malware en PYPI
- Trama para robar la criptomoneda frustrada por el equipo de seguridad de NPM
- Vulnerabilidad descubierta en la billetera Agama de Komodo: esto es lo que necesita hacer
- Paquetes de malware PYPI
- Informar proyectos que dañan otros paquetes, no se adhieran a las pautas o son maliciosos
- Colección de puertas traseras de PHP
- Colección de malware de Windows
- ¡Serpientes en la hierba! El código malicioso se desliza en el repositorio de Python Pypi
- Cryptojacking invade Cloud. Cómo la tendencia de contenedorización moderna es explotada por los atacantes
- Esta es la lista de todos los paquetes encontrados por @maliciosos-paquetes/core y eliminado del repositorio por el equipo de NPM
- Los primeros 10 riesgos principales para aplicaciones basadas en la investigación de arquitecturas sin servidor por PureSEC lanzados
- Explotar la infraestructura del desarrollador es ridículamente fácil
- JavaScript Static + Análisis dinámico
- Técnicas de ofuscación de PHP Backdoor
- Técnicas de ofuscación de PHP
- Comprensión del código ofuscado y cómo desobfuscar PHP y JavaScript
- Constructor de complemento Joomla Backdoor
- Una dependencia confusa
- API de control de Docker expuesto e imagen comunitaria abusada para entregar malware de minería de criptomonedas
- Backdoor de ejecución de código remoto malicioso descubierto en la popular gema Bootstrap-Sass Ruby
- Backdoor in Captcha Plugin afecta a 300k sitios de WordPress
- Backdoor encontrado en Webmin, una popular utilidad basada en la web para administrar servidores Unix
- Defcon-webmin-1920-inautenticado
- Pola habría evitado el incidente de transmisión de eventos
- Los delincuentes criptojacking están utilizando múltiples técnicas para instalar coinminers
- Google Analytics y Angular en Magento Ced Lark Robining Scripts
- PSA: Hay una versión falsa de este paquete en Pypi con código malicioso
- ESTipufactatting Barrage en Rubygems Software Repositorio Usuarios
- Pypi 官方仓库遭遇 solicitud 恶意包投毒
- Surmint: código malicioso, fraude publicitario y fuga de datos en iOS
- Software de secuestro de dependencia El ataque de la cadena de suministro de suministro llega a más de 35 organizaciones
- Sonatype Spots 275+ paquetes de NPM maliciosos que copian ataques recientes de la cadena de suministro de software que alcanzaron 35 organizaciones
- Los paquetes de confusión de dependencia recientemente identificados se dirigen a Amazon, Zillow y Slack; Ve más allá de las recompensas de errores
- Confusión de dependencia: cómo pirateé a Apple, Microsoft y docenas de otras compañías
- Para PIP,
--extra-index-url para paquetes internos/externos elegirá la versión con un número de versión más alto - Para Gem,
gem install --source - Orden de prioridad de instalación de Index-URL Extraindex-URL
- Orden de prioridad de instalación de Index-URL Extraindex-URL-Contd
- Pywheels para Raspberry Pi
- Nombre del paquete Supuesto: Cupy-Cuda112