Осалдықты сканерлеу және қауіпсіз әзірлеу. 1 бөлім

Осалдықты сканерлеу және қауіпсіз әзірлеу. 1 бөлім

Кәсіби әрекеттерінің бөлігі ретінде әзірлеушілер, пентестер және қауіпсіздік мамандары осалдықты басқару (VM), (Secure) SDLC сияқты процестермен айналысуы керек.
Бұл сөз тіркестерінің астында пайдаланушылары әртүрлі болғанымен, өзара байланысты қолданылатын әртүрлі тәжірибелер мен құралдар жиынтығы бар.

Технологиялық прогресс инфрақұрылым мен бағдарламалық қамтамасыз етудің қауіпсіздігін талдау үшін адамды бір құрал алмастыра алатын деңгейге әлі жеткен жоқ.
Неліктен бұлай болғанын және қандай қиындықтарға тап болуы керектігін түсіну қызықты.

Процестер

Осалдықты басқару процесі инфрақұрылым қауіпсіздігін және патчтарды басқаруды үздіксіз бақылауға арналған.
Secure SDLC процесі («қауіпсіз әзірлеу циклі») әзірлеу және пайдалану кезінде қолданба қауіпсіздігін қолдауға арналған.

Осы процестердің ұқсас бөлігі осалдықты бағалау процесі болып табылады - осалдықты бағалау, осалдықты сканерлеу.
VM және SDLC ішінде сканерлеудің негізгі айырмашылығы бірінші жағдайда үшінші тарап бағдарламалық құралында немесе конфигурацияда белгілі осалдықтарды табу мақсаты болып табылады. Мысалы, Windows жүйесінің ескірген нұсқасы немесе SNMP үшін әдепкі қауымдастық жолы.
Екінші жағдайда, мақсат тек үшінші тарап құрамдастарында (тәуелділіктерде) ғана емес, ең алдымен жаңа өнімнің кодындағы осалдықтарды анықтау болып табылады.

Бұл құралдар мен тәсілдердегі айырмашылықтарды тудырады. Менің ойымша, қосымшаның жаңа осалдықтарын табу міндеті әлдеқайда қызықты, өйткені ол саусақ ізін алу, баннер жинау, құпия сөзді қолданудың күші және т.
Қолданбаның осалдықтарын жоғары сапалы автоматтандырылған сканерлеу қолданбаның семантикасын, оның мақсатын және нақты қауіптерді ескеретін алгоритмдерді қажет етеді.

Инфрақұрылым сканерін жиі таймермен ауыстыруға болады, мысалы авлеонов. Мәселе мынада, таза статистикалық түрде, егер сіз оны бір ай бойы жаңартпасаңыз, инфрақұрылымыңызды осал деп санай аласыз.

Құралдар

Сканерлеу, сондай-ақ қауіпсіздік талдауы қара жәшік немесе ақ жәшік ретінде орындалуы мүмкін.

Қара жәшік

Қара жәшікті сканерлеу кезінде құрал пайдаланушылар онымен жұмыс істейтін интерфейстер арқылы қызметпен жұмыс істей алуы керек.

Инфрақұрылымдық сканерлер (Tenable Nessus, Qualys, MaxPatrol, Rapid7 Nexpose және т.б.) ашық желі порттарын іздейді, «баннерлер» жинайды, орнатылған бағдарламалық қамтамасыз ету нұсқаларын анықтайды және осы нұсқалардағы осалдықтар туралы ақпарат алу үшін олардың білім базасын іздейді. Олар сондай-ақ әдепкі құпия сөздер немесе деректерге жалпы қолжетімділік, әлсіз SSL шифрлары және т.б. сияқты конфигурация қателерін анықтауға тырысады.

Веб қолданба сканерлері (Acunetix WVS, Netsparker, Burp Suite, OWASP ZAP және т.б.) белгілі құрамдастарды және олардың нұсқаларын (мысалы, CMS, фреймворктар, JS кітапханалары) анықтай алады. Негізгі тексеріп шығу қадамдары - жорғалау және бұлыңғырлау.
Тексеру кезінде тексеріп шығушы бар қолданба интерфейстері мен HTTP параметрлері туралы ақпаратты жинайды. Қате тудыру және осалдықты анықтау үшін барлық анықталған параметрлер мутацияланған немесе жасалған деректермен ауыстырылады.

