Zaifliklarni skanerlash va xavfsiz rivojlanish. 1-qism

Zaifliklarni skanerlash va xavfsiz rivojlanish. 1-qism

Ishlab chiquvchilar, pentesters va xavfsizlik bo'yicha mutaxassislar o'zlarining professional faoliyatining bir qismi sifatida zaifliklarni boshqarish (VM), (Secure) SDLC kabi jarayonlar bilan shug'ullanishlari kerak.
Ushbu iboralar ostida bir-biri bilan chambarchas bog'liq bo'lgan turli xil amaliyotlar va vositalar to'plami mavjud, garchi ularning foydalanuvchilari farq qiladi.

Texnologik taraqqiyot infratuzilma va dasturiy ta'minot xavfsizligini tahlil qilish uchun odamni bitta vosita almashtira oladigan darajaga yetmagan.
Nima uchun bunday bo'lganini va qanday muammolarga duch kelishi kerakligini tushunish qiziq.

Jarayonlar

Zaiflikni boshqarish jarayoni infratuzilma xavfsizligi va yamoqlarni boshqarishni doimiy monitoring qilish uchun mo'ljallangan.
Secure SDLC jarayoni ("xavfsiz ishlab chiqish tsikli") dasturni ishlab chiqish va ishlatish jarayonida xavfsizlikni ta'minlash uchun mo'ljallangan.

