Специалисты из Нью-Йоркского университета опубликовали интересное исследование, согласно которому, вместе с увеличением количества багов в коде растет и безопасность продукта. Как бы парадоксально это ни звучало, в теории специалистов есть смысл.
cs researcher: we need to figure out ways to write safer code with fewer bugs so it can be exploited less often.
Hu et. al.: what if
*takes a huge bong rip*
we added more bugs to the system instead. https://t.co/OGmIUJ1Tf0
(this paper is lit)— poly "learn julia" tomous (@polytomous) August 4, 2018
Исследователи предлагают добавлять в ПО фальшивые баги-приманки, которые в документе называют chaff bugs — «соломенные баги». Такие псевдопроблемы лишь заставят потенциальных злоумышленников зря потратить время и ресурсы на их изучение, но в итоге окажутся совершенно бесполезными с точки зрения эксплуатации.
Один из авторов исследования, Брэндон Долан-Гавитт (Brendan Dolan-Gavitt), рассказал журналистам Vice Motherboard, что работа над техникой автоматического добавления в код проблем ведется уже несколько лет (это необходимо для тестирования и оценки различных систем обнаружения багов). В ходе этой работы и родилась идея «соломенных багов».
«Многие мои друзья зарабатывают на жизнь написанием эксплоитов, так что я знаю, сколько труда лежит между обнаружением бага и созданием надежного эксплоита для него. И мне подумалось, что этим можно воспользоваться. Люди, которые пишут эксплоиты, редки, а их время дорого стоит, поэтому если придумать, как потратить их время впустую, можно добиться эффекта сдерживания», — говорит Долан-Гавитт.
Исследователи сообщают, что созданный ими прототип (LAVA) уже способен добавлять в софт бесполезные, неэксплуатируемые баги нескольких видов, буквально наводняя ими код и заставляя злоумышленников напрасно тратить их самый ценный ресурс — время.
«Я был очень удивлен (и благодарен!) когда после публикация нашего доклада, исследование привлекло к себе столько внимания. Видимо, людям понравился подход “это настолько глупо, что даже умно”. Это действительно парадоксально, но может сработать», — добавляет специалист.
При этом эксперт признает, что у такой методики защиты есть множество ограничений, и вряд ли она когда-либо получит широкое распространение. Например, данный метод вряд ли возможно применить к опенсорсному ПО, а также нужно убедиться в том, что все фиктивные проблемы в коде действительно безобидны и при этом неотличимы от проблем настоящих.
«Однако мне кажется, что эта идея все же заслуживает изучения, и в конечном счете, может найти практическое применение в некоторых средах», — заключает исследователь.