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

Алексей Синцов

Из­вес­тный white hat, док­ладчик на security-кон­ферен­циях, соор­ганиза­тор ZeroNights и прос­то отличный парень. В дан­ный момент занима­ет дол­жность Principal Security Engineer в ком­пании Nokia, где отве­чает за безопас­ность сер­висов плат­формы HERE. alexey.sintsov@here.com

 

Проблемы рынка номер 1

Уже прош­ли вре­мена, ког­да пен­тест был услу­гой ред­кой, для «осо­бых кли­ентов» от «осо­бых исполни­телей». При­чем прош­ли они дав­но, теперь это стан­дар­тная услу­га, которую не пред­лага­ет раз­ве что ленивый. Это озна­чает, что спрос рас­тет, — это­му спо­собс­тву­ет и общая оза­бочен­ность проб­лемой «взло­ма», и гра­мот­ный мар­кетинг на рын­ке, и под­ливание мас­ла в огонь регуля­тора­ми. Вмес­те с этим рас­тет и энтро­пия. На рын­ке появ­ляет­ся мно­жес­тво некачес­твен­ных и откро­вен­но жуль­ничес­ких услуг, вклю­чая и этот ваш пен­тест. Ухуд­шает ситу­ацию и такая же энтро­пия «спе­циалис­тов по ИБ» со сто­роны заказ­чиков/покупа­телей — порог вхож­дения в это неч­то под наз­вани­ем «ИБ» ста­новит­ся доволь­но низ­ким с обе­их сто­рон. Любой пло­хой админ, научив­ший­ся запус­кать Nmap и встав­лять кавыч­ку, — пен­тестер. Любой выпус­кник вуза, который про­читал про ISO 27001 и полис­тал бло­ги о ПДн, — спе­циалист по ИБ. В этом непонят­ном кот­ле под наз­вани­ем рынок они чудес­но варят­ся друг с дру­гом. Я бы мог ныть, мол, как все пло­хо, один я тут в белом стою, но на самом деле все логич­но и явля­ется законо­мер­ным раз­вити­ем того, что все мы дела­ем. Прос­то кро­ме отлично­го качес­твен­ного товара из‑за нех­ватки ресур­сов и из‑за высокой пот­ребнос­ти рынок (рынок кад­ров, услуг, товаров — неваж­но) запол­няет откро­вен­ный треш. Ныть по это­му поводу бес­смыс­ленно и глу­по. На самом деле такое положе­ние даже на руку тем, кто пред­лага­ет дей­стви­тель­но качес­твен­ные услу­ги, — ведь все поз­нает­ся в срав­нении. Одна­ко порой про­исхо­дят обид­ные казусы, ведь в конеч­ном сче­те дей­ству­ет пра­вило «покупа­тель всег­да прав, даже ког­да не прав». Это озна­чает, что про­давец в отве­те даже за некачес­твен­ного кли­ента. При­мер из бло­га А. Лукац­кого. Кли­ент заказал пен­тест. По его ито­гам заказ­чик получил отчет, в котором ска­зано что‑то типа «В резуль­тате про­делан­ной работы уяз­вимос­тей обна­руже­но не было». И все, разош­лись как в море кораб­ли. Вро­де бы все хорошо, в отче­те и в догово­ре все было гра­мот­но опи­сано: спи­сок работ, что сде­лано и резуль­тат — ничего не най­дено. Как это про­читал кли­ент: «Спи­те спо­кой­но, ваш сайт неуяз­вим». На сле­дующий день в интерне­те бом­ба: новая уяз­вимость — Heartblead, которой под­вержен в том чис­ле и сер­вис заказ­чика. Заказ­чик в шоке: как так?! Вот он, отчет, где ска­зано, что уяз­вимос­тей нет, а получа­ется, что есть, при­чем все пло­хо. Оче­вид­но, заказ­чик не понимал, что заказы­вал, за что он пла­тит день­ги и что вооб­ще делали эти люди. Но так как ему «надо было купить какой‑то там пен­тест», то он это чес­тно сде­лал. Поэто­му очень важ­но понимать, что ты покупа­ешь и за какой резуль­тат ты пла­тишь день­ги.

Со­вет 1. Изу­чи спи­сок работ, которые обя­зал­ся сде­лать пен­тестер, подумай, нуж­но ли тебе это.

