LINUX.ORG.RU

Сообщения seiken

 

Страуструп реагирует на критику безопасности C++

Форум — Talks

Отовсюду мы слышим стоны: C++ небезопасен! хватит использовать C++! АНБ призвало отказаться от C++, европейские законодатели готовят CRA, чтобы закрутить гайки для разработчиков небезопасного софта. Страуструп реагирует, вот его беседа о «Hardening C++»: https://youtu.be/eLLi0nWMUMs .

Начало:

  1. Когда я задумал C++ в 1979г., я взял C за основу. У меня не было знаний, чтобы создать ЯП с нуля;

  2. Я с самого начала всячески выступал за гораздо более строгую систему типов в C++;

  3. Меня раздражает, когда люди говорят о каком-то C/C++, это мифический ЯП, его не существует;

  4. Если мы говорим о безопасности, есть подмножество языка, которым можно ограничиться при написании безопасного софта. И тогда статические анализаторы типа clang-tidy или от MS позволят привести код довольно близко к виду «безопасный». Мы можем почти гарантировать, что в нем нет утечек памяти, болтающихся ссылок, и проч. Также можно опираться на безопасные библиотеки типа span, которые проверяют например границы доступа. И мы видем, что и другие ЯП прибегают к тем же мерам;

  5. другия ЯП, которые утверждают, что они безопасные и у них нет небезопасного кода… если в них есть способ вызвать C или C++, они уже не безопасные;

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

  7. Мы пишем библиотеку поддержки GSL, в которой есть такие вещи как span, которые позволяют избежать проблем с указателями;

  8. Если вы посмотрите на проблемный код, о котором все вопят, который приводит к проблемам, о которых вопят, это старый код, написанный в старом небезопасном стиле. Если посмотреть на то, как подобный код выглядит в новом стиле, этот новый код безопасен;

  9. Необходимо запретить разрабам компиляторов использовать UB как предлог для оптимизации;

и т.д. и т.п.

Выглядит довольно слабо. С самого начала был выбран небезопасный C в качестве основы системы типов. Как можно «выступать за безопасную систему типов» в ЯП, в котором в центре небезопасное ядро? Почему бы не набраться смелости и не сказать «да, C++ не безопасен, и никогда не будет безопасным; безопасность я выбросил, потому не нужна была, да и не потянул бы». Потом прошло много времени, проблемы набирались, как снежный ком, и теперь, когда C++ в каждой дырке, они начали чесаться: ой, нам нужны профили, нам нужно запретить небезопасные фичи; нам нужно то, это, третье, десятое, но вот статические анализаторы, они же примерно и делают необходимые проверки…

Особенно смешно выглядит сравнение с Адой и ее профилями. Потому что стандартная Ада, без всех ограничений, качественно безопаснее C++, и дело не в «безопасных библиотеках», а в более продуманной с самого начала системе типов. Но Страуструп не зря ссылается на Аду, скорее всего, понимает, что есть с самого начала грамотно спроектированные ЯП, а есть C++.

 ,

seiken
()

seLinux из коробки

Форум — Talks

Есть ли дистрибы Линукса кроме Федоры (ну и соотв. РэдХэт) на которых seLinux в режиме enforced работает из коробки? Или все кроме RH и ко на него забили в пользу apparmour или вообще без MAC? Пробовал врубить seLinux на убунте, вместо apparmour, и оно даже не загрузилось.

 ,

seiken
()

Европа, безопасный софт и опенсорс

Форум — Talks

Не знаю, обсудили это на ЛОР уже или нет, но я только что узнал, что европейские законодатели решили сделать софт более безопасным по закону, введя требования к производителям софта по типу существующей маркировки CE для аппаратуры, но для софта, Чтобы призвoдитель сам удостоверился, что его продукт типа безопасен с т.з. программных уязвимостей и соблюдения приватности. Достигаться это должно при помощи всяких мер типа security by design и проч. А за небезопасный софт могут нехило штрафануть, в зависимости от того, какими суммами контора разработчика воротит, до 15млн евро или 2.5% годового оборота.

Называется оно Cyber Resilience Act.

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

https://blog.opensource.org/the-ultimate-list-of-reactions-to-the-cyber-resilience-act/

А вы как относитесь к обеспечению безопасности кода по закону? Что, если пойти еще дальше, и автоматом вычитать из зарплаты программиста эти 2.5% («ведь GPT бы без ошибки написал»), или расширить штраф до тюремного срока? Ведь могут быть очень серьезные катастрофы, с многочисленными жертвами. Почему маньяки-убийцы тянут длинные сроки, а разработчики убийственного софта гуляют на свободе?

 , , какчество,

seiken
()

Мальтийским студентам грозит срок за нахождение уязвимости

Форум — Talks

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

В итоге к скубентам вломилась полиция, изъяла все компы, а самих арестовала, на основании некоей статьи о «доступе к приложению без надлежащего разрешения уполномоченного лица». И теперь им грозит штраф в $23К и срок 4 года.

https://timesofmalta.com/articles/view/we-wanted-help-students-arrested-exposing-freehour-security-flaw.1024757

