Commit f6d92cec authored by Romain Rouvoy's avatar Romain Rouvoy
Browse files

Ajout de sujets Spirals

parent 458f1aef
# Analyse des données
## Présentation générale
Sujet pas encore affecté.
<!-- Sujet affecté à : ⟨...⟩. -->
### Résumé
Ce stage de fin d’études cible l’identification des fuites d’informations qui peuvent survenir au sein des applications lorsque ces dernières ont recours à des outils de mapping objet-relationnel pour faciliter les interactions avec une base de données ou une API REST (e.g. Retrofit). En effet, ces outils synchronisent automatiquement une base de données avec une représentation en mémoire (sous forme d’objet) des données sans avoir nécessairement connaissance des données qui sont réellement requises par l’application. Dès lors, certaines données non-utilisées par l’application (mais présentes en mémoire) peuvent être récupérées par des systèmes tiers à l’insu des usagers et ainsi compromettre leur intimité. Ce projet vise donc à étudier ce risque et à proposer des contre-mesures efficaces pour protéger le système de telles fuites d’informations indirectes.
### Mots-clés
social network, REST, database
### Encadrement
Équipe(s) : Spirals (CRIStAL / Inria)
Encadrant(s) :
- Pierre Bourhis, Chargé de recherche
- Romain Rouvoy, Professeur
[Contacter les encadrants](mailto:romain.rouvoy@univ-lille.fr?subject=Stage%20de%20recherche).
Localisation : Inria Lille - Nord Europe, 40 avenue Halley, 59650 Villeneuve d’Ascq.
## Présentation détaillée
### Pré-requis
- Bonne connaissance des bases de données (schéma de données)
- Bonne connaissance de Java
### Contexte
Ce stage de fin d’étude s’inscrit dans le cadre du projet Momentum «_Gérer vos données sans fuite d'information_» financé par le CNRS et porté par Pierre Bourhis. Ce projet vise à renforcer le respect de l’intimité des usagers sur Internet en identifiant des fuites potentielles d’informations privées et en proposant des contre-mesures efficaces pour mieux maîtriser la nature des données personnelles qui peuvent être accédées par des tiers non-autorisés. Ce projet revêt donc un enjeu sociétal pour l’ensemble de la population.
### Problématique
Les réseaux sociaux, comme d’autres applications web, adoptent désormais en masse le style architectural REST comme un standard de conception des APIs qui leurs permettent de partager des informations avec des tiers autorisés. Alors que cette couche de médiation entre les tiers et la base de données joue le rôle de contrôle d’accès à la nature des données qu’un tiers peut récupérer, elle peut également révéler des informations sur la structure de la base de données à l’insu du système hébergeant cette dernière.
Pour répondre à cette problématique, nous souhaitons donc étudier dans quelle mesure un schéma de base de données peut être appris à partir du protocole d’échange imposé par une API REST, permettant ainsi d’établir des liens entre des données qui ne sont pas partagées _a priori_.
### Travail à effectuer
Nous proposons notamment l’identification de règles logiques permettant d’extraire un schéma de base de données en nous appuyant sur les traces d’échanges de requêtes-réponses produites à partir d’une API REST.
Ces traces d’échanges pourront être obtenues par un robot HTTP (_e.g._, Chrome headless) qui explorera l’API REST d’un site donné pour observer les échanges d’informations entre un client et une application web.
Dans un deuxième temps, ces traces constitueront un jeu de données brutes sur lequel des règles d’extractions pourront être identifiées afin d’inférer un schéma probable des données stockées en base de données.
Enfin, l’identification de ce schéma servira non seulement i) à mettre en évidence des failles potentielles vis-à-vis de l’intimité des usagers mais aussi ii) à émettre des recommandations aux développeurs des applications web pour renforcer les stratégies de contrôle d’accès aux données.
# Inférence des schémas de données des réseaux sociaux
## Présentation générale
Sujet pas encore affecté.
<!-- Sujet affecté à : ⟨...⟩. -->
### Résumé
Ce stage de fin d’études cible l’identification des informations qui peuvent être inférées à partir des données accessibles sur Internet. En particulier, nous ciblons l’inférence des schémas de bases de données qui sont utilisées par des systèmes accessibles via une API REST comme HTTP. En particulier, nous nous intéressons à reconstruire automatiquement des schémas de bases de données en analysant les échanges de données exposées par les réseaux sociaux.
### Mots-clés
social network, REST, database
### Encadrement
Équipe(s) : Spirals (CRIStAL / Inria)
Encadrant(s) :
- Pierre Bourhis, Chargé de recherche
- Romain Rouvoy, Professeur
[Contacter les encadrants](mailto:romain.rouvoy@univ-lille.fr?subject=Stage%20de%20recherche).
Localisation : Inria Lille - Nord Europe, 40 avenue Halley, 59650 Villeneuve d’Ascq.
## Présentation détaillée
### Pré-requis
- Bonne connaissance des bases de données (schéma de données)
- Bonne connaissance des applications REST (protocole HTTP, format JSON)
### Contexte
Ce stage de fin d’étude s’inscrit dans le cadre du projet Momentum «_Gérer vos données sans fuite d'information_» financé par le CNRS et porté par Pierre Bourhis. Ce projet vise à renforcer le respect de l’intimité des usagers sur Internet en identifiant des fuites potentielles d’informations privées et en proposant des contre-mesures efficaces pour mieux maîtriser la nature des données personnelles qui peuvent être accédées par des tiers non-autorisés. Ce projet revêt donc un enjeu sociétal pour l’ensemble de la population.
### Problématique
Les réseaux sociaux, comme d’autres applications web, adoptent désormais en masse le style architectural REST comme un standard de conception des APIs qui leurs permettent de partager des informations avec des tiers autorisés. Alors que cette couche de médiation entre les tiers et la base de données joue le rôle de contrôle d’accès à la nature des données qu’un tiers peut récupérer, elle peut également révéler des informations sur la structure de la base de données à l’insu du système hébergeant cette dernière.
Pour répondre à cette problématique, nous souhaitons donc étudier dans quelle mesure un schéma de base de données peut être appris à partir du protocole d’échange imposé par une API REST, permettant ainsi d’établir des liens entre des données qui ne sont pas partagées _a priori_.
### Travail à effectuer
Nous proposons notamment l’identification de règles logiques permettant d’extraire un schéma de base de données en nous appuyant sur les traces d’échanges de requêtes-réponses produites à partir d’une API REST.
Ces traces d’échanges pourront être obtenues par un robot HTTP (_e.g._, Chrome headless) qui explorera l’API REST d’un site donné pour observer les échanges d’informations entre un client et une application web.
Dans un deuxième temps, ces traces constitueront un jeu de données brutes sur lequel des règles d’extractions pourront être identifiées afin d’inférer un schéma probable des données stockées en base de données.
Enfin, l’identification de ce schéma servira non seulement i) à mettre en évidence des failles potentielles vis-à-vis de l’intimité des usagers mais aussi ii) à émettre des recommandations aux développeurs des applications web pour renforcer les stratégies de contrôle d’accès aux données.
# Réconciliation des réseaux sociaux
## Présentation générale
Sujet pas encore affecté.
<!-- Sujet affecté à : ⟨...⟩. -->
### Résumé
Ce stage de fin d’études cible la problématique de la réconciliation des données dans les réseaux sociaux. En particulier, nous ciblons l’étude des mécanismes d’authentification sociaux comme vecteur de connection des données issues de plusieurs réseaux sociaux. En effet, les réseaux sociaux, comme Facebook, mettent à disposition un moyen d’authentification unique pour des sites tiers et permettent à ces derniers d’importer certaines données personnelles. En créant un tel lien sémantique entre Facebook et des sites tiers, nous pensons qu’il devient possible de construire un graphe de connaissances impliquant plusieurs réseaux sociaux.
### Mots-clés
social network, REST, database
### Encadrement
Équipe(s) : Spirals (CRIStAL / Inria)
Encadrant(s) :
- Pierre Bourhis, Chargé de recherche
- Romain Rouvoy, Professeur
[Contacter les encadrants](mailto:romain.rouvoy@univ-lille.fr?subject=Stage%20de%20recherche).
Localisation : Inria Lille - Nord Europe, 40 avenue Halley, 59650 Villeneuve d’Ascq.
## Présentation détaillée
### Pré-requis
- Bonne connaissance des bases de données (schéma de données)
- Bonne connaissance des applications REST (protocole HTTP, format JSON)
### Contexte
Ce stage de fin d’étude s’inscrit dans le cadre du projet Momentum «_Gérer vos données sans fuite d'information_» financé par le CNRS et porté par Pierre Bourhis. Ce projet vise à renforcer le respect de l’intimité des usagers sur Internet en identifiant des fuites potentielles d’informations privées et en proposant des contre-mesures efficaces pour mieux maîtriser la nature des données personnelles qui peuvent être accédées par des tiers non-autorisés. Ce projet revêt donc un enjeu sociétal pour l’ensemble de la population.
### Problématique
Nombre d’applications web—y compris de réseaux sociaux spécialisés—proposent désormais aux utilisateurs de s’authentifier en utilisant leur compte Facebook (ou Google ou autre) et d’importer certaines données pour alimenter un profil utilisateur, par exemple. Cependant, ces données peuvent être indirectement être exposées par des sites tiers et ainsi contribuer à créer des liens implicites entre les différents profils d’une même personne, révélant ainsi des informations potentiellement intimes.
### Travail à effectuer
À une échelle locale, nous proposons notamment d’adopter une approche logique pour modéliser les données des réseaux sociaux et les liens potentiels entre ceux-ci.
À une échelle globale, nous proposons d’identifier les stratégies de contrôle d’accès aux données selon le profil d’un utilisateur (extérieur, authentifié, etc.).
# Suivi de la consommation énergétique d'une machine virtuelle Java
## Présentation générale
Sujet pas encore affecté.
<!-- Sujet affecté à : ⟨...⟩. -->
### Résumé
Ce stage de fin d’études cible le développement d'une sonde interne à la machine virtuelle Java qui permette d'analyser finement la consommation en ressources (CPU, RAM) de ses différentes activitées afin de pouvoir isoler, évaluer et améliorer l'efficience énergétique d’applications s'exécutant sur la JVM.
### Mots-clés
Energie, JVM, Instrumentation, C.
### Encadrement
Équipe(s) : Spirals (CRIStAL / Inria)
Encadrant(s) :
- Guillaume Fieni, Doctorant
- Romain Rouvoy, Professeur
[Contacter les encadrants](mailto:romain.rouvoy@univ-lille.fr?subject=Stage%20de%20recherche).
Localisation : Inria Lille - Nord Europe, 40 avenue Halley, 59650 Villeneuve d’Ascq.
## Présentation détaillée
### Pré-requis
- Bonne connaissances du langage C
- Intérêt et curiosité pour le fonctionnement d’une machine virtuelle
### Contexte
Avec l'émergence du cloud, l'efficience énergétique est devenue une préoccupation majeure pour les administrateurs de systèmes logiciels. En effet, le cloud promeut une facturation des ressources matérielles en fonction de leur consommation.
Dès lors, les administrateurs et les développeurs s'efforcent de travailler à réduire l'empreinte énergétique de leurs applications afin de minimiser la facture de l'infrastructure d'hébergement.
### Problématique
Dans le contexte des applications Java, la machine virtuelle joue un rôle crucial en exécutant et en optimisant l'exécution du programme notamment grâce à la compilation à la volée (JIT) du bytecode en code machine.
Tandis que la machine virtuelle met en œuvre ce processus de manière totalement autonome, il reste difficile pour un développeur de comprendre quelles peuvent être les sources de la consommation de son application et ainsi identifier les leviers d'optimisation applicables.
### Travail à effectuer
Ce projet vise donc à développer une sonde interne à la JVM permettant de tracer les activitées et de proposer un modèle énergétique qui permette d'isoler i) la consommation propre à la machine virtuelle Java (e.g., ramasse-miettes) de ii) la consommation des objets instanciés et manipulés par l'application métier. L'objectif de ce projet étant de pouvoir proposer une cartographie fine de la consommation d'une application orientée objet afin d'en identifier les éventuelles sources de gâchis d'énergie.
Après vous être documenté sur le fonctionnement interne de la machine virtuelle Java, vous mettrez donc en œuvre le développement de cette sonde en vous appuyant sur les mécanismes de profilage existants. [1]
Ensuite, vous conduirez son intégration avec la sonde énergétique PowerAPI qui est capable de fournir instantanément la consommation énergétique de la machine virtuelle dans sa globalité.
### Bibliographie
[1] https://github.com/torvalds/linux/tree/master/tools/perf/jvmti
[2] Adel Noureddine, Romain Rouvoy, Lionel Seinturier: Monitoring energy hotspots in software - Energy profiling of software code. Autom. Softw. Eng. 22(3): 291-332 (2015)
[3] Adel Noureddine, Syed Islam, Rabih Bashroush: Jolinar: analysing the energy footprint of software applications (demo). ISSTA 2016: 445-448
# Génération automatique de règles pour Android Lint
## Présentation générale
Sujet pas encore affecté.
<!-- Sujet affecté à : ⟨...⟩. -->
### Résumé
### Mots-clés
Android, Linter, Java
### Encadrement
Équipe(s) : Spirals (CRIStAL / Inria)
Encadrant(s) :
- Sarra Habchi, doctorante
- Romain Rouvoy, professeur
[Contacter les encadrants](mailto:romain.rouvoy@univ-lille.fr?subject=Stage%20de%20recherche).
Localisation : Inria Lille - Nord Europe, 40 avenue Halley, 59650 Villeneuve d’Ascq
## Présentation détaillée
### Pré-requis
- Bonne connaissance du langage Java
- Intérêt et curiosité pour l’analyse statique de code
### Contexte
Android Lint [1] est un outil intégré à Android Studio qui aide les développeurs à écrire des applications mobiles de meilleure qualité. Lint analyse le code source de l’application pour détecter des erreurs et les signaler au développeur. Ces erreurs peuvent être liées à différents aspects comme la performance, la sécurité, l’accessibilité, etc. [3] Pour détecter ces erreurs, Lint repose sur un ensemble limité de règles qui permettent de détecter différentes classes d’erreurs dans le code source.
### Problématique
Néanmoins, les développeurs ont parfois besoin de détecter des erreurs plus spécifiques que celles disponibles dans la configuration de base de Lint. C’est notamment le cas quand ils utilisent une bibliothèques particulière pour développer leur application. Pour ce faire, ils doivent alors écrire des nouvelles règles de détection en utilisant l’API fournie par Lint [4]. Cependant, les développeurs trouvent que l’utilisation de l’API et l’écriture des règles de détection sont des tâches fastidieuses qui devraient être automatisées [5,6].
### Travail à effectuer
L’objectif de ce projet est donc d’aider les développeurs à générer automatiquement les règles de Lint à partir d’exemples de code source annotés. Ainsi, le projet consiste à développer un outil qui accomplira les tâches suivantes :
À partir d’un exemple de code source, générer automatiquement une description abstraite en utilisant la bibliothèque Spoon [7].
Traduire la forme abstraite en une règle pour Android Lint [4].
Intégrer la nouvelle règle en utilisant l’API fournie par Android Lint.
### Bibliographie
[1] https://developer.android.com/studio/write/lint
[2] https://github.com/collections/clean-code-linters
[3] http://tools.android.com/tips/lint-checks
[4] https://github.com/a11n/android-lint
[5] Habchi, S., Blanc, X., & Rouvoy, R. (2018, September). On adopting linters to deal with performance concerns in Android apps. In Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering (pp. 6-16). ACM.
[6] Christakis, M., & Bird, C. (2016, September). What developers want and need from program analysis: an empirical study. In Automated Software Engineering (ASE), 2016 31st IEEE/ACM International Conference on (pp. 332-343). IEEE.
[7] Pawlak, R., Noguera, C., & Petitprez, N. (2006). Spoon: Program analysis and transformation in java (Doctoral dissertation, Inria).
Autres références :
[8] Johnson, B., Song, Y., Murphy-Hill, E., & Bowdidge, R. (2013, May). Why don't software developers use static analysis tools to find bugs?. In Proceedings of the 2013 International Conference on Software Engineering (pp. 672-681). IEEE Press.
[9] Tómasdóttir, K. F., Aniche, M., & van Deursen, A. (2017, October). Why and how JavaScript developers use linters. In Automated Software Engineering (ASE), 2017 32nd IEEE/ACM International Conference on (pp. 578-589). IEEE.
#Topic mining des issues GitHub
## Présentation générale
Sujet pas encore affecté.
<!-- Sujet affecté à : ⟨...⟩. →
### Résumé
### Mots-clés
Text mining, topic mining, issues, Github
### Encadrement
Équipe(s) : Spirals (CRIStAL / Inria)
Encadrant(s) :
- Sarra Habchi, doctorante
- Romain Rouvoy, professeur
[Contacter les encadrants](mailto:romain.rouvoy@univ-lille.fr?subject=Stage%20de%20recherche).
Localisation : Inria Lille - Nord Europe, 40 avenue Halley, 59650 Villeneuve d’Ascq
## Présentation détaillée
### Pré-requis
- Intérêt et curiosité pour le data mining
### Contexte
GitHub est désormais l’essentielle plate-forme de développement open-source. Les développeurs partagent leurs codes source, mais aussi interagissent entre eux en créant une dimension sociale sur la plate-forme. Un des moyens d’interactions sont les issues : un espace où un développeur peut exprimer son feedback à propos d’un projet. L’issue peut inclure des rapports de bugs, des demandes de nouvelles fonctionnalités, et même des tâches pour les futurs développements. Ainsi, le texte des issues peuvent être une importante source d’information pour comprendre les projets open-source [1]. En effet, l’analyse des issues nous permettrait d’identifier les problèmes les plus remontés par les développeurs.
### Travail à effectuer
L’objectif de ce projet est d’identifier les sujets (topics) récurrents dans les textes des issues. Pour cet effet, des techniques de text mining, et spécifiquement le topic modelling, peuvent être utilisés [2]. Ces techniques ont déjà fait leurs preuves sur des textes similaires dans le contenu. Spécifiquement, l’algorithme de Latent Dirichlet Allocation (LDA) a déjà été efficacement utilisé pour identifier les sujets des questions posés par les développeurs sur stackoverflow [3,4].
La réalisation de ce projet consiste à accomplir les tâches suivantes :
Construire un dataset d’issues à partir de GitHub (nous avons déjà l’outil pour le faire).
La sélection d’un algorithme approprié pour l’analyse, suite à un mini état de l’art.
L’implémentation de l’algorithme.
L’analyse du dataset.
### Bibliographie
[1] Kalliamvakou, E., Gousios, G., Blincoe, K., Singer, L., German, D. M., & Damian, D. (2014, May). The promises and perils of mining GitHub. In Proceedings of the 11th working conference on mining software repositories (pp. 92-101). ACM.
[2] Blei, D. M., Ng, A. Y., & Jordan, M. I. (2003). Latent dirichlet allocation. Journal of machine Learning research, 3(Jan), 993-1022.
[3] Barua, A., Thomas, S. W., & Hassan, A. E. (2014). What are developers talking about? an analysis of topics and trends in stack overflow. Empirical Software Engineering, 19(3), 619-654.
[4] Rosen, C., & Shihab, E. (2016). What are mobile developers asking about? a large scale study using stack overflow. Empirical Software Engineering, 21(3), 1192-1223.
[5] Jurado, F., & Rodriguez, P. (2015). Sentiment Analysis in monitoring software development processes: An exploratory case study on GitHub's project issues. Journal of Systems and Software, 104, 82-89.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment