\documentclass[aspectratio=169,t,xcolor=table]{beamer} % t is global top alignment
\usepackage{polyglossia}
\usepackage{fontspec}
\setdefaultlanguage{greek}
% \newfontfamily\greekfont{Noto Sans}
% \newfontfamily\greekfontsf{Noto Sans}
% \newfontfamily\greekfonttt{Noto Sans}
\newfontfamily\greekfont{Open Sans}
\newfontfamily\greekfontsf{Open Sans}
\newfontfamily\greekfonttt{Open Sans}
\usepackage{datetime}
\newdateformat{mydate}{\monthname[\THEMONTH] \THEYEAR}
\def\today{\ifcase\month\or
  Ιανουάριος\or Φεβρουάριος\or Μάρτιος\or Απρίλιος \or Μάιος\or Ιούνιος\or
  Ιούλιος\or Αύγουστος\or Σεπτέμβριος\or Οκτώβριος \or Νοέμβριος \or Δεκέμβριος \fi
  \space \number\year}

\usepackage{booktabs}
\usepackage{subcaption}
% \usepackage{pdflscape}

\usepackage{ragged2e}\justifying % for justify text (make it more square)
% \setlength{\parskip}{5pt} % add space between paragraphs

\usetheme{Ufg}

%-------------------------------------------------------------Theorems
\newtheorem{conj}{Conjetura}
\newtheorem{defi}{Definição}
\newtheorem{teo}{Teorema}
\newtheorem{lema}{Lema}
\newtheorem{prop}{Proposição}
\newtheorem{cor}{Corolário}
\newtheorem{ex}{Ορισμός}
\newtheorem{exer}{Exercício}

\setbeamertemplate{theorems}[numbered]
\setbeamertemplate{caption}[numbered]
\setbeamertemplate{frametitle continuation}{\frametitle{Επισκόπηση}} % To not have Επισκόπηση I II etc
% Unfortunately is sets Επισκόπηση as continuation title for all continuing frames
%-------------------------------------------------------------%

%----------------------- Primary Definitions -----------------%
% This command set the default Color, is also possible to choose a custom color
\setPrimaryColor{UFGBlue}

% First one is logo in title slide only located at the bottom left (we recommend use a horizontal image)
% Second one is the logo used in the title slide at the bottom right
% and all remaining slides (we recommend use a square image) in a smaller form factor
\setLogos{lib/logos/logo_aegean.png}{lib/logos/secdep_logo.png}
%-------------------------------------------------------------%

%-------------------------------------------------------------Title Slide Information
\author{Κωνσταντίνος Χωλίδης}
% \\ are for the titles to be centered and not have them interfere with the slide background shapes
\title[Ανάπτυξη του SecDep]{Σκλήρυνση Μηχανής Δοχείων και\\Λειτουργικού Συστήματος σε\\Περιβάλλοντα Linux}
\institute[ICSD]{Τμήμα Μηχανικών Πληροφοριακών και\\Επικοινωνιακών Συστημάτων\\
\smallskip
Επίβλεψη: \textbf{Δρ. Κρητικός Κυριάκος}\\
\medskip
Μέλη εξεταστικής επιτροπής:\\
\medskip
\begin{tabular}{c@{\hspace{0.3cm}}c}
\textbf{Δρ. Σκούτας Δημήτριος} & \textbf{Δρ. Σκιάνης Χαράλαμπος}\\
% Επίκουρος Καθηγητής Τμήματος ΜΠΕΣ & Καθηγητής Τμήματος ΜΠΕΣ \\
\end{tabular}
}
\subject{Διπλωματική Εργασία - Παρουσίαση}
\date{\mydate\today}
\keywords{Cloud, Security, Virtualization, Virtual Machines, Containers, Container Engine, Micro-services, Automation, Hardening, Docker, Linux}
%-------------------------------------------------------------%

\begin{document}

%-------------------------------------------------------------The next statement creates the title page.
% \frame[noframenumbering]{\titlepage}
\begin{frame}[plain,noframenumbering]
    % \vspace{15pt} % good enough to not interfere with the background
    % \vspace{1.5cm} % same height as the default
        % \scriptsize
        % \vspace{-1.2cm}
    \begin{columns} % by default it is not exactly in the middle
        \column{\textwidth}
            \titlepage
    \end{columns}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\setLayout{vertical} % This command define the layout. 'vertical' can be replace with 'horizontal', 'blank, 'mainpoint', 'titlepage'
\begin{frame}[allowframebreaks] % allowframebreaks is used to split the content in multiple slides
    \frametitle{Επισκόπηση}
    \tableofcontents[hideallsubsections] % We still add them for pdf toc though
    % \tableofcontents[pausesections,sections={-1}] % to show one section at a time (needs more than one definition to work)
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}
    \frametitle{Στόχος της Εργασίας}
        \begin{block}

            Ανάπτυξη εργαλείου, το οποίο θα διευκολύνει έναν οργανισμό στην
            εγκατάσταση και διαμόρφωση με αυτοματοποιημένο τρόπο, ενός
            ασφαλούς, κατανεμημένου περιβάλλοντος (φιλοξενίας και λειτουργίας)
            για την εγκατάσταση και λειτουργία μιας εφαρμογής μικρο-υπηρεσιών.

        \end{block}
        \begin{block}<2->{Κύριες Λειτουργίες:}
            \begin{itemize}
                \item<3-> Δημιουργία εικονικών μηχανών
                \item<4-> Σκλήρυνση των εικονικών μηχανών
                \item<5-> Εγκατάσταση/Σκλήρυνση του Docker
            \end{itemize}
        \end{block}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\setLayout{mainpoint}
