commit 46876acde25632fab894e54ffccd667d164457fe Author: konsthol Date: Sat Mar 2 18:38:31 2024 +0200  - Temporary commit. diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ab1b5a3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,301 @@ +## Core latex/pdflatex auxiliary files: +*.aux +*.lof +*.log +*.lot +*.fls +*.out +*.toc +*.fmt +*.fot +*.cb +*.cb2 +.*.lb + +## Intermediate documents: +*.dvi +*.xdv +*-converted-to.* +# these rules might exclude image files for figures etc. +# *.ps +# *.eps +*.pdf + +## Generated if empty string is given at "Please type another file name for output:" +.pdf + +## Bibliography auxiliary files (bibtex/biblatex/biber): +*.bbl +*.bcf +*.blg +*-blx.aux +*-blx.bib +*.run.xml + +## Build tool auxiliary files: +*.fdb_latexmk +*.synctex +*.synctex(busy) +*.synctex.gz +*.synctex.gz(busy) +*.pdfsync + +## Build tool directories for auxiliary files +# latexrun +latex.out/ + +## Auxiliary and intermediate files from other packages: +# algorithms +*.alg +*.loa + +# achemso +acs-*.bib + +# amsthm +*.thm + +# beamer +*.nav +*.pre +*.snm +*.vrb + +# changes +*.soc + +# comment +*.cut + +# cprotect +*.cpt + +# elsarticle (documentclass of Elsevier journals) +*.spl + +# endnotes +*.ent + +# fixme +*.lox + +# feynmf/feynmp +*.mf +*.mp +*.t[1-9] +*.t[1-9][0-9] +*.tfm + +#(r)(e)ledmac/(r)(e)ledpar +*.end +*.?end +*.[1-9] +*.[1-9][0-9] +*.[1-9][0-9][0-9] +*.[1-9]R +*.[1-9][0-9]R +*.[1-9][0-9][0-9]R +*.eledsec[1-9] +*.eledsec[1-9]R +*.eledsec[1-9][0-9] +*.eledsec[1-9][0-9]R +*.eledsec[1-9][0-9][0-9] +*.eledsec[1-9][0-9][0-9]R + +# glossaries +*.acn +*.acr +*.glg +*.glo +*.gls +*.glsdefs +*.lzo +*.lzs +*.slg +*.slo +*.sls + +# uncomment this for glossaries-extra (will ignore makeindex's style files!) +# *.ist + +# gnuplot +*.gnuplot +*.table + +# gnuplottex +*-gnuplottex-* + +# gregoriotex +*.gaux +*.glog +*.gtex + +# htlatex +*.4ct +*.4tc +*.idv +*.lg +*.trc +*.xref + +# hyperref +*.brf + +# knitr +*-concordance.tex +# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files +# *.tikz +*-tikzDictionary + +# listings +*.lol + +# luatexja-ruby +*.ltjruby + +# makeidx +*.idx +*.ilg +*.ind + +# minitoc +*.maf +*.mlf +*.mlt +*.mtc[0-9]* +*.slf[0-9]* +*.slt[0-9]* +*.stc[0-9]* + +# minted +_minted* +*.pyg + +# morewrites +*.mw + +# newpax +*.newpax + +# nomencl +*.nlg +*.nlo +*.nls + +# pax +*.pax + +# pdfpcnotes +*.pdfpc + +# sagetex +*.sagetex.sage +*.sagetex.py +*.sagetex.scmd + +# scrwfile +*.wrt + +# svg +svg-inkscape/ + +# sympy +*.sout +*.sympy +sympy-plots-for-*.tex/ + +# pdfcomment +*.upa +*.upb + +# pythontex +*.pytxcode +pythontex-files-*/ + +# tcolorbox +*.listing + +# thmtools +*.loe + +# TikZ & PGF +*.dpth +*.md5 +*.auxlock + +# titletoc +*.ptc + +# todonotes +*.tdo + +# vhistory +*.hst +*.ver + +# easy-todo +*.lod + +# xcolor +*.xcp + +# xmpincl +*.xmpi + +# xindy +*.xdy + +# xypic precompiled matrices and outlines +*.xyc +*.xyd + +# endfloat +*.ttt +*.fff + +# Latexian +TSWLatexianTemp* + +## Editors: +# WinEdt +*.bak +*.sav + +# Texpad +.texpadtmp + +# LyX +*.lyx~ + +# Kile +*.backup + +# gummi +.*.swp + +# KBibTeX +*~[0-9]* + +# TeXnicCenter +*.tps + +# auto folder when using emacs and auctex +./auto/* +*.el + +# expex forward references with \gathertags +*-tags.tex + +# standalone packages +*.sta + +# Makeindex log files +*.lpz + +# xwatermark package +*.xwm + +# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib +# option is specified. Footnotes are the stored in a file with suffix Notes.bib. +# Uncomment the next line to have this generated file ignored. +#*Notes.bib diff --git a/Thesis_Cholidis_Presentation.tex b/Thesis_Cholidis_Presentation.tex new file mode 100644 index 0000000..950b432 --- /dev/null +++ b/Thesis_Cholidis_Presentation.tex @@ -0,0 +1,643 @@ +\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 (we recommend use a horizontal image), and second one is the logo used in the remaining slides (we recommend use a square image) +\setLogos{lib/logos/logo_aegean.png}{lib/logos/secdep_logo.png} +%-------------------------------------------------------------% + +%-------------------------------------------------------------Title Slide Information +\author{Κωνσταντίνος Χωλίδης} +\title[Ανάπτυξη του SecDep]{Σκλήρυνση Μηχανής Δοχείων και\\Λειτουργικού Συστήματος σε\\Περιβάλλοντα Linux} % centered and not interfering with background +% \title[Ανάπτυξη του SecDep]{Σκλήρυνση Μηχανής Δοχείων και Λειτουργικού Συστήματος σε Περιβάλλοντα Linux} +% \subtitle{Template Latex} +\institute[ICSD]{Τμήμα Μηχανικών Πληροφοριακών και\\Επικοινωνιακών Συστημάτων} % centered and not interfering with background +% \institute[ICSD]{Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων} +\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 + \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] + \tableofcontents + % \tableofcontents[pausesections] % to show one section at a time (does not work) +\end{frame} +%-------------------------------------------------------------% + +%-------------------------------------------------------------Slide +\setLayout{mainpoint} +\section{Εισαγωγή} +\begin{frame}[plain,noframenumbering] + \frametitle{Εισαγωγικές Έννοιες} +\end{frame} +\addtocounter{framenumber}{1} +%-------------------------------------------------------------% + +%-------------------------------------------------------------Slide +\setLayout{vertical} +\subsection{Νεφο-υπολογιστική} +\begin{frame}{Νεφο-υπολογιστική} + \footnotesize + + \begin{ex} + + Σύμφωνα με το “The NIST Definition of Cloud Computing”, η + νεφο-υπολογιστική είναι ένα μοντέλο που επιτρέπει την ανά πάσα στιγμή + διαδικτυακή πρόσβαση σε μια κοινή δεξαμενή ρυθμιζόμενων υπολογιστικών + πόρων που μπορούν να παρέχονται και να απελευθερώνονται γρήγορα και με + ελάχιστη προσπάθεια διαχείρισης ή αλληλεπίδρασης με τον πάροχο + υπηρεσιών. Στους υπολογιστικούς αυτούς πόρους περιλαμβάνονται δίκτυα, + διακομιστές, χώρος αποθήκευσης, εφαρμογές και υπηρεσίες. Αυτό το + μοντέλο νέφους αποτελείται από πέντε βασικά χαρακτηριστικά, τρία + μοντέλα υπηρεσιών και τέσσερα μοντέλα παράδοσης. + + \end{ex} + + \begin{block}{Χαρακτηριστικά} + + \begin{itemize} + \item Αυτοεξυπηρέτηση κατά παραγγελία (On-demand Self-service) + \item Πανταχού παρούσα πρόσβαση (Ubiquitous Access) + \item Πολλαπλή Μίσθωση (Multi-Tenancy) + \item Ελαστικότητα (Elasticity) + \item Μετρούμενη υπηρεσία (Measured Service) + \end{itemize} + + \end{block} + +\end{frame} +%-------------------------------------------------------------% + +%-------------------------------------------------------------Slide +\subsubsection{Μοντέλα Παράδοσης} +\begin{frame}{Μοντέλα Παράδοσης} + + \begin{itemize} + \item<1-> Software as a Service (SaaS) (Λογισμικό ως Υπηρεσία) + \item<2-> Platform as a Service (PaaS) (Πλατφόρμα ως Υπηρεσία) + \item<3-> Infrastructure as a Service (IaaS) (Υποδομή ως Υπηρεσία) + \end{itemize} + +\end{frame} +%-------------------------------------------------------------% + +%-------------------------------------------------------------Slide +\setLayout{horizontal} +\begin{frame}{SaaS} + \footnotesize + + Παρέχεται στον καταναλωτή η δυνατότητα χρήσης εφαρμογών εκτελούμενων σε + μια υποδομή νέφους προσφερόμενη είτε από τον πάροχο νέφους είτε από + τρίτο μέρος. Οι εφαρμογές αυτές είναι προσβάσιμες, από διάφορες + συσκευές ικανές να συνδεθούν στο διαδίκτυο, μέσω φυλλομετρητή ή + προγραμματιστικής διεπαφής. Δεν προσφέρεται έλεγχος ή δυνατότητα + διαχείρισης της υποκείμενης υποδομής νέφους ή των δυνατοτήτων της + υπηρεσίας, με εξαίρεση περιορισμένη παραμετροποίηση κάποιων ρυθμίσεων + διαμόρφωσης της εφαρμογής. Το μοντέλο χρέωσης είθισται να είναι της + μορφής μιας σταθερής μηνιαίας ή ετήσιας συνδρομής χρησιμοποιώντας + βαθμίδες με διαφορετικά επίπεδα παροχής υπηρεσιών του λογισμικού. + +\end{frame} +%-------------------------------------------------------------% + +%-------------------------------------------------------------Slide +\setLayout{vertical} +\begin{frame}{PaaS} + \footnotesize + + Παρέχεται η δυνατότητα ανάπτυξης και εκτέλεσης εφαρμογών σε ένα + κατάλληλο περιβάλλον παρεχόμενο από μια πλατφόρμα που υποστηρίζεται από + πόρους του υπολογιστικού νέφους. Οι εφαρμογές αυτές αναπτύσσονται από + τον καταναλωτή μέσω της πλατφόρμας χρησιμοποιώντας ένα ολοκληρωμένο + περιβάλλον ανάπτυξης και εκτέλεσης αποτελούμενο από runtimes γλωσσών + προγραμματισμού, βιβλιοθήκες, υπηρεσίες και εργαλεία. Ο καταναλωτής δεν + έχει τον έλεγχο της υποκείμενης υποδομής νέφους, αλλά έχει τον έλεγχο + των εφαρμογών που εκτελούνται σε αυτήν, καθώς και των ρυθμίσεων + διαμόρφωσης τους και του περιβάλλοντος ανάπτυξης/εκτέλεσης τους. + Συνήθως, τα περιβάλλοντα είναι προκαθορισμένα ως προς το περιεχόμενο + τους αλλά γίνεται προσπάθεια από τους παρόχους των υπηρεσιών PaaS να + καλύψουν τις ανάγκες όλων των πιθανών ομάδων έργων λογισμικού σε σχέση + με τα διαφορετικά περιβάλλοντα που προσφέρονται. Το μοντέλο χρέωσης + υπηρεσιών PaaS συνήθως περιλαμβάνει μια σταθερή χρέωση ανά χρονική + περίοδο για κάθε είδος πόρου που χρειάστηκε να χρησιμοποιηθεί από τον + πάροχο για την επίτευξη των απαιτήσεων της εφαρμογής του καταναλωτή + μέσω της παρεχόμενης πλατφόρμας. Ουσιαστικά, ο καταναλωτής χρεώνεται με + βάση την χρήση των πόρων του παρόχου. + +\end{frame} +%-------------------------------------------------------------% + +%-------------------------------------------------------------Slide +\setLayout{horizontal} +\begin{frame}{IaaS} + \footnotesize + + Παρέχεται η δυνατότητα χρήσης επεξεργαστικών, αποθηκευτικών, δικτυακών + και άλλων υπολογιστικών πόρων. Συνήθως, οι πόροι αυτοί συγκροτούνται + στην μορφή μιας εικονικής μηχανής, δηλ. ενός απογυμνωμένου + περιβάλλοντος στο οποίο ο καταναλωτής μπορεί να εγκαταστήσει και να + εκτελέσει το λογισμικό της επιλογής του, συμπεριλαμβανομένων + λειτουργικών συστημάτων και εφαρμογών. Ο καταναλωτής δεν έχει τον + έλεγχο της υποκείμενης υποδομής νέφους, αλλά έχει τον έλεγχο των + λειτουργικών συστημάτων, του αποθηκευτικού χώρου, των περιβαλλόντων + ανάπτυξης/εκτέλεσης, των εγκατεστημένων εφαρμογών και των ρυθμίσεων + διαμόρφωσης τους. Το μοντέλο χρέωσης υπηρεσιών IaaS συνήθως αποτελείται + από μια συνεχόμενη χρέωση ανά χρονική περίοδο λόγω της ανάθεσης των + πόρων στον καταναλωτή, η οποία αυξάνεται μετά την υπέρβαση ενός ορίου + χρήσης για ορισμένους πόρους όπως το εύρος ζώνης δικτύου. + +\end{frame} +%-------------------------------------------------------------% + +%-------------------------------------------------------------Slide +\subsection{Εικονικοποίηση} +\begin{frame}{Εικονικοποίηση} + + \begin{ex} + + Σύμφωνα με τον ορισμό της Red Hat, η εικονικοποίηση είναι μια + τεχνολογία που μας επιτρέπει να δημιουργήσουμε πολλαπλά εικονικά + περιβάλλοντα ή αποκλειστικούς πόρους από ένα μόνο, φυσικό σύστημα + υλικού. Ένα λογισμικό ονόματι υπερ-επόπτης (hypervisor) συνδέεται στο + υλικό αυτό και δίνει τη δυνατότητα διαμερισμού ενός συστήματος σε + ξεχωριστά, διακριτά και ασφαλή περιβάλλοντα, γνωστά και ως εικονικές + μηχανές (Virtual Machines - VMs). + + \end{ex} + +\end{frame} +%-------------------------------------------------------------% + +%-------------------------------------------------------------Slide +\setLayout{vertical} +\subsubsection{Υπερ-επόπτης} +\begin{frame}{Υπερ-επόπτης} + + \begin{ex} + + Πρόκειται για μια στρώση λογισμικού που καθιστά δυνατή την εκτέλεση + πολλαπλών λειτουργικών συστημάτων, το ένα δίπλα στο άλλο, μοιράζοντας + τους ίδιους φυσικούς πόρους σε κάθε ένα από αυτά. Η πράξη αυτή + ονομάζεται εικονικοποίηση και τα στιγμιότυπα των λειτουργικών + συστημάτων λέγονται εικονικές μηχανές και αντιπροσωπεύουν προσομοιώσεις + φυσικών υπολογιστών. + + \end{ex} + + \begin{block}{Τύποι Υπερ-επόπτη} + + \begin{itemize} + \item Υπερ-επόπτης Τύπου 1 (Bare Metal) + \item Υπερ-επόπτης Τύπου 2 (Hosted) + \end{itemize} + + \end{block} + +\end{frame} +%-------------------------------------------------------------% + +%-------------------------------------------------------------Slide +\setLayout{horizontal} +\begin{frame}{Τύπου 1} + \footnotesize + + Ένας υπερ-επόπτης τύπου 1 εκτελείται απευθείας στο φυσικό υλικό του + υποκείμενου υπολογιστή, αλληλεπιδρώντας άμεσα με την κεντρική μονάδα + επεξεργασίας, τη μνήμη και το φυσικό αποθηκευτικό χώρο. Για το λόγο + αυτό, οι υπερ-επόπτες τύπου 1 αναφέρονται επίσης ως bare-metal + υπερ-επόπτες και αντικαθιστούν το λειτουργικό σύστημα του κεντρικού + υπολογιστή. Η άμεση πρόσβαση στο φυσικό υλικό, τους καθιστά ιδιαίτερα + αποδοτικούς. Παρ’ όλα αυτά, επειδή αντικαθιστούν το ΛΣ, προκειμένου να + μπορούν να αξιοποιηθούν απομακρυσμένα, συχνά απαιτείται μια ξεχωριστή + μηχανή στην οποία θα εκτελείται λογισμικό διαχείρισης εικονικών + πόρων10, μέσω του οποίου προσφέρεται μια διεπαφή για τον έλεγχο των + εικονικών μηχανών και του υλικού του κεντρικού υπολογιστή. + +\end{frame} +%-------------------------------------------------------------% + +%-------------------------------------------------------------Slide +\begin{frame}{Τύπου 2} + \footnotesize + + Ένας υπερ-επόπτης τύπου 2 δεν εκτελείται απευθείας στο υποκείμενο + υλικό. Αντ’ αυτού, εκτελείται ως εφαρμογή σε ένα υπάρχον λειτουργικό + σύστημα. Η χρήση τους δε συνηθίζεται σε περιβάλλοντα με πολλούς + διακομιστές λόγω της καθυστέρησης που εισάγεται εξαιτίας της συνεχούς + επικοινωνίας του με το ΛΣ φιλοξενίας και επειδή το υποκείμενο αυτό ΛΣ + βάζει σε προτεραιότητα τις δικές του εφαρμογές και λειτουργίες έναντι + αυτών του υπερ-επόπτη. + +\end{frame} +%-------------------------------------------------------------% + +%-------------------------------------------------------------Slide +\setLayout{horizontal} +\subsubsection{Γραφική Αναπαράσταση} +\begin{frame}{Αναπαράσταση Εικονικοποίησης} + \footnotesize + \begin{columns} + \column{0.5\textwidth} + \justifying + + Με βάση ένα παράδειγμα της Red Hat, ας φανταστούμε πως έχουμε τρεις + διακομιστές, στον καθένα από τους οποίους έχει ανατεθεί ένας + συγκεκριμένος σκοπός. Ένας διακομιστής ηλεκτρονικού ταχυδρομείου, + ένας διακομιστής ιστού και ένας που εκτελεί εσωτερικές εταιρικές + εφαρμογές οι οποίες σταμάτησαν να διατηρούνται αλλά είναι ακόμα + λειτουργικές. Στο συγκεκριμένο παράδειγμα κάθε ένας από τους + διακομιστές χρησιμοποιεί μονάχα το 30\% των δυνατοτήτων του. + + \column{0.5\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}{Αναπαράσταση Εικονικοποίησης} + \footnotesize + \begin{columns} + \column{0.5\textwidth} + \justifying + + Εφόσον ένας διακομιστής χωρίζεται σε δύο ή παραπάνω εικονικά μέρη, + μπορεί να αυξηθεί ραγδαία η αξιοποίηση των δυνατοτήτων του. Με βάση + το προηγούμενο παράδειγμα, αν μια εικονική μηχανή λαμβάνει το 30\% + των πόρων ενός διακομιστή, τότε και οι τρεις προαναφερόμενες + λειτουργικότητες θα μπορούσαν να εγκατασταθούν στον ίδιο διακομιστή + με την μορφή τριών διαφορετικών εικονικών μηχανημάτων, αντίστοιχα. + + \column{0.5\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 +\subsubsection{Πλεονεκτήματα Εικονικοποίησης} +\begin{frame}{Πλεονεκτήματα Εικονικοποίησης} + + \begin{itemize} + \item<1-> Αποδοτικότητα πόρων + \item<2-> Ευκολότερη διαχείριση + \item<3-> Ελάχιστος χρόνος διακοπής λειτουργίας + \item<4-> Ταχύτερη παροχή + \end{itemize} + +\end{frame} +%-------------------------------------------------------------% + +%-------------------------------------------------------------Slide +\setLayout{vertical} +\section{Ασφάλεια στην εικονικοποίηση} +\begin{frame}{Ασφάλεια στην εικονικοποίηση} + \footnotesize + + Η χρήση της εικονικοποίησης παρέχει αρκετά εγγενή οφέλη ασφαλείας με + την μορφή μέτρων ανάκαμψης από επιθέσεις. Ένα σημαντικό αυτών, είναι η + ικανότητα επαναφοράς εικονικών μηχανών που έχουν μολυνθεί με κακόβουλο + λογισμικό σε μια χρονική περίοδο πριν τη μόλυνση τους. Αυτό + επιτυγχάνεται μέσω της δυνατότητας δημιουργίας στιγμιοτύπων εικονικών + μηχανών, η οποία παρέχεται από τον υπερ-επόπτη. Επιπρόσθετα, μπορεί + εύκολα να πραγματοποιηθεί διαγραφή και αναδημιουργία τους με έναν + αυτοματοποιημένο τρόπο, σε περίπτωση που η επαναφορά σε προηγούμενη + χρονική περίοδο για οποιονδήποτε λόγο δεν είναι εφικτή. Αυτή η λύση + μπορεί να εφαρμοστεί χωρίς αρνητικές επιπτώσεις εάν τα δεδομένα της + εικονικής μηχανής είτε δεν μας ενδιαφέρουν, είτε βρίσκονται σε + διαφορετική τοποθεσία επειδή γίνεται χρήση εικονικοποίησης αποθήκευσης, + είτε υπάρχουν αντίγραφα ασφαλείας τους. Αυτές οι λειτουργίες είναι + αρκετές φορές αδύνατο να εφαρμοστούν σε ένα φυσικό μηχάνημα διότι το + κακόβουλο λογισμικό συχνά μπορεί να είναι βαθιά ριζωμένο στα βασικά + συστατικά του συστήματος. Επιπλέον, ακόμα και αν το κακόβουλο λογισμικό + ήταν σε θέση να εξαφανιστεί με μια επαναφορά, κάτι τέτοιο θα χρειαζόταν + σημαντικά περισσότερο χρόνο για να διεκπεραιωθεί σε ένα φυσικό μηχάνημα + συγκριτικά με μια εικονική μηχανή. + +\end{frame} +%-------------------------------------------------------------% + +%-------------------------------------------------------------Slide +\setLayout{horizontal} +\begin{frame}{Απειλές στην εικονικοποίηση} + \footnotesize + + Όλες οι μορφές εικονικοποίησης είναι ευάλωτες σε επιθέσεις. Πολλές + φορές δε δύναται ο υπερ-επόπτης, το λειτουργικό σύστημα ή ακόμα και + η υπηρεσία ελέγχου πρόσβασης (Mandatory Access Control) του Linux + να ανταπεξέλθουν στις απαιτήσεις ασφαλείας όλων των εφαρμογών. + +\end{frame} +%-------------------------------------------------------------% + +%-------------------------------------------------------------Slide +\setLayout{vertical} +\begin{frame}{Απειλές στην εικονικοποίηση} + % \scriptsize + \tiny % to overcome hbox error + + \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} + +\end{frame} +%-------------------------------------------------------------% + +%-------------------------------------------------------------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[red!70!black] on (0.88,0.15) 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} +%-------------------------------------------------------------% + +%-------------------------------------------------------------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] + \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{figure} + \centering + \begin{subfigure}{0.4\textwidth} + \centering + \includegraphics[height=3cm]{lib/logos/logo_bb.png} + \end{subfigure} + \qquad + \begin{subfigure}{0.4\textwidth} + \centering + \includegraphics[height=3cm]{lib/logos/secdep_logo.png} + \end{subfigure} + \end{figure} + \end{columns} +\end{frame} +%-------------------------------------------------------------% + +%-------------------------------------------------------------Slide +\setLayout{titlepage} +\setBGColor{DarkGray} +% \frame[plain,noframenumbering]{\titlepage} % both needed to remove numbering +\begin{frame}[plain,noframenumbering] + % \vspace{15pt} % good enough to not interfere with the background + \vspace{1.5cm} % same height as the default + \begin{columns} % by default it is not exactly in the middle + \column{\textwidth} + \titlepage + \end{columns} +\end{frame} +%-------------------------------------------------------------% + +\end{document} diff --git a/beamerthemeUfg.sty b/beamerthemeUfg.sty new file mode 100644 index 0000000..8197173 --- /dev/null +++ b/beamerthemeUfg.sty @@ -0,0 +1,256 @@ +\ProvidesPackage{beamerthemeUfg}[2019/10/15] +\usepackage{tikz} + +\usetikzlibrary{spy} + +\usepackage{array} +\usepackage{ifthen} +\usepackage{colortbl} +\usepackage{adjustbox} + +\mode +\usefonttheme[onlymath]{serif} + +\definecolor{INFBlue}{RGB}{0,92,161} +\definecolor{UFGBlue}{RGB}{0,114,185} +\definecolor{PrimaryColor}{RGB}{33,33,33} + +\definecolor{DarkGray}{RGB}{33,33,33} +\definecolor{LightGray}{RGB}{150,150,150} +\definecolor{Ocean}{RGB}{129,194,234} +\definecolor{DarkOrange}{RGB}{255,152,0} +\definecolor{LightOrange}{RGB}{255,193,7} +\definecolor{DarkGreen}{RGB}{91,141,8} +\definecolor{LightGreen}{RGB}{122,188,12} +\definecolor{LightPurple}{RGB}{191,83,219} +\definecolor{DarkPurple}{RGB}{142,36,170} +\definecolor{VeryLightGray}{RGB}{249,249,249} + +\newcommand{\setPrimaryColor}[1]{ + \colorlet{PrimaryColor}{#1} +} + +\newcommand{\setLogos}[2]{ + \pgfdeclareimage[height=18mm]{logo1_title}{#1} + \pgfdeclareimage[height=12mm]{logo2_small}{#2} + \pgfdeclareimage[width=20mm]{logo2_medium}{#2} + + % set UFG logo + \pgfdeclareimage[height=25mm]{logo3}{lib/logos/secdep_logo.png} +} + +\newcommand{\setDefaultConfig}{ + \color{DarkGray} %Primary + \setbeamercolor{bgcolor}{fg=PrimaryColor} + \setbeamercolor{normal}{fg=DarkGray} + \setbeamercolor{title}{fg=DarkGray} + \setbeamercolor{frametitle}{fg=DarkGray} + \setbeamercolor{structure}{fg=PrimaryColor} + \setbeamercolor{normal text}{fg=DarkGray,bg=white} + \setbeamercolor{section number projected}{bg=PrimaryColor,fg=white} + \setbeamercolor{itemize item}{fg=DarkGray} + \setbeamercolor{itemize subitem}{fg=DarkGray} + \setbeamercolor{itemize subsubitem}{fg=DarkGray} + \setbeamercolor{itemize subbody}{fg=DarkGray} + \setbeamercolor{itemize/enumerate body}{fg=DarkGray} + \setbeamercolor{itemize/enumerate subbody}{fg=DarkGray} + \setbeamercolor{itemize/enumerate subsubbody}{fg=DarkGray} + \setbeamercolor{alerted text}{fg=DarkOrange} + \setbeamercolor{example text}{fg=DarkGreen} + \setbeamercolor{block title}{fg=PrimaryColor} + \setbeamertemplate{frametitle}{\vbox{}\hskip -0.5ex \vskip -3ex \strut\insertframetitle\strut} +} + +\newcommand{\setWhiteConfig}{ + \color{white} + \setbeamercolor{normal}{fg=white} + \setbeamercolor{frametitle}{fg=white} + \setbeamercolor{structure}{fg=white} + \setbeamercolor{normal text}{fg=white,bg=white} + \setbeamercolor{section number projected}{bg=white,fg=white} + \setbeamercolor{frametitle}{fg=white} + \setbeamercolor{itemize item}{fg=white} + \setbeamercolor{itemize subitem}{fg=white} + \setbeamercolor{itemize subsubitem}{fg=white} + \setbeamercolor{itemize/enumerate body}{fg=white} + \setbeamercolor{itemize/enumerate subbody}{fg=white} + \setbeamercolor{itemize/enumerate subsubbody}{fg=white} + \setbeamertemplate{frametitle}{\vbox{}\hskip -0.5ex \vskip -3ex \strut\insertframetitle\strut} +} + +\setDefaultConfig + +%----------------------------------------Formatting beamer elements +\setbeamerfont{alerted text}{series=\bfseries} +\setbeamerfont{block title}{series=\bfseries} + +% \setbeamertemplate{section in toc}[square] + +% \setbeamertemplate{section in toc}{% +% {\inserttocsectionnumber.}~\inserttocsection +% } + +\setbeamertemplate{section in toc}{\textcolor{structure.fg}{$\blacktriangleright$}\hspace{0.5 em}\inserttocsection} + +\setbeamertemplate{subsection in toc}[square] + +% \setbeamertemplate{subsection in toc}{% +% \hspace{1.2em}{\rule[0.3ex]{3pt}{3pt}}~\inserttocsubsection\par +% } + +% \setbeamertemplate{subsection in toc}{\textcolor{structure.fg}{$\blacktriangleright$}\hspace{1.2 em}\inserttocsubsectionnumber.~\inserttocsubsection \\} + +\setbeamertemplate{itemize item}{\scriptsize\raise1.25pt\hbox{\large\donotcoloroutermaths$\bullet$}} +\setbeamertemplate{itemize subitem}{\tiny\raise1.5pt\hbox{\donotcoloroutermaths$\circ$}} +\setbeamertemplate{itemize subsubitem}{\tiny\raise1.5pt\hbox{\donotcoloroutermaths$\blacksquare$}} + +\setbeamertemplate{frametitle}{ + \vbox{}\hskip -0.5ex \vskip -3ex \strut\insertframetitle\strut +} +\setbeamerfont{frametitle}{size=\LARGE, series=\bfseries} + +\setbeamertemplate{footline}{ + \ifnum \insertpagenumber > 1 + \raisebox{7pt}[0pt][0pt]{ + \makebox[\paperwidth]{\hfill\makebox[30pt]{\bfseries\scriptsize\insertframenumber/\inserttotalframenumber}} + } + \fi +} + +\defbeamertemplate{footline}{ftln}{} + +% WORKING ON BLOCKS +\setbeamertemplate{navigation symbols}{} + +\setbeamertemplate{block begin}{ + \vspace{\fill} + \begin{adjustbox}{max width=0.98\textwidth, trim=0 2ex 0 0,clip} + \begin{tabular}{!{\color{PrimaryColor}{\vrule width 4pt}}>{\columncolor[gray]{0.97}}m{\textwidth}} + \begin{beamercolorbox}{block title} \usebeamerfont*{block title} \vbox{}\vskip 0.2ex \insertblocktitle \end{beamercolorbox}\usebeamerfont*{block text} + } +\setbeamertemplate{block end}{\end{tabular}\end{adjustbox}} + +\setbeamertemplate{block alerted begin}{ + \vspace{\fill} + \begin{adjustbox}{max width=0.98\textwidth, trim=0 2ex 0 0,clip} + \begin{tabular}{!{\color{DarkOrange}{\vrule width 4pt}}>{\columncolor[gray]{0.97}}m{\textwidth}} + \begin{beamercolorbox}{alerted text} \usebeamerfont*{block title} \vbox{}\vskip 0.2ex \insertblocktitle \end{beamercolorbox}\usebeamerfont*{block text} + } +\setbeamertemplate{block alerted end}{\end{tabular}\end{adjustbox}} + +\setbeamertemplate{block example begin}{ + \vspace{\fill} + \begin{adjustbox}{max width=0.98\textwidth, trim=0 2ex 0 0,clip} + \begin{tabular}{!{\color{DarkGreen}{\vrule width 4pt}}>{\columncolor[gray]{0.97}}m{\textwidth}} + \begin{beamercolorbox}{example text} \usebeamerfont*{block title} \vbox{}\vskip 0.2ex \insertblocktitle \end{beamercolorbox}\usebeamerfont*{block text} + } +\setbeamertemplate{block example end}{\end{tabular}\end{adjustbox}} + +\setbeamersize{text margin left=0.05\textwidth} +\setbeamersize{text margin right=0.15\textwidth} +\setbeamercolor{bgcolor}{bg=PrimaryColor} + +% ----------------------------------Define layouts backgrounds +\pgfdeclareimage[width=\paperwidth]{vertical}{lib/layouts/vertical_bg.pdf} +\pgfdeclareimage[width=\paperwidth]{horizontal}{lib/layouts/horizontal_bg.pdf} +\pgfdeclareimage[width=\paperwidth]{titlepage}{lib/layouts/intro_bg.pdf} +\pgfdeclareimage[width=\paperwidth]{transparent}{lib/layouts/title_bg.pdf} + +% ----------------------------------Defining the layouts +\newcommand{\titleLayout}{ + \usebackgroundtemplate{ + % \begin{picture}(100,256)(-15,0) % ideal position to not interfere with a centered title + \begin{picture}(100,256)(0,0) + \put(0,0){ + \begin{beamercolorbox}[wd=1.1\paperwidth,ht=\paperheight]{bgcolor}\end{beamercolorbox} + } + \put(0,0){\pgfuseimage{titlepage}} + \put(12,3){\pgfuseimage{logo1_title}} + \put(340,25){\pgfuseimage{logo3}} + \end{picture} + } + \setbeamerfont{title}{series=\bfseries,parent=structure} + \setbeamerfont{subtitle}{size=\scriptsize,series=\bfseries,parent=structure} + \setbeamerfont{author}{size=\small,series=\bfseries,parent=structure} + \setbeamerfont{institute}{size=\scriptsize,series=\mdseries,parent=structure} + \setbeamerfont{date}{size=\scriptsize,series=\bfseries,parent=structure} +} + +\newcommand{\horizontal}{ + \usebackgroundtemplate{ + \begin{picture}(100,256)(0,0) + \put(0,0){ + \begin{beamercolorbox}[wd=1.1\paperwidth,ht=\paperheight]{bgcolor}\end{beamercolorbox} + } + \put(0,0){\pgfuseimage{horizontal}} + \put(-2,1){\pgfuseimage{logo2_small}} + \end{picture} + } + \setDefaultConfig +} + +\newcommand{\vertical}{ + \usebackgroundtemplate{ + \begin{picture}(100,256)(0,0) + \put(0,0){ + \begin{beamercolorbox}[wd=1.1\paperwidth,ht=\paperheight]{bgcolor}\end{beamercolorbox} + } + \put(0,0){\pgfuseimage{vertical}} + \put(400,205){\pgfuseimage{logo2_medium}} + \end{picture} + } + \setDefaultConfig +} + +\newcommand{\blank}{ + \usebackgroundtemplate{ + \begin{picture}(100,256)(0,0) + \begin{beamercolorbox}[wd=1.1\paperwidth,ht=\paperheight]{bgcolor}\end{beamercolorbox} + \end{picture} + } + \setWhiteConfig +} + +\newcommand{\mainpoint}{ + \usebackgroundtemplate{ + \begin{picture}(100,256)(0,0) + \put(0,0){ + \begin{beamercolorbox}[wd=1.1\paperwidth,ht=\paperheight]{bgcolor}\end{beamercolorbox} + } + \put(0,0){\pgfuseimage{transparent}} + % Put the frame title in the middle of page + \put(160,115){ + \begin{tabular}{m{0.7\textwidth}} + \begin{flushleft} + \selectfont \Huge \bfseries \insertframetitle + \end{flushleft} + \end{tabular} + } + \put(150,80){ + \begin{tikzpicture} + \fill[white] (0,0) rectangle (0.2,3); + \end{tikzpicture} + } + \end{picture} + } + \setWhiteConfig + \setbeamertemplate{frametitle}{} +} + +\titleLayout + +% --------------------------------------------% +% Defining command to control slide's changes +% --------------------------------------------% + +\newcommand{\setBGColor}[1]{ + \setbeamercolor{bgcolor}{bg=#1} +} + +\newcommand{\setLayout}[1]{ + \ifthenelse{\equal{#1}{titlepage}}{\titleLayout}{} + \ifthenelse{\equal{#1}{vertical}}{\vertical}{} + \ifthenelse{\equal{#1}{horizontal}}{\horizontal}{} + \ifthenelse{\equal{#1}{mainpoint}}{\mainpoint}{} + \ifthenelse{\equal{#1}{blank}}{\blank}{} +} diff --git a/lib/figures/Scans/Lynis/Lynis_Hardening_Index.png b/lib/figures/Scans/Lynis/Lynis_Hardening_Index.png new file mode 100644 index 0000000..7c4f280 Binary files /dev/null and b/lib/figures/Scans/Lynis/Lynis_Hardening_Index.png differ diff --git a/lib/figures/ThreatsOnVirtualization/enisaThreats.jpg b/lib/figures/ThreatsOnVirtualization/enisaThreats.jpg new file mode 100644 index 0000000..06a19aa Binary files /dev/null and b/lib/figures/ThreatsOnVirtualization/enisaThreats.jpg differ diff --git a/lib/figures/Virtualization/redhat_virtualization_server_usage1.png b/lib/figures/Virtualization/redhat_virtualization_server_usage1.png new file mode 100644 index 0000000..dafb8bf Binary files /dev/null and b/lib/figures/Virtualization/redhat_virtualization_server_usage1.png differ diff --git a/lib/figures/Virtualization/redhat_virtualization_server_usage2.png b/lib/figures/Virtualization/redhat_virtualization_server_usage2.png new file mode 100644 index 0000000..e2ff9ad Binary files /dev/null and b/lib/figures/Virtualization/redhat_virtualization_server_usage2.png differ diff --git a/lib/logos/infb.png b/lib/logos/infb.png new file mode 100644 index 0000000..ba1cc23 Binary files /dev/null and b/lib/logos/infb.png differ diff --git a/lib/logos/infb2.png b/lib/logos/infb2.png new file mode 100644 index 0000000..4609e78 Binary files /dev/null and b/lib/logos/infb2.png differ diff --git a/lib/logos/infw.png b/lib/logos/infw.png new file mode 100644 index 0000000..a033422 Binary files /dev/null and b/lib/logos/infw.png differ diff --git a/lib/logos/infw2.png b/lib/logos/infw2.png new file mode 100644 index 0000000..f58ec83 Binary files /dev/null and b/lib/logos/infw2.png differ diff --git a/lib/logos/logo_aegean.png b/lib/logos/logo_aegean.png new file mode 100644 index 0000000..76de2fb Binary files /dev/null and b/lib/logos/logo_aegean.png differ diff --git a/lib/logos/logo_bb.png b/lib/logos/logo_bb.png new file mode 100644 index 0000000..66aeca3 Binary files /dev/null and b/lib/logos/logo_bb.png differ diff --git a/lib/logos/secdep_logo.png b/lib/logos/secdep_logo.png new file mode 100644 index 0000000..51ac6c8 Binary files /dev/null and b/lib/logos/secdep_logo.png differ diff --git a/lib/logos/ufgw.png b/lib/logos/ufgw.png new file mode 100644 index 0000000..eafa2a5 Binary files /dev/null and b/lib/logos/ufgw.png differ