Εισαγωγή
στην
Ασφάλεια
Ιστοχώρων
    Πως
να
προλάβετε
την
καταστροφή
http://akeeba.info/security-101-gr
Γειά
σας,
είμαι

    ο
Νίκος

    Διονυσόπουλος
    γνωστός
ως
ο

    προγραμματιστής
των

    Akeeba
Backup,
Admin

    Tools
και
πολλών
άλλων

    επεκτάσεων
για
το
Joomla!



http://akeeba.info/me
Τι
είναι
η
ασφάλεια
ιστοχώρων;
Και
τι
δουλειά
έχει
ο
Τσακ
Νόρρις
μ’αυτή;!
Η
ασφάλεια
είναι...


     πως
να
κάνεις

     δυσκολότερο
 να
παραβιάσεις,
αλλά
όχι
  να
το
κάνεις
αδύνατο
Πως
το
κάνεις
αυτό;
Τι
μπαίνει
ανάμεσα
στους
χάκερ
και
τον
ιστοχώρο;
Η
ασφάλεια
είναι
σε
στρώσεις

Εισερχόμενο
Ερώτημα

  Τείχος
Προστασίας

 Διακομιστής
(Γενικά)

Διακομιστής
(.htaccess)

       Joomla!

      Επεκτάσεις
Η
ασφάλεια
είναι
σε
στρώσεις

Εισερχόμενο
Ερώτημα
                          Διαχείριση
από
τον
πάροχο
  Τείχος
Προστασίας

 Διακομιστής
(Γενικά)

Διακομιστής
(.htaccess)

       Joomla!

      Επεκτάσεις
Η
ασφάλεια
είναι
σε
στρώσεις

Εισερχόμενο
Ερώτημα

  Τείχος
Προστασίας
                          mod_security,
suPHP,
…
 Διακομιστής
(Γενικά)

Διακομιστής
(.htaccess)

       Joomla!

      Επεκτάσεις
Η
ασφάλεια
είναι
σε
στρώσεις

Εισερχόμενο
Ερώτημα

  Τείχος
Προστασίας

 Διακομιστής
(Γενικά)
                          Βασική
προστασία
Διακομιστής
(.htaccess)

       Joomla!

      Επεκτάσεις
Η
ασφάλεια
είναι
σε
στρώσεις

Εισερχόμενο
Ερώτημα

  Τείχος
Προστασίας

 Διακομιστής
(Γενικά)

Διακομιστής
(.htaccess)
                          Βασικό
φιλτράρισμα
       Joomla!

      Επεκτάσεις
Η
ασφάλεια
είναι
σε
στρώσεις

Εισερχόμενο
Ερώτημα

  Τείχος
Προστασίας

 Διακομιστής
(Γενικά)

Διακομιστής
(.htaccess)

       Joomla!
                          Κατά
κύριο
λόγο
υπεύθυνες!
      Επεκτάσεις
Η
ασφάλεια
είναι
σε
στρώσεις

Εισερχόμενο
Ερώτημα

  Τείχος
Προστασίας

 Διακομιστής
(Γενικά)

Διακομιστής
(.htaccess)

       Joomla!

      Επεκτάσεις
Για
τι
θα
μιλήσουμε
σήμερα

Εισερχόμενο
Ερώτημα

  Τείχος
Προστασίας

 Διακομιστής
(Γενικά)
                          }       Εκτός
της
                              “αρμοδιότητάς”
μας

Διακομιστής
(.htaccess)

       Joomla!
                          }     Υπό
τον
πλήρη
                                 έλεγχό
μας

      Επεκτάσεις          }   Για
προγραμματιστές
Τα
βασικά
Τι
πρέπει
να
κάνουμε
πάντα,
αλλά
συνήθως
ξεχνάμε
Συχνά,
δοκιμασμένα
αντίγραφα
    Θα
πηδάγατε
από
ένα
αεροπλάνο
χωρίς
αλεξίπτωτο;




http://akeeba.info/backup
Ενημερώστε,
χθες!
     Ο
χτεσινός
κώδικας
είναι
το
αυριανό
κενό
ασφαλείας




http://akeeba.info/basic-security
Προστατέψτε
το
διαχειριστικό
τμήμα
Ο
κωδικός
πρόσβασης
δεν
επαρκεί
777:
Ο
αριθμός
που
σκοτώνει
    Τα
δικαιώματα
είναι
πόρτες.
Κλειδώστε
τες!




http://akeeba.info/777
Λογικά
δικαιώματα
 Ζητήστε