\section{Εισαγωγή}
\begin{frame}[plain,noframenumbering]
    \frametitle{Εισαγωγικές Έννοιες}
\end{frame}
\addtocounter{framenumber}{1}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\setLayout{horizontal}
\begin{frame}
    % \large % maybe add this to all of the slides
%% sizes: \tiny, \scriptsize, \footnotesize, \small, \normalsize, \large, \Large, \LARGE, \huge and \Huge.
    \frametitle{Λίγα λόγια για:}
        \begin{itemize}
            \item<2-> Νεφο-υπολογιστική
            \item<3-> Εικονικοποίηση
            \item<4-> Υπερ-επόπτες
            \item<5-> Docker
        \end{itemize}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\setLayout{vertical}
\begin{frame}
    \frametitle{Νεφο-υπολογιστική}
    \begin{figure}
        \centering
        \includegraphics[width=.6\textwidth]{lib/figures/introduction/cloud_computing/cloud_computing.png}
    \end{figure}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}{Νεφο-υπολογιστική}

    \begin{block}{Ορισμός}

        Ένα μοντέλο, το οποίο επιτρέπει την ανά πάσα στιγμή πρόσβαση σε
        υπολογιστικούς πόρους, μέσω του διαδικτύου.

    \end{block}

    \begin{block}{Χαρακτηριστικά}<2->

        \begin{itemize}
            \item<3-> Αυτοεξυπηρέτηση κατά παραγγελία (On-demand Self-service)
            \item<4-> Πανταχού παρούσα πρόσβαση (Ubiquitous Access)
            \item<5-> Πολλαπλή Μίσθωση (Multi-Tenancy)
            \item<6-> Ελαστικότητα (Elasticity)
            \item<7-> Μετρούμενη υπηρεσία (Measured Service)
        \end{itemize}

    \end{block}

\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\setLayout{horizontal}
\begin{frame}{Μοντέλα Παράδοσης}

    \begin{itemize}
        \item<2-> Software as a Service (SaaS) (Λογισμικό ως Υπηρεσία)
        \item<3-> Platform as a Service (PaaS) (Πλατφόρμα ως Υπηρεσία)
        \item<4-> Infrastructure as a Service (IaaS) (Υποδομή ως Υπηρεσία)
    \end{itemize}

\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\setLayout{vertical}
\begin{frame}
    \frametitle{Διαχωρισμός Εννοιών}
    \begin{tikzpicture}[
    spy using outlines={
    circle,
    magnification=4,
    size=5cm,
    connect spies}]
    \node[inner sep=0pt] {\pgfimage[width=0.6\textwidth]{lib/figures/introduction/cloud_computing/saas_paas_iaas_examples.png}};
    \only<2>{\spy[blue!70!black] on (-2.35,1.8) in node at (.5\textwidth,0);}
    \only<3>{\spy[blue!70!black] on (1.45,-0.1) in node at (.5\textwidth,0);}
    \only<4>{\spy[blue!70!black] on (-2.5,-2) in node at (.5\textwidth,0);}
    \end{tikzpicture}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}
    \frametitle{Εμβέλεια ελέγχου}
    \begin{figure}
        \centering
        \includegraphics[width=\textwidth]{lib/figures/introduction/cloud_computing/saas_paas_iaas_scopes.png}
    \end{figure}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}
    \frametitle{Εικονικοποίηση}
    \begin{figure}
        \centering
        \includegraphics[width=.7\textwidth]{lib/figures/introduction/virtualization.png}
    \end{figure}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}{Εικονικοποίηση}
    % \vspace{-1cm} % would be needed if there was no other text

    \begin{block}{Ορισμός}

        Η αναπαράσταση υπολογιστικών πόρων σε εικονική μορφή με σκοπό την
        αναδιαμόρφωσή τους προς ικανοποίηση των αναγκών ενός συστήματος.

    \end{block}
    \vfill
    \begin{itemize}
        \item \textbf{Είδη}:
    \end{itemize}
    \begin{figure}
        \centering
        \includegraphics[width=.5\textwidth]{lib/figures/introduction/virtualization_types.png}
    \end{figure}

\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}
    \frametitle{Εικονικοποίηση διακομιστών}
    \begin{block}<2->{Πως λειτουργεί;}

        Ένας υπερ-επόπτης είναι υπεύθυνος για την κατάτμηση των φυσικών πόρων
        σε εικονικούς, καθώς και για την ανάθεση αυτών στις εικονικές μηχανές.

    \end{block}
    \begin{figure}
        \centering
        \includegraphics[width=.7\textwidth]{lib/figures/introduction/server_virtualization_simple.png}
    \end{figure}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\setLayout{horizontal}
\begin{frame}{Χωρίς εικονικοποίηση}
    \begin{columns}
        \column{0.4\textwidth}
            \begin{block}{Υποχρησιμοποίηση}
                \begin{itemize}
                    \item<2-> Αποθηκευτικού χώρου
                    \item<3-> Μνήμης
                    \item<4-> Επεξεργαστικής ισχύος
                \end{itemize}
            \end{block}
        \column{0.6\textwidth}

            \begin{figure}
                \centering
                \includegraphics[width=\textwidth]{lib/figures/virtualization/redhat_virtualization_server_usage1.png}
                % \caption{Χρήση διακομιστών χωρίς εικονικοποίηση}
                % \label{fig:serverNoVirtualization}
            \end{figure}

    \end{columns}

