Проблемы Web Безопасности - откуда ноги растут

Поделиться
HTML-код
  • Опубликовано: 18 янв 2025

Комментарии • 106

  • @programisli
    @programisli  11 месяцев назад

    Обо мне: www.flenov.ru
    Мой ИТ блог www.flenov.info
    Телеграм: t.me/mflenov
    Twitter: twitter.com/flenov

  • @LihMeh
    @LihMeh Год назад +21

    У нас в лохматых 2005-2010 в ВГУ учили, что такое SQL-инъекция.
    Вспомнилась история: один парень (не помню по какой причине) пропустил зачет по базам данных,
    он взломал факультетский Moodle и поставил себе пятерку.
    Его спалили, пятерку отобрали. А как по мне, он заслужил 5+ :) Знания же профильные показал!

    • @LihMeh
      @LihMeh Год назад +2

      UPD: не написал сразу: он, как раз, через инъекцию и взломал.
      А еще урок админам - вовремя надо обновлять софт :)

    • @digital-october
      @digital-october Год назад +1

      Воронежский Государственный?

    • @LihMeh
      @LihMeh Год назад

      @@digital-october ага, он, родненький

    • @roma9957
      @roma9957 9 месяцев назад

      Куда лучше поступать ВИВТ или ВГУ?

  • @Miron_Nicolaevich
    @Miron_Nicolaevich Год назад +3

    Смотрю вас с момента как начал изучать программирование и благодаря вам появилось желание в дальнейшем изучать безопасность)

  • @Nikegamecentral
    @Nikegamecentral Год назад +17

    "Я получил ремня, и вы получите ремня" ))

    • @programisli
      @programisli  Год назад +3

      Главное, чтобы он был по безопасности

  • @АртемЛомакин-з1с
    @АртемЛомакин-з1с Год назад +8

    Здравствуйте! Вы очень правильно думаете. Тоже замечаю, что проблемы с безопасностью у многих компаний. Как у программистов, так и в других сферах. В документации, тоже. И надо соблюдать правила безопасности. Спасибо за видео, интересная идея с обучением и поясами. Надо будет тоже внедрять такие методики.

  • @Hasegi-kr9hu
    @Hasegi-kr9hu Год назад +6

    Работаю пентестером и крайне негодую, что мужик рассказывает реально полезные вещи, которые отбирают у меня хлеб

    • @programisli
      @programisli  Год назад +7

      У хорошего пентестера работу отобрать невозможно :). В хорошей компании пентестеры как и админы должны ничего не делать, а сидеть. Это как с врачами - нужно платить за то, чтобы не болели, а не за то, чтобы лечили.

  • @antonlogunov7773
    @antonlogunov7773 11 месяцев назад +2

    Как думаете? Может многие пренебрегают безопасностью в вебе в связи с большей популярностью front-end по отношению к backend? Где больше важна картинка?

    • @programisli
      @programisli  11 месяцев назад

      Не понял вопроса

    • @antonlogunov7773
      @antonlogunov7773 11 месяцев назад

      @@programisli, извините, поправил

    • @programisli
      @programisli  11 месяцев назад

      Картинка конечно важна, но нет, не связано. Думаю проблема образования

  • @ВиталийТризна
    @ВиталийТризна Год назад +1

    Михаил, спасибо за полезный материал. Что еще можешь посоветовать посмотреть/почитать по теме безопасности? Интересует в плане расширения кругозора - основные проблемы, основные подходы к решению.

    • @programisli
      @programisli  Год назад

      Надо читать разные источники и авторов. Я читаю просто всё, что попадается мне на глаза

  • @ПользовательОпытный-ш5м

    Замучался с этими "ремнями"😂 Об инъекциях, узнал из "глазами хакера", за что очень благодарен!

    • @programisli
      @programisli  Год назад

      Запутался в ремнях

  • @codesleeprepeat
    @codesleeprepeat Год назад +4

    33 вопроса о веб-уязвимостях для подготовки к собеседованию. Сложность - средняя, некоторые вопросы с подвохом. Если смогли ответить на большую часть без подсказок, - можете смело идти и получать свой оффер.
    1. В чем разница между Web Cache Deception и Web Cache Poisoning?
    2. Какие два критерия должны быть соблюдены для эксплуатации Session Fixation?
    3. В чем разница между Base64- и Base64URL-кодированием?
    4. Назовите 5 (или более типов) XSS.
    5. Как работает булевое "Error" при эксплуатации Blind SQL Injection?
    6. Что такое Same-Origin Policy (SOP) и как это работает?
    7. Как работает TE.TE вариант HTTP Request Smuggling?
    8. Что такое DOM Clobbering и как его можно использовать для обхода некоторых санитайзеров при эксплуатации XSS?
    9. Опишите, как можно использовать HTTP Parameter Pollution для обхода WAF.
    10. Опишите, что такое IDOR и объясните, чем его устранение отличается от устранения других уязвимостей контроля доступа.
    11. Что такое JWK и JKU, и чем они отличаются?
    12. Что такое бизнес-логика в контексте веб-приложений и чем тестирование уязвимостей бизнес-логики отличается от поиска XSS, SQLi и т. д.?
    13. Приведите пример 3 пэйлоадов, которые можно использовать для идентификации используемого Template Processor при эксплуатации SSTI.
    14. Зачем нужен заголовок Sec-WebSocket-Key?
    15. Что позволяет сделать значение unsafe-inline, если оно используется в директиве script-src?
    16. Приведите пример аутентификации без сохранения состояния и опишите уязвимость этого механизма аутентификации.
    17. Опишите три способа предотвращения CSRF.
    18. Что такое XML parameter entities и какие ограничения они имеют при эксплуатации XXE?
    19. Какие рекомендации вы бы дали клиенту по исправлению DOM Based XSS?
    20. Какие условия должны быть выполнены, чтобы "предотвратить" отправку Preflight-запроса браузером?
    21. Опишите три способа эксплуатации Insecure Deserialization.
    22. Перечислите проверки, которые может выполнять приложение, чтобы убедиться, что файлы не содержат вредоносного содержимого и могут быть загружены только в разрешенные каталоги.
    23. Как работает Mass Assignment и каковы возможные последствия использования такой уязвимости?
    24. Что такое GraphQL batching и как его использование может помочь обойти Rate Limit?
    25. Что такое type juggling и как JSON помогает эксплуатировать уязвимости этого типа?
    26. Опишите три метода, которые можно использовать для обнаружения конфиденциальных данных, предоставляемых приложением.
    27. Опишите атрибуты запроса, которые делают его фактически невосприимчивым к CSRF.
    28. Назовите 5 уязвимостей, которые потенциально могут привести к OS command execution в веб-приложении.
    29. Что такое Prototype Pollution и к каким последствиям может привести эксплуатации в клиентском и в серверном вариантах?
    30. Опишите, как вы будете тестировать уязвимости вертикального контроля доступа в приложении с 20 ролями и более чем 300 различными «функциональными» запросами.
    31. При каких обстоятельствах сохраняется инстанс Session Storage у вкладки?
    32. Как еще можно найти и эксплуатировать XXE, кроме загрузки XML через форму?
    33. Назовите распространенные уязвимости, которые можно обнаружить при сбросе пароля.

  • @Adarfell
    @Adarfell Год назад +2

    Ох, ну инъекции это же базовый уровень. А какой пласт проблем есть в бизнес логике

    • @programisli
      @programisli  Год назад +1

      Да, и вот Бизнес логика должна быть на первом месте в OWASP, потому что научить защищаться от SQL или Code инъекции легко, научить безопасной логике и архитектуры приложения на много сложнее.

  • @denielmorozov539
    @denielmorozov539 Год назад +2

    Инетересный вот подход. Заставляет что-то удерживаться у вас на канале

  • @Nikegamecentral
    @Nikegamecentral Год назад +6

    Закончил в том году ВУЗ по направлению "Программная инженерия". За 4 года обучения рассказали только о SQL-инъекции на предмете "Базы данных". О том, как это решать - не рассказали )

    • @programisli
      @programisli  Год назад +2

      Это печалька

    • @jessrabbitxt
      @jessrabbitxt Год назад

      Тоже, чет не помню чтоб кроме инъекций что-то давали по безопасности
      Учил сам, собственно

  • @AceMaster250
    @AceMaster250 Год назад +2

    Здравствуйте, хотел у вас как у профи поинтересоваться , как и где сейчас лучше учить веб для С# ? Сухую документацию мне кажется мало толку будет читать, по крайней мере у меня так на долго не задерживается информация

    • @programisli
      @programisli  Год назад

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

    • @AceMaster250
      @AceMaster250 Год назад

      @@programisli У меня просто проблема в том что проект уже немного недоделанный но есть, а вот по теории проседаю очень

  • @titanovsky
    @titanovsky Год назад +1

    Спасибо, я с вебом не так часто сталкиваюсь в разработке, но про эти банальные уязвимости, которые легко фиксятся - возьму на заметку.

  • @firewatermoonsun
    @firewatermoonsun Год назад

    Сейчас в основном для веб разработки используют ORM. Там вроде уже проводится sanitazation?

    • @programisli
      @programisli  Год назад

      Смотря какая ORM и как использовать, они же тоже позволяют иногда выполнять чистый SQL

    • @firewatermoonsun
      @firewatermoonsun Год назад

      Да, точно.

  • @slavapinchuk4829
    @slavapinchuk4829 Год назад +1

    Спасибо за Ваши мысли. К сожалению практически все компании не развивают специалистов. Ты приходишь, тебе дают гору тасок и на этом всё. Было время, что я верил, что можно найти такое место. Но теперь я просто общаюсь с несколькими энтузиастами и на этом всё.

    • @programisli
      @programisli  Год назад

      Но если не развивать специалистов, то будут проблемы

  • @jelooJusta
    @jelooJusta Год назад +1

    вопрос не в том, откуда растут ноги, а в том, откуда растут руки

  • @Всеукраїнськийаудитсайтів

    Ладно пояса, а ремни получать на работе - это точно нововведение и бояться будут, когда задница будет переливаться цветами радуги.

  • @codesleeprepeat
    @codesleeprepeat Год назад +1

    Спасибо за видео, круто, зажёг))

  • @Apollonushko
    @Apollonushko 11 месяцев назад +1

    Спасибо. Хочу подписаться на ваш бусти.

    • @programisli
      @programisli  11 месяцев назад

      Без проблем, вот тут boosty.to/mflenov

  • @AndrewLewman
    @AndrewLewman Год назад +8

    На счет безопасности: очень странно было слышать что люди настолько не знают об этом. Кажется на рф рынке все бекендеры знают об этом. Сам чуть ли не со школы знаю, кстати, может быть благодаря одной из ваших книг, или подобным увлечениям )

    • @you-are-not-allowed
      @you-are-not-allowed Год назад +1

      Все бэкендеры знают 😂 очень сомнительно, навидался

    • @al.e.k
      @al.e.k Год назад

      Допускаю, что с распространением фреймворков и orm как раз про инъекции не все могут знать, потому что пишут запросы, используя orm. А вот те, кто постарше и помнят времена самописных решений, то вот они как раз больше знают про эту уязвимость.

    • @you-are-not-allowed
      @you-are-not-allowed Год назад

      @@al.e.k я видел что и в орм вставляют переменные от пользователя без подготовки 😃

  • @Всеукраїнськийаудитсайтів

    Михаил, написал кучу писем с Вашего сайта - без ответа. Возможно стоит проверить, доходят ли они с Вашего сайта ?

    • @programisli
      @programisli  Год назад

      Когда писал? Вообще доходят, вот вчера мне присылали вопрос.

    • @Всеукраїнськийаудитсайтів
      @Всеукраїнськийаудитсайтів Год назад

      @@programisli Возможно доходят, а ответа то нет вообще. Уже не в первой. Я подумал, возможно, проблема внутри.

    • @programisli
      @programisli  Год назад

      Я всем отвечаю. Отправь сейчас письмо. Некоторые говорят, что мои письма попадают в спам

    • @Всеукраїнськийаудитсайтів
      @Всеукраїнськийаудитсайтів Год назад

      @@programisli отправил письмо. в конце письма написал "777"

  • @ИмяФамилия-х7ь7м
    @ИмяФамилия-х7ь7м Год назад +1

    Здравствуйте, сейчас такое время, что интересно изучать различные сферы программирования. Могли бы вы сказать как вы выбрали свою сферу?

    • @programisli
      @programisli  Год назад +1

      Посмотри на канале есть плейлист Биография, там почти вся моя ИТ жизнь

  • @grosseameise
    @grosseameise Год назад +1

    какие курсы порекомендуете по безопасности?

    • @programisli
      @programisli  Год назад +1

      Я никаких курсов не заканчивал, сам все изучал по книгам и просто икал в интернете и теперь делюсь знаниями через книги и бусти

    • @grosseameise
      @grosseameise Год назад

      @@programisli 2:22 - "Я сам побежал и сдал эти курсы" - это внутрениие курсы?

  • @johnmayt2191
    @johnmayt2191 Год назад +2

    Я с кибер безопасностью познакомился на первой работе)

  • @mechanism-o4h
    @mechanism-o4h Год назад +1

    Работал в банке, который входит в топ 20 в России. В CRM системе передавались данные карт клиентов в JSON, который можно было просто в консоли браузера посмотреть. Ну это то, что мне больше всего запомнилось, а так все дырявое насквозь. Меня это всегда удивляло, т.к. в банке часто программисты сидели без задач и занимались ерундой, хотя прям кладезь была всего, что можно улучшить. Я так и не понял за 2 года работы, почему никто этим не занимался, имея в штате специалистов и свободные ресурсы.

    • @programisli
      @programisli  Год назад

      Чтобы этого не было, админы должны настроить WAF (Web Application Firewall) и на нём блокировать всё, что похоже на кредитную карту - 16 цифр, которые начинаются на определённую последовательность. У нас именно так и было. Да, было много ложных срабатываний, но лучше ложное срабатывание, чем отсутствие срабатывания вовсе.

  • @Adarfell
    @Adarfell Год назад

    В вашей компании есть application security департамент или хотя бы кто-то кто этим занимается фул тайм?

    • @programisli
      @programisli  Год назад +1

      Да, но компания огромная, тысячи программистов и за всеми не уследишь.

    • @Adarfell
      @Adarfell Год назад

      @@programisli А ssdlc реализуете если не секрет? В плане sast, dast и тд

  • @mr.sergio8773
    @mr.sergio8773 Год назад

    Спасибо за видео. Можете дать ссылку, где можно получить эти пояса по безопасности?

    • @programisli
      @programisli  Год назад

      Это внутренняя вещь для компании, где я работаю

  • @chikenmacnugget
    @chikenmacnugget Год назад +1

    Как хорошо что я не поехал учиться в колледж Канадский...

    • @programisli
      @programisli  Год назад +1

      У канадских колледжей есть плюс, можно получить разрешение на работу в Канаде

    • @chikenmacnugget
      @chikenmacnugget Год назад

      @@programisli сомнительное удовольствие конечно. А так вообще во многих странах так

  • @DreamingDolphing
    @DreamingDolphing Год назад +1

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

    • @programisli
      @programisli  Год назад

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

  • @Ilya-oj5ey
    @Ilya-oj5ey Год назад +1

    Ну я ещё в 14 году наверное на "тестовых" Сайтах базы ради интереса сливал инъекциями 😅

  • @ulyssesaa
    @ulyssesaa Год назад +2

    Я учусь на последнем курсе мехатроники и робототехники. Понимаю, что это не 100% ИТ, но всё же программирование это одна из основополагающих вещей в этой специализации наравне с электроникой, электротехникой и механикой.
    Опишу суть проблемы. У нас было три предмета посвященных программированию. Программирование и алгоритмизация, ООП и микропроцессорная электроника. Все длились по одному семестру.
    На ПиА начали сразу учить Си, что максимально бестолково. Потому что невозможно объяснить человеку который программирует впервые, что такое указатель. Операция ввода-вывода понадобятся на первом занятии, в Си нет передачи параметров по ссылке, и объяснить человеку почему prtinf без & а scanf c & невозможно. И остается это объяснять сакраментальным "просто сделайте и запомните, объясним позже". Или что еще хуже и что было у нас, применять cin и cout, после чего разница между двумя очень разными концептуальными языками Си и Си++ стирается. В Си + - * = это вообще ОПЕРАЦИИ, когда в Си++ это операторы. И соответственно вместе с тем в Си каким-то образом проникли vector и list. И всегда применялся vector. Почему? Потому что он проще))) И мало чего, в процессе изучения Си абсолютно теряется разница между функцией и процедурой (процедур в Си нет), и соответственно теряется понятие побочного эффекта. И код становится еще более ужасен.
    Дальше пошел ООП, соответственно с Си++ и задачей курсовой было построение программы с графическим интерфейсом. Предмет был бомба конечно. Вообще, чтобы построить графический интерфейс нужно изучать другую парадигму, называемую СОБЫТИЙНО-УПРАВЛЯЕМОЕ ПРОГРАММИРОВАНИЕ, никто не объяснял. Поэтому то и дело, программы зависали в обработчиках))) Да и парадигмы ООП и АТД перемешались в кучу. Инкапсуляция почему-то стала прерогативой ООП) А ООП стало императивной парадигмой. Привет ПРИСВАИВАНИЮ, которое наоборот противоречит ООП. Мы же делаем предположения об объекте)) а в ООП объект это черный ящик. Да и в предмет еще запихнули время жизненного цикла ПО, диаграммы, протоколы и кучу всего. Так что должны были успеть все, а успели ничего. Я единственный с потока кто сделал курсач сам. Спасибо Godot который позволяет написать графику на коленке.
    Микропроцессорная техника. Тут мы изучали ассемблер и строение микропроцессорной техники на основе МК 51-й серии (например intel8051). Это пожалуй единственный предмет к которому нет претензий.
    UPD: Благодаря всему тому, что "научили" до этого времени, работать с одногруппниками были бесполезно. Например, к сожалению, им не удалось объяснить, что в ассемблере нету переменных и P1 equ r2 это директива предпроцессора)))
    В общем, у нас уровень преподавания программирования просто слабый. И стать программистом можно только вопреки, а не благодаря. Конечно, чтобы стать макакой с javascript этого вполне хватит. Но для такой сложной области как мехатроника точно нет.

    • @Hello_there_777
      @Hello_there_777 Год назад

      "Pure" C code using Reference Parameter! (aka pointers)
      ( int * x)

    • @jessrabbitxt
      @jessrabbitxt Год назад

      Проще было идти джейсоны гонять

    • @cuniapapa5370
      @cuniapapa5370 Год назад

      О, фаната Столярова сразу узнал

    • @ulyssesaa
      @ulyssesaa Год назад

      @@cuniapapa5370 не фанат конечно. Не сотвори себе кумира. Но это самое толковое что я читал

  • @y5rdg
    @y5rdg Год назад +1

    Спасибо

  • @Kirill-nd3qv
    @Kirill-nd3qv Год назад

    Интересная позиция: нужно знать xss и sql injection перед тем как писать код) Прежде чем писать код нужно ещё знать архитектуру, ну так чтобы наверняка)

    • @programisli
      @programisli  Год назад

      Архитектуру всё же решают синьоры. Джуниорыуже следуют тому, что сказали старшие

  • @zuowa
    @zuowa Год назад

    Слышал что при помощи SQL инъекций вводят синтаксический сахар, и база данных может стать вязкой.

  • @roma2k
    @roma2k Год назад +3

    Робин брось таблицу!

    • @roma2k
      @roma2k Год назад

      у меня была мысль сына так назвать (Robin '); drop table ;--, но у меня родилась дочь

    • @roma2k
      @roma2k Год назад

      загуглил, оказывается Роберт, во время что делает с памятью

  • @Thisamma72
    @Thisamma72 Год назад

    А куда это, пропал КиберДед кстати. ?!!

    • @programisli
      @programisli  Год назад +1

      Да ещё выкладывает видосы

    • @Thisamma72
      @Thisamma72 Год назад

      @@programisli Хм, а чего это не приходят уведомления. Да Ютуб, чудные дела твои!! ))

    • @olegivanov9607
      @olegivanov9607 Год назад

      он болтун, сплошное самовосхваление и фантазии.

  • @ManabovGroup
    @ManabovGroup Год назад +2

    лайк с первой секунды!

  • @gospozhaTochko
    @gospozhaTochko Год назад +1

    был курс НТС (надежность технологических систем), вел препод по фамилии Троян, при чем ему уже под 90 подходило

    • @programisli
      @programisli  Год назад +1

      А у меня был по экономике преподаватель Владимир Ильич

    • @gospozhaTochko
      @gospozhaTochko Год назад

      @@programisli я с Ильичем больше познакомилась на политологии, ведь самое четкое определение "политика - это концентрированное выражение экономики" :)

  • @ronnie_rocketo
    @ronnie_rocketo Год назад +1

    Футболка - ТОП :)

    • @programisli
      @programisli  Год назад

      Кепочку я тут вблизи показывал ruclips.net/video/XIHUfwP60i0/видео.html

  • @benzed1618
    @benzed1618 Год назад +3

    OOOOOOOOOOOOOOOOOOOOOOoooooooooooooooo

  • @Edvard-Aliev
    @Edvard-Aliev Год назад +1

    Привет, сейчас все проще, те кто юзают Laravel не закрывают .env а там все данные о сайте 😂😂😂 стало проще ломать 😂😂😂

    • @programisli
      @programisli  Год назад

      Печалька

    • @programisli
      @programisli  Год назад

      Он же не должен быть в папке паблика и не должен быть доступен из web

    • @aikivlad
      @aikivlad Год назад

      А разве, переменные окружения нельзя забирать из контейнера, чтобы не создавать этот файлик физически на проде, как это делается в том же go?

  • @my_coolheart
    @my_coolheart Год назад

    Пошел на бусти, а то как-то стыдно стало

  • @КоляСолдат
    @КоляСолдат Год назад +1

    Ты издеваешся?! Вот вы все кто ссылаются на учебные заведения вы издеваетесь?! Я как во сне где все свихнулись. НЕ УЧАТ В УЧЕБНЫХ ЗАВЕДЕНИЯХ ничему, откровенно слабые очень слабые преподы там и студентам это так вяло интересно что только палкой бить. Если так получается что выходят годные студенты то это либо сам студент бриллиант либо это вот прям ВУЗ конкретный в котором есть сильные преподы, но это нужно конкретно знать что за ВУЗ и по фамилиям преподов, чтобы ловить оттуда студентов сразу на собеседование. В остальной массе, да, вот так..

    • @programisli
      @programisli  Год назад

      Ну вот оттуда и растут значит корни проблемы

  • @fromillia
    @fromillia 10 месяцев назад

    Говорил бы киберплемяши. Ты ж не кибердед.

    • @programisli
      @programisli  10 месяцев назад

      Есть в ютубе Кибердед, который начинает свои видео так

  • @AndrewLewman
    @AndrewLewman Год назад

    Кибердед показался ватнейшим

  • @АртёмИгорьевич-ы6п

    Первый

  • @antonsalatskyi
    @antonsalatskyi Год назад

    🇺🇦