Mentor, A Siemens Business Student Internship / Thesis Opportunities - 7864 in Villingen, Germany

Student Internship / Thesis Opportunities - 7864


Description

Company: Mentor Graphics

Job Title: Student Internships / Thesis Opportunities (multiple topics)

Job Location: Germany – Villingen-Schwenningen or Munich

Job Category: College

Company Information

At Mentor, a Siemens Business, we are shaping the future of automotive embedded systems with our vision and team of innovative, dedicated and smart hardware and software developers who are passionate about creating extraordinary automotive solutions.

Our Automotive Business Unit provides comprehensive solutions ranging from small footprint ECU software up through the most advanced applications in ADAS, infotainment, driver information and telematics. We specialize in highly optimized in-vehicle solutions, focused in the areas of audio, video, and networking.

Overview of Available Internships and Bachelor/Master Thesis Topics

We now have a number of internships and thesis topics available for self-motivated students; offering an excellent opportunity to start your career working alongside experienced and passionate professionals in an international environment. If you wish to gain invaluable practical experience and develop your skills in automotive electronics and embedded systems with a market leader, we would be delighted to hear from you.

Themes available, and associated requirements, for our upcoming internship intake are outlined below:

Please apply online with CV and cover letter indicating the location and topic(s) of interest .

-----------------------------------------------------

#

Bachelor/Master Thesis: Evaluate Feasibility of Code and Data Obfuscation based on LLVM IL and how this affects automated De-Obfuscation of Executable Binaries

Location: Villingen-Schwenningen or Munich

Beside cryptographic approaches one way to prevent reverse engineering of binary code and data is applying the technique of obfuscation. When dealing with code obfuscation the largest challenge is to support different architectures like e.g. x86-64 or ARM, but of course others as well. In this particular context, it should be mentioned that the available frameworks and tools are usually applying architecture specific obfuscation which is costly.

To address this issue and to cope with the increasing number of native architectures the idea is to implement code and data obfuscation based on LLVM IL level instead.

Such a tool chain would allow implementation of various obfuscation passes that could be applied to every architecture supported by the LLVM compiler infrastructure.

Topic of this thesis is to evaluate LLVM internals to understand how new passes can be implement and then design a basic set of obfuscation for code as well as for data. In order to approach this objective, the following steps must be performed:

*Research and understand LLVM internals

*Design and implement template passes that can be used for code as well as for data obfuscation

*Implement a set of know code obfuscation patterns (e.g. dead code insertion, basic block shuffling, basic block merging, direct-to-indirect-call-transformation)

*Design and implement ideas for data obfuscation (e.g. resource encryption)

*Demonstrate that on a functional level that original code and obfuscated code is equivalent

*Demonstrate why LLVM does provide larger flexibility in adjusting to new anti-obfuscation patterns (e.g. optimization)

Since it is assumed that it is not possible to implement all of the current state-of-the-art obfuscation techniques in the given time frame, outline what obfuscation patterns exist and outline advantages and disadvantages what it takes to design and implement LLVM passes for them.

Bachelor/Master Thesis: Evaluate Lifting of Native Instruction Sets to an Intermediate Language like LLVM IL to conduct Binary Security Analysis on IL Level

Location: Villingen-Schwenningen or Munich

One of the challenges in the world of binary security analysis is that frameworks are usually designed to work with a particular architecture like e.g. x86-64 or ARM. There are only few frameworks or tools available that allow handling of a variety of more exotic architectures like MIPS or PowerPC. This becomes an issue especially in a field, like the automotive industry where a large set of different architectures are constantly used.

To address this issue and to avoid dependencies to source code analysis the idea is to evaluate the LLVM compiler infrastructure, more specifically its intermediate language towards the possibility of translation, also called lifting native instructions to an architecture independent instruction set like LLVM bitcode.

The major advantage of this approach is the possibility of developing a platform independent analysis framework which will massively decrease development cost for such tools.

Topic of this thesis is to design and implement a set of lifter prototypes that allow lifting from x86, x86-64, arm and aarch64 to LLVM IL. In order to approach this objective, the following steps must be performed:

*Build an Abstraction Layer for Binary Formats.

*Implement Parser Plugins for Binary Formats (ELF, PE, Macho, etc.) applying the Abstract File Format Design.

*Design a suitable Lifting Interface for LLVM.

*Implement Lifter applying the design specification for the mentioned Architectures.

*Create a PoC on how a security analysis on LLVM IL level could look like: e.g. detection of buffer overflows, race condition detection, dead code detection, de-obfuscation, signed-ness issues, etc.

Since it is assumed that it is not possible to implement support for all mentioned architectures nor to provide sophisticated security analysis in the given time frame, the bachelor thesis should also provide an outlook on the future possibilities of the framework specifically outlining the feasibility of implementing new architectures and more advanced security analysis. Also compare your design to existing frameworks like TrailOfBits mcsema and others.

#

Internship: Evaluation of next-generation automotive Gigabit-Network solutions, based on IEEE 1000Base-T1

Location: Villingen-Schwenningen

In today's automotive systems the car's electronics consists of several distributed ECUs (Electronic Control Units).

The single ECUs are connected to each other using different interfaces and network-types, like LIN, CAN, FlexRay or MOST. A new trend is to use Ethernet based network connections inside the car. This Automotive-Ethernet-Solution is specified in IEEE802.3 as 100Base-T1 for 100Mbit-connections and 1000Base-T1 for Gigabit-connections. T1 indicates, that only one single twisted pair is used, as the weight of the cable-harness inside a car is an important topic.

100Base-T1 (formerly named BroadR-Reach) is well known. 1000Base-T1 is now rising up as next-generation.

The goal of internship is first, to analyze the market for available 1000Base-T1 ICs (PHYs and switches). Second, to develop a hardware evaluation platform, using the available ICs. This Evaluation-Platform may be either a stand-alone solution, running embedded Linux on some kind of MCU or SOC. Or it may be e.g. an USB-Network-Device to be connected to a Linux-based Host-PC. Finally, to compare the available 1000Base-T1 Gigabit solutions regarding power-consumption (Run-Mode and Sleep-Mode), PCB-Board-Space requirements, glue-logic requirements, robustness in data-Transfers and others, using the developed hardware evaluation platform.

Internship: Demo setup for remote rendering devices

Location: Villingen-Schwenningen

As part of the Mentor demo suite we use a Remote Rendering Display device. Goal is to show potential customers and partners Mentor's abilities to bring content to several displays connected with a network (e.g. Ethernet). There are several technologies to transfer the display content from one display to the others. Usually topics like user input are not part of such protocols.

In the beginning the scope of the demo, including sample applications, needs to be defined together with the engineering team. After that a sender and receiver device based on Mentor's SysDK has to be setup. This includes implementation and/or integration of all the required applications, protocols and system libraries.

The following list provides an overview of topics:

*Definition of demo use case including shared applications

*Setup of two embedded devices acting as sender and receiver

*Integration/Implementation of a protocol to transfer display content

*User input (e.g. touch screen) back channel from the receiver to the sender

*Wayland integration for display output

*Implementation of a RTP receiver application for audio and video streams

*Audio output integration