\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}{Με Εικονικοποίηση}
    \begin{columns}
        \column{0.4\textwidth}
            \begin{block}{Διαφορές}
                \begin{itemize}
                    \item<2-> Καλύτερη αξιοποίηση πόρων
                    \item<3-> Εξοικονόμηση κόστους
                    \item<4-> Ευκολότερη διαχείριση
                \end{itemize}
            \end{block}

        \column{0.6\textwidth}

            \begin{figure}
                \centering
                \includegraphics[width=\textwidth]{lib/figures/virtualization/redhat_virtualization_server_usage2.png}
                % \caption{Χρήση διακομιστών με εικονικοποίηση}
                % \label{fig:serverWithVirtualization}
            \end{figure}

    \end{columns}

\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\setLayout{vertical}
\begin{frame}
    \frametitle{Επιπρόσθετα Πλεονεκτήματα}
    \vspace{-3cm}
    \begin{block}{Προσφέρει}
        \begin{itemize}
            \item<2-> Ταχύτερη παροχή
            \item<3-> Ελάχιστος χρόνος διακοπής λειτουργίας
            \item<4-> Καμία ανάγκη για επιπλέον υλικό
        \end{itemize}
    \end{block}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}
    \frametitle{Υπερ-επόπτες}
    \begin{block}{Ορισμός}

        Ένα λογισμικό, το οποίο διαχειρίζεται τους φυσικούς πόρους ενός
        διακομιστή, απομονώνοντάς τους σε διακριτά υποσύνολα αυτών.

    \end{block}

    \begin{block}{Είδη}<2->

        \begin{itemize}
            \item<3-> Υπερ-επόπτης Τύπου 1 (Bare Metal)
            \item<4-> Υπερ-επόπτης Τύπου 2 (Hosted)
        \end{itemize}

    \end{block}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}
    \frametitle{Διαφορές Υπερ-επόπτη Τύπου 1 και 2}
    \begin{columns}
        \column{0.35\textwidth}
            \begin{block}{Οι υπερ-επόπτες τύπου 1:}
                \begin{itemize}
                    \item<2-> Είναι πιο αποδοτικοί
                    \item<3-> Αντικαθιστούν το λειτουργικό σύστημα
                    \item<4-> Χρησιμοποιούνται σε περιβάλλοντα παραγωγής
                \end{itemize}
            \end{block}
        \column{0.65\textwidth}

            \begin{figure}
                \centering
                \includegraphics[width=.7\textwidth]{lib/figures/introduction/type1-type2-hypervisor.png}
                % \caption{Χρήση διακομιστών χωρίς εικονικοποίηση}
                % \label{fig:serverNoVirtualization}
            \end{figure}

    \end{columns}

\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}
    \frametitle{Αλληλεξάρτηση τεχνολογιών}
    \begin{figure}
        \centering
        \includegraphics[width=.6\textwidth]{lib/figures/introduction/server_virtualization.png}
    \end{figure}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}
    \frametitle{Αλληλεξάρτηση τεχνολογιών}
    \begin{figure}
        \centering
        \includegraphics[width=.6\textwidth]{lib/figures/introduction/server_virtualization_iaas.png}
    \end{figure}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}
    \frametitle{Docker}

    \begin{block}{Ορισμός}

        Μηχανή δοχείων, η οποία επιτρέπει την εκτέλεση εφαρμογών σε μορφή
        δοχείων.

    \end{block}

    \begin{block}{Χαρακτηρίζεται από}<2->

        \begin{itemize}
            \item<3-> Mεταφερσιμότητα
            \item<4-> Ταχύτητα
            \item<5-> Μέγιστη χρηστικότητα πόρων
            \item<6-> Ευκολία διαχείρισης
            \item<7-> Ασφάλεια
        \end{itemize}

    \end{block}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}
    \frametitle{Εικονικές μηχανές και δοχεία}
    \begin{figure}
        \centering
        \includegraphics[width=.8\textwidth]{lib/figures/introduction/vm_vs_container.png}
    \end{figure}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\setLayout{mainpoint}
\begin{frame}[plain,noframenumbering]
    \frametitle{Χρήση IaaS Σήμερα}
\end{frame}
\addtocounter{framenumber}{1}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\setLayout{horizontal}
\begin{frame}
    \frametitle{Χειροκίνητα Βήματα}
    \begin{columns}
    \column{.5\textwidth}
    \begin{figure}
        \centering
        \includegraphics[width=.8\textwidth]{lib/figures/introduction/cloud_computing/iaas_usage.png}
    \end{figure}
    \column{.5\textwidth}
        \begin{block}{Βήματα:}
            \begin{itemize}
                \item<1-> Επιλογή παρόχου υπηρεσίας
                \item<2-> Εισαγωγή στο διαδικτυακό διαχειριστικό πάνελ
                \item<3-> Επιλογή προδιαγραφών εικονικής μηχανής
                \item<4-> Εφαρμογή επιλογών
            \end{itemize}
        \end{block}
    \end{columns}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}
    \frametitle{Το πρόβλημα ανεξαρτήτως παρόχου}
    \begin{columns}
        \column{.5\textwidth}
            \begin{itemize}
                \item<1-> Χρονοβόρα διαδικασία
                \item<2-> Πιθανότητα λάθους
                \item<3-> Εγκλωβισμός σε έναν πάροχο
                \item<4-> Ανάγκη για επαναλαμβανόμενες διαδικασίες
                \item<5-> Χειροκίνητη σκλήρυνση
            \end{itemize}
        \column{.5\textwidth}
            \begin{figure}
                \centering
                \includegraphics[width=0.8\textwidth]{lib/figures/introduction/cloud_computing/iaas_providers.png}
            \end{figure}
    \end{columns}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}
    \frametitle{Γιατί επιλέγεται το IaaS;}
    \begin{columns}
        \column{.6\textwidth}
            \begin{figure}
                \centering
                \includegraphics[width=\textwidth]{lib/figures/introduction/cloud_computing/iaas_benefits.png}
            \end{figure}
        \column{.4\textwidth}
            \begin{itemize}
                \item<1-> Ευελιξία
                \item<2-> Αποδοτικότητα
                \item<3-> Ασφάλεια
                \item<4-> Αξιοπιστία
                \item<5-> Εξοικονόμηση χρόνου
                \item<6-> Εξοικονόμηση κόστους
            \end{itemize}
    \end{columns}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}
    \frametitle{Προβλήματα που μπορεί να προκύψουν}
    \begin{itemize}
        \item<1-> Απαιτείται εμπιστοσύνη προς τον πάροχο
        \item<2-> Χαμηλού επιπέδου προκαθορισμένες ρυθμίσεις ασφαλείας
        \item<3-> Πλήρη εξάρτηση από τον πάροχο
        \item<4-> Επιθέσεις στο νέφος
        \item<5-> Επιθέσεις στα δοχεία
    \end{itemize}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}
    \frametitle{Απειλές στο Νέφος}
    \begin{columns}\column{\textwidth}
    \begin{figure}
        \centering
        \includegraphics[width=0.7\textwidth]{lib/figures/background/cloud_threats.png}
    \end{figure}
    \end{columns}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\setLayout{vertical}
