Oracle хочет, чтобы вы прекратили посылать сообщения об ошибках — вот почему это безумие

На этой неделе Oracle находится в горячей воде из-за сообщения в блоге, написанного их начальником службы безопасности Мэри Дэвидсон. Эта публикация, хотя и охватывает ряд тем, в основном посвящена практике сообщения о возможных уязвимостях безопасности в Oracle. В частности, почему вы не должны.

«В последнее время я наблюдал резкий скачок в том, что клиенты перепроектировали наш код, чтобы попытаться найти в нем уязвимости безопасности. Вот почему я писал много писем клиентам, которые начинаются с «привет, howzit, aloha», но заканчиваются словами «пожалуйста, соблюдайте ваше лицензионное соглашение и уже прекращайте реверс-инжиниринг нашего кода».

Дэвидсон объясняет, что растет число клиентов, которые заботятся о безопасности, и занимаются реверс-инжинирингом программного обеспечения Oracle, которое ищет уязвимости безопасности (или нанимает консультантов, чтобы сделать это для них). Дэвидсон обвиняет этих клиентов в нарушении их лицензионных соглашений, в непринятии мирских мер безопасности, в попытке выполнить за них работу Oracle и в целом в том, что они являются плохими людьми. Если заказчик обнаружил реальную уязвимость, то Oracle ее исправит.

«Я почти не хочу отвечать на этот вопрос, потому что хочу повторить, что клиенты не должны и не должны перепроектировать наш код. […] Мы не дадим клиенту, сообщившему о такой проблеме (которую он обнаружил с помощью обратного инжиниринга), специальное (одноразовое) исправление для этой проблемы. Мы также не будем предоставлять кредит в любых рекомендациях, которые мы можем выпустить. Вы не можете ожидать, что мы скажем «спасибо за нарушение лицензионного соглашения».

Это не прошло хорошо в сообществе безопасности, и пост был быстро удален, хотя не раньше, чем появился новый хэштег

,

«Сначала проверьте лицензионное соглашение Enigma», — сказал Алан Тьюринг. #oraclefanfic

— Торстен Сик (@ThorstenSick) 11 августа 2015 г.

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

Объясняя спор

Итак, что же такое реверс-инжиниринг, и почему Дэвидсон так обеспокоен этим? По сути, когда Oracle выпускает часть программного обеспечения, они «компилируют» свой внутренний исходный код в исполняемые файлы, а затем доставляют эти файлы клиентам. Компиляция — это процесс, который переводит понятный человеку код (на таких языках, как C ++

) в более плотный двоичный язык, который можно подавать непосредственно в процессор компьютера.

Исходный код Oracle не является общедоступным. Это сделано для того, чтобы другим было сложнее украсть их интеллектуальную собственность. Однако это также означает, что клиентам очень трудно проверить, является ли код безопасным. Вот где в игру вступает «декомпиляция». По сути, декомпиляция переводит в другом направлении, преобразуя исполняемые файлы обратно в читаемый человеком код. Это не обеспечивает точно исходный исходный код, но обеспечивает код, который функционирует одинаково — хотя его часто трудно читать из-за потери комментариев и организационной структуры.

Это «обратный инжиниринг», на который ссылается Дэвидсон. Oracle против, потому что они думают, что это ставит под угрозу их интеллектуальную собственность. Это, по крайней мере, немного глупо, потому что использование лицензионного соглашения для запрета кражи IP немного похоже на использование строгого циновки для предотвращения вторжения в дом. Люди, которые собираются клонировать ваши продукты, не заботятся о лицензионных соглашениях.

и часто не находятся в юрисдикциях, где вы могли бы в любом случае применять эти соглашения.

Человечество обречено… #oraclefanfic #justoraclethings pic.twitter.com/e6MOZzkkvq

— CyberAnarchist (@ Cyb3rOps) 12 августа 2015 г.

Политика действительно влияет только на законных клиентов. Ситуация похожа на видеоигру DRM

, но как-то даже неэффективно.

