Habr<p>[Перевод] Как мы обнаружили потенциальные атаки при помощи штрих-кодов</p><p>Фаззинг — одна из самых успешных методик для поиска багов безопасности, о нём постоянно говорят в статьях и на отраслевых конференциях. Он стал настолько популярным, что большинство важного ПО, казалось бы, должно подвергаться тщательному фаззингу. Но это не всегда так. В этом посте мы покажем, как фаззили библиотеку сканирования штрих-кодов ZBar, и почему, несмотря на ограниченность по времени, обнаружили в ней серьёзные баги: запись в буфер стека out-of-bounds, которая может привести к произвольному выполнению кода при помощи зловредного штрих-кода, и утечку памяти, которую можно использовать для выполнения атаки «отказ в обслуживании» (denial-of-service). ZBar — это опенсорсная библиотека для считывания штрих-кодов, написанная на C. Она поддерживает впечатляющий набор форматов штрих-кодов, в том числе и QR-коды. Её использовал один из наших клиентов, поэтому мы решили вкратце проверить её безопасность. Учитывая огромный объём кода, вручную тестировать его мы не могли. Так как мы не нашли упоминаний о фаззинге этой библиотеки, то решили попробовать его.</p><p><a href="https://habr.com/ru/companies/ruvds/articles/857540/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/ruvds/ar</span><span class="invisible">ticles/857540/</span></a></p><p><a href="https://zhub.link/tags/%D1%88%D1%82%D1%80%D0%B8%D1%85%D0%BA%D0%BE%D0%B4%D1%8B" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>штрихкоды</span></a> <a href="https://zhub.link/tags/qr%D0%BA%D0%BE%D0%B4%D1%8B" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>qrкоды</span></a> <a href="https://zhub.link/tags/denial_of_service" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>denial_of_service</span></a> <a href="https://zhub.link/tags/%D0%BE%D1%82%D0%BA%D0%B0%D0%B7_%D0%B2_%D0%BE%D0%B1%D1%81%D0%BB%D1%83%D0%B6%D0%B8%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>отказ_в_обслуживании</span></a> <a href="https://zhub.link/tags/%D1%83%D1%82%D0%B5%D1%87%D0%BA%D0%B8_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D0%B8" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>утечки_памяти</span></a> <a href="https://zhub.link/tags/%D1%84%D0%B0%D0%B7%D0%B7%D0%B8%D0%BD%D0%B3" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>фаззинг</span></a> <a href="https://zhub.link/tags/ruvds_%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ruvds_перевод</span></a></p>