\begin{frame}
    \frametitle{Σημεία αδυναμίας}
    \begin{columns}
        \column{.5\textwidth}
            \begin{figure}
            \centering
                \includegraphics[width=.7\textwidth]{lib/figures/ThreatsOnVirtualization/enisaThreats.jpg}
            \end{figure}
        \column{.5\textwidth}
            \begin{itemize}
                \item Παρατηρήσεις
                    \begin{itemize}
                        \item<2-> 16 γκρουπ απειλών
                        \item<3-> 39 ξεχωριστά CWEs
                    \end{itemize}
            \end{itemize}
    \end{columns}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}
    \frametitle{Σημεία αδυναμίας}
    \begin{tikzpicture}[
    spy using outlines={
    circle,
    magnification=4.5,
    size=5cm,
    connect spies}]
\node[inner sep=0pt] {\pgfimage[width=0.4\textwidth]{lib/figures/ThreatsOnVirtualization/enisaThreats.jpg}};
\only<2>{\spy[blue!70!black] on (-0.7,3) in node at (.5\textwidth,0);}
\only<3>{\spy[blue!70!black] on (-0.1,2.2) in node at (.5\textwidth,0);}
\only<4>{\spy[blue!70!black] on (0.6,1) in node at (.5\textwidth,0);}
\end{tikzpicture}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}
    \frametitle{Συχνές επιθέσεις στο Docker}
        \begin{block}{Κίνδυνος από}
            \begin{itemize}
                \item<2-> Εκμεταλλεύσεις πυρήνα (Kernel Exploits)
                \item<3-> Άρνηση υπηρεσίας
                \item<4-> Αποδράσεις Δοχείων (Container Breakouts)
                \item<5-> Δηλητηριασμένες εικόνες δοχείων
                \item<6-> Απόκτηση μυστικών κωδικών/κλειδιών
                \item<7-> Ενδιάμεσου (Man-in-the-Middle - MitM)
                \item<8-> Πλαστογράφηση ARP (ARP spoofing)
            \end{itemize}
        \end{block}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}
    \frametitle{Η τριάδα της ασφάλειας}
    \begin{columns}
        \column{.4\textwidth}
            \begin{figure}
                \centering
                \includegraphics[width=\textwidth]{lib/figures/background/cia_triad.png}
            \end{figure}
        \column{.6\textwidth}
            \begin{itemize}
                \item Εμπιστευτικότητα
                    \begin{itemize}
                        \item<2-> Προστασία από αποκάλυψη
                    \end{itemize}
                \item Ακεραιότητα
                    \begin{itemize}
                        \item<3-> Προστασία από αλλοίωση
                    \end{itemize}
                \item Διαθεσιμότητα
                    \begin{itemize}
                        \item<4-> Προστασία από απώλεια
                    \end{itemize}
            \end{itemize}
    \end{columns}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}
    \begin{columns}\column{\textwidth}
    \begin{figure}
        \centering
        \includegraphics[width=0.8\textwidth]{lib/figures/background/cia_confidentiality.png}
    \end{figure}
    \end{columns}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}
    \begin{columns}\column{\textwidth}
    \begin{figure}
        \centering
        \includegraphics[width=0.8\textwidth]{lib/figures/background/cia_integrity.png}
    \end{figure}
    \end{columns}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}
    \begin{columns}\column{\textwidth}
    \begin{figure}
        \centering
        \includegraphics[width=0.8\textwidth]{lib/figures/background/cia_availability.png}
    \end{figure}
    \end{columns}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}
    \frametitle{Ορθές πρακτικές στην εικονικοποίηση}
    \begin{itemize}
        \item<2-> Συχνή ενημέρωση του υπερ-επόπτη
        \item<3-> Περιορισμός πρόσβασης στο διαχειριστικό πάνελ του υπερ-επόπτη
        \item<4-> Έλεγχος των μηχανημάτων που έχουν πρόσβαση στον υπερ-επόπτη
        \item<5-> Περιορισμός δικτυακής πρόσβασης στο διαχειριστικό πάνελ του υπερ-επόπτη
        \item<6-> Χρήση κρυπτογράφησης εικονικών μηχανών
        \item<7-> Απομόνωση των εικονικών μηχανών μεταξύ τους
        \item<8-> Παρακολούθηση των πόρων
        \item<9-> Ορθή διαχείριση στιγμιοτύπων εικονικών μηχανών
        \item<10-> Ασφάλιση του μηχανήματος φιλοξενίας
        \item<11-> Σκλήρυνση των εικονικών μηχανών
    \end{itemize}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}
    \frametitle{Ορθές πρακτικές το Docker}
    \begin{itemize}
        \item<2-> Χρήση ελάχιστων δικαιωμάτων
        \item<3-> Χρήση read-only
        \item<4-> Περιορισμός πόρων
        \item<5-> Αποφυγή privileged
        \item<6-> Εικόνες δοχείων από έμπιστες πηγές
        \item<7-> Αποφυγή επικοινωνίας δοχείων μεταξύ τους
        \item<8-> Χρήση Kernel Capabilities
        \item<9-> Χρήση Kernel Security Modules
        \item<10> Χρήση χώρων ονομάτων
    \end{itemize}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\setLayout{horizontal}
