thaleia-kavalierou
4 years ago
3 changed files with 464 additions and 0 deletions
Binary file not shown.
@ -0,0 +1,168 @@ |
|||||
|
= Ασφάλεια Δικτύων και Επικοινωνιών/ Εργαστήριο |
||||
|
|
||||
|
.Πληροφορίες |
||||
|
**** |
||||
|
Εργασία Εξαμήνου 2020-2021 + |
||||
|
Καβαλιέρου Θάλεια-Ελπίς (Α.Μ. 171009) + |
||||
|
Για περισσότερες πληροφορίες, ανατρέχετε στο link:README.pdf[README.pdf] |
||||
|
**** |
||||
|
|
||||
|
:toc: |
||||
|
|
||||
|
=== Το σύστημα διεξαγωγής των επιθέσεων |
||||
|
.Docker Swarm |
||||
|
**** |
||||
|
Για τις ανάγκες της άσκησης, υλοποιήθηκε ένα σμήνος από Docker Engines. Οι μηχανές του συστήματος ακολουθούν την αρχιτεκτονική που παρουσιάζεται στην εικόνα, με μία Manager Engine και ένα διαφορετικό αριθμό από Worker Engines για κάθε άσκηση. + |
||||
|
image:images/swarm-diagram.png[] |
||||
|
Πηγή: link:https://docs.docker.com/engine/swarm/how-swarm-mode-works/nodes/[Docker Docks] + |
||||
|
Για περισσότερες πληροφορίες, link:README.pdf#page=4[1.1 Το σύστημα διεξαγωγής των επιθέσεων] |
||||
|
**** |
||||
|
|
||||
|
=== DoS/DDoS |
||||
|
.Denial-of-Service Attack |
||||
|
**** |
||||
|
Ως επίθεση DoS προσδιορίζεται «η αποτροπή εγκεκριμένης πρόσβασης σε πόρους ή η καθυστέρηση χρονικά κρίσιμων λειτουργιών» |
||||
|
footnote:[NIST Glossary, link:https://csrc.nist.gov/glossary/term/DoS[], NIST SP 800-12 Rev.1 |
||||
|
]. Στην πορεία της άσκησης θα δούμε πώς, μία τέτοια επίθεση, μπορεί να αποκλείσει μία μηχανή του σμήνους από την εξυπηρέτηση αιτημάτων εγκεκριμένων χρηστών. + |
||||
|
Για περισσότερες πληροφορίες, link:README.pdf#page=3[1.0 Εισαγωγή] |
||||
|
**** |
||||
|
|
||||
|
Αρχικά, ερευνήθηκε το δίκτυο 172.19.0.0/16, για μηχανές ευπαθείς σε μία επίθεση DoS, με το σαρωτή δικτύων nmap |
||||
|
footnote:[https://nmap.org/[nmap]]. Από τη σάρωση βρέθηκε η μηχανή με IP 172.19.0.5, στην οποία έτρεχε μία υπηρεσία http στη port 80. |
||||
|
image:images/screenshots/DoS-DDoS/nmap_http.jpg[] |
||||
|
link:README.pdf#page=5[Περιγραφή στη σελίδα 5] |
||||
|
|
||||
|
Η επίθεση πραγματοποιήθηκε με τη βοήθεια του εργαλείου hping3 |
||||
|
footnote:[link:https://tools.kali.org/information-gathering/hping3[hping3]]. Μέσω αυτού, κατακλύστηκε η port 80 της μηχανής-στόχου με πακέτα SYN ( |
||||
|
link:README.pdf#page=7[1.2.1 Διεξαγωγή της επίθεσης]). |
||||
|
|
||||
|
.Three-Way Handshake |
||||
|
**** |
||||
|
Τα πακέτα SYN αποτελούν το πρώτο μέρος του three-way handshake του TCP. Όπως φαίνεται και στην εικόνα, προκειμένου να εγκαθιδρυθεί η επικοινωνία μεταξύ ενός client και ενός server, ανταλλάσσονται τα εξής πακέτα: SYN,SYN-ACK,ACK. Στην επίθεση DoS/SYN Flooding σκοπός είναι η αποστολή ενός τεράστιου αριθμού πακέτων SYN, αναγκάζοντας τον server να απαντήσει με πακέτα SYN-ACK, χωρίς την αποστολή των πακέτων ACK ώστε να ολοκληρωθεί η διαδικασία. + |
||||
|
image:images/TCP-three-way-handshake.png[] + |
||||
|
link:https://www.researchgate.net/figure/TCP-three-way-handshake_fig3_321698222[Πηγή Εικόνας] + |
||||
|
Για περισσότερες πληροφορίες, link:README.pdf#page=6[1.2 Η επίθεση DoS] |
||||
|
**** |
||||
|
Από την πλευρά της μηχανής-στόχου, ο εντοπισμός της επίθεσης έγινε με δύο εργαλεία. |
||||
|
|
||||
|
* Netstat |
||||
|
footnote:[https://en.wikipedia.org/wiki/Netstat[Wikipedia,Netstat]] + |
||||
|
Εντοπίστηκε συσσώρευση πακέτων SYN στην port 80, προερχόμενα από διαφορετικές διευθύνσεις IP. + |
||||
|
image:images/screenshots/DoS-DDoS/netstat.png[] + |
||||
|
link:README.pdf#page=7[1.2.2 Εντοπισμός της επίθεσης] |
||||
|
|
||||
|
* TCPdump |
||||
|
footnote:[https://www.tcpdump.org/[tcpdump]] |
||||
|
+ |
||||
|
Με το φίλτρο tcp[tcpflags] == tcp-syn επιβεβαιώθηκαν τα αποτελέσματα του netstat. + |
||||
|
image:images/screenshots/DoS-DDoS/tcpdump.png[] + |
||||
|
link:README.pdf#page=8[1.2.2 Εντοπισμός της επίθεσης] |
||||
|
|
||||
|
Αφοτου εντοπίστηκε η επίθεση, σχεδιάστηκαν τα αντίμετρα για την αντιμετώπιση της. Η εφαρμογή των αντιμέτρων έγινε με το iptables |
||||
|
footnote:[https://en.wikipedia.org/wiki/Iptables[Wikipedia,iptables]]. + |
||||
|
image:images/screenshots/DoS-DDoS/iptables_nvL.jpg[] |
||||
|
link:README.pdf#page=8[1.2.3 Αντιμετώπιση της επίθεσης] |
||||
|
|
||||
|
.Επιπλέον: Python/Scapy |
||||
|
**** |
||||
|
Πέραν του εργαλείου hping3, είναι εφικτό να πραγματοποιηθεί η επίθεση και με ένα αυτοσχέδιο εργαλείο, σε γλώσσα Python, με τη βιβλιοθήκη Scapy. Το πρόγραμμα μπορείτε να βρείτε στο φάκελο #DoS-DDoS/tools#. + |
||||
|
Για περισσότερες πληροφορίες, |
||||
|
link:README.pdf#page=10[1.2.4 Επιπλέον: Εργαλείο για την υλοποίηση της επίθεσης DoS με Python/Scapy] |
||||
|
**** |
||||
|
|
||||
|
Για την επίθεση DDoS αξιοποιήθηκε το εργαλείο ansible |
||||
|
footnote:[https://docs.ansible.com/ansible/latest/index.html[Ansible Documentation]]. Μέσω αυτού, ενορχηστρώθηκαν οι υπόλοιπες μηχανές του σμήνους, ώστε να διεξάγουν επιθέσεις DoS στη μηχανή-στόχο. |
||||
|
|
||||
|
.Distributed Denial-of-Service |
||||
|
**** |
||||
|
Οι επιθέσεις Distributed-DoS δεν είναι άλλο από επιθέσεις DoS, που διεξάγονται από πολυάριθμες πηγές. Κάθε πηγή στέλνει |
||||
|
ασταμάτητα και με μικρή συχνότητα πακέτα προς τον ίδιο στόχο επιτυγχάνοντας, έτσι, σημαντικότερα αποτελέσματα. + |
||||
|
Για περισσότερες πληροφορίες, |
||||
|
link:README.pdf#page=12[1.3 Η επίθεση DDoS] |
||||
|
**** |
||||
|
|
||||
|
Οι παραμετροποιήσεις για την αξιοποίηση του ansible, καθώς και το playbook με τις οδηγίες που ακολούθησαν οι μηχανές του σμήνους, βρίσκονται στο φάκελο #DoS-DDoS/ansible#. Η πλήρης ανάπτυξη του κώδικα, |
||||
|
link:README.pdf#page=13[1.3 Η επίθεση DDoS, σελ. 13]. |
||||
|
|
||||
|
=== SSH Brute Force Attack |
||||
|
.Secure Shell |
||||
|
**** |
||||
|
Το Secure Shell |
||||
|
footnote:[https://en.wikipedia.org/wiki/SSH_(Secure_Shell)[Wikipedia,SSH]] |
||||
|
, εν συντομία SSH, αποτελεί ένα ασφαλές πρωτόκολλο για τη δικτυακή επικοινωνία μεταξύ δύο μελών του ίδιου δικτύου. Μέσω του SSH, οι hosts μπορούν να εγκαθιδρύσουν ένα ασφαλές, κρυπτογραφημένο κανάλι ακολουθώντας την αρχιτεκτονική client-server. + |
||||
|
Για περισσότερες πληροφορίες, |
||||
|
link:README.pdf#page=14[2.Υλοποίηση συστήματος για την προσομοίωση SSH Brute Force Attack] |
||||
|
**** |
||||
|
|
||||
|
Μία επίθεση ωμής βίας στο πρωτόκολλο SSH αποπειράται να παραβιάσει τις αρχές ασφαλείας του και να επιτρέψει την πρόσβαση ενός κακόβουλου χρήστη στο υπολογιστικό σύστημα του ευπαθούς στόχου. + |
||||
|
Η προσομοίωση της επίθεσης έγινε με δύο τρόπους: με το Metasploit |
||||
|
footnote:[https://www.metasploit.com/[Metasploit]] |
||||
|
framework και με ένα αυτοσχέδιο εργαλείο (Python/Paramiko). |
||||
|
|
||||
|
* Metasploit + |
||||
|
Η επίθεση διεξήχθη από μία εικονική μηχανή με λειτουργικό Kali,Linux, προς την εικονική μηχανή Metasploitable. + |
||||
|
Για περισσότερες πληροφορίες, |
||||
|
link:README.pdf#page=15[2.1.1 Διεξαγωγή της επίθεσης με Metasploit] + |
||||
|
Από το framework, επιλέχθηκε το module scanner/ssh/ssh_login, το οποίο παραμετροποιήθηκε, όπως φαίνεται στην εικόνα που ακολουθεί. Επιπλέον, φαίνεται και το αποτέλεσμα με το τρέξιμο του module. + |
||||
|
image:images/screenshots/SSH-brute/Inkedmetasploit_LI.jpg[] + |
||||
|
link:README.pdf#page=16[2.1.1 Διεξαγωγή της επίθεσης με Metasploit, σελ. 16] |
||||
|
|
||||
|
* Python/Paramiko + |
||||
|
Αξιοποιώντας τη βιβλιοθήκη Paramiko, η λειτουργικότητα της οποίας αφορά την εγκαθίδρυση καναλιών επικοινωνίας με το πρωτόκολλο SSH, σχεδιάστηκε το πρόγραμμα που μπορείτε να βρείτε στο #SSH-Brute-Force/tools#. Είχε τα ίδια αποτελέσματα με αυτά του Metasploit. + |
||||
|
image:images/screenshots/SSH-brute/ssh-brute-paramiko.png[] + |
||||
|
link:README.pdf#page=16[2.1.2 Διεξαγωγή της επίθεσης με εργαλείο Python/Paramiko] |
||||
|
|
||||
|
.Επιπλέον: Αξιοποίηση του σμήνους |
||||
|
**** |
||||
|
Η επίθεση, που παρουσιάστηκε στις προηγούμενες ενότητες, πραγματοποιήθηκε με ένα μικρό, σε έκταση, αρχείο. Σε μία πραγματική επίθεση θα χρειαζόμασταν ένα με δεκάδες, και ίσως εκατοντάδες, γραμμές από πιθανούς κωδικούς πρόσβασης. Η επίθεση, τότε, θα χρειαζόταν αρκετό χρόνο, μέχρι να βρει το σωστό κωδικό. + |
||||
|
Από τη στιγμή, όμως, που έχουμε στη διάθεση μας ένα σμήνος από μηχανές, είναι δυνατό να εκτελεστεί η επίθεση εκ μέρους κάθε μέλους του. Σε αυτή την ενότητα, αξιοποιήθηκε ένα σμήνος από 15 Docker Engines όπου, η κάθε μηχανή ερευνούσε διαφορετικούς πιθανούς κωδικούς ενός αρχείου 1557 γραμμών. + |
||||
|
Η πλήρης παρουσίαση της επίθεσης, |
||||
|
link:README.pdf#page=19[2.1.3 Επιπλέον: Αξιοποίηση του Docker swarm]. |
||||
|
**** |
||||
|
|
||||
|
Σε κάθε περίπτωση, η επίθεση αντιμετωπίστηκε, αρχικά, με το Fail2ban |
||||
|
footnote:[https://www.fail2ban.org/wiki/index.php/Main_Page[Fail2ban]]. Για τον επιτυχή αποκλεισμό των κακόβουλων χρηστών, έγιναν οι ακόλουθες παραμετροποιήσεις του αρχείου #jail.local#. + |
||||
|
image:images/screenshots/SSH-brute/config.png[] + |
||||
|
link:README.pdf#page=23[2.2 Αντιμετώπιση της επίθεσης με Fail2ban] |
||||
|
|
||||
|
Ωστόσο, η καλύτερη τακτική για την εξασφάλιση του SSH είναι η απενεργοποίηση της επιλογής εισόδου με κωδικό πρόσβασης. + |
||||
|
image:images/screenshots/SSH-brute/pass_no.png[] + |
||||
|
link:README.pdf#page=24[2.3 Εγκαθίδρυση καναλιού μόνο με key] + |
||||
|
Με τη ρύθμιση που προηγήθηκε, η εγκαθίδρυση των καναλιών SSH θα γίνεται μόνο με ένα ζεύγος κλειδιών. Με τη βοήθεια της εργαλειοθήκης του OpenSSH μπορεί να παραχθεί ένα κατάλληλο ζεύγος, τρέχοντας την εντολή #ssh-keygen#. |
||||
|
|
||||
|
=== Local/Remote Port Forwarding |
||||
|
|
||||
|
.SSH Port Forwarding |
||||
|
**** |
||||
|
Ο μηχανισμός SSH Fort Porwarding δημιουργεί ένα SSH Tunnel, το οποίο προσδίδει αξιοπιστία στην επικοινωνία μεταξύ υπολογιστικών συστημάτων χάρη στην κρυπτογράφηση που παρέχει το πρωτόκολλο SSH. Μπορεί να πραγματοποιηθεί με τρεις τρόπους: τοπικά (Local Port |
||||
|
Forwarding), απομακρυσμένα (Remote Port Forwarding) ή δυναμικά (Dynamic Port Forwarding). + |
||||
|
image:images/port_forwarding.png[] + |
||||
|
link:https://www.ssh.com/ssh/tunneling/[Πηγή Εικόνας] + |
||||
|
Για περισσότερες πληροφορίες, |
||||
|
link:README.pdf#page=25[3. Δημιουργία Local/Remote SSH Forwarding για την παροχή υπηρεσιών στο σμήνος] |
||||
|
**** |
||||
|
|
||||
|
* Local Port Forwarding + |
||||
|
Η δημιουργία του tunnel έγινε μεταξύ της Manager Engine και της Worker Engine με IP 172.19.0.5. Σκοπός, η πρόσβαση του πίνακα example5 της βάσης δεδομένων που έτρεχε στη δεύτερη. + |
||||
|
image:images/screenshots/SSH-tunnel/local.png[Η εντολή] + |
||||
|
image:images/screenshots/SSH-tunnel/database_tunnel.png[Σύνδεση στη βάση δεδομένων του απομακρυσμένου χρήστη] + |
||||
|
link:README.pdf#page=25[3.1 Δημιουργία Local Port Forwarding] + |
||||
|
|
||||
|
* Remote Port Forwarding + |
||||
|
Με ελάχιστες διαφορές, δημιουργήθηκε και ένα tunnel με τη μέθοδο Remote Port Forwarding + |
||||
|
image:images/screenshots/SSH-tunnel/remote.png[] + |
||||
|
link:README.pdf#page=27[3.2 Δημιουργία Remote Port Forwarding] + |
||||
|
|
||||
|
=== Δημιουργία VPN στο σμήνος |
||||
|
|
||||
|
.VPN |
||||
|
**** |
||||
|
Τα Εικονικά Ιδιωτικά Δίκτυα(VPN, Virtual Private Networks) αποτελούν μία τεχνολογία για τη διασύνδεση υπολογιστικών συστημάτων με ασφαλείς μεθόδους. Επιλύουν ζητήματα επέκτασης των ιδιωτικών δικτύων, χωρίς να είναι κοστοβόρα ή να υστερούν σε ασφάλεια. |
||||
|
Για περισσότερες πληροφορίες, |
||||
|
link:README.pdf#page=28[4. Δημιουργία VPN στο σμήνος] |
||||
|
**** |
||||
|
|
||||
|
Η δημιουργία του VPN έγινε βάσει των οδηγιών |
||||
|
link:http://docs.swarmlab.io/SwarmLab-HowTos/labs/sec/ex-5_iptables.adoc.html[]. + |
||||
|
Τα αρχεία που δημιουργήθηκαν από την περάτωση της διαδικασίας, εκτός του φακέλου pki, βρίσκονται στο #swarmVPN/vpn-files#. Τα βήματα παρουσιάζονται, αναλυτικά, στο |
||||
|
link:README.pdf#page=28[4. Δημιουργία |
@ -0,0 +1,296 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<meta name="generator" content="Asciidoctor 2.0.10"> |
||||
|
<title>Ασφάλεια Δικτύων και Επικοινωνιών/ Εργαστήριο</title> |
||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/asciidoctor.js/1.5.9/css/asciidoctor.min.css"> |
||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css"> |
||||
|
</head> |
||||
|
<body class="article"> |
||||
|
<div id="header"> |
||||
|
<h1>Ασφάλεια Δικτύων και Επικοινωνιών/ Εργαστήριο</h1> |
||||
|
</div> |
||||
|
<div id="content"> |
||||
|
<div id="preamble"> |
||||
|
<div class="sectionbody"> |
||||
|
<div class="sidebarblock"> |
||||
|
<div class="content"> |
||||
|
<div class="title">Πληροφορίες</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Εργασία Εξαμήνου 2020-2021<br> |
||||
|
Καβαλιέρου Θάλεια-Ελπίς (Α.Μ. 171009)<br> |
||||
|
Για περισσότερες πληροφορίες, ανατρέχετε στο <a href="README.pdf">README.pdf</a></p> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="sect2"> |
||||
|
<h3 id="_το_σύστημα_διεξαγωγής_των_επιθέσεων">1. Το σύστημα διεξαγωγής των επιθέσεων</h3> |
||||
|
<div class="sidebarblock"> |
||||
|
<div class="content"> |
||||
|
<div class="title">Docker Swarm</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Για τις ανάγκες της άσκησης, υλοποιήθηκε ένα σμήνος από Docker Engines. Οι μηχανές του συστήματος ακολουθούν την αρχιτεκτονική που παρουσιάζεται στην εικόνα, με μία Manager Engine και ένα διαφορετικό αριθμό από Worker Engines για κάθε άσκηση.<br> |
||||
|
<span class="image"><img src="images/swarm-diagram.png" alt="swarm diagram"></span> |
||||
|
Πηγή: <a href="https://docs.docker.com/engine/swarm/how-swarm-mode-works/nodes/">Docker Docks</a><br> |
||||
|
Για περισσότερες πληροφορίες, <a href="README.pdf#page=4">1.1 Το σύστημα διεξαγωγής των επιθέσεων</a></p> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="sect2"> |
||||
|
<h3 id="_dosddos">2. DoS/DDoS</h3> |
||||
|
<div class="sidebarblock"> |
||||
|
<div class="content"> |
||||
|
<div class="title">Denial-of-Service Attack</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Ως επίθεση DoS προσδιορίζεται «η αποτροπή εγκεκριμένης πρόσβασης σε πόρους ή η καθυστέρηση χρονικά κρίσιμων λειτουργιών» |
||||
|
<sup class="footnote">[<a id="_footnoteref_1" class="footnote" href="#_footnotedef_1" title="View footnote.">1</a>]</sup>. Στην πορεία της άσκησης θα δούμε πώς, μία τέτοια επίθεση, μπορεί να αποκλείσει μία μηχανή του σμήνους από την εξυπηρέτηση αιτημάτων εγκεκριμένων χρηστών.<br> |
||||
|
Για περισσότερες πληροφορίες, <a href="README.pdf#page=3">1.0 Εισαγωγή</a></p> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Αρχικά, ερευνήθηκε το δίκτυο 172.19.0.0/16, για μηχανές ευπαθείς σε μία επίθεση DoS, με το σαρωτή δικτύων nmap |
||||
|
<sup class="footnote">[<a id="_footnoteref_2" class="footnote" href="#_footnotedef_2" title="View footnote.">2</a>]</sup>. Από τη σάρωση βρέθηκε η μηχανή με IP 172.19.0.5, στην οποία έτρεχε μία υπηρεσία http στη port 80. |
||||
|
<span class="image"><img src="images/screenshots/DoS-DDoS/nmap_http.jpg" alt="nmap http"></span> |
||||
|
<a href="README.pdf#page=5">Περιγραφή στη σελίδα 5</a></p> |
||||
|
</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Η επίθεση πραγματοποιήθηκε με τη βοήθεια του εργαλείου hping3 |
||||
|
<sup class="footnote">[<a id="_footnoteref_3" class="footnote" href="#_footnotedef_3" title="View footnote.">3</a>]</sup>. Μέσω αυτού, κατακλύστηκε η port 80 της μηχανής-στόχου με πακέτα SYN ( |
||||
|
<a href="README.pdf#page=7">1.2.1 Διεξαγωγή της επίθεσης</a>).</p> |
||||
|
</div> |
||||
|
<div class="sidebarblock"> |
||||
|
<div class="content"> |
||||
|
<div class="title">Three-Way Handshake</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Τα πακέτα SYN αποτελούν το πρώτο μέρος του three-way handshake του TCP. Όπως φαίνεται και στην εικόνα, προκειμένου να εγκαθιδρυθεί η επικοινωνία μεταξύ ενός client και ενός server, ανταλλάσσονται τα εξής πακέτα: SYN,SYN-ACK,ACK. Στην επίθεση DoS/SYN Flooding σκοπός είναι η αποστολή ενός τεράστιου αριθμού πακέτων SYN, αναγκάζοντας τον server να απαντήσει με πακέτα SYN-ACK, χωρίς την αποστολή των πακέτων ACK ώστε να ολοκληρωθεί η διαδικασία.<br> |
||||
|
<span class="image"><img src="images/TCP-three-way-handshake.png" alt="TCP three way handshake"></span><br> |
||||
|
<a href="https://www.researchgate.net/figure/TCP-three-way-handshake_fig3_321698222">Πηγή Εικόνας</a><br> |
||||
|
Για περισσότερες πληροφορίες, <a href="README.pdf#page=6">1.2 Η επίθεση DoS</a></p> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Από την πλευρά της μηχανής-στόχου, ο εντοπισμός της επίθεσης έγινε με δύο εργαλεία.</p> |
||||
|
</div> |
||||
|
<div class="ulist"> |
||||
|
<ul> |
||||
|
<li> |
||||
|
<p>Netstat |
||||
|
<sup class="footnote">[<a id="_footnoteref_4" class="footnote" href="#_footnotedef_4" title="View footnote.">4</a>]</sup><br> |
||||
|
Εντοπίστηκε συσσώρευση πακέτων SYN στην port 80, προερχόμενα από διαφορετικές διευθύνσεις IP.<br> |
||||
|
<span class="image"><img src="images/screenshots/DoS-DDoS/netstat.png" alt="netstat"></span><br> |
||||
|
<a href="README.pdf#page=7">1.2.2 Εντοπισμός της επίθεσης</a></p> |
||||
|
</li> |
||||
|
<li> |
||||
|
<p>TCPdump |
||||
|
<sup class="footnote">[<a id="_footnoteref_5" class="footnote" href="#_footnotedef_5" title="View footnote.">5</a>]</sup></p> |
||||
|
<div class="paragraph"> |
||||
|
<p>Με το φίλτρο tcp[tcpflags] == tcp-syn επιβεβαιώθηκαν τα αποτελέσματα του netstat.<br> |
||||
|
<span class="image"><img src="images/screenshots/DoS-DDoS/tcpdump.png" alt="tcpdump"></span><br> |
||||
|
<a href="README.pdf#page=8">1.2.2 Εντοπισμός της επίθεσης</a></p> |
||||
|
</div> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Αφοτου εντοπίστηκε η επίθεση, σχεδιάστηκαν τα αντίμετρα για την αντιμετώπιση της. Η εφαρμογή των αντιμέτρων έγινε με το iptables |
||||
|
<sup class="footnote">[<a id="_footnoteref_6" class="footnote" href="#_footnotedef_6" title="View footnote.">6</a>]</sup>.<br> |
||||
|
<span class="image"><img src="images/screenshots/DoS-DDoS/iptables_nvL.jpg" alt="iptables nvL"></span> |
||||
|
<a href="README.pdf#page=8">1.2.3 Αντιμετώπιση της επίθεσης</a></p> |
||||
|
</div> |
||||
|
<div class="sidebarblock"> |
||||
|
<div class="content"> |
||||
|
<div class="title">Επιπλέον: Python/Scapy</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Πέραν του εργαλείου hping3, είναι εφικτό να πραγματοποιηθεί η επίθεση και με ένα αυτοσχέδιο εργαλείο, σε γλώσσα Python, με τη βιβλιοθήκη Scapy. Το πρόγραμμα μπορείτε να βρείτε στο φάκελο <mark>DoS-DDoS/tools</mark>.<br> |
||||
|
Για περισσότερες πληροφορίες, |
||||
|
<a href="README.pdf#page=10">1.2.4 Επιπλέον: Εργαλείο για την υλοποίηση της επίθεσης DoS με Python/Scapy</a></p> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Για την επίθεση DDoS αξιοποιήθηκε το εργαλείο ansible |
||||
|
<sup class="footnote">[<a id="_footnoteref_7" class="footnote" href="#_footnotedef_7" title="View footnote.">7</a>]</sup>. Μέσω αυτού, ενορχηστρώθηκαν οι υπόλοιπες μηχανές του σμήνους, ώστε να διεξάγουν επιθέσεις DoS στη μηχανή-στόχο.</p> |
||||
|
</div> |
||||
|
<div class="sidebarblock"> |
||||
|
<div class="content"> |
||||
|
<div class="title">Distributed Denial-of-Service</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Οι επιθέσεις Distributed-DoS δεν είναι άλλο από επιθέσεις DoS, που διεξάγονται από πολυάριθμες πηγές. Κάθε πηγή στέλνει |
||||
|
ασταμάτητα και με μικρή συχνότητα πακέτα προς τον ίδιο στόχο επιτυγχάνοντας, έτσι, σημαντικότερα αποτελέσματα.<br> |
||||
|
Για περισσότερες πληροφορίες, |
||||
|
<a href="README.pdf#page=12">1.3 Η επίθεση DDoS</a></p> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Οι παραμετροποιήσεις για την αξιοποίηση του ansible, καθώς και το playbook με τις οδηγίες που ακολούθησαν οι μηχανές του σμήνους, βρίσκονται στο φάκελο <mark>DoS-DDoS/ansible</mark>. Η πλήρης ανάπτυξη του κώδικα, |
||||
|
<a href="README.pdf#page=13">1.3 Η επίθεση DDoS, σελ. 13</a>.</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="sect2"> |
||||
|
<h3 id="_ssh_brute_force_attack">3. SSH Brute Force Attack</h3> |
||||
|
<div class="sidebarblock"> |
||||
|
<div class="content"> |
||||
|
<div class="title">Secure Shell</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Το Secure Shell |
||||
|
<sup class="footnote">[<a id="_footnoteref_8" class="footnote" href="#_footnotedef_8" title="View footnote.">8</a>]</sup> |
||||
|
, εν συντομία SSH, αποτελεί ένα ασφαλές πρωτόκολλο για τη δικτυακή επικοινωνία μεταξύ δύο μελών του ίδιου δικτύου. Μέσω του SSH, οι hosts μπορούν να εγκαθιδρύσουν ένα ασφαλές, κρυπτογραφημένο κανάλι ακολουθώντας την αρχιτεκτονική client-server.<br> |
||||
|
Για περισσότερες πληροφορίες, |
||||
|
<a href="README.pdf#page=14">2.Υλοποίηση συστήματος για την προσομοίωση SSH Brute Force Attack</a></p> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Μία επίθεση ωμής βίας στο πρωτόκολλο SSH αποπειράται να παραβιάσει τις αρχές ασφαλείας του και να επιτρέψει την πρόσβαση ενός κακόβουλου χρήστη στο υπολογιστικό σύστημα του ευπαθούς στόχου.<br> |
||||
|
Η προσομοίωση της επίθεσης έγινε με δύο τρόπους: με το Metasploit |
||||
|
<sup class="footnote">[<a id="_footnoteref_9" class="footnote" href="#_footnotedef_9" title="View footnote.">9</a>]</sup> |
||||
|
framework και με ένα αυτοσχέδιο εργαλείο (Python/Paramiko).</p> |
||||
|
</div> |
||||
|
<div class="ulist"> |
||||
|
<ul> |
||||
|
<li> |
||||
|
<p>Metasploit<br> |
||||
|
Η επίθεση διεξήχθη από μία εικονική μηχανή με λειτουργικό Kali,Linux, προς την εικονική μηχανή Metasploitable.<br> |
||||
|
Για περισσότερες πληροφορίες, |
||||
|
<a href="README.pdf#page=15">2.1.1 Διεξαγωγή της επίθεσης με Metasploit</a><br> |
||||
|
Από το framework, επιλέχθηκε το module scanner/ssh/ssh_login, το οποίο παραμετροποιήθηκε, όπως φαίνεται στην εικόνα που ακολουθεί. Επιπλέον, φαίνεται και το αποτέλεσμα με το τρέξιμο του module.<br> |
||||
|
<span class="image"><img src="images/screenshots/SSH-brute/Inkedmetasploit_LI.jpg" alt="Inkedmetasploit LI"></span><br> |
||||
|
<a href="README.pdf#page=16">2.1.1 Διεξαγωγή της επίθεσης με Metasploit, σελ. 16</a></p> |
||||
|
</li> |
||||
|
<li> |
||||
|
<p>Python/Paramiko<br> |
||||
|
Αξιοποιώντας τη βιβλιοθήκη Paramiko, η λειτουργικότητα της οποίας αφορά την εγκαθίδρυση καναλιών επικοινωνίας με το πρωτόκολλο SSH, σχεδιάστηκε το πρόγραμμα που μπορείτε να βρείτε στο <mark>SSH-Brute-Force/tools</mark>. Είχε τα ίδια αποτελέσματα με αυτά του Metasploit.<br> |
||||
|
<span class="image"><img src="images/screenshots/SSH-brute/ssh-brute-paramiko.png" alt="ssh brute paramiko"></span><br> |
||||
|
<a href="README.pdf#page=16">2.1.2 Διεξαγωγή της επίθεσης με εργαλείο Python/Paramiko</a></p> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</div> |
||||
|
<div class="sidebarblock"> |
||||
|
<div class="content"> |
||||
|
<div class="title">Επιπλέον: Αξιοποίηση του σμήνους</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Η επίθεση, που παρουσιάστηκε στις προηγούμενες ενότητες, πραγματοποιήθηκε με ένα μικρό, σε έκταση, αρχείο. Σε μία πραγματική επίθεση θα χρειαζόμασταν ένα με δεκάδες, και ίσως εκατοντάδες, γραμμές από πιθανούς κωδικούς πρόσβασης. Η επίθεση, τότε, θα χρειαζόταν αρκετό χρόνο, μέχρι να βρει το σωστό κωδικό.<br> |
||||
|
Από τη στιγμή, όμως, που έχουμε στη διάθεση μας ένα σμήνος από μηχανές, είναι δυνατό να εκτελεστεί η επίθεση εκ μέρους κάθε μέλους του. Σε αυτή την ενότητα, αξιοποιήθηκε ένα σμήνος από 15 Docker Engines όπου, η κάθε μηχανή ερευνούσε διαφορετικούς πιθανούς κωδικούς ενός αρχείου 1557 γραμμών.<br> |
||||
|
Η πλήρης παρουσίαση της επίθεσης, |
||||
|
<a href="README.pdf#page=19">2.1.3 Επιπλέον: Αξιοποίηση του Docker swarm</a>.</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Σε κάθε περίπτωση, η επίθεση αντιμετωπίστηκε, αρχικά, με το Fail2ban |
||||
|
<sup class="footnote">[<a id="_footnoteref_10" class="footnote" href="#_footnotedef_10" title="View footnote.">10</a>]</sup>. Για τον επιτυχή αποκλεισμό των κακόβουλων χρηστών, έγιναν οι ακόλουθες παραμετροποιήσεις του αρχείου <mark>jail.local</mark>.<br> |
||||
|
<span class="image"><img src="images/screenshots/SSH-brute/config.png" alt="config"></span><br> |
||||
|
<a href="README.pdf#page=23">2.2 Αντιμετώπιση της επίθεσης με Fail2ban</a></p> |
||||
|
</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Ωστόσο, η καλύτερη τακτική για την εξασφάλιση του SSH είναι η απενεργοποίηση της επιλογής εισόδου με κωδικό πρόσβασης.<br> |
||||
|
<span class="image"><img src="images/screenshots/SSH-brute/pass_no.png" alt="pass no"></span><br> |
||||
|
<a href="README.pdf#page=24">2.3 Εγκαθίδρυση καναλιού μόνο με key</a><br> |
||||
|
Με τη ρύθμιση που προηγήθηκε, η εγκαθίδρυση των καναλιών SSH θα γίνεται μόνο με ένα ζεύγος κλειδιών. Με τη βοήθεια της εργαλειοθήκης του OpenSSH μπορεί να παραχθεί ένα κατάλληλο ζεύγος, τρέχοντας την εντολή <mark>ssh-keygen</mark>.</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="sect2"> |
||||
|
<h3 id="_localremote_port_forwarding">4. Local/Remote Port Forwarding</h3> |
||||
|
<div class="sidebarblock"> |
||||
|
<div class="content"> |
||||
|
<div class="title">SSH Port Forwarding</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Ο μηχανισμός SSH Fort Porwarding δημιουργεί ένα SSH Tunnel, το οποίο προσδίδει αξιοπιστία στην επικοινωνία μεταξύ υπολογιστικών συστημάτων χάρη στην κρυπτογράφηση που παρέχει το πρωτόκολλο SSH. Μπορεί να πραγματοποιηθεί με τρεις τρόπους: τοπικά (Local Port |
||||
|
Forwarding), απομακρυσμένα (Remote Port Forwarding) ή δυναμικά (Dynamic Port Forwarding).<br> |
||||
|
<span class="image"><img src="images/port_forwarding.png" alt="port forwarding"></span><br> |
||||
|
<a href="https://www.ssh.com/ssh/tunneling/">Πηγή Εικόνας</a><br> |
||||
|
Για περισσότερες πληροφορίες, |
||||
|
<a href="README.pdf#page=25">3. Δημιουργία Local/Remote SSH Forwarding για την παροχή υπηρεσιών στο σμήνος</a></p> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="ulist"> |
||||
|
<ul> |
||||
|
<li> |
||||
|
<p>Local Port Forwarding<br> |
||||
|
Η δημιουργία του tunnel έγινε μεταξύ της Manager Engine και της Worker Engine με IP 172.19.0.5. Σκοπός, η πρόσβαση του πίνακα example5 της βάσης δεδομένων που έτρεχε στη δεύτερη.<br> |
||||
|
<span class="image"><img src="images/screenshots/SSH-tunnel/local.png" alt="Η εντολή"></span><br> |
||||
|
<span class="image"><img src="images/screenshots/SSH-tunnel/database_tunnel.png" alt="Σύνδεση στη βάση δεδομένων του απομακρυσμένου χρήστη"></span><br> |
||||
|
<a href="README.pdf#page=25">3.1 Δημιουργία Local Port Forwarding</a><br></p> |
||||
|
</li> |
||||
|
<li> |
||||
|
<p>Remote Port Forwarding<br> |
||||
|
Με ελάχιστες διαφορές, δημιουργήθηκε και ένα tunnel με τη μέθοδο Remote Port Forwarding<br> |
||||
|
<span class="image"><img src="images/screenshots/SSH-tunnel/remote.png" alt="remote"></span><br> |
||||
|
<a href="README.pdf#page=27">3.2 Δημιουργία Remote Port Forwarding</a><br></p> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="sect2"> |
||||
|
<h3 id="_δημιουργία_vpn_στο_σμήνος">5. Δημιουργία VPN στο σμήνος</h3> |
||||
|
<div class="sidebarblock"> |
||||
|
<div class="content"> |
||||
|
<div class="title">VPN</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Τα Εικονικά Ιδιωτικά Δίκτυα(VPN, Virtual Private Networks) αποτελούν μία τεχνολογία για τη διασύνδεση υπολογιστικών συστημάτων με ασφαλείς μεθόδους. Επιλύουν ζητήματα επέκτασης των ιδιωτικών δικτύων, χωρίς να είναι κοστοβόρα ή να υστερούν σε ασφάλεια. |
||||
|
Για περισσότερες πληροφορίες, |
||||
|
<a href="README.pdf#page=28">4. Δημιουργία VPN στο σμήνος</a></p> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Η δημιουργία του VPN έγινε βάσει των οδηγιών |
||||
|
<a href="http://docs.swarmlab.io/SwarmLab-HowTos/labs/sec/ex-5_iptables.adoc.html" class="bare">http://docs.swarmlab.io/SwarmLab-HowTos/labs/sec/ex-5_iptables.adoc.html</a>.<br> |
||||
|
Τα αρχεία που δημιουργήθηκαν από την περάτωση της διαδικασίας, εκτός του φακέλου pki, βρίσκονται στο <mark>swarmVPN/vpn-files</mark>. Τα βήματα παρουσιάζονται, αναλυτικά, στο |
||||
|
link:README.pdf#page=28[4. Δημιουργία</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div id="footnotes"> |
||||
|
<hr> |
||||
|
<div class="footnote" id="_footnotedef_1"> |
||||
|
<a href="#_footnoteref_1">1</a>. NIST Glossary, <a href="https://csrc.nist.gov/glossary/term/DoS" class="bare">https://csrc.nist.gov/glossary/term/DoS</a>, NIST SP 800-12 Rev.1 |
||||
|
</div> |
||||
|
<div class="footnote" id="_footnotedef_2"> |
||||
|
<a href="#_footnoteref_2">2</a>. <a href="https://nmap.org/">nmap</a> |
||||
|
</div> |
||||
|
<div class="footnote" id="_footnotedef_3"> |
||||
|
<a href="#_footnoteref_3">3</a>. <a href="https://tools.kali.org/information-gathering/hping3">hping3</a> |
||||
|
</div> |
||||
|
<div class="footnote" id="_footnotedef_4"> |
||||
|
<a href="#_footnoteref_4">4</a>. <a href="https://en.wikipedia.org/wiki/Netstat">Wikipedia,Netstat</a> |
||||
|
</div> |
||||
|
<div class="footnote" id="_footnotedef_5"> |
||||
|
<a href="#_footnoteref_5">5</a>. <a href="https://www.tcpdump.org/">tcpdump</a> |
||||
|
</div> |
||||
|
<div class="footnote" id="_footnotedef_6"> |
||||
|
<a href="#_footnoteref_6">6</a>. <a href="https://en.wikipedia.org/wiki/Iptables">Wikipedia,iptables</a> |
||||
|
</div> |
||||
|
<div class="footnote" id="_footnotedef_7"> |
||||
|
<a href="#_footnoteref_7">7</a>. <a href="https://docs.ansible.com/ansible/latest/index.html">Ansible Documentation</a> |
||||
|
</div> |
||||
|
<div class="footnote" id="_footnotedef_8"> |
||||
|
<a href="#_footnoteref_8">8</a>. <a href="https://en.wikipedia.org/wiki/SSH_(Secure_Shell)">Wikipedia,SSH</a> |
||||
|
</div> |
||||
|
<div class="footnote" id="_footnotedef_9"> |
||||
|
<a href="#_footnoteref_9">9</a>. <a href="https://www.metasploit.com/">Metasploit</a> |
||||
|
</div> |
||||
|
<div class="footnote" id="_footnotedef_10"> |
||||
|
<a href="#_footnoteref_10">10</a>. <a href="https://www.fail2ban.org/wiki/index.php/Main_Page">Fail2ban</a> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div id="footer"> |
||||
|
<div id="footer-text"> |
||||
|
Last updated 2021-01-05 11:57:13 +0200 |
||||
|
</div> |
||||
|
</div> |
||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/styles/github.min.css"> |
||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/highlight.min.js"></script> |
||||
|
<script>hljs.initHighlighting()</script> |
||||
|
</body> |
||||
|
</html> |
Loading…
Reference in new issue