Fall 2023 EL/R Project Offerings
Android and Java Malware Detection - Luke Ziarek
Openings (4)
Description
This project aims to create a toolchain based around a compiler and machine learning classifier to identify Android and Java malware. Students will work on modifying an existing compiler (Soot) to analyze Java and Android programs. The project will involved writing static and dynamic analyses to identify features that can be used by a classifier to make a determination if a given program is malicious or not. The project will begin with students learning about and writing their own intra-procedural information flow analysis. Students will then extend their intra-procedural information flow analysis to be a whole program inter-procedural information flow analysis. This analysis will identify the portion of the computation that deals with sensitive and personal data. Students will then write an analysis over this portion of the code to extract features to be used for classification. The analyses can be extended to handle more complex Java and Android features like reflection and Android IPC mechanisms. There is also room for exploring different machine learning technologies based on performance and accuracy measures.
Skills
Soot compiler
Manufacturing Metaverse - Wenyao Xu
Openings (4)
Description
The student team will develop a manufacturing metaverse game which introduces the concept of manufacturing safety and security. In the VR game, users will learn the principle of maintaining safety and security in a factory scene.
Skills
3D Design; Gaming Design; Gaming Programming
CTF Platform Development - Ziming Zhao
Openings (4)
Description
The students will help develop PwnIoT.Academy (http://cse410.cacti.academy/), which is a CTF platform to support IoT architecture and defensive challenges.
Skills
Web development, database management, docker, shell scripts, cloud set-up
Vizier UI/UX Development - Oliver Kennedy
Openings (4)
Description
The Vizier team is rebuilding their computational notebook Vizier, and wants to take this opportunity to develop a simpler, but more powerful data visualization component. At a really high level, this component takes in a dataset and spits out a chart based on a set of user-provided instructions. Unsurprisingly, this is easy for the common case, but data vis is a minefield of corner cases and exceptions.
At the low end of the objective spectrum is simply creating a shiny, cleaner UI for the existing interface, adding a few new plot types. Going beyond that, additional objectives include: - Adding standard analytical data visualizations that require data munging (e.g., histograms or CDFs) - Annotation (e.g., labels, notes, etc) - Coming up with a cleaner way to let users distinguish between data on a common x-axis (each row defines one point for each line) and multiplexed data (an attribute in the dataset determines which line the point belongs to) - Formatting (e.g., x/y-axis labels, etc) - Adding support for Vizier's built-in semantics for communicating uncertainty - Multiple-dataset support - Trendlines - One really really nifty feature would be to leverage the fact that Vizier uses VegaLite for data vis. Specifically, VegaLite has an editor where you can manually "tweak" a visualization. It would be nice to see if there's some way to pull those tweaks back into Vizier to allow users to re-apply them.
Skills
Data Vis experience (matplotlib, d3, gnuplot, excel), Apache Spark, SQL.
Teamwork Tool Development - Matthew Hertz
Openings (5)
Description
Enhance the current UI/UX of the teamwork tool (https://cse.buffalo.edu/teamwork) which allows instructors to create and administer peer and team feedback for a variety of course needs. This will also include several feature enhancements to allow the tool to be used across more courses.
Skills
Web Development
ML model recommendation and benchmark systems - Jinjun Xiong
Openings (5)
Description
Students will research and enhance an existing large-scale project from the faculty group on benchmarking and recommending state-of-the-art machine learning models. The students will learn all major modern state-of-the-art machine learning models, their relationships, and then organize them in a user-friendly manner for both consistent benchmarking and customized recommendation. Through this project, students will become domain experts on modern ML models, AI systems, and modern cloud technologies for building end-to-end AI solutions.
Skills
React JS Various machine learning models and the popular deep learning frameworks (such as PyTorch, TF) Python programming experience Cloud related technologies (such as Docker, CICD, RESTful, K8s) and modern development tools (such as GitHub, Linux) Comfortable to work with a large code base