\begin{frame}
    \frametitle{Απαίτηση αυτοματοποίησης}
    \begin{itemize}
        \item<2-> Δημιουργία εικονικών μηχανών
        \item<3-> Σκλήρυνση εικονικών μηχανών
        \item<4-> Σκλήρυνση Docker
    \end{itemize}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\setLayout{vertical}
\begin{frame}
    \frametitle{Υπάρχουσες λύσεις εργαλείων}
    \begin{itemize}
        \item Δημιουργία εικονικών μηχανών
            \begin{itemize}
                \item<2-> Terraform
                \item<3-> Libcloud CLI
            \end{itemize}
        \item Σκλήρυνση εικονικών μηχανών
            \begin{itemize}
                \item<4-> JShielder
                \item<5-> nixarmor
            \end{itemize}
        \item Σκλήρυνση Docker
            \begin{itemize}
                \item<6-> docker-rootless-setup
                \item<7-> docksec
            \end{itemize}
    \end{itemize}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}[shrink=20]
    \frametitle{Σύγκριση γκρουπ 1}

\begin{table}[!ht]
\renewcommand{\arraystretch}{1.5}
\centering
\newcolumntype{C}{>{\centering\arraybackslash}m{3.5cm}}
\begin{tabular}{||C|C|C|C||}
\hline

Κριτήρια & Terraform & Libcloud CLI & SecDep \\ [0.5ex]

\hline\hline

Ευελιξία κατά την χρήση &

Όλες οι προδιαγραφές δηλώνονται σε αρχείο κειμένου. &

Επιλογή παραμέτρων κατά την σύνταξη. &

Επιλογή παραμέτρων κατά την σύνταξη. \\

\hline

Ευκολία χρήσης &

Κάθε αλλαγή απαιτεί τροποποίηση του αρχείου προδιαγραφών. &

Οι παράμετροι είναι εύκολες στην κατανόηση και την χρήση. &

Οι παράμετροι είναι εύκολες στην κατανόηση και την χρήση. \\

\hline

Εύρος υποστήριξης παρόχων &

Όλοι οι μεγάλοι και μικροί πάροχοι υποστηρίζονται. &

Μονάχα ένας πάροχος υποστηρίζεται. &

Υποστηρίζονται όλοι οι μεγάλοι πάροχοι. \\

\hline

Επεκτασιμότητα &

Λόγω της αρχιτεκτονικής του είναι δυσκολότερη η επέκτασή του. &

Επεκτείνεται εύκολα με τροποποίηση του εκτελέσιμου αρχείου. &

Επεκτείνεται εύκολα με τροποποίηση του εκτελέσιμου αρχείου. \\

\hline
\end{tabular}
\renewcommand{\arraystretch}{1}
\end{table}

\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}[shrink=20]
    \frametitle{Σύγκριση γκρουπ 2}

\begin{table}[!ht]
\renewcommand{\arraystretch}{1.5}
\centering
\newcolumntype{C}{>{\centering\arraybackslash}m{3.5cm}}
\begin{tabular}{||C|C|C|C||}
\hline

Κριτήρια & JShielder & nixarmor & SecDep \\ [0.5ex]

\hline\hline

Εύρος υποστήριξης διανομών &

Υποστηρίζεται μια διανομή με δύο εκδόσεις. &

Υποστηρίζονται 4 διανομές. &

Υποστηρίζονται 6 διανομές με πολλαπλές εκδόσεις τους. \\

\hline

Ευκολία χρήσης &

Αρκεί η εκτέλεσή του με διαχειριστικά δικαιώματα. &

Αρκεί η εκτέλεση ενός εκτελέσιμου αρχείου του με διαχειριστικά δικαιώματα. &

Αρκεί η εκτέλεσή του με διαχειριστικά δικαιώματα. \\

\hline

Εύρος σκλήρυνσης &

Ικανοποιητικό εύρος σκλήρυνσης. &

Μικρότερο συγκριτικά με τα υπόλοιπα. &

Επιτυγχάνεται σε ικανοποιητικό βαθμό. \\

\hline

Υποστήριξη διαρκούς σκλήρυνσης &

Διαρκής ενημέρωση πακέτων. &

Διαρκείς ενημερώσεις ασφαλείας σε μια διανομή. &

Διαρκείς ενημερώσεις ασφαλείας και πακέτων, κλείσιμο αχρησιμοποίητων θυρών.
\\

\hline
\end{tabular}
\renewcommand{\arraystretch}{1}
\end{table}

\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}[shrink=20]
    \frametitle{Σύγκριση γκρουπ 3}