Про­веря­ют ли на наличие толь­ко извес­тных уяз­вимос­тей? Какими метода­ми? Озна­чает ли это толь­ко скан нма­па + Nessus, или исполни­тель будет ана­лизи­ровать отпе­чат­ки и поведе­ние сис­темы и выяв­лять неяв­ные сер­висы? Какими метода­ми он ищет уяз­вимос­ти в веб‑при­ложе­ниях? Как работа­ет с соф­том треть­ей сто­роны — биб­лиоте­ками, демона­ми, сер­висами и про­чим, про­водят­ся ли работы с кли­ент­ским при­ложе­нием — если у тебя ActiveX / Java Applet или тол­стый кли­ент? Ана­лизи­рует­ся ли логика сис­темы, при­ложе­ний? Исполь­зует­ся ли динами­чес­кий ана­лиз при тес­тирова­нии — фаз­зинг, реверс‑инжи­ниринг — того же ActiveX?

Так мож­но уточ­нять доволь­но мно­го и копать­ся все глуб­же и глуб­же. Чем боль­ше опи­сано — тем луч­ше вид­но, что ты покупа­ешь. При этом глав­ная проб­лема — осве­дом­ленность и обра­зова­ние заказ­чика. В том при­мере из бло­га под­робное опи­сание было. Но заказ­чик не понимал — мож­но ли так най­ти Heartbleed или нет. Заказ­чик не осоз­нает, что для того, что­бы мож­но было тол­кать пре­тен­зии по Heartbleed, дол­жна быть ука­зана работа «Динами­чес­кий ана­лиз и ана­лиз исходных кодов сто­рон­них биб­лиотек. Спи­сок сто­рон­них биб­лиотек: OpenSSL. Методы динами­чес­кого ана­лиза: фаз­зинг про­кола handshake» и так далее и тому подоб­ное. При этом кли­ент вооб­ще дол­жен знать, что такие работы сущес­тву­ют. Конеч­но, цена услуг вырос­ла бы более чем в десять раз, но ког­да кли­ент сов­сем не понима­ет, что покупа­ет, он лег­ко оби­жает­ся, что зап­латил за пен­тест 5 тысяч дол­ларов, а пен­тесте­ры не наш­ли дыр­ку на мил­лион бак­сов.

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

Ис­полни­тель: Вот наши услу­ги. То есть мы про­верим ваш сер­вис на все уяз­вимос­ти, которые мож­но най­ти за это вре­мя эти­ми метода­ми, ОК?
За­каз­чик: Зат­кнись и возь­ми мои день­ги!
Ис­полни­тель: Догово­рились!

За­каз­чик вооб­ще не готов к тех­ничес­ким раз­говорам, а это ведь толь­ко вер­хушка айсбер­га! Желатель­но, что­бы исполни­тель более доход­чиво объ­яснил, что за пять килобак­сов и четыре дня работы най­ти все прос­то нель­зя.

Со­вет 2. По воз­можнос­ти про­веряй то, что обя­зал­ся делать пен­тестер.

Од­на из основных проб­лем — заказ­чик не зна­ет, что дей­стви­тель­но делал пен­тестер. Может, толь­ко ска­нер запус­тил, а руками и головой не работал сов­сем. Что‑то про­верить нель­зя, но мно­гое мож­но: смот­ри логи веб‑сер­вера, смот­ри активность тес­товых акка­унтов, ста­тис­тику зап­росов к СУБД и так далее. Твои логи — твой глав­ный совет­чик.

 

Собственность клиента

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

  1. Уяз­вимос­ти в резуль­тате оши­бок кон­фигура­ции.
  2. Уяз­вимос­ти, допущен­ные на ста­дии раз­работ­ки/архи­тек­туры в кас­томном про­дук­те (0day).
  3. Уяз­вимос­ти, допущен­ные на ста­дии раз­работ­ки/архи­тек­туры в сто­рон­нем про­дук­те (0day).
  4. Уяз­вимос­ти пун­кта 3, толь­ко извес­тные сооб­щес­тву и вен­дору (1day).

Оче­вид­но, что уяз­вимос­ти клас­са 4 не явля­ются собс­твен­ностью кли­ента или исполни­теля — это все­обще извес­тная информа­ция. Пер­вый и вто­рой класс уяз­вимос­тей пред­став­ляет собой собс­твен­ность кли­ента, но вот что делать с треть­им клас­сом? Чья это собс­твен­ность?

Со­вет 3. Уточ­няй в догово­ре то, что покупа­ешь.

Не прос­то какой‑то там отчет, но и информа­цию, не под­лежащую раз­гла­шению, нап­ример об уяз­вимос­тях в 3rd party про­дук­тах, или наобо­рот — исполни­тель поможет ско­орди­ниро­вать работу с вен­дором. Конеч­но, это зависит от целей и тво­их желаний, но это надо докумен­тировать и обго­вари­вать. Это может быть неваж­ным пун­ктом для одних и инте­рес­ным для дру­гих.

