Последние несколько месяцев часто задумывался о том, как должен мыслить человек моего ремесла - на что обращать внимание, как сопоставлять информацию и строить гиптоезы (aka "А как думать?"). На фоне этих размышлений, общения со знакомыми и анализа своего собственного опыта, у меня образовалась некая картина "эволюции мышления" веб-пентеста, чем я и хочу сегодня поделиться.
Если смотреть на путь становления пентестера вебов, я бы выделил 4 основные точки, когда имеется явный признак того, что ваше мышление выросло по сравнению с вами предыдущим. И речь идет не столько про развитие хардов, где такими метками могут выступать нахождение первой CVE, баги на BB, критовой баги в топовом продукте и т.п., сколько про процесс мышления как таковой (при этом стоить отметить, что вместе с мышлением зачастую растут и харды).
- 1️⃣ Переиграть сканер. Ситуация, когда вы нашли уязвимость, которую не нашел сканер (при этом это не должно быть связано с тем, что вы не умеете пользоваться сканером). Я бы назвал это этапом, когда "детские игры" заканчиваются и начинается погружение в глубокие сети веба.
- 2️⃣ Чейны из примитивов. Ситуация, когда вы начинаете концентрироваться не на поиске одной жирной баги, которая сразу даст победу, а начинаете замечать небольшие примитивы, которые вам затем хватит ума собрать как пазл для достижения победы. Обычно этот этап начинается с нахождения багов, которые звучат как "<Bug_name> via <Primitive>".
- 3️⃣ Отсутствие страха перед многотысячным кодом. Ситуация, когда огромный (и достаточно секурный) код вызывает у вас не страх, прокрастинацию, желание запихнуть его в статический анализатор и забыть как страшный сон, а искреннее желание в нем закопаться и понять, как он работает.
- 4️⃣ Нахождение багов, для которых нет адекватного общепринятого названия. Об этом как раз будет далее. Доведение до мастерства этого этапа может результировать в открытии абсолютно новой техники атаки (например, так появился HTTP Request Smuggling).
⁉️ Так что по поводу последнего этапа? Что это вообще значит?
В какой-то момент вы можете начать замечать, что при некоторых (зачастую, нетривиальных) манипуляциях приложение работает не так как должно. При этом, как таковую уязвимость для этой проблемы назвать сложно. Оно может иметь какой-то элемент известной баги или результировать в понятный импакт, но само поведение не попадает под общепринятые практики. По своей сути, здесь начинается область жесткого веберского ресерча, и пути его безграничны.
⁉️ И все результирует в ресерч?
Я пришел к довольно необычной для себя мысли: с точки зрения мышления - да (если вы не решите остановиться раньше). С точки зрения рода деятельности - необязательно: последний этап вполне применим и для стандартных работ пентестера.
Если у вас есть какое-то мнение по этому поводу - можно смело высказываться в комментариях.
Возможно, данный пост подтолкнет вас к большему осознанию себя или подскажет, куда можно дальше развиваться.
P.S. Это несколько экспериментальный пост, поэтому как-то намекните, заходит вам такое или нет - у меня в эту тему еще есть мысли по поводу применения индуктивного/дедуктивного подхода и интересных ресерч-векторов.
#thoughts #web #mindset #research



Дискуссия