Hacker News Digest

Тег: #ocaml

Постов: 4

Just the rumour of a bug is enough to find an exploit these days (anil.recoil.org) 🔥 Горячее

Слух о баге в OCaml-библиотеке cohttp привёл к тому, что атаки начались ещё до публикации исправления. Автор обнаружил в логах своего веб-сервера попытки эксплуатации уязвимости path traversal всего через несколько минут после открытия публичного pull request с патчем. Используя собственный ИИ-агент (DeepSeek V4 Pro), он смог воспроизвести эксплойт локально за минуту, основываясь лишь на общем описании проблемы — что демонстрирует, насколько быстро современные агентные системы могут находить уязвимости по косвенным намёкам.

Традиционный процесс закрытого исправления и embargo перестал работать: агенты, получив лишь общее направление (например, описание CVE), способны самостоятельно исследовать код и создавать эксплойты. Исследования показывают, что GPT-4-агент эксплуатирует 87% уязвимостей по их описанию, а среднее время до эксплуатации теперь отрицательное — атаки начинаются до выхода патча. Это требует пересмотра практик безопасности в open source: нужны быстрые механизмы триажи, верификации и доверия, а также защитные системы, способные противостоять автоматизированным атакам в реальном времени.

by avsm • 28 августа 2026 г. в 15:58 • 303 points

ОригиналHN

#agent-based-exploitation#cohttp#cve#deepseek#exploit#gpt-4#ocaml#open-source-security#path-traversal

Комментарии (107)

Тред подтверждает: волна фейковых и низкокачественных security-репортов стала повседневностью для open source, а LLM сократили цикл от слуха до эксплойта и массового сканирования до минут. Главный враг — не техника, а отсутствие воли фиксить баги и медленный релиз патчей против рисков supply-chain автообновлений. По опыту @nickcw (rclone): за 10 лет — ~20 репортов, за последний месяц — >40, ~75% содержат зерно проблемы, конфигурации для воспроизведения становятся экзотичнее. @thedonncha наблюдает волнообразное накопление: после исчерпания одного проекта атаки переключаются на следующий, качество падает, нагрузка — нет. @bri3d и @happyopossum: использование PoC из обрывков кода — не ново, но LLM демократизировали его, сжав цикл (чтение коммита → RE → сборка → сканирование) с дней/недель до минут/часов. @loeg и @avsm: memory-safe языки (включая OCaml) не спасают — LLM находят логические баги и corner-кейсы в C-биндингах, как в Mirage-crypto. @loeg утверждает, что такие языки снижают число эксплуатируемых багов, но @avsm и @aseipp настаивают: ключевая проблема — масштабируемость и скорость атак: от слуха до эксплойта теперь часы, и это легко масштабируется деньгами и compute. @stephbook и @talon8635: реальный bottleneck — rollout/deployment. Обновление стека за 10 минут — редкость, CI верифицирует бизнес-логику дольше, автообновления сами становятся вектором supply-chain атаки. Выбор между известной уязвимостью и слепым доверием к апдейтам — ловушка. @Saghm и @xbar обсуждают, может ли LLM «найти» эксплойт по ложному слуху; @petesergeant приводит пример sgnt.ai/p/terrible-mistake: агент генерирует критичный баг по ложной подсказке — false positives становятся индуктивным инструментом. Советы: @nickcw — держать security-фиксы в отдельных ветках, мёржить только в релиз-день, мириться с конфликтами. @rndhouse — построил инструмент для детекции «тихих» багфиксов через GPT-5.5-класс модели; обфускация изменений для обхода — ненадёжна, c-lightning временно раздавал закрытый бинарь. @ChrisMarshallNY и @skybrian: мейнтейнеры могут уйти в приватные репозитории ради сокращения окна эксплуатации — хотя публичность ранее игнорировалась с тезисом «LoL MaRkEtInG». @godelski и @dingdongditchme: менеджмент давит на скорость и отказывается чинить баги, которые Claude уже верифицировал в open PR; без воли — качество ПО не растёт, LLM только ускоряют и хорошее, и плохое. @janpeuker: когда средние и высокие баги станут дёшевы для фикса, lowkey-хакинг и privacy-аудиты станут prohibitively expensive для обычных граждан — баланс сил сместится. Остальные не оспаривают напрямую, но тон треда — про удешевление эксплойтов, а не защиты.

Why I love OCaml (2023) (mccd.space) 🔥 Горячее 💬 Длинная дискуссия

Автор делится своим опытом работы с различными языками программирования, объясняя, почему OCaml стал его любимым языком. Он начал с Haskell, который оценил за функциональное программирование и статическую типизацию, но столкнулся с его сложностью и медленной компиляцией. Позже он попробовал Go, который понравился своей простотой, скоростью компиляции и хорошими инструментами, но разочаровал многословностью обработки ошибок и отсутствием функциональных возможностей. OCaml, по мнению автора, сочетает в себе лучшее из обоих миров: функциональные конструкции, статические гарантии, быструю компиляцию, простую семантику выполнения и отличную документацию. Особо отмечается, что OCaml компилируется в один статический бинарный файл, как Go, но при этом имеет более мощную систему типов и REPL. Автор считает, что создатели OCaml обладают хорошим вкусом, а язык представляет собой идеальный баланс между простотой и выразительностью.