Почему клиенты хотят декомпилировать эти исполняемые файлы? Это все о безопасности. Наличие доступа к исходному коду позволяет вам копаться в нем в поисках ошибок и потенциальных проблем. Зачастую это делается с помощью программного обеспечения, которое выполняет «статический анализ кода» — автоматическое считывание кода, которое выявляет известные ошибки и опасные методы работы с программным обеспечением, которые, как правило, приводят к ошибкам. Хотя существуют инструменты, которые анализируют исполняемый файл напрямую, его декомпиляция позволяет проводить более глубокий анализ. Этот вид статического анализа является стандартным инструментом в торговле безопасностью, и большинство компаний, которые заботятся о безопасности, используют такое программное обеспечение для создания кода, который с меньшей вероятностью содержит серьезные ошибки.

Политика Oracle в отношении такого рода анализа просто «нет». Почему? Я позволю Дэвидсону объяснить.

«Клиент не может проанализировать код, чтобы увидеть, существует ли элемент управления, предотвращающий атаку, о которой кричит инструмент сканирования (что, скорее всего, является ложным срабатыванием) […] Теперь я должен отметить, что мы не просто принимаем Отчеты о сканировании являются «доказательством того, что есть, там, там», отчасти потому, что, когда вы говорите о статическом или динамическом анализе, отчет о сканировании не является доказательством реальной уязвимости. […] О, и мы требуем, чтобы клиенты / консультанты уничтожили результаты такого реверс-инжиниринга и подтвердили, что они это сделали ».

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

Большая проблема в том, что эти инструменты статического анализа кода не существуют просто для того, чтобы привлечь внимание к ошибкам. Они также должны служить целью для качества и безопасности кода. Если вы сбросите кодовую базу Oracle в стандартный инструмент статического анализа, и он выплеснет сотни страниц проблем, это действительно плохой признак.

Правильный ответ, когда инструмент статического анализа кода выявляет проблему, не должен смотреть на проблему и говорить: «О, нет, это не вызывает ошибку, потому что такой-то». Правильный ответ — зайдите и исправьте проблему. Вещи, помеченные инструментами статического анализа кода, обычно являются плохой практикой, и ваша способность определить, действительно ли данная проблема вызывает ошибку, ошибочна. Более тысячи вопросов, вы будете пропустить вещи. Вам лучше не иметь таких вещей в своей кодовой базе.

Вот технический директор Oculus Джон Кармак, воспевающий эти инструменты со времени его работы в iD Software. (Серьезно, прочитайте целое эссе, это интересные вещи).

.

«Уязвимости нет. Так говорится в EULA». #oraclefanfic pic.twitter.com/cUfafDCWbv

— Schuyler St. Leger (@DocProfSky) 11 августа 2015 г.

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

Оракул не существует, для вашего удобства, Oracle, потому что мы вам не доверяем.

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

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

Что Дэвидсон получает право

Справедливости ради Дэвидсон, есть элементы этого, которые являются разумными в контексте. Вероятно, многие из их клиентов предпринимают амбициозные проверки кода Oracle, не тратя время на устранение более обыденных проблем безопасности в своих системах.

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

Точно так же, вероятно, действительно разочаровывает и бесполезно снова и снова представлять один и тот же автоматический анализ.

Однако, в целом, статья раскрывает некоторые серьезно устаревшие идеи о безопасности системы и отношениях между разработчиками и клиентами. Я ценю то, что работа Дэвидсона разочаровывает, но пользователи, пытающиеся проверить безопасность используемого ими программного обеспечения, не являются проблемой. Вот президент Security Awareness Айра Винклер:

«Oracle — очень большая и богатая компания, продукты которой широко распространены и используются для критически важных приложений. Период. Они несут ответственность за то, чтобы сделать их программное обеспечение как можно более сильным […]. Может быть много ложных срабатываний и связанных с этим затрат, но это является фактором [их продажи] большого количества программного обеспечения, у которого много пользователей. Это стоимость ведения бизнеса. Я уверен, что все компании-разработчики программного обеспечения имеют одинаковые ложные положительные отзывы. Я не слышу Microsoft и соавт. жалуюсь «.

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

Несмотря на то, что Oracle снял и вообще дезавуировал пост, тот факт, что он был написан, обнаруживает глубоко ошибочную культуру безопасности в Oracle. Подход Oracle к безопасности отдает предпочтение защите своей интеллектуальной собственности, а не безопасности и спокойствию своих клиентов — и если вы доверяете программному обеспечению Oracle критически важную информацию, это должно вас напугать.

Как вы думаете? Вы обеспокоены философией безопасности Oracle? Как вы думаете, с Дэвидсоном слишком жестоко обращаются? Дайте нам знать об этом в комментариях!

Ссылка на основную публикацию