Grsecurity
Grsecurity — проприетарный набор модификаций (патч) для ядра Linux, который включает в себя некоторые улучшения, связанные с безопасностью, включая защиту памяти ядра и пользовательских процессов, принудительный контроль доступа, рандомизацию расположения объектов в памяти, ограничения доступа к файлам в /proc, ограничения доступа к системным интерфейсам внутри chroot() jail, ограничения на использование серверных и клиентских сетевых сокетов, а также дополнительные возможности аудита активности процессов и некоторые другие функции. Типичной областью применения являются системы, которые могут принимать сетевые подключения из потенциально опасных источников: такие как серверы различных сетевых служб (например, веб-серверы) или серверы, предоставляющие своим пользователям shell-доступ. Патч grsecurity с 2001 года выпускался на условиях лицензии GPL версии 2, и включает в себя набор патчей PaX. С 26 апреля 2017 года исходные коды grsecurity и связанных патчей больше не доступны для скачивания, а их распространение производится только на платной основе[3]. Создатель и ведущий разработчик grsecurity — Brad Spengler, также известный под псевдонимом spender.
Grsecurity | |
---|---|
Тип | Патч |
Написана на | Си[1] |
Операционная система | Linux |
Лицензия | GNU GPL 2[2] |
Сайт | grsecurity.net (англ.) |
Лицензирование и судебные споры
Изначально патч grsecurity являлся общедоступным и свободным ПО. В 2015 году, после споров о некорректном использовании торговой марки grsecurity автор патча решил прекратить свободное (неограниченное) распространение кодов стабильной версии патча для всех желающих[4][5]. Тестовые версии grsecurity[5] в виде единого патча без разбивки на серии на тот момент оставались общедоступными.
С 26 апреля 2017 года был закрыт свободный доступ к тестовым версиям патча grsecurity (а также PaX), вероятно из-за конфликта с KSPP[6] или Wind River[7]. Последней общедоступной версией стал тестовый патч для ядра Linux 4.9 версии. Более новые версии становятся доступными лишь для коммерческих подписчиков компании "Open Source Security Inc" (разработчик патча с 2008 года, штат Пенсильвания)[3][8][6], в рамках отдельного соглашения о предоставлении услуг[9][10][11].
В разъяснениях компания OSSI указала, что на патчи продолжает действовать лицензия GPLv2 со всеми правами и обязанностями. [12] Однако коммерческое соглашение между пользователем и корпорацией содержит условие о лишении клиентов доступа к будущим версиям патча в случае, если пользователь применяет права, данные ему GPL для использования (установки и распространения) патчей grsecurity в обход соглашения[13].
В июне 2017 года Брюс Перенс, известный своим участием в движении СПО, публично высказал свое мнение о том, что третьим лицам следует избегать покупки продукта "Grsecurity" на сайте grsecurity.net. Он указал что патч является производным продуктом от кода ядра Linux и должен распространяться на условиях лицензии GPL версии 2 или совместимой, как это происходило с прошлыми версиями. На тот момент патч стал коммерческим продуктом, распространяемым лишь за плату и, по соглашению, пользователи предупреждаются что если они будут распространять патч (право, данное им GPLv2), то они будут лишены доступа к последующим версиям патча, что, по суждению Брюса, якобы может нарушать Секцию 6 Публичной Лицензии, якобы несет риски прекращения действия лицензии и соответственно нарушения Авторских и Иных прав (пиратства).[14][15] Высказывание Перенса было опубликовано в его личном Интернет-блоге, в почтовой рассылке проекта Debian (главой которого Перенс ранее являлся)[16], а затем активно обсуждалось на Интернет-форуме Slashdot[17].
17 июля 2017 года компания OSSI (состоящая из одного сотрудника) инициировала против Брюса Перенса судебное разбирательство (как вспоминал Спенглер[18], из-за отсутствия иных вариантов, увидев в его высказывании диффамацию и потенциальный значительный ущерб репутации и бизнес-интересам своей компании[19][20][21]). Компания оспаривала следующие два высказывания, считая их ложными фактами:
“It’s my strong opinion that your company should avoid the Grsecurity product sold at grsecurity.net because it presents a contributory infringement and breach of contract risk.” “As a customer, it’s my opinion that you would be subject to both contributory infringement and breach of contract by employing this product in conjunction with the Linux kernel under the no-redistribution policy currently employed by Grsecurity.”
В декабре 2017 года магистрат-судья Laurel Beeler (Сан-Франциско) постановил что Перенс высказал мнение, допускаемое законами США, и отверг заявление о диффимации[22]. Дальнейшие судебные споры продолжались около 3 лет и, после нескольких апелляций завершились в 9-й схеме[неизвестный термин] апелляционных судов США (дело "Open Source Security v. Perens"[23])[17].) Суд отклонил претензии к Брюсу и взыскал с Open Source Security и Брэда Спенглера судебные расходы в размере около 260-300 тысяч долларов[24][22][25]. Вопросы о том, нарушаются ли условия лицензии GPL, судами не рассматривался.
Судебный спор назван одним из 10 важнейших юридических дел в области открытого ПО в 2017 году[26].
PaX
Одним из основных компонентов grsecurity является PaX, реализующий несколько механизмов защиты от эксплуатации уязвимостей (например, через переполнение буфера), включая рандомизацию расположения объектов в памяти (address space layout randomization, ASLR) и ограничения на выполнение произвольного машинного кода со страниц, доступных процессу в режиме записи (в частности, стека).
PaX разрабатывается одним из членов команды разработчиков grsecurity.
PaX сам по себе разрабатывается отдельной от grsecurity командой программистов.
Критика
Один из соавторов и мейнтейнеров проекта Ядро Линукс негативно высказывался о подходах, практикуемых авторами патча grsecurity в части программного кода, низко оценив сам проект[27][28].
Корпорация grsecurity была замечена в неоднозначном поведении в социальных сетях в отношении пользователя, сообщившем о программном недочете в качестве патча в 2016 году[29].
Примечания
- The grsecurity Open Source Project on Open Hub: Languages Page — 2006.
- Grsecurity (англ.)
- grsecurity - Passing the Baton . grsecurity.net. Дата обращения: 26 мая 2020.
- Gold, Jon Grsecurity will stop issuing patches citing trademark abuse (англ.). Network World (28 августа 2015). Дата обращения: 28 мая 2020.
- Hardened Linux stalwarts Grsecurity pull the pin after legal fight (англ.). theregister.co.uk (27 августа 2015). Дата обращения: 28 мая 2020.
- Grsecurity прекращает бесплатное распространение своих патчей . opennet.ru (26.04.2017). Дата обращения: 25 мая 2020.
- Linux kernel security gurus Grsecurity oust freeloaders from castle (англ.). theregister.co.uk (26 апреля 2017). Дата обращения: 28 мая 2020.
- Jonathan Corbet. Grsecurity goes private [LWN.net] (англ.). lwn.net (May 4, 2017). Дата обращения: 26 мая 2020.
- grsecurity - Access Agreement FAQ . grsecurity.net. Дата обращения: 26 мая 2020.
- Допсоглашение по данным Б.Перенса, версия опубликована им в июне 2017 года (англ.)
- Уязвимости в лицензиях СПО, Андрей Савченко, 2018: "Патчи Grsecurity ... распространение кода и бинарных сборок ограничивается дополнительным договором подписки ... базовые свободы распространения и модификации СПО нарушаются"
- https://grsecurity.net/agree/agreement_faq "You may use, copy, modify, and distribute any Linux kernel modified by combination with grsecurity patches under the terms of GPLv2."
- https://grsecurity.net/agree/agreement_faq "We reserve the right to revoke access to future updates of grsecurity patches and changelogs at any time for any reason. Our reasons for termination may include: ... Distribution or installation of grsecurity patches in violation of the terms of the access agreement"
- Warning: Grsecurity: Potential contributory infringement and breach of contract risk for customers, 2017-06-28 (англ.) "Grsecurity’s Stable Patch Access Agreement adds a term to the GPL prohibiting distribution or creating a penalty for distribution. GPL section 6 specifically prohibits any addition of terms."
- Grsecurity возможно нарушает лицензию GPL в своих попытках остановить перенос кода в ядро Linux . opennet.ru (10.07.2017). Дата обращения: 28 мая 2020.
- debian-user: Re: Why does no one care that Brad Spengler of GRSecurity is blatantly violating the intention of the rightsholders to the Linux Kernel?, 2017-07
- Bruce Perens Wins Victory for Free Speech. 2020-02-25
- Varghese, Sam iTWire - Linux kernel patch maker says court case was only way out (англ.). itwire.com (10 February 2020). Дата обращения: 28 мая 2020.
- Grsecurity Vendor Sues Open Source Pioneer Bruce Perens in GPLv2 Disagreement. 25 Aug 2017
- Thomas Claburn. Linux kernel hardeners Grsecurity sue open source's Bruce Perens (англ.). www.theregister.co.uk (3 Aug 2017). Дата обращения: 28 мая 2020.
- nebularia. Разработчики Grsecurity упоролись окончательно . Авторитетный форум об опен-сурс движении "linux.org.ru" (04.08.2017). Дата обращения: 28 мая 2020.
- Grsecurity maker finally coughs up $300k to foot open-source pioneer Bruce Perens' legal bill in row over GPL / The Register (англ.)
- D.C. No. 3:17-cv-04002-LB
- Суд взыскал 259 тысяч долларов с компании, разрабатывающей Grsecurity 10.06.2018
- Суд предписал OSS выплатить 300 тысяч долларов Брюсу Перенсу по итогам разбирательства с Grsecurity . opennet.ru (28.03.2020). Дата обращения: 28 мая 2020.
- Richard Fontana (Red Hat). Top 10 open source legal stories that shook 2017 (англ.). Opensource.com (27 Feb 2018). Дата обращения: 28 мая 2020.
- Linus Torvalds slams 'pure garbage' from 'clowns' at Grsecurity (англ.). theregister.co.uk (26 июня 2017). Дата обращения: 28 мая 2020.
- Re: More CONFIG_VMAP_STACK vulnerabilities, refcount_t UAF, and an ignored Secure Boot bypass / rootkit method
- Мария Нефёдова. Разработчики Grsecurity забанили исследователя, который нашел баг в свежем патче — «Хакер» . xakep.ru (28.04.2016). Дата обращения: 28 мая 2020.
См. также
- Linux Security Modules
- Exec Shield
- Security-Enhanced Linux
Литература
- Koo Z., Ayop Z., Abidin, Z. Analysis of ROP Attack on Grsecurity / PaX Linux Kernel Security Variables (англ.) // International Journal of Applied Engineering Research. — 2017. — January.
Ссылки
- Официальный веб-сайт
- Повышение привилегий в grsecurity, xakep.ru, 12 января 2007 г
- Grsecurity(англ.), securityfocus.com, 28 февраля 2002 г
- grsecurity на корпоративном информационном портале wiki.debian.org (англ.)
- GRSecurity – система безопасности для Linux, состоящая из патча к ядру и управляющей программы. / Системный администратор 2004 Выпуск №9 (22)
- Денис Колисниченко, Grsecurity: управление доступом, основанное на ролях
- Between the Millstones: Lessons of Self-Funded Participation in Kernel Self Protection Project, Alexander Popov (PositiveTechnologies) November 3,2018 (https://ostconf.com/materials/2491)
- STACKLEAK — это функция безопасности ядра Linux, изначально разработанная создателями Grsecurity/PaX, 27 Сентября, 2018