Идеальный пентест. Как довести заказчика до экстаза

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


2024-05-22 11:35

киберугрозы

Александр Герасимов

Пен­тест, то есть про­вер­ка инфраструк­туры ком­пании на воз­можность хакер­ско­го про­ник­новения, — это рас­простра­нен­ная услу­га, которую пре­дос­тавля­ют ИБ?ком­пании. Одна­ко пен­тесты быва­ют очень раз­ными. В этой статье я рас­ска­жу, как, на мой взгляд, дол­жны и как не дол­жны выг­лядеть резуль­таты таких работ. Думаю, мои советы при­годят­ся и заказ­чикам, и исполни­телям.

На мысль написать такой текст меня навел ком­мента­рий заказ­чика, оставлен­ный пос­ле завер­шения про­екта. Он демонс­три­рует, какие, казалось бы, обыч­ные вещи могут впе­чат­лить и порадо­вать.

У нас была уяз­вимая биб­лиоте­ка с высоким CVSS, и при этом она лег­ко экс­плу­ати­рова­лась. PoC не было, но сос­тавить его не проб­лема — кол­леги из Китая оста­вили очень хорошие опи­сания к CVE, за недель­ку мож­но заиметь боевой обра­зец. Но мы зна­ли, что бла­года­ря нашим уси­лиям эта уяз­вимость была неп­римени­ма.
Мы жда­ли отчет с кри­чащи­ми тегами CRITICAL. Но уви­дели эту биб­лиоте­ку с мар­кером LOW. Исполни­тели прек­расно понима­ли, как мы защити­лись, сами же опи­сали при­чину, по которой эта уяз­вимость не может быть про­экс­плу­ати­рова­на, и кор­рек­тно отме­тили, что биб­лиоте­ка уяз­вима и ее нуж­но обно­вить, ког­да появит­ся патч.
Пос­ле такого понима­ешь:
  1. Твое вре­мен­ное решение проб­лемы ком­петен­тно, раз сто­рон­няя коман­да приш­ла к тому же выводу.
  2. Ис­полни­тель не прос­то исполь­зовал какие?то ана­лиза­торы, но осмыслил про­исхо­дящее, про­ана­лизи­ровал потоки дан­ных, сопос­тавил логику уяз­вимос­ти и биз­нес?про­цес­сы. Получив такое, веришь, что он был нас­толь­ко же дотошен и в дру­гих парамет­рах оцен­ки.

 ПРОГРАММА МИНИМУМ

Итак, что же нуж­но делать, что­бы заказ­чики были счас­тли­вы и писали при­ятные отзы­вы?

  1. Са­мый важ­ный аспект — вни­кать в логику работы. Не прос­то ска­ниро­вать инфраструк­туру, валиди­ровать баги руками, что?то тыкать и фаз­зить, но еще и понять, как работа­ет сер­вис, пос­мотреть потоки дан­ных и вза­имо­дей­ствие с осталь­ными мик­росер­висами и интегра­циями.
  2. Пок­рывать все сер­висы авто­мати­зиро­ван­ными средс­тва­ми.
  3. Ва­лиди­ровать все уяз­вимос­ти. Не прос­то отда­вать репор­ты ска­нера, обер­нутые в логоти­пы тво­ей ком­пании, а обя­затель­но про­верять, что каж­дая най­ден­ная уяз­вимость реаль­на.
  4. Кор­ректи­ровать уро­вень опас­ности уяз­вимос­тей сог­ласно кри­тич­ности сер­виса и воз­можнос­ти экс­плу­ата­ции. Даже если ска­неры пишут, что уяз­вимость кри­тич­на, нуж­но учи­тывать обсто­ятель­ства: мож­но ли ее про­экс­плу­ати­ровать, есть ли реаль­ные уяз­вимос­ти с PoC, кри­тич­ный ли сер­вис и так далее.
  5. Весь чек?лист прой­ден в руч­ном режиме. 90% работы над про­ектом дол­жно занимать руч­ное тес­тирова­ние, ресерч, попыт­ки экс­плу­ата­ции имен­но в руч­ном режиме.

КАК ПИСАТЬ ОТЧЕТ