\begin{table}[!ht]
\renewcommand{\arraystretch}{1.5}
\centering
\newcolumntype{C}{>{\centering\arraybackslash}m{3.6cm}}
\begin{tabular}{||C|C|C|C||}
\hline

Κριτήρια & docker-rootless-setup & docksec & SecDep \\ [0.5ex]

\hline\hline

Ευκολία χρήσης &

Αρκεί η εκτέλεσή του με διαχειριστικά δικαιώματα. &

Αρκεί να εκτελεστεί με διαχειριστικά δικαιώματα. &

Αρκεί η εκτέλεσή του με διαχειριστικά δικαιώματα. \\

\hline

Εύρος σκλήρυνσης &

Μονάχα εγκατάσταση του Rootless Docker. &

Μονάχα καλύτερη ρύθμιση του δαίμονα. &

Καλύτερη ρύθμιση του δαίμονα, εγκατάσταση του Rootless Docker, αντικατάσταση
προκαθορισμένου Container Runtime. \\

\hline

Υποστήριξη διαρκούς σκλήρυνσης &

Όχι. &

Όχι. &

Eγκατάσταση του watchtower. \\

\hline

Επεκτασιμότητα &

Αρκεί η προσθήκη νέων λειτουργιών στο εκτελέσιμο αρχείο του. &

Αρκεί η προσθήκη νέων λειτουργιών στο εκτελέσιμο αρχείο του. &

Αρκεί η προσθήκη νέων λειτουργιών στο εκτελέσιμο αρχείο του. \\

\hline
\end{tabular}
\renewcommand{\arraystretch}{1}
\end{table}

\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}
    \frametitle{Προτεινόμενη Λύση}
    \begin{columns}\column{\textwidth}
    \begin{figure}
        \centering
        \includegraphics[width=0.6\textwidth]{lib/logos/secdep_logo.png}
    \end{figure}
    \end{columns}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\setLayout{mainpoint}
\begin{frame}[plain,noframenumbering]
    \frametitle{Ανάπτυξη του SecDep}
\end{frame}
\addtocounter{framenumber}{1}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\setLayout{vertical}
\begin{frame}
    \frametitle{Μοντέλο Ανάπτυξης}
    \begin{columns}\column{\textwidth}
    \begin{figure}
        \centering
        \includegraphics[width=0.6\textwidth]{lib/figures/development/waterfall_model.png}
    \end{figure}
    \end{columns}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}[shrink=20]
    \frametitle{Απαιτήσεις Συστήματος}

    \begin{columns}
        \column{.5\textwidth}

    \begin{itemize}
        \item Λειτουργικές απαιτήσεις

        \begin{itemize}

            \item Εμφάνιση λίστας μεγεθών εικονικών μηχανών

            \item Εμφάνιση λίστας διαθέσιμων τοποθεσιών

            \item Εμφάνιση λίστας διαθέσιμων διανομών

            \item Προτροπή για ελλειπή παράμετρο

            \item Έλεγχος εγκυρότητας των παραμέτρων

            \item Δημιουργία εικονικής μηχανής

            \item Παύση εικονικής μηχανής

            \item Εκκίνηση εικονικής μηχανής

            \item Επανεκκίνηση εικονικής μηχανής

            \item Διαγραφή εικονικής μηχανής

            \item Το εργαλείο πρέπει να υποστηρίζει την σύνδεση με SSH ακόμα και χωρίς
                να διαθέτει ο χρήστης πελάτη SSH

            \item Το εργαλείο πρέπει να υποστηρίζει την λειτουργία εμφάνισης όλων των
                εικονικών μηχανών που διαχειρίζεται

            \item Το εργαλείο πρέπει να εμφανίζει μηνύματα λάθους σε περίπτωση που κάτι
                πάει στραβά κατά την εκτέλεση

            \item Το εργαλείο πρέπει να υποστηρίζει την διαδραστική διαμόρφωση του
                αρχείου ρυθμίσεών του

            \item Το εργαλείο πρέπει να υποστηρίζει την εκτέλεση εξωτερικού εκτελέσιμου
                αρχείου στις εικονικές μηχανές με σκοπό την σκλήρυνσή τους

            \item Το εργαλείο πρέπει να εγκαθιστά και να σκληραίνει και το Docker πέρα
                από το λειτουργικό σύστημα

            \item Το εργαλείο θα ενημερώνει περιοδικά τα πακέτα της εικονικής μηχανής
                και θα κλείνει αχρησιμοποίητες θύρες

            \item Το εργαλείο πρέπει να υποστηρίζει την εγκατάσταση δοχείων στις
                εικονικές μηχανές που δημιουργεί, κατά την διάρκεια της σκλήρυνσής
                τους, μέσω ενός αρχείου docker-compose.yml που θα βρίσκεται στον ίδιο
                φάκελο με το εκτελέσιμο αρχείο του

            \item Το εργαλείο πρέπει να μπορεί να εγκαθιστά δοχεία στις εικονικές
                μηχανές, κατά την διάρκεια σκλήρυνσής τους, μέσω παραμέτρων που έχει
                εισάγει ο χρήστης

            \item Το εργαλείο πρέπει να διαθέτει λειτουργία εμφάνισης όλων των
                διαθέσιμων εντολών του

            \item Το εργαλείο πρέπει να διαθέτει λειτουργία εμφάνισης συμπλήρωσης
                εντολών και για τα 3 πιο δημοφιλή κελύφη εντολών (Bash, Zsh, tcsh)

            \item Το εργαλείο πρέπει να διαθέτει λειτουργία εμφάνισης της έκδοσής του

            \item Το εργαλείο πρέπει να διαθέτει παράμετρο για την προσπέραση
                (bypassing) του βήματος επιβεβαίωσης κατά την δημιουργία εικονικών
                μηχανών

            \item Το εργαλείο πρέπει να διαθέτει μηχανισμό συγκεκριμενοποίησης περιοχής
                για τον πάροχο AWS

            \item Το εργαλείο πρέπει να διαθέτει μηχανισμό επιλογής θύρας για την
                λειτουργία σύνδεσης μέσω SSH

            \item Το εργαλείο πρέπει να υποστηρίζει την αρχικοποίηση μονάχα ενός
                παρόχου δίχως την συμπλήρωση κενών πεδίων για τους υπόλοιπους από τον
                χρήστη

        \end{itemize}