by art-w • 07 ноября 2025 г. в 14:05 • 378 points

ОригиналHN

#fsharp#functional-programming#go#haskell#ocaml#reasonml#rust#static-typing#swift#typescript

Комментарии (267)

  • OCaml не стал мейнстримом из-за синтаксиса, отсутствия нативных библиотек и слабой экосистемы, но его идеи (pattern-matching, type inference, algebraic data types) уже давно живут в Rust, Swift, TypeScript и даже Go.
  • Фактически OCaml — это «нативный» вариант F#, но без .NET-экосистемы, а F# — это OCaml без его синтаксиса и с .NET вместо OCaml-стандартной библиотеки.
  • Попытка ReasonML привнести более C-подобный синтаксис вместо ужасающего синтаксиса OCaml закончилась тем, что Facebook забросил проект, а вся индустрия JS-инструментов осталась без единого стандарта.
  • Попытка Facebook-а внедрить Reason вместо TypeScript внутри Facebook показала, что даже если синтаксис и не является проблемой, то отсутствие единого стандарта для сборки и пакетов в JS-мире оставляет язык без шанса.
  • Несмотря на то, что OCaml — это язык с 25-летней историей, он не имеет ни мультиплатформенной сборки, ни нормального менеджера пакетов, ни нормального REPL, что делает его неподготовленным к работе вне Unix-подобных систем.

We chose OCaml to write Stategraph (stategraph.dev)

Разработчики Stategraph выбрали OCaml для управления состоянием Terraform, поскольку корректность здесь критически важна. Система хранит состояние как граф зависимостей в PostgreSQL с блокировкой на уровне ресурсов. OCaml позволяет улавливать целые категории ошибок на этапе компиляции, что невозможно в других языках. Сильная типизация данных предотвращает доступ к несуществующим полям, а неизменяемые структуры по умолчанию исключают условия гонки.

Типобезопасные SQL-записи предотвращают дрейф схемы до развертывания, а PPX автоматически генерирует корректную сериализацию JSON. Как отмечают разработчики: "Мы строим инфраструктуру, которая управляет инфраструктурой других людей. Повреждение состояния не может быть 'редким'. Оно должно быть невозможным". Компилятор OCaml обеспечивает безопасность на уровне типов, проверяя все переходы состояний и записи в базе данных, что значительно снижает количество ошибок по сравнению с традиционным подходом, основанным на тестировании.

by lawnchair • 07 ноября 2025 г. в 13:10 • 142 points

ОригиналHN

#json#ocaml#postgresql#terraform

Комментарии (105)

  • Обсуждение показало, что выбор языка часто опирается на субъективные предпочтения и эстетику, а не только на технические аргументы.
  • Участники подчеркнули, что такие факторы, как удобство найма разработчиков и удержание их мотивации, могут быть более важными, чем технические характеристики.
  • Была поднята тема лицензий и открытого кода как факторов, которые могут влиять на выбор инструментов.
  • Обсуждение также затронуло вопросы стоимости владения инструментом и его экосистемой, включая стоимость обучения и доступность кадров.
  • Участники отметили, что хотя технические детали важны, они не всегда являются решающими при выборе стека, особенно если учитывать, что большинство современных языков предлагают сравнимые возможности.

Unexpected productivity boost of Rust (lubeno.dev) 🔥 Горячее 💬 Длинная дискуссия

Rust повышает производительность разработки, несмотря на сложность.
Ключевые факторы:

  • Жёсткий компилятор ловит ошибки до запуска, уменьшая время отладки.
  • Модель владения устраняет гонки и утечки памяти, снижая количество багов.
  • Инструменты: Cargo, Clippy, rustfmt и rust-analyzer ускоряют цикл «написание → проверка → запуск».
  • Сообщество предлагает качественные крейты и быструю помощь.
  • Производительность кода сравнима с C/C++, но без segfault и UB.

В итоге меньше времени тратится на отладку, больше — на новые функции.

by bkolobara • 27 августа 2025 г. в 15:48 • 479 points

ОригиналHN

#cargo#clippy#dom#haskell#ocaml#rust#rust-analyzer#rustfmt#typescript

Комментарии (433)

  • Автор статьи рассказал, как Rust позволяет безболезненно рефакторить большие кодовые базы благодаря строгой типизации и проверкам компилятора.
  • Многие участники согласились, что статическая типизация (Rust, Haskell, OCaml-подобные языки) повышает уверенность при изменениях, особенно в многолюдных проектах.
  • Часть комментаторов считает сравнение с TypeScript «нечестным»: TS компилируется в JS и наследует его недостатки, а приведённый баг с window.location.href — это особенность DOM, а не языка.
  • Некоторые отметили, что Rust тоже не идеален: async/синхронные блокировки, медленная компиляция и «множество способов сделать одно и то же» могут снижать удобство.
  • Общий вывод: преимущество Rust в безопасности и рефакторинге особенно заметно на больших проектах, но язык требует времени на изучение и не всегда лучше «классических» статически типизированных альтернатив.