От­чет — это резуль­тат про­екта, ради него все и дела­ется, поэто­му пере­оце­нить его зна­чение вряд ли воз­можно. В хорошем отче­те дол­жны быть:

  1. Еди­ный стиль изло­жения, отсутс­твие грам­матичес­ких и сти­лис­тичес­ких ляпов, опи­сание рисун­ков, схем, таб­лиц. Что­бы всем было при­ятно смот­реть на отчет и содер­жание было пре­дель­но ясным.
  2. Де­таль­ное опи­сание недос­татков. Не прос­то общее опи­сание, а для кон­крет­ных слу­чаев: где наш­ли уяз­вимость, в каком парамет­ре или модуле.

3. При­меры экс­плу­ата­ции. Показа­ны най­ден­ные баги, прик­репле­на кар­тинка как пруф. Чита­ющий может пов­торить дей­ствие с кар­тинки. Так­же не помеша­ет деталь­ное опи­сание про­цес­са тес­тирова­ния, ссыл­ки на базы уяз­вимос­тей ФСТЭК Рос­сии или тех­ник MITRE.

4. Ре­комен­дации так­же про­писа­ны для кон­крет­ных слу­чаев, опи­саны точеч­ные советы, имен­но для того фрей­мвор­ка и сте­ка тех­нологий, который исполь­зует заказ­чик. Нет двус­мыслен­ности. Есть раз­ные вари­анты устра­нения.

Нап­ример, ты нашел уяз­вимость, которая поз­воля­ет переби­рать поль­зовате­лей. Сис­тема реаги­рова­ла по?раз­ному в тех слу­чаях, ког­да поль­зователь сущес­тву­ет и ког­да его нет. Мож­но дать общую рекомен­дацию — внед­рить CAPTCHA-тест. Но если зна­ешь, что у заказ­чика исполь­зует­ся, нап­ример, Django, то мож­но дать рекомен­дации имен­но для это­го фрей­мвор­ка.

5. Ре­зюме работы с циф­рами, рекомен­даци­ями и выводом.

6. От­чет офор­млен на осно­ве воп­росов, задан­ных заказ­чиком перед про­ектом. Затем идет то, что спе­циалис­ты счи­тают важ­ным и релеван­тным. Если воп­росов не было, то по иерар­хии кри­тич­ности всех находок.

7. При­веде­на ана­лити­ка: количес­тво уяз­вимос­тей, хос­тов, которые были про­вере­ны, или топ уяз­вимос­тей в ком­пании, или динами­ка по пре­дыду­щим пен­тестам и вре­мени жиз­ни уяз­вимос­тей, если есть такая воз­можность.

8. Мо­дели­рова­ние угроз поведе­ния зло­умыш­ленни­ка. Нуж­но показать, что слу­чит­ся, если зло­умыш­ленник про­экс­плу­ати­рует уяз­вимость. Нап­ример, уяз­вимость с SMS-спа­мом, как пра­вило, заказ­чики не понима­ют. Поэто­му нуж­но показать, в чем ее риск, объ­яснить, что про­вай­дер поз­воля­ет круп­ным ком­пани­ям отправ­лять до 3 тысяч SMS в секун­ду. На отправ­ку 200 зап­росов ком­пания тра­тит 400 руб­лей в секун­ду. Если ата­ка длит­ся час, то зло­умыш­ленник сож­жет поч­ти 1,5 мил­лиона руб­лей с балан­са ком­пании.

ЧТО ВАЖНО ОБСУДИТЬ

Пен­тест — это такая услу­га, где резуль­тат силь­но зависит не толь­ко от исполни­теля, но и от заказ­чика, поэто­му важ­но догово­рить­ся на берегу. Вот спи­сок воп­росов, которые, на мой взгляд, обя­затель­но сто­ит обсу­дить.

  • Инс­тру­мен­тарий исполни­теля не будет огра­ничен.
  • За­каз­чик не будет пре­пятс­тво­вать про­веде­нию пен­теста, если не ого­воре­ны какие?то исклю­чения (не отклю­чать сер­висы, не пат­чить «на лету» и так далее).
  • Нуж­но опре­делить чет­кие цели работ: получе­ние прав адми­нис­тра­тора на такой?то сис­теме и так далее.
  • Обя­затель­но опре­делить ско­уп работ.
  • Оп­ределить модель наруши­теля.
  • За­каз­чик дол­жен отли­чать пен­тест от ана­лиза защищен­ности, ска­ниро­вания.
  • Сто­ит сос­тавить план работ с про­межу­точ­ными эта­пами. Нап­ример, каж­дую неделю узна­вать резуль­таты и пла­ны на сле­дующую неделю.