А вы как считаете, «совсем оборзела кровавайя гэбня» или «так им и надо, паразитам, нет, чтобы учились, как все, ищут приключений на свою Ж»?

 срок, ,

seiken
()

Что GPT знает о ЯП?

Форум — Talks

Посоветовали мне тут в Development спросить свой вопрос у https://gpt-chatbot.ru/ . Но я решил сначала проверить, а понимает ли вообще GPT что-то в программировании.

Спросл «Why is Ada programming language not popular?» . И вот, что мне ответил ИИ:

As an AI language model I don't have opinions but here are some of the reasons why Ada programming language is not as popular as some other programming languages:

    1) Lack of marketing - Ada is not as heavily promoted as some other programming languages, so it is not as well known.

    2) Steep learning curve - Ada can be difficult for beginners to learn due to its complex syntax and strong typing rules.

    3) Targeted audience - Ada was designed primarily for large-scale, mission-critical systems, which limits its application in other areas.

    4) Limited resources - Due to its limited popularity, finding reliable online resources and support for Ada may be difficult.

    5 ) Competition from other languages - Ada faces strong competition from other popular languages like Java, Python, and C++ which offer similar features and are more popular.

    Government ties - Ada has been traditionally used by government institutions and organizations, which has limited its reach in the wider community.

со всем могу согласиться, но вот пункт 5) меня удивил. Все в одну кучу свалил, и коней, и людей. На счет C++ можно согласисься, и в области дженериков C++ ушел вперед. Java уже с натяжкой. А вот какие там в Питоне: объекты на стеке (а не в куче), многопоток из коробки, низкоуровневость вплоть до bare metal, отсутствие GC, автоматическая проверка указателей на null, числовые подтипы с лимитированной областью значений, и т.д. и т.п. Ну это же просто разные миры!

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

 ,

seiken
()

Подстановка команд с предварительной интерпретацией строки команды

Форум — Development

Так получилось (не дай бог никому), что пришлось мне править перловый скрипт, написанный хрен знает, кем. Надо добавить command substitution, чтобы вызывать внешнюю команду и класть ее вывод в переменную. Но команда не фиксированная, а строится на основе значений переменных. Пусть будет «ls -l $someDir» для примера.

В баше я бы написал просто:

result = $(ls -l $someDir)

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

Есть идеи?

 

seiken
()

Какой должен быть тест на базовые знания C++?

Форум — Development

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

Но тест не про это, что вообще характерно для плюсов. Вернее, только первую треть вопросов можно отнести к категории «базовый C++», потому что там действительно вопросы на базовое понимание синтаксиса и семантики фич.

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

Некоторые вопросы были явно составлены «на отвали», с явными грамматическими опечатками в коде. Ответы на некоторые вопросы зависили от компилятора. Например, если компилятор оптимизирует хвостовую рекурсию, никакой стек не переполнится, а программа будет бегать в цикле вечно, но ответа «выполняться вечно», конечно же, не было.

Последняя часть меня просто убила. Там были задания, как будто вот с этих ваших писькомерных сайтов с задачками на C++ или олимпиады, вообще никакого отношения к теме «базовый C++».

И вот я подумал, от чего так? Почему люди концентрируют внимание на какой-то укуренной белиберде - которую у джунов надо наоборот вытравливать на ранних стадиях, чтобы писали надежный, читаемый и поддерживаемый код - а не на том, что кодеру нужно будет в реальной работе? Ведь дофига есть актуальных тем, например, современные фичи C++, как писать безопасный код, параллельные вычисления, стандартная библиотека. Складывается такое ощущение, что такие тесты пишут какие-то сычи, которые специализируются на олимпиадах и говнокоде, на каких-то нахрен никому не нужных редких правилах C++.

 ,

seiken
()

Кто там хотел примеров, что опенсорс поддерживать дороже?

Форум — Talks

Вот вам пример.

Такой скрипт MS предлагает для инсталляции ODBC драйвера на Убунте:

if ! [[ "18.04 20.04 22.04" == *"$(lsb_release -rs)"* ]];
then
    echo "Ubuntu $(lsb_release -rs) is not currently supported.";
    exit;
fi

sudo su
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -

curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list > /etc/apt/sources.list.d/mssql-release.list

exit
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y apt-get install -y mssql-tools18
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo apt-get install -y unixodbc-dev

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

А вы говорите, опенсорс, опенсорс…

 

seiken
()

Опенсорс не про деньги, а про время

Форум — Talks

Новое исследование показывает: компании используют опен сорс не потому, что «дешевле», а потому что «быстрее». А по финансовым затратам обслуживание опенсорса может быть даже дороже проприетарщины.

https://www.infoworld.com/article/3689882/companies-cant-stop-using-open-source.html

Вот так, мои дорогие любители халявы.

 ,

seiken
()

Для git вообще есть нормальный UI?

Форум — Development

Посмотрел этот gitkraken, за него даже денежку просят для каких-то фич, но то, что я увидел в триале меня удручило.

Во-первых, не очень понятно, что эта тулза дает такого вау-полезного, чего уже не дает ублюдочный gitk.

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