\end{itemize}

\column{.5\textwidth}
\begin{itemize}
    \item Μη λειτουργικές απαιτήσεις

    \begin{itemize}

        \item Το εργαλείο πρέπει να υποστηρίζει την χρήση των 3 μεγαλύτερων
            ονομάτων στον κλάδο της νεφο-υπολογιστικής (Amazon, Google, Microsoft)

        \item Το εργαλείο πρέπει να υποστηρίζει την χρήση των 6 δημοφιλέστερων
            διανομών για περιβάλλον διακομιστή (Debian, Ubuntu, Red Hat Enterprise
            Linux, Fedora, CentOS, openSUSE Leap)

        \item Το εργαλείο πρέπει να λειτουργεί μέσω της γραμμής εντολών ώστε να
            μπορεί να αυτοματοποιηθεί περαιτέρω η εκτέλεση των εντολών του

        \item Το εργαλείο πρέπει να είναι εύκολο στην χρήση για έναν χρήστη που
            έχει χρησιμοποιήσει προγράμματα γραμμής εντολών στο παρελθόν

        \item Το εργαλείο θα πρέπει να είναι αξιόπιστο, δηλαδή κάθε εκτέλεση να
            επιφέρει τα αναμενόμενα αποτελέσματα

        \item Το εργαλείο πρέπει να δημιουργεί ξεχωριστό αρχείο για τις ρυθμίσεις
            του στον ίδιο φάκελο που βρίσκεται και το εκτελέσιμο αρχείο του

        \item Το εργαλείο πρέπει να κρατάει αρχείο των διευθύνσεων IP των εικονικών
            μηχανών που δημιουργεί ώστε να μπορούν να διαμορφωθούν περαιτέρω εάν ο
            χρήστης επιθυμεί να χρησιμοποιήσει άλλα προγράμματα, όπως το Ansible

        \item Το εργαλείο πρέπει να διαθέτει ένα μοτίβο εντολών που να μπορεί ο
            χρήστης να καταλαβαίνει και να διαμορφώνει ανάλογα με τις ανάγκες του

        \item Το εργαλείο πρέπει να δημιουργεί κλειδιά SSH σε περίπτωση που δεν
            υπάρχουν, στον ίδιο φάκελο με το εκτελέσιμο αρχείο του

        \item Το εργαλείο θα πρέπει να εγκαθιστά τις υπηρεσίες watchtower και
            portainer για την περαιτέρω σκλήρυνση του
            Docker και την διευκόλυνση του χρήστη κατά την εγκατάσταση δοχείων
            αντίστοιχα

    \end{itemize}
\end{itemize}
\end{columns}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\section{Σκλήρυνση Εικονικών Μηχανών}
\begin{frame}{Αποτελέσματα μέσω του Lynis}

    \begin{table}[]
        \newcolumntype{P}{>{\centering\arraybackslash}m{4cm}}
        \centering
        \caption{\label{tab:lynisIndex}Δείκτης ασφαλείας Lynis}

        \renewcommand{\arraystretch}{1.5}
        \setlength{\tabcolsep}{0pt}

        % {\rowcolors{2}{}{LightGray!10}
            \begin{tabular}{ p{5cm}P }
                \toprule
                \textbf{Διακομιστής} & \textbf{Δείκτης Ασφαλείας} \\
                \midrule
                Προ σκλήρυνσης       & 65                         \\
                \rowcolor{LightGray!10}
                Μετά σκλήρυνσης      & 71                         \\
                \bottomrule
            \end{tabular}
        % }
    \end{table}

\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\begin{frame}{Αποτελέσματα μέσω του Lynis}

    \begin{figure}
        \centering
        \includegraphics[width=.6\textwidth]{lib/figures/scans/lynis/Lynis_Hardening_Index.png}
        \caption{Αύξηση δείκτη ασφαλείας του Lynis}
        \label{fig:lynisHardeningIndex}
    \end{figure}

\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\section{Αποτελέσματα}
\setLayout{blank} % Example of changing layout
\setBGColor{white} % it follows the previous setting
\setDefaultConfig % by default text is not black

\begin{frame}{Αποτελέσματα}

    \begin{columns}

        \column{0.5\textwidth}
        \justifying

        Με την χρήση του SecDep καταφέραμε να ασφαλίσουμε τους διακομιστές σε
        ικανοποιητικό βαθμό.

        \vspace{5pt}

        \begin{itemize}

            \item Σκλήρυνση λειτουργικού συστήματος
            \item Σκλήρυνση Docker

        \end{itemize}

        \column{0.5\textwidth}
        \justifying

        Με βάση το Lynis η αύξηση ασφάλειας του διακομιστή ανέρχεται στο
        9.23077\%.

        \vspace{5pt}

        \begin{enumerate}

            \item Μείωση ευπαθειών
            \item Αποτροπή επιθέσεων

        \end{enumerate}

    \end{columns}

