1194 research outputs found
Sort by
Unit Testing of Analytic Rules for Microsoft XDR
Microsoft’s SIEM solution for Azure cloud environments is Sentinel. Sentinel allows
for “analytics rules” to be created, which are used to search for patterns and
indicators in the SIEM data. Creating these analytics rules can either be done in the
Sentinel GUI which can be tedious, or via synchronization with a Git repository.
When using the latter option, the analytics rules come in the form of JSON
formatted ARM templates. These templates define the analytics rule as code, just like
any other deployment as code in the Azure cloud. Unfortunately, this comes with the
downside that a deployment is not tested in any way before it is deployed.
This thesis presents the implementation of an automated Azure DevOps pipeline to
validate Sentinel analytics rules to some extent before deployment, mitigating the risk
of errors of deployments greatly and introducing continuous testing into the process.
The solution also abstracts the complexity of the ARM template structure, which can
be hard to read, by accepting YAML rules as input which mainly focus on the most
crucial content of the rule itself, without having to care about metadata.
To achieve this, the following tools have been integrated:
• Maester as an automated testing framework.
• SentinelARConverter which converts YAML rules into ARM templates.
• ARM Template Test Toolkit to test for syntactical and to some extent semantic correctness of the finalized ARM template.
• KQL Analyzer to test the syntactical correctness of the KQL query provided with the rule (Kusto Query Language)
Keywords: Microsoft Sentinel, Azure DevOps, Automated Testing, ARM
Templates, KQL Validation, Maester Framewor
Entwicklung eines Dashboards für das digitale Produktionsmanagement im industriellen Umfeld
Die SFS Group Schweiz AG ist ein international tätiger Industriekonzern, der sich auf die Entwicklung und Herstellung von Präzisionskomponenten und Baugruppen, mechanischen Befestigungssystemen, Qualitätswerkzeugen und Bewirtschaftungslösungen spezialisiert hat.
Mit rund 13.200 Mitarbeitenden weltweit hat das Unternehmen seinen Hauptsitz in Heerbrugg.
In den globalen Produktionswerken der SFS Group AG werden täglich eine Vielzahl von Kennzahlen erfasst, um die Leistung der Produktionsanlagen zu überwachen und zu optimieren.
Diese Daten werden in Echtzeit erfasst und in einem zentralen System gespeichert.
Zur Analyse und Überwachung der Kennzahlen kommen verschiedene Applikationen zum Einsatz.
Ziel dieser Studienarbeit ist es, die Nutzung dieser Kennzahlen durch die direkten Führungskräfte der Produktion zu fördern.
Um dieses Ziel zu erreichen, sollen bestehende Applikationen erweitert oder ein Prototyp für eine neue Applikation entwickelt werden.
Zu Beginn der Arbeit wurde eine umfassende Analyse der bestehenden Kennzahlen und der genutzten Applikationen durchgeführt.
Parallel dazu wurde die Nutzung der Kennzahlen durch die Führungskräfte untersucht.
Im Rahmen eines ausführlichen Contextual Inquiry wurden die Anforderungen, Arbeitsabläufe und Problemstellungen der Führungskräfte an verschiedenen Produktionsstandorten ermittelt.
Basierend auf diesen Erkenntnissen wurden ein Affinity-Diagramm sowie mehrere Personas erstellt.
Die Personas halfen dabei, die Anforderungen der Führungskräfte zu strukturieren und zu priorisieren.
Aus diesen Anforderungen wurden verschiedene Lösungsideen abgeleitet, von denen eine zur Umsetzung in einem Prototyp ausgewählt wurde.
Die Entscheidung fiel auf die Entwicklung einer Webapplikation zur digitalen Durchführung der Teammeetings.
In enger Zusammenarbeit mit dem Auftraggeber wurden die Requirements definiert, um die Nutzerbedürfnisse optimal zu erfüllen.
Zur strukturierten Entwicklung des Prototyps wurden mehrere Wireframes erstellt, die als Grundlage für die Implementierung dienten.
Im weiteren Verlauf der Arbeit wurde ein Prototyp entwickelt, der die digitale Durchführung von Shopfloor-Meetings ermöglicht.
Ein zentrales Element der Applikation ist die Möglichkeit, personalisierte Dashboards zu erstellen, die den Führungskräften die wichtigsten Kennzahlen übersichtlich präsentieren.
Der Inhalt der Dashboards kann von den Führungskräften individuell in Form von Widgets angepasst werden.
Diese Widgets sind in ihrer Grösse und Anordnung flexibel, wodurch eine benutzerfreundliche und anpassbare Darstellung gewährleistet wird.
Die Evaluation des Prototyps erfolgte durch einen Usability-Test und ein abschliessendes Gespräch mit dem Auftraggeber.
Dabei wurde geprüft, ob der Prototyp die definierten Anforderungen erfüllt und mit der im Vorfeld erarbeiteten Beschreibung des Minimum Viable Product (MVP) übereinstimmt.
Die Ergebnisse zeigten, dass die definierten Anforderungen erfüllt wurden.
Dies bestätigt den Erfolg der entwickelten Lösung und bietet eine solide Grundlage für eine mögliche Weiterentwicklung
Conversational Banking
Die Masterarbeit «Conversational Banking» behandelt die Kommunikation zwischen Privatkundinnen und -kunden und dem Beratungscenter der Thurgauer Kantonalbank (TKB). Anhand einer extensiven Nutzerforschung wird untersucht, wie die Kundschaft mit der Bank kommunizieren möchte und welche digitalen Kommunikationskanäle dabei bevorzugt werden. Dies bildet die Grundlage, um aufzuzeigen, wie die digitalen Kommunikationskanäle der TKB in Zukunft weiterentwickelt werden sollen.
Die Vorgehensweise orientiert sich primär an Collaborative UX Design [Steimle und Wallach 2018] und wird durch Methoden aus Goal Directed Design [Goodwin 2009] ergänzt. Die Sichtweise der Kundenseite wird mittels halbstrukturierter Interviews und zwei Online-Umfragen erforscht, während die Bedürfnisse des Beratungscenters anhand eines Contextual Inquiry und halbstrukturierter Interviews ermittelt werden.
Anfänglich wird vermehrt auf den Live-Chat fokussiert, welcher vor zwei Jahren eingeführt wurde. Es zeigt sich, dass das Produkt aus verschiedenen Gründen nicht benutzerfreundlich ist. Aufgrund dessen ist der Live-Chat selten aufgeschaltet und wird von der Kundschaft nicht als Kontaktkanal genutzt oder wahrgenommen. Die Voraussetzungen für eine funktionierende Chat-Lösung sind in den Ergebnissen dargestellt.
Aus der Nutzerforschung entstehen fünf validierte Personas sowie Ist- und Soll-Service Blueprints. Die Personas der Kundschaft zeigen, dass das Bedürfnis, Bankangelegenheiten selbstständig zu erledigen, immens ist. Die Bank wird lediglich bei Problemen oder Beratungsbedarf kontaktiert. Für jede Persona ist die Wahl des Kommunikationskanals individuell und erfolgt unter Berücksichtigung mehrerer Parameter, unter anderem der Dringlichkeit und Komplexität der Anfrage sowie der Erreichbarkeit und persönlichen Präferenz. Dieser Prozess wird als Entscheidungsbaum abgebildet.
Unter den identifizierten Opportunity Areas ist ein zentrales Problem, dass die schriftlichen Anfragen von den Kundinnen und Kunden nicht detailliert genug beschrieben werden. Dies hat zur Konsequenz, dass seitens Beratungscenter Rückfragen nötig sind. Hinzu kommt, dass die Anfragen des Kontaktformulars via E-Mail beim Beratungscenter eintreffen. Aus Datenschutzgründen darf darauf nicht mit vertraulichen Informationen reagiert werden. Daher sind OLIVIA-Nachrichten zu bevorzugen. Sie bieten eine höhere Sicherheit bei der Datenübertragung und eine direkte Verbindung zu den Kundendaten im zentralen Bankensystem. Basierend auf dieser Opportunity Area wird ein neues Konzept für das Kontaktformular der TKB-Webseite entwickelt. Dank einem integrierten Login ins Kundenportal wird es ermöglicht, die Kundschaft zu identifizieren und ihnen via OLIVIA-Nachricht zu antworten. Die Erfassung eines Anliegens wird erleichtert, indem eine Vorauswahl an Kategorien zur Verfügung steht. Das Anliegen wird anschliessend mittels Drill-Down Prinzip spezifiziert, womit minimale manuelle Eingaben erforderlich sind. Das Konzept des Kontaktformulars wird anhand eines Klickprototypen visualisiert und mit zwei Iterationen moderierter Usability Tests validiert. Das Wireframe-Design wird mit Empfehlungen zur Weiterentwicklung und einer Release-Planung abgerundet.
Einerseits zeigen die Ergebnisse der Masterarbeit die Bedürfnisse der digital affinen Kundschaft auf. Andererseits bietet das neue Kontaktformular sowohl der Kundschaft als auch dem Beratungscenter einen Mehrwert. Das Kontaktformular folgt dem Aufbau eines Dialogs und interpretiert den Arbeitstitel «Conversational Banking» auf eigenständige Art und Weise
CuSharp - A GPU Compute Framework for .NET
The number of computationally intensive applications is growing. For many easily parallelizable problems, GPUs offer better performance than CPUs. As a result, GPUs are now used not only for graphical applications, but also for machine learning and cryptography. GPU-accelerated programs have traditionally been written in C, C++ for high-performance applications such as physics simulations and graphical applications and more recently in Python to optimize machine learning algorithms. Most GPU-APIs, including Nvidia CUDA, restrict their developers to using C, C++ or Python to write programs targeting those APIs.
In this thesis a framework called CuSharp has been developed that allows developers to build and run GPU-executable kernels directly in C#. This is achieved by using existing toolchains complemented by a specifically developed cross-compiler. In a first step, the Roslyn compiler is used to compile the C# kernel to Microsoft Intermediate Language (MSIL). Subsequently, the CuSharp compiler cross-compiles MSIL to NVVM IR, which is a low-level but platform-independent intermediate representation. Finally, NVVM IR is translated to PTX ISA, an assembly-like language for Nvidia GPUs, using the NVVM compiler library (libNVVM). By further encapsulating all device-specific compiler settings, we allow future development efforts to add support for devices other than those manufactured by Nvidia.
CuSharp supports the compilation of static methods, written in a specific C# subset, either just-in-time or ahead-of-time. The resulting PTX ISA kernels’ performance was benchmarked and compared to kernels compiled by the Nvidia CUDA Compiler (NVCC). For a kernel that computes matrix multiplications, a performance slowdown between 1.4% and 4.8% was measured for CuSharp-compiled kernels compared to NVCC-compiled kernels. The measurements refer to the execution time of the kernel on the graphics card, excluding the compilation process and the data transfers.
This thesis shows the challenges of interfacing with the LLVM compiler infrastructure and the Nvidia CUDA API. In addition, it provides an overview of the complex landscape of APIs that can be used to interface with GPU devices in general, by comparing their toolchains and languages. Furthermore, it demonstrates that GPU kernels can be written in a high-level language such as C#, which is widely used in the industry, while suffering only minor performance degradation
3D-Visualization of Utility Lines in the Browser Using Augmented Reality on Tablets
Locating underground utility lines such as water tubes or gas pipes is a complex task due to the fact that they are mostly hidden. The aim of this project is to create a solution which represents an innovative, cost-effective alternative to current solutions. Current solutions are dependent on expensive hardware and native applications.
This thesis introduces a web-based augmented reality (AR) application for visualizing under- ground utility lines on Android tablets. Thereby, addressing the challenge of locating such lines. It utilizes WebXR and WebGL to integrate Building Information Modeling (BIM) data, specifically Industry Foundation Classes (IFC), into a 3D web environment. This process involves converting IFC data for compatibility with WebGL, using Blender with the BlenderBIM add-on. The appli- cation’s frontend was developed using Vue.js with Typescript, and the backend with Python Flask. Besides the already mentioned technologies, the application utilizes PostgreSQL, Post- GIS, Three.js, Turf.js and Vuetify.
A key aspect of this project was the application’s ability to approximate the positioning of utility lines. Using the device’s geolocation and the lines’ coordinates, the relative distance is calcu- lated and applied in the virtual space. Additionally, the virtual space has to be aligned with the real world, which is achieved by rotating the virtual coordinate system based on the device’s compass. This thesis identifies a challenge in aligning the virtual and real-world coordinate sys- tems, due to the compass inaccuracy on mobile devices. These compass inaccuracies lead to a wrongly rotated virtual coordinate system and therefore imprecise placement of the utility lines
Development of a Gamified Application for Programming Education
Introduction: Programming exercises are a crucial component in teaching aspiring computer scientists practical knowledge about software development. At OST, many courses offer a wide range of different programming exercises, ranging from algorithm development in Java to artificial intelligence training in Python.
In this semester thesis, we were tasked with bringing gamification into the realm of university exercises. The main goal was to develop a software system that incentivizes students to engage repeatedly and consistently with programming assignments.
Approach: For this thesis, we employed a user-centered design process to evaluate and conceptualize a gamified application for programming exercises. We thereby proceeded as follows:
- We defined a user base consisting of 2 user groups
- We conducted 11 user interviews with different people from this user base
- We derived 101 tangible user stories from these interviews
- We conceptualized 5 aspects of an application that addresses these user stories, using existing applications and scientific papers as a foundation for our ideas
- We prototyped different features to ensure their technical feasibility
- We defined 40 functional requirements for our minimal viable product, which will be developed as part of our Bachelor's thesis
Conclusion: Through this thesis, we have concluded that an application designed to motivate students at OST to engage more regularly with their exercises cannot be developed on the basis of gamification alone. As such, our thesis focuses on the conceptualization of a software system that aims to unify and simplify the process of creating, managing, conducting and evaluating exercises. Such an application, although broader than initially intended, could improve the value of exercises at OST
Visualtraining in der digitalen Transformation
Das Sehzentrum Zürich bietet an seinen drei Standorten Dienstleistungen für die ganzheitliche Gesundheit der Augen an. Dazu gehören unter anderem das Ausmessen und Korrigieren von Brillen und Linsen. Mit schweizweitem Ansehen haben sie sich primär auf das Visualtraining spezialisiert. Dabei trainieren die Optometristinnen mit spezifisch zusammengestellten Übungen ihre Patienten.
Ausgerichtet nach dem Vorgehensmodell Goal-Directed-Design (GDD) [Goodwin 2009] werden mit passenden Methoden, unter anderem Interviews und Contextual Inquries, die Anforderungen und Bedürfnisse der Benutzenden erhoben. Bei den Beobachtungen zeigte sich, dass eine standortübergreifende Möglichkeit zur Erstellung und Dokumentation von Trainingseinheiten mit den Patienten fehlt. Das Projektteam erarbeitete gemeinsam mit den Optometristinnen eine User-Journey-Map und ana- lysierte dabei den bestehenden Prozess des Visualtrainings. Damit entsteht ein wichtiges Werkzeug für das spätere Lösungsdesign. Mittels detailliert ausgearbeiteten Personas wird ein Verständnis für die Anwendenden geschaffen, welches innerhalb des iterativen Projektverlaufs zunehmend geschärft wird. Es kristallisieren sich zwei primäre und eine sekundäre Persona heraus. In einem Stakeholder-Workshop wird entschieden, dass die Persona «Olivia Optik» mit Blick auf die Geschäftsstrategie am wichtigsten ist.
Anhand der gesammelten Anforderungen werden laufend Annahmen formuliert und auf einer Annahmen-Map nach Collaborative UX Design [Steimle und Wallach 2018] eingeordnet. Mit den Stakeholdern werden diese in einem weiteren Workshop validiert. Diese validierten Anforderungen werden schliesslich in einer User-Story-Map visualisiert und für eine erste Lösungsiteration priorisiert.
Mit der Phase Framework Design nach GDD [Goodwin 2009] startet das Projektteam mit dem Lösungsdesign. Es werden Keypath-Szenarien erarbeitet und daraus funktionelle Elemente abgeleitet. Diese werden schliesslich in den Wireframes platziert und angeordnet. Mittels zwei kurzer User-Tests werden die grundlegenden Elemente in einer frühen Phase validiert, die in die nächste Design-Iteration einfliessen. Auf der Basis der getesteten Wireframes pflegt das Projektteam die neuen Erkenntnisse mit der Applikation Figma in einen klickbaren Prototyp ein. Dabei entsteht ein interaktives Benutzerinterface, welches den zentralen Funktionsumfang, vom Erfassen einer einzelnen Übung bis zur Erstellung kompletter Trainingspläne, umfasst.
Das Ergebnis wird durch fünf Userstests mit den Mitarbeitenden des Sehzentrums Zürich überprüft, vom Projektteam bewertet und weitere Erkenntnisse daraus gezogen. Anhand weiterer Methoden wie Design-Studio und einem Expert-Review wird der klickbare Prototyp optimiert, wobei weitere iterative Tests sicherstellen, dass die benutzerzentrierte Lösungsentwicklung im Fokus steht. Dem Projektteam ist es mit dieser Masterthesis gelungen, einen bedürfnisspezifischen Vorschlag einer benutzer- zentrierten Lösung zu erarbeiten. Die positiven Rückmeldungen der Auftraggeberin mit der Aussicht, die Applikation nach einer detaillierten Spezifikationsphase umsetzen zu lassen, sprechen für den Projekterfolg
K8s L2 CNI for Containers and VMs
This paper investigates how layer 2 networking inside Kubernetes can be realized. Layer 2 networking is vital for some applications and especially useful for simulating real-world networking scenarios in Kubernetes. The INS is providing networking laboratory exercises to the students of the Eastern Switzerland University of Applied Sciences. The underlying platform should be migrated from bare metal Docker to Kubernetes for performance and scalability improvements. This is the main reason why the Institute for Network and Security (INS) is looking into this technology. The INS needs layer 2 point-to-point connections. This means protocols like Link Layer Discovery Protocol (LLDP) and layer 3 multicast applications like Hot Standby Router Protocol (HSRP) should work inside Kubernetes without being filtered or blocked. This matter gets further complicated by the fact that not all workloads can be containerized. Some workloads need to be run as virtual machines. These virtual machines can be managed and run inside Kubernetes using KubeVirt.
Pods in Kubernetes use Container Network Interface (CNI) plugins to communicate with each other and external networks. Currently, no single CNI plugin can handle unfiltered layer 2 point-to-point connections between pods and KubeVirt virtual machines. Additionally, connections must be possible over multiple physical Kubernetes nodes.
This paper tests and analyzes possible methods of realizing layer 2 connectivity. There are two main challenges with establishing layer 2 connectivity. The first is getting layer 2 inter-node traffic inside Kubernetes working with a CNI. This involved testing multiple open-source CNIs that claim to provide layer 2 connectivity and breaking down how they work. The second challenge is connecting the Kubevirt VMs to the Kubernetes CNI without losing packages.
There are many usable approaches to getting pod-to-pod layer 2 connections working. The most successful way was to use a CNI called Kube-OVN. Kube-OVN leverages Open Virtual Network (OVN), which is based on an Open Virtual Switch (OVS), to allow for proper networking configuration inside Kubernetes. With many workarounds, getting all layer 2 traffic from a KubeVirt VM to a pod is possible. However, it is not flawless, as during proof of concept 1 each interface can only handle one static MAC Address. This limitation makes using HSRP impossible. There are efforts from the community to make the virtual machines integrate better into an existing CNI. However, the macvtap binding mode, which the KubeVirt community is working on, did not succeed during testing.
It was shown that pod-to-pod connectivity could be realized on layer 2, but additional research is required to allow VM-to-pod connectivity in Kubernetes
LTB Operator
Lab Topology Builder (LTB) is an application developed by the Institute for Network and Security for research and teaching purposes. It allows the creation of emulated network topologies, comprised of interconnected nodes, such as servers, switches, routers, etc. LTB serves as a vital tool in various courses at the OST, enabling students to gain hands-on experience and understanding of cloud computing, networking, and security concepts. Currently, LTB relies on a ReactJS frontend and a Django Python backend, utilizing KVM/Docker for lab deployment. However, due to accumulated technical debt and the lack of documentation, maintaining the application has become increasingly challenging.
The primary goal of this project is to create an LTB-inspired Kubernetes operator - short LTB Operator, which simplifies the deployment and management of LTB labs. Furthermore, the labs should run completely inside a Kubernetes cluster, which enables effortless scaling, orchestration and monitoring. This is possible by leveraging the capabilities of Kubernetes including automation, dynamic resource allocation, and seamless integration with a wide range of tools.
The LTB Operator is implemented using the Go-based Operator-SDK framework, that provides a set of tools and libraries for building Kubernetes operators. This allows for a streamlined development process and integration with the Kubernetes API.
The deployment of VMs in Kubernetes is provided by the KubeVirt project, which extends Kubernetes with virtualization capabilities. KubeVirt allows the deployment and management of KVM based VMs as Kubernetes resources, accessible via the Kubernetes API.
The LTB Operator has the ability to deploy labs consisting of pods (containers) and KubeVirt VMs defined using a YAML file. Lab templates, lab instances, and node types are utilized as custom resources (CRs) to define the lab topology, configuration, and available node options. A simple Layer 3 network between the nodes is implemented using Multus-CNI. In addition to that, out-of-band management access to the lab nodes is provided using a web-based terminal and a freely configurable port. The lab's status and remote access details can be obtained via a command-line interface (kubectl). Even though access control is not implemented in this project, the current implementation lays the groundwork for future development, such as defining basic RBAC policies, by deploying labs within their own namespace.
In conclusion, the LTB Operator offers users a streamlined approach to deploy and effectively manage network emulation labs within a Kubernetes cluster. This integration bridges the gap between network emulation and container orchestration, enhancing the flexibility and scalability of lab environments for research and teaching purposes
Vehicle Platooning using Multi-Agent Reinforcement Learning: A Study on Autonomous Driving in the CARLA Simulator
We successfully trained a model using reinforcement learning that enables a car to identify and follow a leader vehicle, therefore creating a vehicle platoon in a simulation.
For this thesis, we are using CARLA, an open-source 3D environment simulator for autonomous driving research based on the Unreal Engine.
Specifically, we implemented the Double Deep Q-Network algorithm to train the policy.
The state is solely represented as the sensor input taken from the follower car's front camera.
From that, an Atari-style Convolutional Neural Network predicts the actions' Q-values .
A custom reward function, that combines the relative longitudinal and lateral positions of the two vehicles in the platoon, provides the necessary feedback of each action's performance.
Actions, discrete by definition of a DQN, comprise left and right steering, acceleration and slowing down, as well as braking.
The resulting model is capable of forming and maintaining a platoon.
While navigating in a multi-lane scenario, it even manages to cross intersections successfully.
It enables the follower car to identify the leader vehicle and imitate its actions in a previously unseen environment