Ushbu jarayonlarning o'xshash qismi zaiflikni baholash jarayonidir - zaiflikni baholash, zaiflikni skanerlash.
VM va SDLC ichida skanerlashning asosiy farqi shundaki, birinchi holda, maqsad uchinchi tomon dasturlarida yoki konfiguratsiyada ma'lum bo'lgan zaifliklarni topishdir. Masalan, Windowsning eskirgan versiyasi yoki SNMP uchun standart hamjamiyat qatori.
Ikkinchi holda, maqsad nafaqat uchinchi tomon komponentlarida (bog'liqlarda), balki birinchi navbatda yangi mahsulot kodida zaifliklarni aniqlashdir.

Bu vositalar va yondashuvlardagi farqlarni keltirib chiqaradi. Menimcha, ilovada yangi zaifliklarni topish vazifasi ancha qiziqroq, chunki u versiya barmoq izlari, bannerlar yig'ish, parolni qo'pol kuch ishlatish va hokazolarga tushmaydi.
Ilovaning zaif tomonlarini yuqori sifatli avtomatlashtirilgan skanerlash uchun dastur semantikasini, uning maqsadini va o'ziga xos tahdidlarni hisobga oladigan algoritmlarni talab qiladi.

Infratuzilma skaneri ko'pincha taymer bilan almashtirilishi mumkin avleonov. Gap shundaki, agar siz infratuzilmangizni, masalan, bir oy davomida yangilamagan bo'lsangiz, sof statistik jihatdan zaif deb hisoblashingiz mumkin.

asboblar

Skanerlash, shuningdek, xavfsizlik tahlili qora quti yoki oq quti sifatida amalga oshirilishi mumkin.

Black Box

Qora qutini skanerlashda vosita foydalanuvchilar u bilan ishlaydigan bir xil interfeyslar orqali xizmat bilan ishlash imkoniyatiga ega bo'lishi kerak.

Infratuzilma skanerlari (Tenable Nessus, Qualys, MaxPatrol, Rapid7 Nexpose va boshqalar) ochiq tarmoq portlarini qidiradi, "bannerlar" yig'adi, o'rnatilgan dasturiy ta'minot versiyalarini aniqlaydi va ushbu versiyalardagi zaifliklar haqida ma'lumot olish uchun ularning bilim bazasidan qidiradi. Ular, shuningdek, standart parollar yoki ma'lumotlarga ochiq kirish, zaif SSL shifrlari va boshqalar kabi konfiguratsiya xatolarini aniqlashga harakat qilishadi.

Veb-ilova skanerlari (Acunetix WVS, Netsparker, Burp Suite, OWASP ZAP va boshqalar) ham ma'lum komponentlar va ularning versiyalarini (masalan, CMS, ramkalar, JS kutubxonalari) aniqlay oladi. Emaklashning asosiy bosqichlari emaklash va fuzzing hisoblanadi.
Tekshirish paytida brauzer mavjud dastur interfeyslari va HTTP parametrlari haqida ma'lumot to'playdi. Tugatish vaqtida barcha aniqlangan parametrlar xatoni keltirib chiqarish va zaiflikni aniqlash uchun mutatsiyaga uchragan yoki yaratilgan ma'lumotlar bilan almashtiriladi.

Bunday dastur skanerlari DAST va IAST sinflariga tegishli - mos ravishda Dynamic va Interactive Application Security Testing.

Oq qutisi

Oq qutini skanerlashda ko'proq farqlar mavjud.
VM jarayonining bir qismi sifatida skanerlarga (Vulners, Incsecurity Couch, Vuls, Tenable Nessus va boshqalar) ko'pincha autentifikatsiya qilingan skanerlash orqali tizimlarga kirish huquqi beriladi. Shunday qilib, skaner o'rnatilgan paket versiyalari va konfiguratsiya parametrlarini tarmoq xizmati bannerlaridan taxmin qilmasdan to'g'ridan-to'g'ri tizimdan yuklab olishi mumkin.
Skanerlash aniqroq va to'liqroq.

Agar biz ilovalarni oq quti skanerlash (CheckMarx, HP Fortify, Coverity, RIPS, FindSecBugs va boshqalar) haqida gapiradigan bo'lsak, unda biz odatda statik kod tahlili va tegishli SAST klassi vositalaridan foydalanish - Static Application Security Testing haqida gapiramiz.

Muammolar

Skanerlashda ko'plab muammolar mavjud! Men ularning ko'pchiligi bilan skanerlash va xavfsiz ishlab chiqish jarayonlarini qurish xizmatini taqdim etishning bir qismi sifatida, shuningdek, xavfsizlikni tahlil qilish ishlarini olib borishda shaxsan shug'ullanishim kerak.

Men muammolarning uchta asosiy guruhini ajratib ko'rsataman, ular muhandislar va turli kompaniyalardagi axborot xavfsizligi xizmatlari rahbarlari bilan suhbatlar bilan ham tasdiqlanadi.

Veb-ilovalarni skanerlash bilan bog'liq muammolar

  1. Amalga oshirishning qiyinligi. Samarali bo'lishi uchun skanerlarni joylashtirish, sozlash, har bir dastur uchun moslashtirish, skanerlash uchun sinov muhitini ajratish va CI / CD jarayonida amalga oshirish kerak. Aks holda, bu foydasiz rasmiy protsedura bo'lib, faqat noto'g'ri ijobiy natijalar beradi
  2. Skanerlash davomiyligi. Skanerlar, hatto 2019-yilda ham, interfeyslarni nusxalash bo'yicha yomon ish qiladilar va bir xil kod ular uchun javobgar bo'lsa-da, har birida 10 parametrli minglab sahifalarni bir necha kun davomida skanerlashi mumkin. Shu bilan birga, ishlab chiqarish tsikli doirasida ishlab chiqarishga joylashtirish to'g'risida qaror tezda qabul qilinishi kerak.
  3. Yomon tavsiyalar. Skanerlar juda umumiy tavsiyalar beradi va ishlab chiquvchi ulardan xavf darajasini qanday kamaytirishni tezda tushunishi har doim ham mumkin emas va eng muhimi, buni hozir qilish kerakmi yoki hali qo'rqinchli emas.
  4. Ilovaga halokatli ta'sir. Skanerlar dasturga osonlikcha DoS hujumini amalga oshirishi mumkin, shuningdek, ular ko'p sonli ob'ektlarni yaratishi yoki mavjudlarini o'zgartirishi mumkin (masalan, blogda o'n minglab sharhlar yaratish), shuning uchun siz o'ylamasdan skanerlashni amalga oshirmasligingiz kerak. mahsulot.
  5. Zaiflikni aniqlashning past sifati. Skanerlar odatda foydali yuklarning belgilangan qatoridan foydalanadilar va ularning ma'lum dastur xatti-harakatlariga mos kelmaydigan zaiflikni osongina o'tkazib yuborishi mumkin.
  6. Skaner ilovaning funksiyalarini tushunmaydi. Skanerlarning o'zlari "Internet-bank", "to'lov", "sharh" nima ekanligini bilishmaydi. Ular uchun faqat havolalar va parametrlar mavjud, shuning uchun mumkin bo'lgan biznes mantiqiy zaifliklarining katta qatlami to'liq ochilmagan bo'lib qoladi, ular ikki marta hisobdan chiqarishni, boshqa odamlarning ma'lumotlarini ID bo'yicha ko'rib chiqishni yoki yaxlitlash orqali balansni to'ldirishni taxmin qilmaydi.
  7. Skaner tomonidan sahifa semantikasini noto'g'ri tushunish. Skanerlar tez-tez so'raladigan savollarni o'qiy olmaydi, captchalarni taniy olmaydi, ular qanday qilib ro'yxatdan o'tishni va keyin qayta kirishni, "chiqish" tugmasini bosishingiz va parametr qiymatlarini o'zgartirganda so'rovlarga qanday imzo qo'yish kerakligini o'zlari bilmaydi. Natijada, dasturning aksariyati umuman skanerdan o'tkazilmagan qolishi mumkin.

Manba kodini skanerlash muammolari

  1. Noto'g'ri pozitivlar. Statik tahlil ko'plab kelishuvlarni o'z ichiga olgan murakkab vazifadir. Ko'pincha siz aniqlikni qurbon qilishingiz kerak va hatto qimmatbaho korporativ skanerlar ham juda ko'p noto'g'ri pozitivlarni beradi.
  2. Amalga oshirishning qiyinligi. Statik tahlilning aniqligi va to'liqligini oshirish uchun skanerlash qoidalarini takomillashtirish kerak va bu qoidalarni yozish juda ko'p vaqt talab qilishi mumkin. Ba'zan bunday holatlarni aniqlash uchun qoida yozishdan ko'ra, koddagi barcha joylarni qandaydir xato bilan topish va ularni tuzatish osonroq.
  3. Qaramlikni qo'llab-quvvatlashning etishmasligi. Katta loyihalar dasturlash tilining imkoniyatlarini kengaytiruvchi ko'p sonli kutubxonalar va ramkalarga bog'liq. Agar skanerning bilimlar bazasida ushbu ramkalardagi xavfli joylar ("cho'kishlar") haqida ma'lumot bo'lmasa, bu ko'r nuqtaga aylanadi va skaner shunchaki kodni tushunmaydi.
  4. Skanerlash davomiyligi. Koddagi zaifliklarni topish algoritmlar nuqtai nazaridan ham qiyin vazifadir. Shu sababli, jarayon kechikishi va katta hisoblash resurslarini talab qilishi mumkin.
  5. Kam qamrov. Resurs iste'moli va skanerlash davomiyligiga qaramay, SAST vositalarini ishlab chiquvchilari hali ham murosaga murojaat qilishlari va dastur bo'lishi mumkin bo'lgan barcha holatlarni tahlil qilishlari kerak.
  6. Qayta ishlab chiqarish qobiliyatini topish. Zaiflikka olib keladigan maxsus chiziq va qo'ng'iroqlar to'plamiga ishora qilish juda yaxshi, lekin aslida skaner ko'pincha tashqi zaiflikni tekshirish uchun etarli ma'lumot bermaydi. Axir, nuqson tajovuzkor uchun erishib bo'lmaydigan o'lik kodda ham bo'lishi mumkin.

Infratuzilmani skanerlash muammolari

  1. Inventarizatsiya yetarli emas. Katta infratuzilmalarda, ayniqsa geografik jihatdan ajratilganlarida, qaysi xostlarni skanerlash kerakligini aniqlash eng qiyin narsa. Boshqacha qilib aytganda, skanerlash vazifasi aktivlarni boshqarish vazifasi bilan chambarchas bog'liq
  2. Yomon ustuvorlik. Tarmoq skanerlari ko'pincha amalda ishlatib bo'lmaydigan kamchiliklarga ega bo'lgan ko'plab natijalarni beradi, ammo rasmiy ravishda ularning xavf darajasi yuqori. Iste'molchi sharhlash qiyin bo'lgan hisobotni oladi va birinchi navbatda nimani tuzatish kerakligi aniq emas
  3. Yomon tavsiyalar. Skaner ma'lumotlar bazasi ko'pincha zaiflik va uni qanday tuzatish haqida faqat umumiy ma'lumotlarni o'z ichiga oladi, shuning uchun administratorlar Google bilan qurollanishlari kerak. Oq quti skanerlari bilan vaziyat biroz yaxshiroq, ular tuzatish uchun maxsus buyruq berishi mumkin
  4. Qo'l ishi. Infratuzilmalar ko'plab tugunlarga ega bo'lishi mumkin, ya'ni har bir iteratsiyada hisobotlarni tahlil qilish va qo'lda tahlil qilish kerak bo'lgan ko'plab kamchiliklar mavjud.
  5. Yomon qamrov. Infratuzilmani skanerlash sifati bevosita zaifliklar va dasturiy ta'minot versiyalari haqidagi bilimlar bazasi hajmiga bog'liq. Bunda, chiqadi, hatto bozor rahbarlari ham to'liq bilim bazasiga ega emaslar va bepul echimlar ma'lumotlar bazalarida rahbarlarda mavjud bo'lmagan juda ko'p ma'lumotlar mavjud.
  6. Yamoq bilan bog'liq muammolar. Ko'pincha, infratuzilma zaifliklarini tuzatish paketni yangilash yoki konfiguratsiya faylini o'zgartirishdir. Bu erda katta muammo shundaki, tizim, ayniqsa, eski tizim, yangilanish natijasida o'zini oldindan aytib bo'lmaydigan tarzda tutishi mumkin. Aslida, siz ishlab chiqarishdagi jonli infratuzilmada integratsiya testlarini o'tkazishingiz kerak bo'ladi.

Yondashuvlar

Qanday qilib bo'lish kerak?
Quyidagi qismlarda misollar va ushbu muammolarning ko'pchiligini qanday hal qilish haqida batafsilroq to'xtalib o'taman, ammo hozircha men siz ishlashingiz mumkin bo'lgan asosiy sohalarni ko'rsataman:

  1. Turli skanerlash vositalarini yig'ish. Bir nechta skanerlardan to'g'ri foydalanish bilan bilimlar bazasini sezilarli darajada oshirish va aniqlash sifatiga erishish mumkin. Siz yakka tartibda ishlayotgan barcha skanerlar yig'indisidan ham ko'proq zaifliklarni topishingiz mumkin, shu bilan birga siz xavf darajasini aniqroq baholashingiz va ko'proq tavsiyalar berishingiz mumkin.
  2. SAST va DAST integratsiyasi. Ular o'rtasida ma'lumot almashish orqali DAST qamrovi va SAST aniqligini oshirish mumkin. Manbadan siz mavjud marshrutlar haqida ma'lumot olishingiz mumkin va DAST yordamida zaiflik tashqi tomondan ko'rinib turishini tekshirishingiz mumkin.
  3. Machine Learningβ„’. 2015 yilda I dedi (va ko'proq) skanerlarga xakerlik sezgisini berish va ularni tezlashtirish uchun statistikadan foydalanish haqida. Bu, albatta, kelajakda avtomatlashtirilgan xavfsizlik tahlilini rivojlantirish uchun oziq-ovqat.
  4. Avtotestlar va OpenAPI bilan IAST integratsiyasi. CI/CD-quvuri doirasida HTTP proksi-serverlari sifatida ishlaydigan vositalar va HTTP orqali ishlaydigan funktsional testlar asosida skanerlash jarayonini yaratish mumkin. OpenAPI/Swagger testlari va kontraktlari skanerga ma'lumotlar oqimi haqida etishmayotgan ma'lumotlarni beradi, dasturni turli davlatlarda skanerlash imkonini beradi.
  5. To'g'ri konfiguratsiya. Har bir dastur va infratuzilma uchun interfeyslarning soni va tabiatini, foydalaniladigan texnologiyalarni hisobga olgan holda mos skanerlash profilini yaratishingiz kerak.
  6. Skanerni sozlash. Ko'pincha, skanerni o'zgartirmasdan dasturni skanerlash mumkin emas. Misol tariqasida har bir so'rov imzolanishi kerak bo'lgan to'lov shlyuzidir. Shlyuz protokoliga ulagichni yozmasdan, skanerlar noto'g'ri imzo qo'yilgan so'rovlarni beparvolik bilan tekshiradilar. Shuningdek, ma'lum bir turdagi kamchiliklar uchun maxsus skanerlarni yozish kerak, masalan Ishonchsiz to'g'ridan-to'g'ri ob'ektga murojaat
  7. Risklarni boshqarish. Turli skanerlardan foydalanish va Asset Management va Threat Management kabi tashqi tizimlar bilan integratsiya risk darajasini baholash uchun bir nechta parametrlardan foydalanish imkonini beradi, shuning uchun rahbariyat rivojlanish yoki infratuzilmaning joriy xavfsizlik holati haqida tegishli tasavvurga ega bo'lishi mumkin.

Bizni kuzatib boring va zaifliklarni skanerlashni to'xtataylik!

Manba: www.habr.com

a Izoh qo'shish