\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
%Highlighting text
\setLayout{vertical}
\setBGColor{Ocean}
\begin{frame}{Πως το καταφέραμε;}
    \footnotesize % to not have hbox

    Κατεβάσαμε το \alert{SecDep}.

    \normalsize % back to normal
    \begin{block}{Τι έχει το SecDep;}
        Τα εκτελέσιμα secdep.py και harden.
    \end{block}

    \begin{alertblock}{Πως δουλεύει;}
        Το secdep.py είναι το κύριο εκτελέσιμο το οποίο εκτελεί το harden.
    \end{alertblock}

    % \begin{examples}
    %     Sample text in green box.
    % \end{examples}

\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\section{Εγκατάσταση του SecDep}
\setLayout{mainpoint}
\setBGColor{DarkPurple}
\begin{frame}{}
    \frametitle{Εγκατάσταση του SecDep}
\end{frame}
%-------------------------------------------------------------%

%-------------------------------------------------------------Slide
\section{Κλείσιμο}
\setLayout{blank}
\setBGColor{white} % it follows the previous setting
\setDefaultConfig % by default text is not black
\begin{frame}[plain,noframenumbering] % both needed to remove numbering
    \vspace{2cm}
    \begin{columns} % by default it is not exactly in the middle
    \column{\textwidth}
    \centering
    \textbf{\Huge Ευχαριστώ πολύ για τον χρόνο σας!}
    \vskip 0.1pt
    \textbf{Ερωτήσεις;}
    \vskip 0.1pt
    \text{\footnotesize konsthol@proton.me}
    \vspace{0.5cm}
    \begin{picture}(0,0)
        \put(0,-150){\hbox{\includegraphics[width=0.4\textwidth]{lib/logos/gradCloud.png}}}
    \end{picture}
    \end{columns}
\end{frame}
%-------------------------------------------------------------%

\end{document}

    % \begin{table}[]
%         \centering
%         \caption{\label{tab:virtualizationThreatSources}Πηγή απειλών στην εικονικοποίηση}
%
%         \renewcommand{\arraystretch}{1.5}
%         \setlength{\tabcolsep}{10pt}
%
%         {\rowcolors{2}{}{LightGray!10}
%             \begin{tabular}{ p{5cm}p{6cm} }
%                 \toprule
%                 \textbf{Πηγή απειλής} & \textbf{Περιγραφή} \\
%                 \midrule
%                 Δίκτυο $\Rightarrow$ Υπερ-επόπτη &
%                 Απειλές που προέρχονται από το δίκτυο και στοχεύουν τον υπερ-επόπτη. \\
%                 Δίκτυο $\Rightarrow$ Εικονική Μηχανή &
%                 Απειλές που προέρχονται από το δίκτυο και στοχεύουν εικονικές μηχανές. \\
%                 Υπερ-επόπτη $\Rightarrow$ Εικονική Μηχανή &
%                 Απειλές που προέρχονται από τον υπερ-επόπτη και στοχεύουν εικονικές μηχανές. \\
%                 Εικονική μηχανή $\Rightarrow$ Εικονική Μηχανή &
%                 Απειλές που προέρχονται από εικονικές μηχανές και στοχεύουν άλλες εικονικές μηχανές. \\
%                 Εικονική μηχανή $\Rightarrow$ Υπερ-επόπτη &
%                 Απειλές που προέρχονται από εικονικές μηχανές και στοχεύουν τον υπερ-επόπτη. \\
%                 \bottomrule
%             \end{tabular}
%         }
%     \end{table}

    % \begin{figure}
    %     \centering
    %     \begin{subfigure}{0.45\textwidth}
    %         \centering
    %         \includegraphics[width=.7\textwidth]{lib/logos/logo_bb.jpg}
    %     \end{subfigure}
    %     \qquad
    %     \begin{subfigure}{0.45\textwidth}
    %         \centering
    %         \includegraphics[width=.5\textwidth]{lib/logos/gradCloud.png}
    %     \end{subfigure}
    % \end{figure}

% %-------------------------------------------------------------Slide
% \setLayout{blank}
% \setBGColor{white}
% \setDefaultConfig
% % \begin{landscape}
%     \begin{frame}[plain,noframenumbering]
%
% \begin{tikzpicture}[
% spy using outlines={
%   circle,
%   magnification=10,
%   size=5cm,
%   connect spies}]
% \node[inner sep=0pt] {\pgfimage[width=0.4\textwidth]{lib/figures/ThreatsOnVirtualization/enisaThreats.jpg}};
% \only<2>{\spy[blue!70!black] on (0.3,0.55) in node at (.5\textwidth,0);}
% \end{tikzpicture}
%
% %\framezoom<1><2>[border=1.5](28mm,34mm)(10mm,4mm)
% %\framezoom<1><3>[border=1.5](43mm,34mm)(6mm,6mm)
% %\framezoom<1><4>[border=1.5](65mm,41mm)(5mm,4mm)
% %    \begin{figure}
% %        \centering
% %        \includegraphics[width=.3\textwidth]{lib/figures/ThreatsOnVirtualization/enisaThreats.jpg}
%         % \includegraphics[width=.6\textwidth,angle=90]{lib/figures/ThreatsOnVirtualization/enisaThreats.jpg}
% %        \caption{Απειλές}
% %        \label{fig:virtualizationThreats}
% %    \end{figure}
% \end{frame}
% % \addtocounter{framenumber}{1} % noframenumbering not only hides the number but also does not count it and we want to count it
% % \end{landscape}
% %-------------------------------------------------------------%