Один заказ­чик как‑то ска­зал: «Опять наш­ли 0day в VMware за наш счет, нам неин­терес­но помогать раз­работ­чикам VMware...». То есть он вооб­ще был не заин­тересо­ван в том, что­бы иска­ли уяз­вимос­ти в соф­те сто­рон­них вен­доров (что логич­но и пра­виль­но). Тог­да как дру­гой заказы­вает пен­тест, спе­циаль­но что­бы пос­мотреть, что втю­хал ему вен­дор или интегра­тор, и ему нуж­ны эти уяз­вимос­ти, что­бы «давить» на них. Пен­тестер будет работать эффектив­нее, если будет знать твою цель. Кро­ме того, тут опять прок­левыва­ется эти­чес­кая сос­тавля­ющая. Допус­тим, пен­тестер нашел 0дей в ДБО вен­дора А, в бан­ке Б. Он пот­ратил свое вре­мя и день­ги бан­ка Б. Все кру­то, но потом он пошел в банк В, который поль­зует­ся тем же решени­ем А. Не тра­тя ни копей­ки, пен­тестер сооб­щает об этой же уяз­вимос­ти бан­ку В. Таким обра­зом, банк Б час­тично (про­цен­тов на 80) помог бан­ку В за свой счет. Но кро­ме того, банк В зна­ет уже и о проб­лемах бан­ка Б, и хорошо, что всем на это пле­вать, и кон­курен­ция у нас здо­ровая, и бан­ки друг дру­га под­держи­вают. Но я за то, что­бы докумен­тировать собс­твен­ность на такого рода уяз­вимос­ти в догово­ре, — мелочь, зато про­фес­сиональ­но :).

 

И еще много вопросов…

Ры­нок пос­тепен­но взрос­леет, и мно­гие воп­росы не под­нима­ются ни заказ­чиком (не доз­рел), ни исполни­телем (не в его инте­ресах либо тоже не доз­рел). Я надавал тут каких‑то слож­ных советов, это прав­да, и глав­ный аргу­мент: если мы зна­ем все эти детали и можем вот так про­верять работу пен­тесте­ров, то зачем нам пен­тесте­ры, мы сами все можем? Но это лишь час­тично так. Отли­чить ска­нер от работы челове­ка и понять логику того, что делал акка­унт в при­ложе­нии, может любой инже­нер, хотя бы что­бы опре­делить явных жуликов, потом, этот инже­нер получит неп­лохой опыт :). И да — нуж­но повышать ква­лифи­кацию сво­их ИБ‑шнков, а не наде­ять­ся на чес­тность кон­суль­тан­та. Я понимаю, что не все могут поз­волить себе нанять инже­нера, который смыс­лит что‑то в ИБ, но если безопас­ность для вашего биз­неса будет ста­новить­ся все боль­шим при­ори­тетом, то такие кад­ры ока­жут­ся очень цен­ными и полез­ными для всей ком­пании. Потом в любом слу­чае, при боль­шом перимет­ре и боль­шом количес­тве про­ектов, нанимать пен­тесте­ров, интегра­торов или покупать решения по ИБ при­дет­ся. И если у вас в коман­де будет человек, который смо­жет опре­делить необ­ходимость и эффектив­ность, а так­же коор­диниро­вать такие работы, — это будет нам­ного эффектив­нее, чем если это будут делать кон­суль­тан­ты и интегра­торы, ведь мотива­ция и цели будут раз­ными.

Так что вывод мой таков: рынок ИБ будет давать более качес­твен­ные услу­ги и умень­шать количес­тво бул­лшит‑услуг в про­пор­циональ­ной зависи­мос­ти от рос­та куль­туры и ква­лифи­кации заказ­чиков. То есть заказ­чики дол­жны не ждать, ког­да вдруг рынок ста­нет «хорошим», а самим ста­новить­ся луч­ше.

Уда­чи нам всем!

Аватар

Алексей Синцов

Известный white hat, докладчик на security-конференциях, соорганизатор ZeroNights и просто отличный парень. В данный момент занимает должность Principal Security Engineer в компании Nokia, где отвечает за безопасность сервисов платформы HERE

Check Also

Magentная аномалия. Настраиваем ngnix для работы с Magento

По настройке сервера nginx созданы тысячи мануалов, но иногда случаются ситуации, не описа…

Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии