Git Product home page Git Product logo

marvin-django's Introduction

MARVIN

Marvin es un sistema que analiza aplicaciones de Android en busca de vulnerabilidades y permite realizar un seguimiento de las mismas a lo largo de su historial de versiones.

Está compuesto de 4 subsistemas:

  • Marvin-django: Una aplicación web que sirve de entrada para el uso y administración del sistema (este repositorio). Incluye un clasificador bayesiano que estima la probabilidad de que una app para Android sea malware.
  • Marvin-static-Analyzer: Un sistema de análisis estático de código que usa Androguard y Static Android Analysis Framework (SAAF) para detectar vulnerabilidades.
  • Marvin-dynamic-Analyzer: Un sistema de análisis dinámico de código que usa emuladores de Android para x86 y el entorno de virtualización de OpenNebula para detectar vulnerabilidades automáticamente.
  • Marvin-toqueton: Una herramienta para pruebas automatizadas de GUIs desarrollada para asistir en la búsqueda de vulnerabildiades al sistema de análisis dinámico de código de Marvin.

Hay una guía para el usuario de Marvin en la carpetas docs de este repositorio.

Instalación

El script setup.sh ejecuta las acciones necesarias para instalar Marvin en una máquina Ubuntu 14.04 o superior. Marvin utiliza varios programas externos, a saber MySQL, ElasticSearch y GitLab; la configuración para acceder a los mismos es en marvin-django/marvin/settings.py para Elasticsearch y MySql, y en marvin/django/frontpage/settings.py para GitLab. ElasticSearch y MySQL los instala el script, pero la instalación de GitLab es aparte. Se recomienda editar estos archivos antes de correr Instalacion.sh

frontpage/settings.py:

 vuln_analysis_dir = ubicación del Apk Vulnerability Finder  (apunta a la ubicación por defecto)  
 perms_list_file = archivo que contiene la lista de permisos para la interfaz con Weka  (apunta a la ubicación por defecto)  
 model_file = Modelo bayesiano para Weka  (apunta a la ubicación por defecto)  
 root_apk_dir = Directorio donde se almacenan los Apk. Debería existir. (esto puede ser un directorio externo a donde corre Marvin, montado por NFS)  
 root_git_dir = Directorio donde se almacenan los repositorios git locales. Debería existir. (esto puede ser un directorio externo a donde corre Marvin, montado por NFS)  
 gitlab_url = URL del Gitlab  
 gitlab_token = Token del usuario marvin para Gitlab  
 marvin_git_passwd = Contraseña del usuario marvin en Gitlab  

marvin/settings.py (lo que habría que editar)

 SECRET_KEY : No es seguro utilizar la que hay en el repositorio, es mejor crear una aplicación cualquiera con el Django y copiarse ese SECRET_KEY.

 BUNGIESEARCH = {  
            	'URLS': ['localhost'], # Dirección del servidor de ElasticSearch, sin http://  
            	'INDICES': {'apps2': 'frontpage.myindices'}, # De acá en adelante queda como está  
            	#'ALIASES': {'bsearch': 'marvin.search_aliases'},  
            	'SIGNALS': {'BUFFER_SIZE': 1},  
            	'TIMEOUT': 5  
            	}

 DATABASES = {
		'default': {
     		'ENGINE': 'django.db.backends.mysql',
     		'NAME': 'marvin',  #Nombre de la base de datos a usar. Puede quedar como está
     		'USER': 'marvin',  #Nombre del usuario de la base. Puede quedar como está
     		'PASSWORD': '********',  #Contraseña del usuario en la base. Favor de elegirle una. Ver también marvin/init_database.sql
     		'HOST': 'localhost',     #Dirección IP del servidor MySQL, en caso de ya tener uno instalado se puede usar (pero ver marvin/init_database.sql e Instalacion.sh)
     		'PORT': '3306'
		}
}

El script setup.h instala una cantidad de paquetes, por lo que al invocar a sudo habrá que introducir la contraseña de administrador. También al instalar MySql pedirá una contraseña para el usuario 'root', y se deberá ingresar esa contraseña cuando más tarde se creen las bases de datos de la aplicación.

Iniciando Marvin

Marvin se inicia con el comando

$ python manage.py runserver 0.0.0.0:[port]

en el directorio marvin-django/marvin. Una vez corriendo, queda configurar la cuenta de Google Play que va a ser usada por Marvin: entrar con el navegador a la url localhost:[port]/admin e ingresar a la sección "Google Play". Ahí se deben ingresar los datos de una cuenta de Google que esté ligada a un teléfono Android: lo más conveniente es crear una cuenta y usar android-checkin para registrarla como ligada a un teléfono.

Android-checkin: https://github.com/nviennot/android-checkin

Dependencias

  Django 1.7
  apk-vulnerability-finder
  django-googleplay-api 
  androguard
  elasticsearch
  bungiesearch 1.1.0 o superior
  mysql o postgres
  una cuenta de Gitlab con mucho espacio
  python-gitlab 
  pygit2 0.23.1 o superior
  Weka
  simplejson
  arff
  openjdk 

Créditos

Contacto

  • Mandar un correo a stic en el dominio fundacionsadosky.org.ar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.