Веб-приложение с открытым исходным кодом более подвержено взлому - PullRequest
7 голосов
/ 23 августа 2010

На недавнем интервью меня спросили:

Веб-приложение с открытым исходным кодом (скажем, построенное на Struts / Spring) более подвержено взлому, поскольку любой может получить доступ к исходному коду и изменить его.Как вы можете предотвратить это?

Мой ответ был:

Исходный код Java не доступен напрямую.Он компилируется в файлы классов, которые затем объединяются в файл war и размещаются в защищенном контейнере, таком как сервер приложений Weblogic.Сервер приложений находится за корпоративным брандмауэром и недоступен напрямую.

В то время я не упоминал ничего о внедрении XSS и SQL, которое может повлиять на веб-приложение на основе COTS, аналогичное веб-приложению с открытым исходным кодом.

Мои вопросы:

a) Является ли мой ответ на вопрос правильным?

b) Какие дополнительные баллы я могу добавить к ответу?

спасибозаранее.

РЕДАКТИРОВАТЬ:

Хотя я перевариваю ваши ответы - позвольте мне также отметить, что этот вопрос был также направлен на такие фреймворки, как Liferay и Apache OFBiz.

Ответы [ 4 ]

16 голосов
/ 23 августа 2010

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


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

5 голосов
/ 23 августа 2010

а) Является ли мой ответ на вопрос правильным?

Часть о том, что источник недоступен (чтобы изменить его), поскольку он скомпилирован и развернут там, где к нему нельзя прикоснуться, не является хорошим ответом. То же самое относится и к программному обеспечению без открытого исходного кода. Смысл стека с открытым исходным кодом заключается в том, что источник доступен для чтения, что облегчает поиск уязвимостей, которые могут быть использованы в отношении установленного приложения (скомпилированного или нет).

Замечание о брандмауэре хорошее (хотя оно и не касается открытости или закрытости программного обеспечения).

б) Какие дополнительные баллы я могу добавить к ответу?

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

, поскольку любой может получить доступ к исходному коду и изменить его.

Вы уверены, что это то, что они сказали? Измени это? Не "изучать это"?

Я не понимаю, как кто-то может просто изменить исходный код для Struts ...

2 голосов
/ 23 августа 2010

Популярная веб-инфраструктура с открытым исходным кодом / CMS / библиотека с меньшей вероятностью будет содержать в себе ужасные ошибки в течение длительного времени, поскольку многие люди смотрят на код, находят ошибки и исправляют их.(Обратите внимание, что для того, чтобы это имело значение, вам нужно будет обновлять свои материалы.)

Теперь у вашего друга есть крошечная точка зрения - любой, кто может исправить ошибки, может также представить их., если проектом управляет куча идиотов.Если они берут патчи от любого случайного чмо, не просматривая патчи, или не знают, что они делают в первую очередь, то можно внести ошибки в фреймворк.(Это не имеет значения, если вы не будете регулярно обновляться.) Поэтому важно использовать тот, который достойно поддерживается людьми, у которых есть подсказка.

Обратите внимание, что все проблемы с фреймворками / приложениями с открытым исходным кодом относятся к COTSодни также.Вы просто не будете знать об ошибках в последнем до того момента, как bugtraq и другие подобные списки публикуют их, поскольку крупные компании любят делать вид, что в их программном обеспечении нет никаких ошибок, пока они не реагируют.

1 голос
/ 23 августа 2010

а) Да.Открытый исходный код не означает открытые двоичные файлы :) Предложение «любой может изменить исходный код» просто неверно (вы можете изменить свою копию кода, но не можете редактировать код Apache Struts)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...