Что такое Open Source ? Для чего нужен Open Source code?
Это такой способ создания операционных систем и приложений, когда к вам приходит не готовая скомпилированная программ а ее текст, с которым вы можете знакомиться и модифицировать. Это позволяет анализировать текст на наличие так называемых «программных» закладок, функционала не предусмотренного назначением самой программы. Если мы говорим о защищённой операционной системе сертифицированной для использования например в вооружённых силах, это должна быть программа или операционная система только Open Source.
Специализированные учреждения проводят проверку исходного кода и выдают разрешение на применение продукта, далее так поступают с каждым обновлением.
Open Source позволяет быстро развивать программный продукт, поскольку в его разработке и поддержке могут участвовать большое количество разработчиков.
Источник: www.bolshoyvopros.ru
Опасность open source software
LiveStreet
Блог им. kal1sha → 10 пунктов Open Source
Open Source — это сотрудничество. В более широком смысле — это общедоступная совместная работа над проектами Open Source. Согласно Open Source Initiative (OSI) можно дать следующие определение: «Обеспечивая независимую экспертную оценку и быстрое развитие открытого исходного кода, Open Source способствует увеличению надежности и качества программного обеспечения. Чтобы получить разрешение от OSI, программное обеспечение должно распространяться только на основе лицензионного соглашения, которое дает право на считывание, распространение, модификацию и свободное использование».
Open Source могут использовать отдельные пользователи, компании и организации, которые желают широко применять подобные программы. Согласно Open Source Initiative, Open Source состоят из 10 пунктов, которые описаны ниже. Open Source — это не просто доступ к исходному коду. Условия распространения открытых программных средств должны выполняться с учетом следующих критериев:
1. Свободное распространение
Лицензионное соглашение не должно ограничивать право на продажу или распространение программного обеспечения, которое является компонентом составного ПО, включающего программы из разных источников.
2. Исходный код
Программа должна содержать исходный код, который, как и компилированные формы, можно распространять. Некоторые варианты продуктов распространяются без исходного кода. В этом случае должны существовать общеизвестные способы, как получить исходный код по умеренной цене или бесплатно загрузить посредством интернета. Исходный код должен быть в таком виде, чтобы программист мог модифицировать программу. Сознательно «затемненный» исходный код, промежуточные формы, такие как выходное устройство препроцессора или транслятора, не допускаются.
3. Вторичные продукты
Что такое Open source проекты, в чем приемущества программ с открытым исходным кодом
Лицензия должна давать право на модификацию и разработку собственных веток продукта, делать возможным их распространение на тех же условиях, что и лицензия исходной программы.
4. Сохранение авторского исходного кода
Лицензия может ограничивать распространение продукта, исходный код которого был модифицирован «третьими лицами». Но лицензия может допускать распространение патч-файлов с исходным кодом для модификации программы во время создания. Лицензия должна давать право на распространение программы, созданной путем модификации исходного кода. Лицензия может содержать требования, чтобы название или номер версии производных продуктов отличалось от исходной программы.
5. Никаких ограничений в отношении частных лиц или групп пользователей
Лицензия должна быть доступна для всех желающих.
6. Никаких ограничений в отношении области применения
Лицензия не должна содержать ограничения на использование программы в определенной области деятельности. Например, нельзя ограничить использование программы в коммерческой деятельности или в области генетических исследований.
7. Распространение лицензии
Права, прилагающиеся к программе должны распространяться на всех, кто использует программу. Дополнительная лицензия для этого не нужна.
8. Лицензия не должна быть специальной для какого-либо продукта
Права, которые вы получаете с комплексом программного обеспечения, распространяются на каждый отдельно взятый элемент комплекса. Если программа взята из дистрибутива и используется вне его, на программу распространяются условия лицензионного соглашения дистрибутива.
9. Лицензия не должна содержать ограничений в отношении других ПО
Лицензия не должна содержать ограничений относительно других программных средств, которые распространяются вместе с лицензионным программным обеспечением. Лицензия не должна содержать требований, чтобы все программы были открытыми программными средствами.
10. Лицензия должна быть технологически нейтральной
Условия лицензионного соглашения не могут быть основаны на отдельных технологиях и стиле интерфейса.
Источник: open-life.org
Open Source в SOC
Тест-драйв Elastic Stack. Что показало тестирование?
Плюсы и минусы ПО с открытым кодом
Открытый код достаточно хорошо зарекомендовал себя в ИБ. Его применяют даже в российских SIEM-системах: в качестве баз данных и поисковых движков чаще всего используются Elasticsearch и ClickHouse. При этом к Open Source по-прежнему остается масса вопросов. Безопасно ли открытое ПО? Нужно ли проверять код на наличие закладок? Действительно ли это экономно?
Сейчас мы тестируем Open Source для SOC, и вот к каким выводам мы пришли.
Открытый код может быть частью SOC, но есть нюансы
Использовать Open Source в SOC можно почти на всех участках технологического ядра — от сбора и фильтрации событий до автоматизированного реагирования на угрозы. В качестве SIEM-системы можно взять Elastic Stack (состоит из Elasticsearch, Logstash и Kibana), IRP — TheHive, EDR — Wazuh.
Мы сравнивали Elastic Stack с проприетарным ПО на стендах, анализировали документацию, смотрели функционал и технические характеристики решения. Результаты получились неоднозначными. Ключевые моменты представлены в табл. 1.
Авторы
Евгений Вызулин Эксперт по информационной безопасности компании «Инфосистемы Джет»
Теги
Статьи по теме
Поделиться
Критерии 1, 2, 4 и 5 — это основные недостатки любого Open Source SIEM в сравнении с проприетарными решениями:
Невозможность корреляции в реальном времени ухудшает SLA реагирования на угрозы.
Отсутствие централизованных обновлений и техподдержки усложняет разработку и внедрение.
Отсутствие модуля инвентаризации активов снижает осведомленность об актуальном состоянии ИС.
Некоторые из этих недостатков можно нивелировать с помощью других Open Source решений, но это несет дополнительные сложности в части разработки и внедрения.
Далее мы поделимся результатами нагрузочного тестирования некоторых компонентов Elastic Stack. Тест-драйв еще в процессе: мы снимали информацию «с колес», поэтому пока не можем привести данные по всем составляющим продукта.
Logstash
Первым был компонент Logstash. Его основные функции — нормализация, обогащение, агрегирование и корреляция поступающих событий. Мы реализовали тестовую инфраструктуру со следующими характеристиками Losgtash (см. табл. 2)
Большой объем HDD Logstash не нужен. В основном он используется для ОС и событий самого компонента, поэтому мы взяли 200 Гб. А вот RAM нужна — она используется для обработки событий и хранения очереди. CPU же необходим, чтобы реализовать мультипоточную обработку событий.
Нам стало интересно, сколько EPS сможет обработать Logstash в этой конфигурации. Для этого были подготовлены правила нормализации и тестовые кейсы из событий ПО auditd. На графике 1 представлена зависимость CPU от EPS.
Можно заметить, что после 10000 EPS нагрузка на CPU не изменяется и находится в промежутке между 500 и 600%. Это означает, что используется всего 6 из 10 CPU.
Зависимость RAM от EPS выглядит так (график 2).
На 5000 EPS и более использование RAM составляло 46,5%. Это неудивительно, потому что мы установили значение JVM Heap Logstash’a на 8 Гб (50% от общего объема памяти).
Для анализа объема потока событий, которые Logstash отправляет после обработки, мы настроили взаимодействие с брокером очередей RabbitMQ (график 3).
При получении более 15000 EPS Logstash перестает справляться со своевременной обработкой и отправкой событий.
Оставшиеся попадают в очередь, которая хранится в RAM. Это может привести к полной «утечке» RAM и остановке Logstash. Если число правил нормализации, корреляции и обогащения увеличивается, то разность между исходящими и выходящими событиями будет расти.
Проанализировав полученные результаты, мы подготовили сайзинг технических характеристик Logstash в зависимости от EPS (см. табл. 3).
Для объема EPS больше 30000 рекомендуем использовать кластер из нескольких компонентов Logstash. Это увеличит отказоустойчивость и скорость обработки событий.
Резюмируем:
Logstash — достаточно серьезный Open Source инструмент, позволяющий обрабатывать большой поток событий. Его можно использовать и без остальных компонентов Elastic Stack. В технологическом ядре SOC Logstash может пригодиться в качестве решения класса Log Management. Среди важных нюансов — сложность синтаксиса правил нормализации, корреляции и обогащения.
Elasticsearch
Второй компонент, который попал в поле нашего зрения, — Open Source база данных Elasticsearch. Мы решили сравнить ее с другой открытой БД — ClickHouse.
Главный вопрос, который нас интересовал: «Во сколько раз ClickHouse эффективнее в части хранения данных, чем Elasticsearch?» Мы наполнили их одинаковым объемом событий и использовали RabbitMQ, чтобы посмотреть, сколько долговременной памяти потребуется для хранения несжатых данных.
ClickHouse — более эффективное решение для задачи хранения данных. Его алгоритмы сжатия в 44 раза лучше, чем у Elasticsearch. При этом Elasticsearch в 13 раз эффективнее по сравнению с хранением данных в сыром виде (см. табл. 4).
Резюмируем:
ClickHouse хорошо подходит для долговременного хранения большого объема данных. Нюансом является сложность интеграции с SIEM- и IRP-системами. ClickHouse — реляционная БД, поэтому нужно будет настраивать маппинг.
Elasticsearch уже используется во многих проприетарных SIEM-системах и хорошо себя зарекомендовала. Плюс этой БД — простота интеграции с другими системами. Просто отправляйте в Elasticsearch события в формате JSON, и она их быстро замаппит. Среди нюансов отметим большое потребление ресурсов — для индексации используется много RAM.
Источник: www.jetinfo.ru
Что такое открытое аппаратное обеспечение
Открытое аппаратное обеспечение (или свободное аппаратное обеспечение) — компьютерное и электронное аппаратное обеспечение, разработанное в том же стиле, что свободное (открытое) программное обеспечение. Это часть открытой культуры, которая относит идеи открытого доступа и к иным областям применения (не только ПО).
Организации
OpenCores — организация, делающая попытку создать сообщество проектировщиков для поддержки открытых ядер для процессоров, периферии и других устройств.
Open Hardware Repository — проект созданный сотрудниками CERN для организации сообщества вокруг проектов с открытой аппаратной архитектурой и их реализации.
Open Source Hardware Association — создана для продвижения Open Source устройств, дизайн которых свободно доступен под открытой лицензией. Такие устройства, микросхемы, печатные платы вот уже полтора года помечаются логотипом с шестерёнкой, так что каждый сразу видит, что это — свободное устройство.
Базовые требования, которые нужно соблюдать при разработке открытого аппаратного обеспечения:
- Предустанавливается только свободное программное обеспечение (СПО);
- Возможность модификации “прошивки” пользователем;
- Оборудование обязательно должно работать c дистрибутивами GNU/Linux, состоящими только из СПО (FSF поддерживает такой список);
- Сборка “прошивки” с использованием СПО, любые средства для обслуживания “прошивки” должны также быть свободными;
- Оборудование не должно содержать средств скрытого мониторинга за исключением случаев, если об этом просит пользователь, следствием реализации коммуникационного протокола или требуется законодательством. В последнем случае, продукт должен сопровождаться необходимой информацией в виде ссылки на закон и на место, где можно получить разъяснения по этому поводу;
- Продукция, подпадающая под критерии должна явным образом отличаться от других изделий этого или других производителей;
- При поддержке проприетарных форматов, продукция обязательно должна предоставлять пользователю открытые альтернативы (например, при поддержке MP3 производитель должен обеспечить поддержку и Ogg/Vorbis);
- Патентные ограничения, если оборудование подпадает под таковые, не должны противоречить критериям FSF;
- Пользовательская документация, например, руководства для разработчика СПО, должны быть выпущены под свободной лицензией;
- Лицензия должна быть технологически нейтральной и не должна навязывать выбор тех или иных технологий, материалов или оформления интерфейса;
- Разработчик оборудования должен сотрудничать с FSF и поддерживать терминологию GNU, т.е. использовать GNU/Linux вместо Linux и свободное ПО вместо открытое ПО.
Вот небольшой список известных Open Source Hardware проектов:
- RepRap — открытый самокопирующийся 3D-принтер;
- Arduino — открытая вычислительная платформа для прототипирования;
- OpenSPARC — проект, наработки которого использовались при создании многоядерных процессоров UltraSPARC T1 и UltraSPARC T2 (Sun Microsystems);
- OpenRISC — группа разработчиков, работающая над созданием высокоскоростного RISC-процессора;
- OpenMoko — проект по созданию открытого GSM смартфона;
- Марсоход — отладочная плата на базе ПЛИС от Altera.
На примере успешных проектов из индустрии программного обеспечения показано, как свободно распространяемые продукты могут быть успешными и приносить прибыль своим разработчикам (GNU/Linux, Mozilla Firefox, Google Android и другие). Таким образом, выпуск продукта под открытой лицензией зачастую обусловлен не столько идеологией, сколько прагматичным расчётом. Применение открытых технологий имеет свои плюсы и с точки зрения потребителя. Кроме очевидной финансовой привлекательности, использование свободных продуктов может быть выгодно по следующим причинам:
- Отсутствие недокументированных возможностей (или, по крайней мере, возможность их обнаружения);
- Независимость от конкретных поставщиков и производителей;
- Возможность модификации и адаптации под собственные нужды;
- Открытость для изучения: открытое программное и аппаратное обеспечение отлично подходит для применения в образовании: оно не налагает искусственных ограничений на доступ к исходному коду и конструкторской документации, не препятствует изучению внутреннего устройства и механизмов работы продукта;
- При создании новых проектов нет необходимости «изобретать велосипед»: можно пользоваться чужими наработками, заимствовать идеи и конструкторские решения из других свободных проектов;
- С точки зрения автора, выпуск продукта под открытой лицензией — это возможность привлечь дополнительное внимание к своей разработке, в том числе — получить помощь от сообщества разработчиков и привлечь тестировщиков.
Hardware Freedom Day
День открытого аппаратного обеспечения (день свободы аппаратного обеспечения) – это мероприятие направлено на просвещение общественности во всём мире о преимуществах использования и продвижения открытого аппаратного обеспечения.
Источник: linuxmasterclub.ru