Мұндай қолданба сканерлері DAST және IAST сыныптарына жатады - сәйкесінше динамикалық және интерактивті қолданба қауіпсіздігін тексеру.

Ақ жәшік

Ақ жәшікті сканерлеу кезінде көбірек айырмашылықтар бар.
VM процесінің бөлігі ретінде сканерлерге (Vulners, Incsecurity Couch, Vuls, Tenable Nessus және т.б.) аутентификацияланған сканерлеуді орындау арқылы жиі жүйелерге рұқсат беріледі. Осылайша, сканер орнатылған бума нұсқаларын және конфигурация параметрлерін желі қызметінің баннерлерінен болжамай-ақ жүйеден тікелей жүктей алады.
Сканерлеу дәлірек және толық.

Қолданбаларды ақ жәшікті сканерлеу туралы айтатын болсақ (CheckMarx, HP Fortify, Coverity, RIPS, FindSecBugs және т.

проблемалар

Сканерлеуде көптеген мәселелер бар! Мен олардың көпшілігімен сканерлеу және қауіпсіз әзірлеу процестерін құру, сондай-ақ қауіпсіздікті талдау жұмыстарын жүргізу кезінде қызмет көрсету бөлігі ретінде жеке айналысуым керек.

Мен проблемалардың 3 негізгі тобын бөліп көрсетемін, олар инженерлермен және әртүрлі компаниялардағы ақпараттық қауіпсіздік қызметінің басшыларымен әңгімелесумен де расталады.

Веб қолданбаны сканерлеу мәселелері

  1. Іске асырудың қиындығы. Тиімді болуы үшін сканерлерді орналастыру, конфигурациялау, әрбір қолданба үшін теңшеу, сканерлеуге арналған сынақ ортасын бөлу және CI/CD процесінде енгізу қажет. Әйтпесе, бұл тек жалған позитивтерді шығаратын пайдасыз ресми процедура болады
  2. Сканерлеу ұзақтығы. Сканерлер, тіпті 2019 жылы да интерфейстерді көшіру бойынша нашар жұмыс істейді және бірдей код олар үшін жауапты болса да, әр түрлі деп есептегенде, әр күні 10 параметрі бар мың бетті сканерлей алады. Сонымен қатар, әзірлеу циклі аясында өндіріске енгізу туралы шешім тез қабылдануы керек.
  3. Нашар ұсыныстар. Сканерлер жеткілікті жалпы ұсыныстар береді және әзірлеуші ​​олардан тәуекел деңгейін қалай төмендетуге болатынын, ең бастысы, оны дәл қазір жасау керек пе, әлде бұл әлі қорқынышты емес пе екенін тез түсінуі мүмкін емес.
  4. Қолданбаға деструктивті әсер ету. Сканерлер қолданбаға DoS шабуылын оңай орындай алады, сонымен қатар олар көптеген нысандарды жасай алады немесе барларын өзгерте алады (мысалы, блогта ондаған мың пікірлерді жасаңыз), сондықтан өнімде сканерлеуді ойланбастан іске қоспау керек.
  5. Осалдықты анықтау сапасының төмендігі. Сканерлер әдетте пайдалы жүктемелердің тіркелген массивін пайдаланады және олардың белгілі қолданба әрекетіне сәйкес келмейтін осалдықты оңай өткізіп жіберуі мүмкін.
  6. Сканер қолданбаның функцияларын түсінбейді. Сканерлердің өзі «Интернет-банк», «төлем», «түсініктеме» дегеннің не екенін білмейді. Олар үшін тек сілтемелер мен параметрлер бар, сондықтан мүмкін болатын іскерлік логикалық осалдықтардың үлкен қабаты толығымен ашылған күйде қалады, олар екі есе есептен шығаруды, басқа адамдардың деректерін идентификатор бойынша қарап шығуды немесе дөңгелектеу арқылы теңгерімді толтыруды болжамайды.
  7. Сканердің бет семантикасын дұрыс түсінбеу. Сканерлер жиі қойылатын сұрақтарды оқи алмайды, captcha-ларды тани алмайды, олар қалай тіркелуге, содан кейін қайта кіруге болатындығын, «шығу» түймесін баса алмайтыныңызды және параметр мәндерін өзгерту кезінде сұрауларға қалай қол қою керектігін өздері болжай алмайды. Нәтижесінде қолданбаның көпшілігі сканерленбеген күйде қалуы мүмкін.

Бастапқы кодты сканерлеу мәселелері

  1. Жалған позитивтер. Статикалық талдау – көптеген ымыраға келуді қамтитын күрделі тапсырма. Көбінесе дәлдікті құрбан етуге тура келеді, тіпті қымбат кәсіпорын сканерлері көптеген жалған позитивтерді береді.
  2. Іске асырудың қиындығы. Статикалық талдаудың дәлдігі мен толықтығын арттыру үшін сканерлеу ережелерін нақтылау қажет және бұл ережелерді жазу тым көп уақытты қажет етуі мүмкін. Кейде мұндай жағдайларды анықтау үшін ереже жазудан гөрі кодтағы барлық жерлерді қандай да бір қатесі бар табу және оларды түзету оңайырақ.
  3. Тәуелділікті қолдаудың болмауы. Үлкен жобалар бағдарламалау тілінің мүмкіндіктерін кеңейтетін көптеген кітапханалар мен фреймворктарға байланысты. Сканердің білім қорында осы шеңберлерде қауіпті орындар («раковиналар») туралы ақпарат болмаса, бұл соқыр нүктеге айналады, ал сканер жай ғана кодты түсінбейді.
  4. Сканерлеу ұзақтығы. Кодтағы осалдықтарды табу алгоритмдер тұрғысынан да қиын мәселе. Сондықтан процесс кешіктірілуі мүмкін және айтарлықтай есептеу ресурстарын қажет етеді.
  5. Төмен қамту. Ресурстарды тұтынуға және сканерлеу ұзақтығына қарамастан, SAST құралдарын әзірлеушілер әлі де ымыраға келуге және бағдарлама болуы мүмкін барлық күйлерді талдауға мәжбүр.
  6. Репродуктивтілікті табу. Осалдыққа әкелетін белгілі бір жолға және қоңыраулар стекіне нұсқау өте жақсы, бірақ шын мәнінде сканер көбінесе сыртқы осалдықты тексеру үшін жеткілікті ақпаратты бермейді. Өйткені, кемшілік шабуылдаушы үшін қол жетімсіз өлі кодта болуы мүмкін.

Инфрақұрылымды сканерлеу мәселелері

  1. Инвентарь жеткіліксіз. Үлкен инфрақұрылымдарда, әсіресе географиялық тұрғыдан бөлінгенде, қай хосттарды сканерлеу керектігін анықтау ең қиын нәрсе. Басқаша айтқанда, сканерлеу міндеті активтерді басқару міндетімен тығыз байланысты.
  2. Нашар басымдық. Желілік сканерлер іс жүзінде қолданылмайтын кемшіліктері бар көптеген нәтижелер береді, бірақ ресми түрде олардың тәуекел деңгейі жоғары. Тұтынушы түсіндіруге қиын есеп алады және алдымен нені түзету керек екені белгісіз
  3. Нашар ұсыныстар. Сканердің білім қорында көбінесе осалдық және оны түзету жолы туралы жалпы ақпаратты ғана қамтиды, сондықтан әкімшілер Google-мен қарулануы керек. Түзету үшін арнайы пәрмен бере алатын ақ жәшік сканерлерімен жағдай біршама жақсырақ
  4. Қолмен жасалған. Инфрақұрылымдарда көптеген түйіндер болуы мүмкін, бұл әр итерацияда есептер талдануы және қолмен талдануы қажет көптеген ақаулар болуы мүмкін.
  5. Жаман қамту. Инфрақұрылымды сканерлеу сапасы осалдықтар мен бағдарламалық жасақтама нұсқалары туралы білім базасының көлеміне тікелей байланысты. Бола тұра, шығады, тіпті нарық көшбасшыларының толық білім базасы жоқ, ал тегін шешімдердің дерекқорында көшбасшыларда жоқ көптеген ақпарат бар.
  6. Жамауға қатысты мәселелер. Көбінесе инфрақұрылымның осалдықтарын түзету буманы жаңарту немесе конфигурация файлын өзгерту болып табылады. Мұндағы үлкен мәселе жүйенің, әсіресе бұрынғы жүйенің, жаңарту нәтижесінде күтпеген әрекет етуі мүмкін. Шын мәнінде, сіз өндірістегі тірі инфрақұрылымда интеграциялық сынақтарды жүргізуіңіз керек.

Тәсілдер

Қалай болуы керек?
Мен мысалдар және осы мәселелердің көпшілігімен қалай күресу керектігі туралы келесі бөліктерде толығырақ айтып беремін, бірақ қазір мен сіз жұмыс істей алатын негізгі салаларды көрсетемін:

  1. Әртүрлі сканерлеу құралдарын біріктіру. Бірнеше сканерлерді дұрыс пайдалану арқылы білім қорын айтарлықтай арттыруға және анықтау сапасына қол жеткізуге болады. Тәуекел деңгейін дәлірек бағалауға және көбірек ұсыныстар жасауға мүмкіндік бере отырып, жеке жұмыс істейтін барлық сканерлердің қосындысынан да көп осалдықтарды таба аласыз.
  2. SAST және DAST интеграциясы. Олардың арасында ақпарат алмасу арқылы DAST қамту және SAST дәлдігін арттыруға болады. Дереккөзден сіз бар бағыттар туралы ақпаратты ала аласыз және DAST көмегімен осалдықтың сырттан көрінетінін тексеруге болады.
  3. Machine Learning™. 2015 жылы И деді (және толығырақ) сканерлерге хакерлердің интуициясын беру және оларды жылдамдату үшін статистиканы пайдалану туралы. Бұл болашақта автоматтандырылған қауіпсіздік талдауын дамыту үшін сөзсіз азық.
  4. Автотесттермен және OpenAPI-мен IAST интеграциясы. CI/CD-құбырында HTTP проксилері ретінде жұмыс істейтін құралдарға және HTTP арқылы жұмыс істейтін функционалдық сынақтарға негізделген сканерлеу процесін жасауға болады. OpenAPI/Swagger сынақтары мен келісім-шарттары сканерге деректер ағындары туралы жетіспейтін ақпаратты береді, қолданбаны әртүрлі күйлерде сканерлеуге мүмкіндік береді.
  5. Дұрыс конфигурация. Әрбір қолданба мен инфрақұрылым үшін интерфейстердің саны мен сипатын, қолданылатын технологияларды ескере отырып, сәйкес сканерлеу профилін жасау керек.
  6. Сканерді теңшеу. Көбінесе қолданбаны сканерді өзгертпей сканерлеу мүмкін емес. Мысал - әрбір сұрауға қол қою керек төлем шлюзі. Шлюз протоколына қосқышты жазбай, сканерлер қате қолтаңбасы бар сұрауларды ойланбастан тексереді. сияқты кемшіліктердің белгілі бір түрі үшін арнайы сканерлерді жазу қажет Қауіпсіз тікелей сілтеме
  7. Тәуекелдерді басқару. Түрлі сканерлерді пайдалану және активтерді басқару және қауіптерді басқару сияқты сыртқы жүйелермен біріктіру тәуекел деңгейін бағалау үшін бірнеше параметрлерді пайдалануға мүмкіндік береді, осылайша басшылық дамудың немесе инфрақұрылымның ағымдағы қауіпсіздік жағдайы туралы барабар суретті ала алады.

Бізбен бірге болыңыз және осалдықтарды сканерлеуді бұзайық!

Ақпарат көзі: www.habr.com

пікір қалдыру