Гвидо Вренкен (Guido Vranken), в своё время выявивший несколько опасных уязвимостей (https://www.opennet.dev/opennews/art.shtml?num=43971) в различых реализациях SSL/TLS и в OpenVPN (https://www.opennet.dev/opennews/art.shtml?num=46738), опубликовал (https://guidovranken.wordpress.com/2018/01/15/security-audit.../) результаты аудита мультипротокольного открытого VPN-сервера SoftEther (https://www.opennet.dev/opennews/art.shtml?num=38840). В ходе 80-часового исследования кода и fuzzing-тестирования в проекте было выявлено 11 уязвимостей. Разработчики SoftEther VPN оперативно выпустили (http://www.softether.org/5-download/history) обновление 4.25 Build 9656, в котором устранили обнаруженные проблемы.
Семь уязвимостей были вызваны отсутствием должных проверок и могут привести к переполнению буфера. По предварительной оценке данные уязвимости проблематично использовать для создания эксплоитов для выполнения кода атакующего, но можно применять для инициирования краха серверного процесса. 4 уязвимости вызваны утечками памяти и могут привести к исчерпанию доступной процессу памяти.
URL: https://guidovranken.wordpress.com/2018/01/15/security-audit.../
Новость: http://www.opennet.dev/opennews/art.shtml?num=47910
1 человек за 80 часов нашел 11 уязвимостей, мдаа... Что можно сделать за месяц с группой толковых ребят. И так во всем софте?
В проприетарщине точно не так (там либо не найдут, либо не исправят).
вполне возможно, что он нашел 90% того что есть
Вряд ли больше 10%.
Это врядли. SoftEther огроменный. И врядля там програмеры сильно лучше чем в остальных проектах. Значит багов в нем немеряно и часть из них окажется vuln-ами. И всего десяток - не так уж много для штуки где бинарь больше мегабайта весит.
Их ещё надо найти, этих толковых ребят. И как-то замотивировать работать над проектом.> Три самых лучших в отладке программиста смогли найти дефекты примерно в 3 раза быстрее и внесли в код примерно в 2,5 раза меньше дефектов, чем три худших. Самый лучший программист обнаружил все дефекты и не внес во время их исправления новых. Самый худший не нашел 4 из 12 дефектов, а при исправлении 8 обнаруженных дефектов внес в код 11 новых.
А также можно демотивироваться, для этого есть демотиваторы.
Убийца - садовник
> У Коли на компе антивирус Васи Пупкина за час нашел 10 вирей. Я не представляю что можно там найти за неделю, установив несколько антивирусов.т.е. насчет толковых ребят правда, а насчет принципа работы - нет
написано же - фузи-тестрирование. для его автоматизации существует куча софта. ничего необычного.
> 1 человек за 80 часов нашел 11 уязвимостейиз которых ни одна не exploitable. Хороший, оказывается, код у softether, очень неожиданно для такой сложности.
> Что можно сделать за месяц с группой толковых ребят.
написать план развития, назначить менеджеров направлений, нанять разработчиков и забабахать вебсайт группы поиска уязвимостей в единственной программе. Начать собирать donate. Верной дорогой идете, тов... мистер.
а здесь один очень непростой человек (может и умеет) за неделю старательного впахивания нашел только десяток DoS'ов, да и те, вероятнее всего, требуют быть авторизованным пользователем.
> И так во всем софте?
если бы :-(
> из которых ни одна не exploitableГде ты такое прочитал?
>> A security audit of the widely used SoftEther VPN open source VPN
>> client and server software [1] has uncovered 11 *remote* security
>> vulnerabilities.
> 1 человек за 80 часов нашел 11 уязвимостей, мдаа... Что можно сделать за месяц с группой толковых ребят.Одна женщина за 9 месяцев вынашивает ребёнка. Представляете, что можно сделать с толпой баб?
> Одна женщина за 9 месяцев вынашивает ребёнка. Представляете, что можно сделать с толпой баб?ну, если не ставить условие "за один месяц", можно наплодить гораздо больше пушечного мяса или материала для биореактора.
Тут беда в том, что умеющих и желающих копаться в чужом мутном и реально немаленьком коде - и одного-то найти тяжко.
В Роспомпозоре сидят сотни "толковых" ребят - никак не могут заблокировать Рутрекер. :)
> 1 человек за 80 часов нашел 11 уязвимостей, мдаа... Что можно сделать
> за месяц с группой толковых ребят. И так во всем софте?Во всем, поскольку никакой софт не может быть идеальным
В принципе неплохо, ничего сверхсерьезного.
А что лучше?OpenVPN vs WireGuard vs SoftEtherVPN
У SoftEtherVPN есть SSL
а у остальных?
У openvpn нет маскировки через SSL.
Для этого используется stunnel.
У WireGuard не знаю.
vs SSTP?
А у остальных он не знает. Я копал определенные части кода openvpn и в некоторых его местах уверен на 100%. Спокойно юзай OpenVPN, но следи за сообщениями об уязвимостях в openvpn и связанных с ним библиотек. Но не облажайся с DNS.
А что там с DNS?
Запросы можно завернуть или в dnscrypt или в tor.
Я бы добавил ещё GoVPN, он умеет лить случайные данные, чтобы замаскировать изменения количества передаваемых данных.Если важна скорость, то WireGuard.
1.WireGuard 2.SoftEtherVPN 666.OpenVPN
Где бы пруфца почитать, статеек там всяких?
>1.WireGuard 2.SoftEtherVPN 666.OpenVPN0. ssh tunnel
SSH это вообще сила. Любой айтишник должен знать SSH вдоль и поперек, тем более в такие темные времена как наше...
> А что лучше?
> OpenVPN vs WireGuard vs SoftEtherVPNСмотря для чего - я предпочитаю tinc. Если хочется mesh, то выбор небольшой.
Когда уж нормальную (или хоть какую) веб морду к SoftEtherVPN запилят? Доколе?!! Ведь опенсорс проэкт же! А управлялка им нормальная только под винду!!!
> Когда уж нормальную (или хоть какую) веб морду к SoftEtherVPN запилят? Доколе?!!
> Ведь опенсорс проэкт же! А управлялка им нормальная только под винду!!!К чему именно? Там ведь клиент, сервер, а еще к клиенты плагин. В Винде реализован VPN-SSL, а в линукс? Прикручивать stunnel?
Сравнение - https://xakep.ru/2016/10/07/vpn-review/
SoftEtherVPN:
достаточно сильная интеграция с AD для Enterprise и GUI клиент, и из коробки поддержка стандартных(!!!) VPN клиентов мобильных устройств.
Очень адекватный собственный клиент.
Кто объяснит - почему в OpenVPN нет такой фундаментальной и наиважнейшей вещи как KillSwitch? Почему он не встроен в консольный клиент? Почему в сети десятки костылей на тему как замутить KillSwitch под Linux самому (ведь 99% всех VPN-провайдеров один хер свои десктопные клиенты и KillSwitch делают только под Win/Mac, а линуксоид должен колбаситься, хотя деньги платит те же самые)? Нормальное встроенное решение, а не костыли хотелось бы. Допустим я не сисадмин, и я не могу быть на 100% уверен, что то или иное решение даст мне мгновенный обрыв основного канала при потере VPN-соединения, что ни байта не проскочит через основной канал, что никаких сливов не будет - ну как простой пользователь может быть в этом уверен? Почему так сложно встроить KillSwitch в OpenVPN-клиент?Как с этим у WireGuard / SoftEtherVPN?
Если ты параноик, тебе VPN не нужен. На VPN сервере весь твой трафик до последнего байта видно. Для твоих задач подходит Tor.
Вот не надо менять тему, пожалуйста, и замыливать проблему. Вопрос о другом был.
Вопрос плохой, т.к. вы ждете решение в виде кривого костыля. Все решается штатными средствами надежно и без сраных киллсвитчей. Надо просто подумать.
> почему в OpenVPN нет такой фундаментальной и наиважнейшей вещи как KillSwitch?Не буду гадать почему нет. Жалко, что нет. На базе linux решение видится мне на основе фаервола. Т.е. по дефолту стоят правила, запрещающие всё. Разрешаются соединения только с vpn-сервером. А затем, выполняется требуемая настройка правил для поднятого vpn-интерфейса.
Для неискушенного пользователя, я бы предложил использовать для этого GUI средства firewall-config и NM, но на текущий момент я не уверен, особенно за NM, не будет ли он допускать утечек данных во время переключения интерфейсов и всевозможныз переподключений. Полагаю, это полностью ограничивается фаерволом, и кривизна NM перестаёт влиять.
Да уж, а не проще замутить через метрики маршрутов, даже под виндой работать будет.
> Да уж, а не проще замутить через метрики маршрутов, даже под виндой работать будет.можете привести пример?
> можете привести пример?Вешаем метрику 50 для автоматически получаемого шлюза.
Добавляем статический маршрут до впн-сервера с метрикой 10.
Добавляем несуществующий дефолтный шлюз с метрикой 30.
Вешаем метрику 20 на шлюз через впн.========
Пока впн с меньшей метрикой жив все идет в него, кроме самого впн-соединения - там отдельный маршрут, как только падает все ломится на несуществующий, на дефолтный назначаемый не пойдет никогда пока жив статический с меньшей метрикой.
========
Можно запретить назначать шлюз поумолчанию и все маршруты руками прописать, тогда и с метриками возится не придется, хотя как в винде это сделать я не в курсе.
спасибо
В принципе правильно, но вот есть вопрос при большом количестве VPN, как например vpngate. Придется прописывать каждый раз правило. GUI firewal - есть же ufw, ну или там arno. А какую течь может дать NM? Настройки можно проверить руками..
может через cgroups? https://habrahabr.ru/post/274445/
> Кто объяснит - почему в OpenVPN нет такой фундаментальной и наиважнейшей вещи
> как KillSwitch?Это бессмысленно, если использовать OpenVPN по назначению, то есть как VPN, а не туннель в Интернет.
Полагаю, проблемы анонимизирующихся леммингов разработчиков не волнуют. И я их (разработчиков) в этом поддерживаю.
Фактически, да. Доступ контроллируется фаерфолом. Это как якобы "проблемы" с NAT и IPv6 и защитой сети, когда привыкли, что NAT служит защитой, но это всего лишь побочный эффект.OpenVPN занимается поднятием интерфейса и установкой туннеля. Ограничением трафика должен заниматься FW, независимо VPN там или нет.
Потому, что KillSwitch - дeбильный костыль для виндомакаков. Хочешь default только через VPN - так и сделай. Убери тот, что тебе подсунул провайдер, вместо него вставь хостовый маршрут до VPN сервера.Не понимаешь, как работает маршрутизация - не берись крутить сети в Linux.
Да этот персонаж видимо из плеяды поклонников журнала хакер.ру.Отсюда и мудовые страдания, как бы не спалили его реальный IP при дисконнекте.
Они уже лет 10 не могут решить эту невероятной сложности проблему.
Как в роутере убрать "тот, что тебе подсунул провайдер"??
> Как в роутере убрать "тот, что тебе подсунул провайдер"??Включить static routing.
iptables отменили?
Когда правила пишешь, нужно понимать что делаешь.
В этом то и загвоздка для пользователей.
Потому что мало кому нужно, это не совсем целевое использование VPN.
Консольный OpenVPN в Linux даже самостоятельно DNS менять в /etc/resolv.conf не умеет, а прибегает, чего уж там.
Есть желание — доделайте. Много идей, мало разработчиков и реальных дел.
*а прибегает к внешнему скрипту*
ip ro add 0/1 via x.x.x.x(vpn gate)
ip ro add 128/1 via x.x.x.x(vpn gate)
ip ro add x.x.x.x(ext vpn ip)/32 via x.x.x.x(dafault isp gate) dev eth0(например)Это для примера.