И вот сижу я, и не понимаю, то ли никому не нужно удобство, эти инструменты как-то можно настроить, но не понятно, как, либо люди, которые за это платят какие-то алиены…

Может быть, git вообще не вполне подходит для сложного и обозреваемого версионирования и имеет смысл использовать коммерческие VCS для больших и сложных проектов?

 ,

seiken
()

Кто-то еще верит, что C/C++ не для криворуких макак?

Форум — Talks

Поставщик корпоративных решений в сфере ИТ-безопасности, Fortinet. 40 уязвимостей, Карл, 40! Среди них stack-based buffer overflow.

https://thehackernews.com/2023/02/fortinet-issues-patches-for-40-flaws.html

Вы правда думаете, у них кодеры индийские домохозяйки, выучившиеся программированию на 6 месячных курсах?

 , ,

seiken
()

Вопрос к разрабам на больших проектах

Форум — Development

Есть ли какие-то тулзы, которые могут визуализировать элементы релиз-менеджмента (когда какой релиз выходит) и одновременно статус тикетов по проблемам конкретно вашей подсистемы? Чтобы еще и дедлайны как-то отображались, и зависимости между тикетами (типа, чтобы решить проблему тикета А, надо сначала решить проблему в тикете Б).

И интеграция с Jira чтобы была, типа, кнопочка с надписью «проблемаСсегфолтом» (я ее сам выбираю) а статус в джире цветом отображался. Нажимаю на такую кнопочку, и UI меня редиректит на таск в джире?

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

 проблемо-менеджмент, релиз-менеджмент

seiken
()

Вопрос реальным пользователям vscode

Форум — Talks

Начал использовать сабж. Пока в виртуалке. Создалось такое впечатление, что когда оно чисто редактор, м.б. с одним расширением, например C++ от MS, еще ничего так, ворочается приемлемо. А если всякие git lens попробовать, начинаются какие-то тормоза. Консоль вывода тормозит и проч. Спасет ли новое железо? (я его на ноуте 2013г.в. пробовал), в виртуалке.

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

Что думаете о производительности vscode?

P.S. Размер проекта, ну, скажем 200 файлов на C++.

P.P.S. ах да, виртуалочке той 8гб ОЗУ дал.

 ,

seiken
()

Эти ваши VPN'ы

Форум — Talks

В софте FortiOS SSL-VPN нашли уязвимость класса переполнения буфера, и какие-то предприимчивые хакеры сумели внедрить через эту уязвимость свой код на сервер (CVE и проч. детали см. по ссылке).

Сообщается, что данный софт использовался для функционирования каналов связи правительственных учреждений.

https://arstechnica.com/information-technology/2023/01/fortinet-says-hackers-exploited-critical-vulnerability-to-infect-vpn-customers/

А вы говорите, VPN-VPN. Вот так хакер вас подслушает, а потом будет деньги вымогать.

 

seiken
()

Безопасность ЯП != безопасность ПО-решений

Форум — Talks

Яркая иллюстрация subj. В Расте библиотека Hyper для обработки HTTP запросов не позволяет выставить максимальный размер сообщения. В результате, овердохренища пакетов в crates.io, которые зависят от Hyper уязвимы перед потенциальными DoS атаками.

https://www.theregister.com/2023/01/06/flaws_rust_projects_ddos/

 ,

seiken
()

Вы когда-нибудь думали о дауншифтинге?

Форум — Talks

Чтобы уйти из профессии в офисе на полгода, подрабатывать лесником и лечить нервы и прочие болячки? Как потом объяснять на собесе, что ты не осилил нагрузку?

Перемещено maxcom из job

 

seiken
()

C++ от новичка до профи

Форум — Development

попался в гугло-новостях такой список ресурсов по сабжу.

Есть всякие ссылки на амазоны codeademy, но м.б. если кто-то даже не представляет, как влезть в С++, но очень хочет, может пригодиться.

https://www.codelivly.com/resources-to-learn-cpp-from-complete-beginner-to-advanced-level/

 ,

seiken
()

Почему ютуб клиент не качает более агрессивно?

Форум — Talks

После потери сети проигрывания хватает где-то секунд на 30. Даже при просмотре в 144р. Почему нельзя качать в больших объемах, ведь даже на смартфонах сейчас гигабайты ОЗУ свободные?

 

seiken
()

Стратегия покупки смартфонов

Форум — Talks

Допустим, смартфон за 300 у.е. ломается через 3 года, а смартфон за 500 у.е. - через 5 лет.

Вы покупали бы:

  1. смартфон за 300 у.е. каждые 3 года или
  2. смартфон за 500 у.е. каждые 5 лет?

 

seiken
()

Странное сообщение при apt upgrade

Форум — Talks

Решил сейчас проверить обновления, и вот что выдал apt upgrade помимо обычного вывода:

News about significant security updates, features and services will appear here to raise awareness and perhaps tease /r/Linux ;) Use ‘pro config set apt_news=false’ to hide this and future APT news.

Какое дело рядовому пользователю Убунты до какого-то канала на reddit? И тем более, что там кто-то кого-то хочет подразнить.

В разработку Убунты пустили дошкольников?

 ,

seiken
()

RSS подписка на новые темы