За­каз­чикам могу пореко­мен­довать выбирать исполни­телей, для которых пен­тест — про­филь­ная услу­га (если неп­рофиль­ная, ком­пания ско­рее отдаст выпол­нение на аут­сорс). Не помеша­ет и про­вес­ти с исполни­телем интервью, выяс­нить опыт коман­ды, расс­про­сить о том, как устро­ен про­цесс тес­тирова­ния. Быва­ет полез­но ротиро­вать исполни­телей или хотя бы про­сить менять сос­тав коман­ды, что­бы был све­жий взгляд на одну и ту же инфраструк­туру.

КАК НЕ ОПОЗОРИТЬСЯ

Есть целый класс так называ­емых «уяз­вимос­тей» вро­де под­дер­жки ран­них вер­сий про­токо­лов SSL и TLS, не выс­тавлен­ного на сес­сион­ную куки фла­га безопас­ности и про­чих сооб­щений, которые авто­мати­чес­ки генери­руют ска­ниру­ющие движ­ки.

Ес­ли в отче­те перечис­лены такие уяз­вимос­ти, то к ним нуж­ны опи­сания, которые будут пояс­нять, почему та или иная строч­ка вклю­чена в отчет. Не помеша­ет и опи­сание того, как уяз­вимость вли­яет на сис­тему, какие нуж­ны усло­вия для ее экс­плу­ата­ции и какая пред­полага­ется модель наруши­теля.

Без таких пояс­нений отчет мож­но счи­тать фор­маль­ной отпиской. Исполни­тель не пот­рудил­ся при­мерить най­ден­ное к жиз­ни и дать более глу­бокую оцен­ку. Вывали­вать в отче­те авто­мати­чес­ки сге­нери­рован­ный текст не нуж­но.

Вряд ли пораду­ют заказ­чика и корот­кие фор­маль­ные опи­сания уяз­вимос­тей без пру­фов и при­меров экс­плу­ата­ции. Даже спе­циалист по ним вряд ли пой­мет суть бага и не смо­жет при­менить резуль­тат тес­тирова­ния в сво­ей работе.

Ес­ли заказ­чик не получа­ет отве­ты на глав­ные воп­росы о том, что угро­жает ком­пании, смысл про­екта тоже теря­ется, поэто­му отчет без опи­сан­ных рис­ков — не отчет.

Пло­хо, ког­да нет кон­крет­ных рекомен­даций. Нап­ример, понят­но, что надо огра­ничить количес­тво зап­росов, но непонят­но, как это сде­лать. Даже если заказ­чик не вос­поль­зует­ся рекомен­даци­ями, нуж­но показать при­мер, как это мож­но сде­лать в его слу­чае.

В при­мере спра­ва добав­лены рис­ки, при­мер экс­плу­ата­ции, ответ веб?сер­вера и тех­ничес­кое опи­сание того, к чему при­ведет экс­плу­ата­ция уяз­вимос­ти. Даны рекомен­дации, которые объ­ясня­ют, как огра­ничить количес­тво зап­росов. То есть для заказ­чика сос­тавле­но готовое решение, в котором учтен его тех­нологи­чес­кий стек.

EXECUTIVE SUMMARY КАК ИНСТРУМЕНТ

У нас был такой кейс. Мы прод­вигались по сети и попали в инте­рес­ную под­сеть, к которой была под­клю­чена машина с очень злой уяз­вимостью и сес­сией дос­таточ­но зна­чимо­го челове­ка в домене. Экс­плу­ата­цию мы про­води­ли по сог­ласова­нию, поэто­му поз­вонили девоп­су (не хотелось ронять ему сер­вис сво­им экс­пло­итом и пре­рывать про­цес­сы), опи­сали ситу­ацию и свои мыс­ли, мотивы. На что получи­ли ответ: «Да, обя­затель­но это делай­те, я даю доб­ро! И незави­симо от резуль­тата, пожалуй­ста, опи­шите это в отче­те — я уже год про­шу выделить ресур­сы на то, что­бы эту под­сеть перес­тро­ить, но меня ник­то не слу­шает. Если получит­ся, зна­чит, меня наконец?то услы­шат».

В течение сле­дующих пят­надца­ти минут мы получи­ли пра­ва адми­нис­тра­тора домена. Из этой исто­рии и опы­та работы с боль­шими ком­пани­ями с глу­бокой субор­динаци­ей мы сде­лали вывод: даже ока­зывая слож­ную тех­ничес­кую услу­гу, общать­ся сле­дует на язы­ке денег.

