From 2206844a06b98709b9434948d0e5704536d040a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Mon, 3 Dec 2018 00:24:06 +0100 Subject: [PATCH] Start reading through text to fix errors --- content/a_tour_of_tfw.tex | 81 +++++++------- content/abstract.tex | 7 +- content/architecture.tex | 187 ++++++++++++++++++++------------ content/introduction.tex | 36 +++--- content/summary.tex | 26 ++++- content/using_the_framework.tex | 2 +- figures/tfw_fsm.png | Bin 74951 -> 75077 bytes 7 files changed, 209 insertions(+), 130 deletions(-) diff --git a/content/a_tour_of_tfw.tex b/content/a_tour_of_tfw.tex index 130eb72..105a16f 100644 --- a/content/a_tour_of_tfw.tex +++ b/content/a_tour_of_tfw.tex @@ -10,23 +10,26 @@ A \emph{very important} point to keep in mind is that most of this exercise-specific logic will be implemented in \textbf{FSM callbacks} and custom \textbf{event handlers}. The whole framework is built in a way to faciliate this process and developers -who understand this mindset are almost always guaranteed to create great -content using TFW. +who understand this mindset almost always find it a breeze to create great +content using TFW\@. The purpose of this chapter is to further detail the built-in components provided by the framework. -As previously mentioned, these components are implemented as event handlers -running in the \code{solvable} Docker container and frontend +As previously mentioned before, these components are implemented as event handlers +running in the \code{solvable} Docker container which communicate with frontend components written in Angular. -For instance the built-in code editor requires a frontend component and an event -handler to function properly, while the frontend component responsible for -drawing out and managing other components implements no -event handler, so it only exists on the frontend. +Some components might only feature one of these however, +for instance the built-in code editor requires a frontend component and an event +handler to function properly, while the component responsible for +drawing out and managing frontend components implements no +event handler, so it purely exists in Angular. +An other example of a purely frontend component would be the messages component, +which is used to display messages to the user. In the Tutorial Framework most of the built-ins define APIs, which are TFW messages that can be used to interact with them. For example, to inject a command into the terminal one would use a message like this: -\begin{lstlisting}[captionpos=b,caption={An API Message Capable of Writing in the Terminal}] +\begin{lstlisting}[captionpos=b,caption={An API message capable of writing to the terminal}] { "key": "shell", "data": @@ -36,15 +39,15 @@ For example, to inject a command into the terminal one would use a message like } } \end{lstlisting} -Notice the \code{\n} at the end of the command. -By including a newline character, we are also capable of executing commands in the -user's terminal. +Notice the ``\code{\n}'' at the end of the command. +By including a newline character, we are also capable of executing commands directly +in the user's terminal (and the user can see this). Were this newline omitted, the command would only be written to the terminal -(but not automatically executed) for users to inspect and potentially execute themselves. +--- but not automatically executed --- for users to inspect and potentially execute themselves. Some components emit or broadcast messages on specific events, for instance the \code{FSMManagingEventHandler} broadcasts the following message on state transitions: -\begin{lstlisting}[captionpos=b,caption={An FSM Update message}] +\begin{lstlisting}[captionpos=b,caption={An FSM update message}] { "key": "fsm_update", "data" : @@ -65,38 +68,38 @@ Some components emit or broadcast messages on specific events, for instance the } \end{lstlisting} As you can see this message contains loads of useful information regarding what is -exactly happening in the tutorial at a given point and can be used by client code +exactly happening in the tutorial at a given point in time and can be used by client code to make informed decisions based on this knowledge. -It is not the purpose of this text to provide a complete API documentation, so in the +It is not the purpose of this text to provide a complete API documentation however, so in the following I am only going to explain possibilities provided by given components rather than showcasing actual, real-life API messages. \section{Messages Component} The framework must allow content creators to communicate their \emph{message} to the user. -In other words some way must be provided to ``talk'' to users. -This is the responsibility of the \emph{messages} frontend component, which -provides a chatbox-like element on the web application the framework can send -messages to. +In other words, some way must be provided to ``talk'' to users. +This is the responsibility of the \emph{messages} component, which +provides a chatbox-like element on the frontend. The simplest form of communication it accomodates it the insertion of text into the chatbox through API messages. -Every message has an optional \emph{originator}, which serves signal to the user -on the purpose of the message. -These messages are also timestamped. +Every message has an optional \emph{originator}, which serves to remind the user +of the purpose of the given message. +These messages are also timestamped so that it is easier to navigate through them +and look back older messages from the user. -\pic[width=.5\textwidth]{figures/chatbot.png}{The avataobot Typing in the Messages Component} +\pic[width=.5\textwidth]{figures/chatbot.png}{The avataobot typing in the messages component} A particularly interesting feature of the messages component is that TFW client code -can queue a bunch of messages for the component to send one by one, separated by +can queue a bunch of messages for the component to display one by one, separated by appropriate pauses in time so that the user is capable of conveniently reading through all off them. Similarly to a real chat application, some -``jumping dots'' indicate if the bot is still ``typing''. +``jumping dots'' indicate if the bot is still ``typing'' something. The timing of pauses and messages is based on the \emph{WPM} --- or Words Per Minute --- -set by developers according to their specific use cases. +set by developers according to their specific requirements. This creates an experience similar to chatting with someone in real time, as the time -it takes for each message to be displayed is depending on the lenght of the previous message. +it takes for each message to be displayed depends on the lenght of the previous message. This illusion is made possible through appropriate \code{setTimeout()} calls in TypeScript and some elementary math to calculate the proper delays in milliseconds based on message lengths: @@ -106,14 +109,16 @@ message lengths: \[ timeoutSeconds = lastMessageLength / charactersPerSeconds \] \[ timeoutMilliseconds = timeoutSeconds * 1000 \] +The value 5 comes from the fact that on average english words are 5 +characters long according to some studies. + \section{IDE Component}\label{idecomponent} This is the code editor integrated into the frontend of the framework. It allows users to select, display and edit files. -Developers can configure which directory on the file system of the \code{solvable} -container should the editor list files from. +Developers can configure which directory of the file system should the editor list files from. The editor features the ``Deploy'' button referred to earlier in this paper, which is -capable of restarting processes that might execute a file visible in the editor. +capable of restarting processes that might be running code from a file visible in the editor. To implement this IDE% \footnote{Integrated development environment} @@ -124,7 +129,7 @@ This involves commnication with an event handler dedicated to this feature, which is capable of reading and writing files to disk, while sending and receiving editor content from the frontend component. The interaction of this event handler and the Monaco editor provides a seamless -editing expirience, featuring autosave at configurable intervals, code completion, +editing experience, featuring autosave at configurable intervals, code completion, automatic code coloring for several programming languages and more. Perhaps the most ``magical'' feature of this editor is that if any process @@ -141,7 +146,7 @@ appears. If I select it I can confirm that I have successfully created an empty file. After this let's run a \code{while} cycle in the command line which peroadically appends some text to \code{file.txt}: -\begin{lstlisting}[captionpos=b,caption={Bash While Cycle Writing to a File Periodically}, +\begin{lstlisting}[captionpos=b,caption={Bash while cycle writing to a file periodically}, language=bash] while true do @@ -150,7 +155,7 @@ do done \end{lstlisting} The results speak for themselves: -\pic{figures/ide_demo.png}{The Editor Demo Involving Automatic File Refreshing} +\pic{figures/ide_demo.png}{The editor demo involving automatic file refreshing} As you can see, the file contents are automatially updated as the bash script appends to the file. This feature is implemented by using the inotify API% @@ -158,13 +163,13 @@ This feature is implemented by using the inotify API% {http://man7.org/linux/man-pages/man7/inotify.7.html}} provided by the Linux kernel to monitor file system events involving the directory listed by the editor. The event handler of the editor hooks callbacks to said events which notify the -Tutorial Framework to reload the list of files in the directory and the contents of -the selected files. +Tutorial Framework to reload the list of files in the directory as well as the contents of +the selected file. The code making this feature possible is reused several times in the framework for interesting purposes such as monitoring the logs of processes. The editor also allows content creators to completely control it using API messages. -This involves selecting, reading and writing files as well as changing the +This involves the selecting, reading and writing of files as well as changing the selected directory. These features allow content creators to ``guide'' a user through code bases for example, where in each step of a tutorial a file is opened and explained @@ -253,6 +258,8 @@ It's capabilities include starting, stopping and restarting processes. It is also capable of emitting the standard out or standard error logs of processes (by broadcasting TFW messages). This component can be iteracted with using TFW API messages. +The ``Deploy'' button on the code editor uses this component to restart +processes. The Tutorial Framework uses supervisor% \footnote{\href{http://supervisord.org}{http://supervisord.org}} diff --git a/content/abstract.tex b/content/abstract.tex index da75e21..eceaafb 100644 --- a/content/abstract.tex +++ b/content/abstract.tex @@ -6,10 +6,11 @@ interactive tutorials running inside Docker containers, semi-automatically showc IT topics in real time. The user is guided through exercises using real environments with real software, all with the possibility of interaction at any time. This technology can supplement/improve the way e-learning is usually done today ---- which is mostly articles and learning videos --- and help users get hands-on experience -on their way of acquiring knowledge. +--- which is mostly through articles and learning videos --- and help users get hands-on +experience on their way of acquiring knowledge. Currently more than 60 learning exercises based on this framework are available on the e-learning platform called Avatao, with more being released every week. This text is going to justify the need for such technology, explain the ideas leading -to it, discuss architecture, use-cases and more. +to it, discuss use-cases, architecture, the features of the framework and how +developers can use it to create learning exercises. diff --git a/content/architecture.tex b/content/architecture.tex index 75ee8d9..1fba80e 100644 --- a/content/architecture.tex +++ b/content/architecture.tex @@ -6,29 +6,35 @@ two Docker images: \begin{itemize} \item the \code{solvable} image is responsible for running the framework and the client code depending on it - \item the \code{controller} image is responsible for solution checking (to figure out - whether the user completed the tutorial or not) + \item the \code{controller} image is responsible for solution checking: to figure out + whether the user has successfully completed the tutorial or not \end{itemize} -During most of this capter I am going to be discussing the \code{solvable} Docker image, +During most of this chapter I am going to be discussing the \code{solvable} Docker image, with the exception of Section~\ref{solutioncheck}, where I will dive into how the \code{controller} image is implemented. The most important feature of the framework is it's messaging system. Basically what we need is a system where processes running inside a Docker container would be allowed to communicate with eachother. -This is easy with lots of possible solutions (named pipes, sockets or shared memory to name a few). -The hard part is that frontend components running inside a web browser --- which could be -potentially on the other side of the planet --- would also need to partake in said communication. +This task is very easy to solve, with lots of possible solutions +(named pipes, sockets or shared memory to name a few). +The hard part is that frontend components running inside a web browser --- which could +potentially be located on the other side of the planet% +\footnote{Potentially introducing all sorts of issues regarding latency} --- would +also need to partake in said communication. So what we need to create is something of a hybrid between an IPC system and something that can communicate with JavaScript running in a browser connected to it. The solution the framework uses is a proxy server, which connects to frontend components on one side and handles interprocess communication on the other side. This way the server is capable of proxying messages between the two sides, enabling communitaion between them. -Notice that this way what we have is essentially an IPC system in which a web application +Notice that this way what we have is essentially an IPC% +\footnote{Interprocess communication} system in which a web application can ``act like'' it was running on the backend in a sense: it is easily able to -communicate with processes on the backend, while in reality the web application -runs in the browser of the user, on a completely different machine. +communicate with processes running there, while in reality the web application +is running in the browser of the user, on a completely different machine and it uses +some means of communication that is routed through the public internet to achieve this +effect. \begin{note} The core idea and initial implementation of this server comes from Bálint Bokros, @@ -38,54 +44,65 @@ message authentication, restoration of frontend state, a complete overhaul of th state tracking system and the possibility for solution checking among other things). If you are explicitly interested in the differences between the original POC implementation (which is out of scope for this thesis due to lenght constraints) and the current -framework please consult Bálint's excellent paper and Bachelor's Thesis on it\cite{BokaThesis}. +framework please consult Bálint's excellent paper and Bachelor's thesis on it\cite{BokaThesis}. \end{note} -Now let us take a closer look: +Now let us take a closer look at the technology used to implement such a server and +some of the design decisions behind this: \subsection{Connecting to the Frontend} -The old way of creating dynamic webpages was AJAX polling, which is basically sending +The old way of creating dynamic webpages was AJAX% +\footnote{AJAX stands for Asynchronous JavaScript And XML, despite usually not having +anything to do with XML in practice} +polling, which is basically sending HTTP requests to a server at regular intervals from JavaScript to update the contents of your website (and as such requiring to go over the whole TCP handshake and the HTTP request-response on each update). This has been superseded by WebSockets around 2011, which provide a full-duplex communication channel over TCP between your browser and the server. -This is done by initiation a protocol handshake using the \code{Connection: Upgrade} +This is done by initiating a protocol handshake using the \code{Connection: Upgrade} HTTP header, which establishes a premanent socket connection between the browser and the server. This allows for communication with lower overhead and latency facilitating efficient -real-time applications. +real-time applications, which were not always possible to create before due to +the overheads% +\footnote{In some applications this overhead could be bigger than the actual data sent, +such as singaling} introduced by AJAX polling. The Tutorial Framework uses WebSockets to connect to it's web frontend. -The framework proxy server is capable to connecting to an arbirary number of websockets, -which allows opening different components in separate browser windows and tabs, or even -in different browsers at once (such as opening a terminal in Chrome and an IDE in Firefox). +The TFW proxy server is capable to connecting to an arbirary number of WebSockets, +which allows the framework to simultaneously connect to components running in +separate browser windows and tabs, or even +in different browsers altogether (such as opening a terminal in Chrome and an IDE in Firefox). \subsection{Interprocess Communication} To handle communication with processes running inside the container TFW utilizes -the asynchronous distributed messaging library ZeroMQ% +the asynchronous distributed messaging called library ZeroMQ% \footnote{\href{http://zeromq.org}{http://zeromq.org}} or ZMQ as short. The rationale behind this is that unlike other messaging systems such as RabbitMQ% \footnote{\href{https://www.rabbitmq.com}{https://www.rabbitmq.com}} or Redis% \footnote{\href{https://redis.io}{https://redis.io}}, -ZMQ does not require a daemon (message broker process) and as such -has a much lower memory footprint while still providing various messaging +ZMQ does not require a message broker daemon to be running in the background at all times +and as such has a much lower memory footprint while still providing various messaging patterns and bindings for almost any widely used programming language. An other --- yet untilized --- capability of this solution is that since ZMQ is capable of using simple TCP sockets, we could even communicate with processes running on remote -hosts using the framework. +hosts using the current architecture of the framework. There are various lower level and higher level alternatives for IPC other than -ZMQ which were also considered during the desing process of the framework at some point. +ZMQ which were also considered during the design process of the framework at some point. A few examples of top contenders and reasons for not using them in the end: \begin{itemize} \item The handling of raw TCP sockets would involve lot's of boilerplate logic that already have quality implementations in messaging libraries: i.e.\ making sure that - all bytes are sent or received both require checking the return values of the - libc \code{send()} and \code{recv()} system calls, while ZMQ takes care of this + all bytes are sent or received both require constantly checking the return values of the + libc \code{send()} and \code{recv()} system calls% +\footnote{Developers forget this very often, resulting in almost untraceable bugs +that seem to occour randomly}, + while ZMQ takes care of this extra logic involved and even provides higher level messaging patterns such as subscribe-publish, which would need to be implemented on top of raw sockets again. \item Using something like gRPC\footnote{\href{https://grpc.io}{https://grpc.io}} @@ -95,11 +112,15 @@ A few examples of top contenders and reasons for not using them in the end: which would make the framework less lightweight and flexible: socket communication with or without ZMQ does not force you to write synchronous or asynchronous code, whereas common HTTP servers - are either async or pre-fork in nature, which extort certain design choices on code + are either async% +\footnote{Async servers use the \code{select} or \code{epoll} system calls among others +to avoid blocking on IO} or pre-fork% +\footnote{Pre-fork servers spawn multiple processes and threads to handle requests +simultaneously} in nature, which extorts certain design choices on code built on them. \end{itemize} -\section{High Level Overview} +\section{Architectural Overview} Now being familiar with the technological basis of the framework we can now discuss it in more detail. @@ -116,11 +137,11 @@ Architecturally TFW consists of four main components: that is implemented as an event handler called \code{FSMManagingEventHandler} \end{itemize} Note that it is important to keep in mind that as I've mentioned previously, -the TFW Server and event handlers reside in the \code{solvable} Docker container. -They all run in separate processes and only communicate using ZeroMQ sockets. +the TFW server and event handlers reside in the \code{solvable} Docker container. +They all run in separate processes and only communicate with eachother using ZeroMQ sockets. In the following sections I am going to explain each of the main components in -greater detail, as well as how they interact with each other, +greater detail, as well as how they interact with eachother, their respective responsibilities, some of the design choices behind them and more. @@ -149,7 +170,10 @@ Let's inspect further what a valid TFW message might look like: All valid messages \emph{must} include a \code{key} field as this is used by the framework for addressing: event handlers and frontend components subscribe to one -or more \code{key}s and only receive messages with \code{key}s they have +or more of these \code{key}s and only receive% +\footnote{In reality they do receive them, just like how network interfaces receive all +ethernet frames, they just choose ignore the ones not concerning them} +messages with \code{key}s that they have subscribed to. It is possible to send a message with an empty key, however these messages will not be forwarded by the TFW server (but will reach it, so in case the target of a message @@ -165,12 +189,12 @@ at a later point in this paper. The default behaviour of the TFW server is that it forwards all messages from coming from the frontend to the event handlers and vice versa. So messages coming from the WebSockets of the frontend are forwarded to event handlers -via ZMQ and messages received through ZMQ from event handlers are forwarded to +via ZMQ and messages received on ZMQ from event handlers are forwarded to the frontend via WebSockets. The TFW server is also capable of ``reflecting'' messages back to the side they were -received on (to faciliate event handler to event handler for instance), or broadcast -messages to all components. +received from (to faciliate event handler to event handler communication for instance), +or broadcast messages to all components. This is possible by embedding a whole TFW message in the \code{data} field of an outer wrapper message with a special \code{key} that signals to the TFW server that this message requires special attention. @@ -181,7 +205,7 @@ An example of this would be: "data": { ... - The message you want to broadcast or mirror + The whole message you want to broadcast or mirror (with it's own "key" and "data" fields) ... } @@ -198,7 +222,7 @@ As discussed earlier, using ZeroMQ allows developers to implement event handlers in a wide variety of programming languages. This is very important for the framework, as content creators often create challenges that are very specific to a language, for example the showcasing -of a security vulnerability in an older version of Java. +of a security vulnerability in an older version of the Java standard library. These event handlers are used to write most of the code developers wish to integrate with the framework. @@ -210,11 +234,20 @@ based on this knowledge. An event handler such as this could be invoked by sending a message to it at any time when the running of the tests would be required. +An interesting thing to mention is that there \emph{could} be event handlers which +broadcast messages with a \code{key} that they are also subscribed to. +This can distrupt their behaviour in weird ways if they are not prepared to +deal with their own ``echoes''. +The framework offers a solution for this by providing a special +event handler type, which is capable of filtering out it's own broadcasts. +The way they do this is by caching the checksum of every message they broadcast, +and ignore the first message that comes back with the same checksum. + \subsection{Frontend} This is a web application that runs in the browser of the user and uses -multiple WebSocket connections to connect to the TFW server. -Due to rapidly increasing complexity the original implementation (written in +multiple WebSockets to connect to the TFW server. +Due to rapidly increasing complexity, the original implementation (written in plain JavaScript with jQuery% \footnote{\href{https://jquery.com}{https://jquery.com}} and Bootstrap% \footnote{\href{https://getbootstrap.com}{https://getbootstrap.com}}) was becoming @@ -234,7 +267,7 @@ Other reasons included that the frontend of the Avatao platform is also written in Angular (bonus points for experienced team members in the company). An other good thing going for it is that Angular forces you to use TypeScript% \footnote{\href{https://www.typescriptlang.org}{https://www.typescriptlang.org}} -which tries to remedy the issues\cite{JavaScript} +which tries to remedy some of the issues\cite{JavaScript} with JavaScript by being a language that transpiles to JavaScript while strongly encouraging things like static typing or Object Oriented Principles. @@ -244,11 +277,11 @@ strongly encouraging things like static typing or Object Oriented Principles. A good chunk of the framework codebase is a bunch of pre-made, built-in components that implement commonly required functionality for developers to use. -These components usually involve an event handler and an Angular component which -communicates with it to realize some functionality. +These components usually involve an event handler and an Angular component +communicating with eachother to realize some sort of functionality. An example would be the built-in code editor of the framework -(visible on the left side of Figure~\ref{figures/tfw_frontend.png}). -This code editor is essentially a Monaco editor% +(visible on the right side of Figure~\ref{figures/tfw_frontend.png}). +This code editor essentially is a Monaco editor% \footnote{\href{https://microsoft.github.io/monaco-editor/} {https://microsoft.github.io/monaco-editor/}} instance integrated into Angular and upgraded with the capability to @@ -256,21 +289,23 @@ exchanges messages with an event handler to save, read and edit files that reside in the writeable file system of the \code{solvable} Docker container. -All of the built-ins come with full API documentation explaining what they do -on receiving specific messages, and what messages they emit on different events. +All of the built-ins come with a full API documentation explaining what they do +on receiving specific messages, and what kind of messages they may emit on different events. This greatly expands the capabilities of the framework, since it allows developers to do things including, but not limited to: \begin{itemize} \item making the code editor automatically appear in sections - of the tutorial where the user needs to use it + of the tutorial where the user needs to use it, then disappear + when it is no longer needed to conserve space \item inject commands into the user's terminal - \item hook into messages emitted from components to detect events, such as + \item hook callbacks to run code on messages emitted from components to + detect events, such as to detect if the user has clicked a button or executed a command in the terminal - \item monitor the logs (stdout or stderr) of a given process + \item monitor the logs (stdout or stderr) of a given process in real time \end{itemize} Every pre-made component is designed with the mindset to allow flexible -and creative usage by developers, with the possibility of future extensions. +and creative usage by developers, with the added possibility of future extensions. Often when developers require certain new features, they open an issue on the git repository of the framework for me to review and possibly implement later. @@ -279,18 +314,22 @@ One example would be when a developer wanted to automatically advance the tutori when the user has entered a specific string into a file. This one didn't even require a new feature: I recommended him to implement an event handler listening to the messages of the built-in file editor, filter the messages -which contain file content that is going to be written to disk, and simply +which contain file content that is being sent to be written to disk, and simply search these messages for the given string. The exact capabilities of these built-in components will be explained in greater -detail in a later chapter. +detail in Chapter~\ref{atouroftfw}. +Developers who are well-aware of these capabilites are able to use the framework in extremely +creative ways allowing for very interesting functionality, such as the above example. +The components of TFW can often be combined to work together in unexpected, yet useful +ways, similarly how command-line utilities on UNIX-like systems do. \subsection{TFW Finite State Machine} An important requirement we have specified during~\ref{requirements} was that the framework must be capable of tracking user progress. TFW allows developers to define a \emph{finite state machine} -which is capable of describing the desired ``story'' of a tutorial. +which is capable of describing the desired ``story'' of a learning exercise. The states of the machine could be certain points in time during the completion of the tutorial envisioned and transitions could be events that influence the state, such as the editing of files, execution of commands and so on. @@ -301,23 +340,25 @@ Take the fixing of a SQL Injection% vulnerability as an example. Let's assume, that the source code is vulnerable to a SQL injection attack because it tries to compose a query with string concatenation instead of -using a parameterized query provided by the database library. +using a prepared statement provided by the database library. A challenge developer could implement an FSM in the framework that looks like this: -\pic[width=.6\textwidth]{figures/tfw_fsm.png}{An Example for a Finite State Machine in TFW} +\pic[width=.6\textwidth]{figures/tfw_fsm.png}{An example for a finite state machine in TFW} In case the source file has been edited, the unit test cases designed to detect whether the code is vulnerable or not are invoked. Depending on the results three cases are possible: \begin{description} - \item[All test cases have succeeded:] If all the tests succeeded then the user has managed + \item[All test cases have succeeded:] If all the tests cases have ran successfully, + then the user has managed to fix the code properly and we can display a congratulating message accordingly. - \item[All test cases have failed:] In this case the solution is incorrect - and we can offer some hints. + \item[All test cases have failed:] In this case the submitted solution is incorrect + and we should offer some hints, so that the user can try again more effectively, + optionally displaying more and more hints with each successive failure. \item[Some test cases have succeeded:] It is possible that the based on the test cases - that have succeeded and failed we can determine that the user tried to blacklist - certain SQL keywords. This is a common, but incorrect solution of fixing a SQL + that have succeeded and failed we can determine that the user has tried to blacklist + certain SQL keywords. This is a common, but incorrect ``solution'' of fixing a SQL injection vulnerability. Now we can explain to users why their solution is wrong, and give them helpful tips. \end{description} @@ -330,10 +371,11 @@ This is a very engaging feature that offers an immersive learning experience for users, which many solutions for distance education lack so often. Developers can use a YAML file or write Python code to implement finite -state machines. -In state machine implementations it is possbile to subscribe callbacks to be +state machines in TFW\@. This is going to be further detailed in +Chapter~\ref{usingtfw}. +In the implementation of state machines it is also possbile to subscribe callbacks to be invoked on certain events regarding the machine, such as before and after -state transitions, or onentering and exiting a state. +state transitions, or on entering and exiting a state. It is \emph{very} important to be aware of these callbacks, as much of the actual tutorial logic is often going to be implemented in these. @@ -351,22 +393,28 @@ The \code{trigger} field of a message can be used to step the framework FSM if all preconditions are met. The way this works is if the TFW server encounters a message with a \code{trigger} defined, it notifies the event handler managing -the state machine. +the state machine so it can attempt activating said \code{trigger}. -Since messages can come from unauthenticated sources, it is possible to +Since messages in the system can come from unauthenticated sources (such as the frontend), +it is possible to enforce the authentication of privileged messages, such as messages containing a \code{trigger}. -The framework allows trusted code to access a cryptographic key on the file system, which +The framework allows trusted code to access a cryptographic key stored on the file system +with proper permissions, which can be used to digitally sign messages (this is what the \code{signature} message -field is designed for). -In this case the TFW server will only forward privileged messages that -have a valid signature. +field is designed for) using HMAC% +\footnote{Hash-based message authentication code}. +In this case the TFW server will only forward the privileged messages that +have a valid signature, and the evend handler managing the state machine +will also validate the signature of messages it receives +(and sign the updates it broadcasts as well, so that other components can verify that +they come from a trusted source). \subsection{Solution checking}\label{solutioncheck} Traditionally most challenges on the Avatao platform implement a Docker image called \code{controller}, which is responsible for detecting the successful solution of a challenge. -When using the Tutorial Framework a pre-implemented \code{controller} +When using the Tutorial Framework, a pre-implemented \code{controller} image is available, which listens to messages emitted by the framework FSM, and detects if the final state defined by developers is reached. This means that if content creators implement a proper FSM, the solution checking @@ -378,4 +426,5 @@ traditional hacking challenges, such as exercises developed for CTF% \footnote{A ``capture the flag'' game is a competition designed for professionals --- or just people interested in the field --- to sharpen their skills in IT security. Avatao often organises similar events.} -events. +events, as the controller image is also capable of verifying the authenticity of +FSM update messages via inspecting their signatures. diff --git a/content/introduction.tex b/content/introduction.tex index c3cea40..26b155a 100644 --- a/content/introduction.tex +++ b/content/introduction.tex @@ -3,7 +3,7 @@ \section{Project justification} As the world is being completely engulfed by software, the need for accessible, but -high quality learning materials on software engineering and especially secure software +high quality learning materials covering software engineering and especially secure software engineering is on the rise. While we are enjoying the comfort that information technology provides us, we often forget about the risks involved in relying so much on software in our everyday lives. @@ -39,14 +39,14 @@ knowledge is something that comes naturally, rather than something we have to st I believe that this is something that \emph{can} and \emph{should} be applied to everything we do as a society. The only thing we can hope and work for is to become better and better as time -and generations pass. +and generations pass by. We \emph{must} do better, and education is the way forward. The short term goal of this project --- and the goal of this thesis --- is to provide a new angle in the education of software engineering, especially secure software engineering based on the aspirations above, with the long term goal of bringing something new to the table in the matter of IT education as a whole -(not just developers, but users as well). +(not just for developers, but for users as well). \section{A Short Introduction to Avatao} @@ -96,11 +96,12 @@ things like exercises involving the use of Docker or Windows based challenges. \section{Emergence}\label{intro:emergence} While working as a content creator I have stumbled into the idea of automating the completion -of challenges for QA\footnote{Quality Assurrance} and demo purposes% -\footnote{I used to record short videos or GIFs to showcase my content to management}. -In a certain scenario I was required to integrate a web based terminal emulator in a +of challenges for QA\footnote{Quality Assurrance} and demo purposes. +I used to record short videos or GIFs to showcase my content to management. +In a certain scenario I was required to integrate a web based terminal emulator into a frontend application to improve user experience by making it possible to use a shell right on the website rather than having to connect through SSH\@. + After I got this working I was looking into writing hacky bash scripts to automate the steps required to complete the challenge in order to make it easier for me to record the solution, as I have often found myself recording over and over again for a demo without any mistakes. @@ -109,6 +110,7 @@ to a hidden gem of a project on GitHub called \code{demo-magic}% \footnote{\href{https://github.com/paxtonhare/demo-magic}{https://github.com/paxtonhare/demo-magic}}, which is esentially a bash script that simulates someone typing into a terminal and executing commands. + I have created a fork% \footnote{ \href{https://git.strongds.hu/mrtoth/demo.sh/src/master/demo.sh} @@ -131,7 +133,7 @@ commands executed during the solution process. I was quite pleased with myself, no longer having to do the busywork of recording videos, but what I did not know was that I have accidentally did something far more than a hacky bash script solving challenges, as this little script -would help formulate the idea of the project \emph{Tutorial Framework} or just \emph{TFW}. +would help formulate the idea of the \emph{Tutorial Framework} or just \emph{TFW}. \section{Vision of the Tutorial Framework} @@ -177,14 +179,20 @@ Meanwhile a console could show the output of the webserver. For example if the source code the user tried to deploy was invalid, the framework should report the exact exception raised while running the application. -\pic{figures/webapp_and_editor.png}{The Code Editor and Web Application Example In TFW} +\pic{figures/webapp_and_editor.png}{The code editor and web application example in TFW} Even if we did all this, we would still need a way to integrate this whole thing into a web based frontend with a file editor, terminal, chat window and stuff like that. Turns out that today all this can be done by writing a few hundred lines of Python code which uses the Tutorial Framework. -\pic{figures/webapp_and_editor_err.png}{Invalid Code and Deployment Failure with Process Output} +\pic{figures/webapp_and_editor_err.png}{Invalid code and deployment failure with process output} + +Note that it is possible to try out the current version of the Tutorial Framewok +using a guest account on the Avatao platform on this +\href{https://platform.avatao.com/paths/d0ccef1f-0389-45bf-9d44-e85b86d66c49/challenges/a7e08c0a-199f-4f8d-aa7e-51b6e9bfcb15}{url}% +\footnote{\href{https://platform.avatao.com/paths/d0ccef1f-0389-45bf-9d44-e85b86d66c49/challenges/a7e08c0a-199f-4f8d-aa7e-51b6e9bfcb15} +{https://platform.avatao.com/paths/d0ccef1f-0389-45bf-9d44-e85b86d66c49/challenges/a7e08c0a-199f-4f8d-aa7e-51b6e9bfcb15}}. \subsection{Project Requirements}\label{requirements} @@ -199,8 +207,8 @@ To achieve our goals we would need: \item a way to keep track of user progress \item a way to to handle various events (i.e.\ we can react when the user has edited a file, or has executed a command in the terminal) - \item a highly flexible messaging system, in which processes and - frontend components (running in a web browser) could communicate with eachother + \item a highly flexible messaging system, in which processes running on the backend and + frontend components running in a web browser could communicate with eachother \item a web based frontend with lots of built-in options (terminal, file editor, chat window, etc.) that use said messaging system \item stable APIs that can be exposed to content creators to work with (so that @@ -236,14 +244,14 @@ completely rewritten due to an increased focus on code quality, extensibility and API stability required by new features. It is interesting to note, that when I've mentioned that the project requirements -were kept general on purpose (\ref{requirements}) I had good reason to do so. -When taking a look at the requirements of Bálint's Thesis, much of that +were kept general on purpose in~\ref{requirements}, I had good reason to do so. +When taking a look at the requirements of Bálint's thesis, much of that is completely obsolete by now. But since the project has followed Agile Methodology% \footnote{Manifesto for Agile Software Development: \href{https://agilemanifesto.org}{https://agilemanifesto.org}} from the start, we were able to adapt to these changes without losing -the progess he made in said Thesis. Quoting from the Agile Manifesto: +the progess he made in said thesis. Quoting from the Agile Manifesto: ``Responding to change over following a plan''. This is a really important takeaway. diff --git a/content/summary.tex b/content/summary.tex index d0e57ba..b403f39 100644 --- a/content/summary.tex +++ b/content/summary.tex @@ -67,17 +67,31 @@ us to do so. \section{Things That I Have Learned} -I've spent a long time working on and maintaining this project. +Despite being an enthusiast of \LaTeX{} for a few years now, I still managed to learn a great +deal about it while working on this text. +This might seem like something unrelated, but most documentation issues with software often +come from the fact that developers usually dislike writing documentation. +Since working with \LaTeX{} I \emph{love} writing larger bodies of text such as this, +as I just simply enjoy admiring quality typography which WYSIWYG% +\footnote{What You See Is What You Get} editors just seem unable to produce. + +I've spent a long time working on and maintaining the Tutorial Framework. While the list of technical things I've learned is long and exciting, I also feel like I've learned a lot about supporting other developers, project management and communication. -A thing that I will always remember as a software engineer and I've learned during this period +The most important thing, that I will always remember as a software engineer +and is something that I've learned during this period is to never, ever lower my expectations regarding code quality. -No matter what anybody tells you about ``but we have to finish until'' and stuff like that, -in the long run it is always like shooting yourself in the foot. -We as professionals must always thrive for excellence, and must always express our +No matter what anybody tells you about things like ``but we have to make haste and finish in time'', +in the long run, making compromises in code quality is always like shooting yourself in the leg. +We as professionals must always \emph{thrive} for excellence, and must always express our deepest respect towards our craft. -The only way we can do this is by creating quality software as craftsmen. +The only way we can do this is by creating quality software while being a responsible +\emph{craftsman}. +It is a thing of great importance, which cannot be stressed enough, that in the software +field \emph{craftsmanship}% +\footnote{\href{http://manifesto.softwarecraftsmanship.org} +{http://manifesto.softwarecraftsmanship.org}} is what matters most. Many developers fail to understand that no matter how insignificant the code you write today may seem, software is art, and art is something worth pursuing just for the sake of doing art itself. diff --git a/content/using_the_framework.tex b/content/using_the_framework.tex index 057812d..0a8c378 100644 --- a/content/using_the_framework.tex +++ b/content/using_the_framework.tex @@ -1,4 +1,4 @@ -\chapter{Using the Framework} +\chapter{Using the Framework}\label{usingtfw} In this section I am going to dive into further detail on how client code is supposed to use the framework, some of the design decisions behind this and how everything is diff --git a/figures/tfw_fsm.png b/figures/tfw_fsm.png index 09ca27be85ffab6614ce7eeff8720a16fe472d2e..2d5ebe8b6ddaa98e4b4bd4d10d1b044d6ba0ce35 100644 GIT binary patch delta 70673 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 ho~CbtTLO50y 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 NmYR-gxw3We{{bb`2p9kW delta 70539 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