από
τον
πάροχο
να
ενεργοποιήσει
το
suPHP
ή
το
mod_itk
του

 Apache
 Ριζικός
κατάλογος
0755
ή
0700
 Κατάλογοι
0755
 Αρχεία
0644
 Εάν
“πρέπει”
να
χρησιμοποιήσετε
0777
(μην
το
κάνετε!)
προστατέψτε

 με
ένα
.htaccess:
 order deny, allow
 deny from all
Μην
κάνετε
την
πάπια!
Κυκλοφορούν
πολλοί
κυνηγοί
;)
Προσοχή
στο
πρόθεμα
     Κανείς
δεν
θέλει
να
είναι
ένας
jos_




http://akeeba.info/prefix
62
λόγοι
να
απολύσετε
τον
Υπερδιαχειριστή
σας
    ή
42,
ανάλογα
με
την
έκδοση
του
Joomla!




http://akeeba.info/62-reasons
Kung‐Fu
για
Διαχειριστές
     Δεν
μπορείς
να
σκοτώσεις
έναν
νίντζα!
http://akeeba.info/ninja
Οπτικό
αποτύπωμα
     Πίστευε
και
μη,
ερεύνα

                                   tm
                                     pl=
                                           offl
                                               ine


    tp =1




http://akeeba.info/ninja      template =ja_purity
Οπτικό
αποτύπωμα
        RewriteCond %{QU
                         ERY_STRING} (^|
       &)tmpl=(componen
                        t|system) [NC]
       RewriteRule .* -
                          [L]
       RewriteCond %{QU
                        ERY_STRING} (^|&
                                         )t(p|emplate|
       mpl)= [NC]
       RewriteRule .* -
                        [F]




http://akeeba.info/ninja
Η
PHP
έχει
μεγάλο
στόμα
     και
αυτό
δεν
είναι
κουτσομπολιό




http://akeeba.info/ninja
Η
PHP
έχει
μεγάλο
στόμα




http://akeeba.info/ninja
Η
PHP
έχει
μεγάλο
στόμα
       RewriteCond %{QU
                        ERY_STRING} =PH
                                         P[a-f0-9]{8}-[a-
       f0-9]{4}-[a-f0-9
                        ]{4}-[a-f0-9]{4}
                                         -[a-f0-9]{12}
       [NC]
       RewriteRule .* -
                        [F]




http://akeeba.info/ninja
Ο
Τυφλός
Ελέφαντας
     Προσοχή,
πατάει!




http://akeeba.info/ninja
Ο
Τυφλός
Ελέφαντας




http://akeeba.info/ninja
Ο
Τυφλός
Ελέφαντας
          nicholas@teapot:~/blindelephant$ ./BlindElephant.py mysite.com joomla
          Loaded /home/nicholas/projects/3rdparty/blindelephant/trunk/src/build/lib.linux-x86_64-2.6/blindelephant/
          dbs/joomla.pkl with 33 versions, 3696 differentiating paths, and 122 version groups.
          Starting BlindElephant fingerprint for version of joomla at http://joomla.ubuntu.web

          Hit http://joomla.ubuntu.web/media/system/js/validate.js
          Possible versions based on result: 1.5.17, 1.5.18

          Hit http://joomla.ubuntu.web/includes/js/joomla.javascript.js
          Possible versions based on result: 1.5.17, 1.5.18

          Hit http://joomla.ubuntu.web/media/system/js/caption.js
          Possible versions based on result: 1.5.17, 1.5.18

          Hit http://joomla.ubuntu.web/media/system/js/openid.js
          Possible versions based on result: 1.5.17, 1.5.18

          Hit http://joomla.ubuntu.web/templates/rhuk_milkyway/css/template.css
          Possible versions based on result: 1.5.17, 1.5.18

          Fingerprinting resulted in:
          1.5.17
          1.5.18

          Best Guess: 1.5.18

http://akeeba.info/ninja
Ο
Τυφλός
Ελέφαντας

        RewriteRule ^ima
                         ges/stories/.*.
                                         (jp(e?g|2)?|png|
       gif|bmp|css|js|s
                        wf|ico)$ - [L]
       RewriteCond %{HT
                        TP_REFERER} .
       RewriteCond %{HT
                        TP_REFERER} !^ht
                                         tps?://(www.)?
       example.com [NC]
      RewriteCond %{RE
                       QUEST_FILENAME}
                                        -f
      RewriteRule .(j
                       p(e?g|2)?|png|gi
                                        f|bmp|css|js|
      swf|ico)$ - [F]




http://akeeba.info/ninja
Περισσότερες
απειλές
 Εκτέλεση
σεναρίων
μεταξύ
ιστοχώρων
(XSS)
 Εισαγωγή
απομακρυσμένων
αρχείων
(RFI)
 Εισαγωγή
τοπικών
αρχείων
(LFI)
 Εισαγωγή
SQL
(SQLi)
 Παραχάραξη
αιτημάτων
από
άλλους
ιστοχώρους
(CSRF)
 Σπάσιμο
κωδικών
με
την
μέθοδο
ωμής
δύναμης
 Ανεπιθύμητα
μηνύματα
&
ψάρεμα
διευθύνσεων
email
Περισσότερη
προστασία

f re e!                       2 0€
    The Master                  Admin Tools
     .htaccess                  Professional
 http://akeeba.info/master-
                               http://akeeba.info/atpro
          htaccess
Α!
και
κάτι
ακόμα...

    η ασφάλεια
            είναι µία


 διαδικασία
Ερωτήσεις;
Αυτά για σήµερα!
Θέλετε
τα
σλάιντ?
hVp://akeeba.info/security‐101‐gr

Εισαγωγή στην Ασφάλεια Ιστοχώρων

Editor's Notes

  • #2 Απλά μια εισαγωγή\nΠράγματα που όλοι πρέπει να κάνουν\n\nNext: Εγώ\n
  • #3 30χρονος Μηχ. Μηχ/κος => προγρ/της\nPHP για > 10 χρόνια\nΠρογρ/της των Akeeba Backup και Admin Tools\n\nNext: Τσακ Νόρρις\n
  • #4 Τι έγινε;\nΤι θέλει ο Τσακ Νόρρις στο site σας;\nΜπορεί να πλακώσει όλους τους χάκερ και να τρέξουν μακριά; ΟΧΙ\n\nΕπόμενο: Ασφάλεια είναι...\n
  • #5 Κάν’το δυσκολότερο, όχι αδύνατο\n\nNext: Μεταξύ site και hacker\n
  • #6 Τι μπαίνει ανάμεσά μας;\n\nΕπόμενο: Στρώματα\n
  • #7 ΤΠ: Διάχειριση από πάροχο\nΔΓ: mod_security, suPHP\nΔΤ: Βασική προστασία\nJ: Βασικό φιλτράρισμα\nΕΠ: Υπέυθυνες!\n\nNext: Στρώματα για σήμερα\n
  • #8 ΤΠ: Διάχειριση από πάροχο\nΔΓ: mod_security, suPHP\nΔΤ: Βασική προστασία\nJ: Βασικό φιλτράρισμα\nΕΠ: Υπέυθυνες!\n\nNext: Στρώματα για σήμερα\n
  • #9 ΤΠ: Διάχειριση από πάροχο\nΔΓ: mod_security, suPHP\nΔΤ: Βασική προστασία\nJ: Βασικό φιλτράρισμα\nΕΠ: Υπέυθυνες!\n\nNext: Στρώματα για σήμερα\n
  • #10 ΤΠ: Διάχειριση από πάροχο\nΔΓ: mod_security, suPHP\nΔΤ: Βασική προστασία\nJ: Βασικό φιλτράρισμα\nΕΠ: Υπέυθυνες!\n\nNext: Στρώματα για σήμερα\n
  • #11 ΤΠ: Διάχειριση από πάροχο\nΔΓ: mod_security, suPHP\nΔΤ: Βασική προστασία\nJ: Βασικό φιλτράρισμα\nΕΠ: Υπέυθυνες!\n\nNext: Στρώματα για σήμερα\n
  • #12 ΤΠ: Διάχειριση από πάροχο\nΔΓ: mod_security, suPHP\nΔΤ: Βασική προστασία\nJ: Βασικό φιλτράρισμα\nΕΠ: Υπέυθυνες!\n\nNext: Στρώματα για σήμερα\n
  • #13 ΤΠ: Διάχειριση από πάροχο\nΔΓ: mod_security, suPHP\nΔΤ: Βασική προστασία\nJ: Βασικό φιλτράρισμα\nΕΠ: Υπέυθυνες!\n\nNext: Στρώματα για σήμερα\n
  • #14 ΤΠ: Διάχειριση από πάροχο\nΔΓ: mod_security, suPHP\nΔΤ: Βασική προστασία\nJ: Βασικό φιλτράρισμα\nΕΠ: Υπέυθυνες!\n\nNext: Στρώματα για σήμερα\n
  • #15 ΤΠ: Διάχειριση από πάροχο\nΔΓ: mod_security, suPHP\nΔΤ: Βασική προστασία\nJ: Βασικό φιλτράρισμα\nΕΠ: Υπέυθυνες!\n\nNext: Στρώματα για σήμερα\n
  • #16 ΤΠ: Διάχειριση από πάροχο\nΔΓ: mod_security, suPHP\nΔΤ: Βασική προστασία\nJ: Βασικό φιλτράρισμα\nΕΠ: Υπέυθυνες!\n\nNext: Στρώματα για σήμερα\n
  • #17 Εκτός αρμοδιότητας\nΥπό τον έλεγχό μας\nΓια προγραμματιστές\n\nNext: Βασική Ασφάλεια\n
  • #18 Όλοι ξέρουν ότι πρέπει να γίνουν\nΣυνήθως βαριόμαστε ή τα ξεχνάμε\n\nNext: Backups\n
  • #19 Akeeba Backup ή άλλο εργαλεία για καθημερινά backup\nΔοκιμή επαναφοράς κάθε βδομάδα ή μετά από μεγάλη αλλαγή\n\nNext: Ενημερώσεις\n
  • #20 Άμεση ενημέρωση την ίδια μέρα\nΔείτε το J! VEL\nΕγγραφή στο SalvusAlerting\n\nNext: προστασία admin\n
  • #21 Προστασία με κωδικό\nΜυστική παράμετρος URL (jSecure, Admin Tools Professional, etc)\n\nNext: 777\n
  • #22 Γιατί τα 0777 είναι κακή ιδέα (σπάσιμο από μέσα)\n\nNext: perms\n
  • #23 Χρήση suPHP/mod_itk\nΡίζα 0755 / 0700 (απενεργοποιεί 0777)\nΚατάλογοι 0755, Αρχεία 0644\nΕάν “πρέπει” 0777, βάλε .htaccess\n\nNext: sitting duck\n
  • #24 Default ρυθμίσεις Joomla! = κάνεις την πάπια\nΟι κυνηγοί ΞΕΡΟΥΝ ότι είσαι πάπια\n\nNext: prefix\n
  • #25 Πρόθεμα jos_ επισφαλές\nΧρήση τυχαίου. Admin Tools για αλλαγή.\nΠροσοχή: επεκτάσεις μπορεί να σπάσουν\n\nNext: Super Admin ID\n
  • #26 Default SA ID είναι 62/42. Χρήση από SQLi attacks.\nΜην φτιάξεις νέο χρήστη. Το 63 είναι επισφαλές.\nΔημιουργία “low ID” χρήστη; χρήση Admin Tools\n\nNext: Ninja!\n
  • #27 How the big boys deal with security\nSome tips are over the top\nYou can never be too paranoid w/ security\n\nNext: Visual fingerprinting\n
  • #28 Appending parameters can reveal too much\nUsed to identify your site as a Joomla! site = potential target\nSecurity through obscurity; not THE solution, but it helps\n\nNext: solution\n
  • #29 These rules in my Master .htaccess\n\nNext: PHP has a big mouth\n
  • #30 Appending parameters can reveal too much\nUsed to identify your PHP version\nCan deliver non-Joomla! specific exploits\n\nNext: demonstration\n
  • #31 This is what it looks like\nEach version has a different image!\n\nNext: solution\n
  • #32 These rules are in my master .htaccess\n\nNext: Blind Elephant\n
  • #33 No, you’re not going to the circus; or a safari.\nA blind elephant is after you and will stomp you.\nSee for yourself! (next slide)\n\nNext: BlindElephant run\n
  • #34 Typical blind elephant run\nIt’s not the only fingerprinting script\nThey’re moderately to very accurate\n\nNext: solution\n
  • #35 These rules are in my master .htaccess\n\nNext: More threats\n
  • #36 XSS, RFI, LFI, SQLi, CSRF, Brute force, Phishing/Spamming\n\nNext: more protection\n
  • #37 My master .htaccess is free, reqs expert knowledge, no support\nATPro is easier for site builders, has docs, support\n\nNext: security is a process\n
  • #38 It’s not fire and forget. You have to work on it continuously as your site evolves.\n\nNext: questions\n
  • #39 Ask your questions!\n\nNext: the end\n
  • #40 Thank you for listening\nVisit the URL for the slides in PDF format (next slide)\n\n
  • #41 Thank you for listening\nVisit the URL for the slides in PDF format\n\nTHE END\n