Вла­дель­цы биз­неса мыс­лят при­былью, в этом пла­не информа­цион­ная безопас­ность — прос­то тра­ты. Но избе­жать этих трат все рав­но не вый­дет. Зап­росы к началь­ству со сто­роны ИБ неред­ко сфо­куси­рова­ны на локаль­ной задаче, выраже­ны слож­ным тех­ничес­ким язы­ком и тре­буют допол­нитель­ной «рас­шифров­ки», а зна­чит, и допол­нитель­ной аргу­мен­тации.

Не нуж­но говорить «тут уяз­вимость, это опас­но», нуж­но говорить «если мы сей­час не вло­жим сюда неболь­шие день­ги, то ког­да нас пробь­ют — мы потеря­ем боль­шие день­ги, решай­те сами».

Да, это тре­бует под­готов­ки и ана­лиза акти­вов, но бла­года­ря такому под­ходу проб­лемы недос­татка бюд­жета или ресур­сов реша­ются гораз­до быс­трее. Окон­чание пен­теста — это все­го лишь начало боль­шой работы для наших кол­лег. Они будут занимать­ся устра­нени­ем най­ден­ных уяз­вимос­тей, пос­тро­ением новых ИБ?про­цес­сов и про­чими изме­нени­ями, нап­равлен­ными на защиту сис­тем.

Так что боль­шим плю­сом для пен­теста ста­нет такое сам­мари, что­бы совет дирек­торов лег­ко его понял и захотел пой­ти навс­тре­чу отде­лу безопас­ности. Еще луч­ше, если твоя ком­пания в сос­тоянии про­вес­ти защиту про­екта биз­нес?заказ­чику и зас­тавить биг?бос­сов быс­тро понять, нас­коль­ко все уяз­вимо и что нуж­но делать, что­бы изме­нить это.

ЧТО НУЖНО ДЛЯ ХОРОШЕГО EXECUTIVE SUMMARY?

  1. Кон­кре­тика и циф­ры. Пос­коль­ку этот раз­дел чита­ют менед­жеры, зачас­тую нез­накомые с тех­ничес­кими тер­минами, важ­но доход­чиво донес­ти биз­нес?рис­ки, к которым ведут уяз­вимос­ти.
  2. Объ­яснить, каким был перечень работ: нап­ример, сде­лали пен­тест, фишинг и так далее. Рас­ска­зать, зачем это было нуж­но и к каким выводам при­вело. Схе­мы, кар­тинки, нап­ример ход пен­теста вер­хне­уров­нево, «для самых малень­ких».
  3. Не­боль­шая ана­лити­ка, нап­ример количес­тво кри­тич­ных уяз­вимос­тей, вре­мя, которое пот­ребу­ется зло­умыш­ленни­ку для ком­про­мета­ции инфраструк­туры, уро­вень зло­умыш­ленни­ка, необ­ходимый для реали­зации всех атак, сколь­ко человек в ком­пании попалось на фишинг.
  4. Де­ком­позиция рис­ков: какой ущерб может нанес­ти реали­зация ата­ки, к чему может при­вес­ти успешный фишинг и так далее.
  5. И конеч­но, отра­бот­ка воз­ражений. Рекомен­дации, понят­ные всем. Нап­ример: внед­рение таких?то средств защиты поз­волит избе­жать реали­зации ата­ки № 1, неп­рерыв­ный ана­лиз защищен­ности поз­волит не допус­тить событий № 2 и № 3.

ВЫВОДЫ

Ес­ли ты работа­ешь в ИБ?ком­пании, наде­юсь, мои советы помогут тебе усо­вер­шенс­тво­вать ваш про­цесс и начать радовать кли­ентов еще боль­ше. Если же ты тру­дишь­ся на сто­роне потен­циаль­ного заказ­чика, то, думаю, уже понял, на что нуж­но ори­енти­ровать­ся при заказе услу­ги. Пом­ни: чем глуб­же пен­тестер пог­рузит­ся в осо­бен­ности инфраструк­туры и чем луч­ше будет их учи­тывать, тем боль­ше будет отда­ча.

 Читайте ещё больше платных статей бесплатно: https://t.me/xakep_1


Источник: telegra.ph

Комментарии: