Разработчики анонимной сети Tor опубликовали результаты второго аудита, который был проведён компанией Radically Open Security с апреля по август 2023 года (до этого с ноября 2022 года по апрель 2023 года компанией Cure53 проводился первый аудит). Проверка затронула код для обеспечения работы выходных узлов, браузер Tor Browser, компоненты инфраструктуры (сбор метрик, SWBS, API Onionoo) и утилиты для тестирования. Основной задачей повторной проверки была оценка изменений, внесённых для повышения скорости и надёжности сети Tor, таких как добавленный в выпуске Tor 0.4.8 протокол разделения трафика Conflux и методы защиты Onion-сервисов от DoS-атак на основе доказательства выполнения работы...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=60522
Каковы методы аудита? Фуззинг? Не верится, что всё вручную.
Не похоже.
Какой фаззинг "додумается" до bridge_lines? А zip-бомба это вообще первое что надо проверять, если приложение с архивами работает.Ну разве что ошибку нулевого байта фаззингом можно выявить.
В оригинале (pdf по ссылке) code audit и crystal box. То есть код смотрели. Сканер уязвимостей упомянут дальше в "Our general approach during penetration tests", то есть больше похоже на рекламу, что могут и без исходников.
Может они без исходников за 50x в дисассемблере сидят и то же самое проверяют.
В такое я не верю. Лично у меня систематическая ошибка при переписывании с асма на ЯВУ, это проморгать какой-то переход. Причина в том, что всё однообразно, отчего глаз замыливается. Одно дело, если бы задачей стояло проникновение, тогда да, возможно - спец в этом деле поищет знакомые паттерны, где-то копнёт поглубже, если что-то найдёт, задача решена. Тут задача дать некую гарантию, что ошибок нет, а "не нашёл" на неё не тенет. Если же взять сканер, то можно отчитаться "вот такие атаки оказались безуспешны".
Arti,я так понимаю, тестировать не стали? Типа не готово ещё?
Нет аудита - нет и уязвимостей. А то мог бы получится и конфуз с утратой доверия.
> Нет аудита - нет и уязвимостей.О, вы прогрессируете! Раньше было "нет кода - нет уязвимостей", а теперь "не аудита - нет уязвимостей"))
Можете начинать придумывать следующую, на случай когда еще и аудит проведут и уязвимостей не на найдут.
Проблема раста в том, что его сложно читать, низкая популярность и дефицит специалистов, ну и ничего адекватного для инструментирования не придумали, что тоже накладывает определённый отпечаток. Но вообще нежелание саботировать такую славную серебряную пулю тоже понятно.
> сложно читатьтем, кто на нем не писал, это да
а все остальным норм, не сложнее чем кресты> ничего адекватного для инструментирования не придумали
а можно чуть более развернуто, чего именно не хватает?
компилятор - есть
дебаггер - есть
система сборки - есть
пакетный менеджер - есть> низкая популярность и дефицит специалистов
Да, такая проблема есть, но для проектов типа Тор нужна парочка крутых спецов, а не 100500 кодеров.
Можно посмотреть на статистику для си проекта (gitlab torproject org/tpo/core/tor/-/graphs/main?ref_type=heads), то можно увидеть что основной разраб был один Nick Mathewson. И еще штук пять с вкладом поменьшь.
А если посмотреть тоже самое для Arti - то основных контрибьюторов три, в том числе Nick Mathewson.
Так что в данном случае специалистов более чем достаточно.
>не сложнее чем крестыЛукавишь. В плюсах нет такого количества закорючек и всё более наглядно, зачастую.
>чего именно не хватает
Средств анализа и профилирования, например. Частая проблема программ на расте это утекающая в неизвестном направлении по неочевидным причинам память, непонятные блокировки, и прочее подобное.
>парочка
2 саботирующих друг друга специалиста не смогут развивать серьёзный проект, кроме того, пока что всё указывает на то, что разработка на расте в среднем в 1000 раз медленнее разработки на других языках.
>Частая проблемаНу и самая частая, это постоянные падения по поводу и без. Например, я пытался использовать ripgrep, и он постоянно падал у меня по десяткам различных причин. А производительность в 1-задачном режиме (что является единственно применимым вариантом на тех же жёстких дисках) совсем не впечатляла. И, учитывая невозможность использовать привычные возможности и выражения классического гну греп, это сводит на нет любую применимость в любых задачах. Про повышенные требования к памяти я даже не говорю.
> Средств анализа и профилирования, например.Хоть бы доку открыл https://nnethercote.github.io/perf-book/profiling.html
> саботирующих друг друга специалиста
сильное заявление, пруфцов бы...
> разработка на расте в среднем в 1000 раз медленнее разработки на других языках.
Эти оценки не могут быть адекватными, иначе Arti не дополз даже до версии 0.1.
Его начали писать May 07, 2020 (первый коммит), а текущую версию (1.1.12) уже можно использовать для клиента.
При этом сам тор пилят с 2002 года.
Просто ты теоретик. Я основываюсь на собственном опыте и отзывах жертв ржавчины с хакерньюс (больших поклонников ржавчины, надо понимать, раз они её выбирали), тамошняя аудитория как-то более убедительна в своих доводах, по сравнению с местными сумасшедшими, уж извини.
А, ну так начал бы с того, что ты хейтер, я бы не тратил время.> опыте и отзывах жертв ржавчины с хакерньюс
Неосияторы есть везде, не без этого. Но делать по этому выводы - пуста затея.
Лучше смотреть на тех у кого получилось и задуматься, почему они смогли, а другие - нет.
Я не хейтер, мне нравится раст рядом идей. Пока асинхронных генераторов нет, о серьёзном внедрении речи быть не может. А у кого получилось? Есть куча примеров провальности применения раста в продукте. Очень дорого, исключительно медленно, крайне не эффективно. Конкурировать сложно. В рекламные брошюры и пустой хайп верят только безумцы.
> В плюсах нет такого количества закорючек и всё более наглядно, зачастую.Так и пиши "закорючки меня расстраивают, они заставляют напрягаться опилкам в моей голове".
> Частая проблема программ на расте это утекающая в неизвестном направлении по неочевидным причинам память, непонятные блокировки, и прочее подобное.
Хм... без примеров звучит как балабольство.
Так что ссылочки на багтреккеры или репы.> разработка на расте в среднем в 1000 раз медленнее разработки на других языках.
Пруфы, Билли, нам нужны пруфы!
Это выглядит или как делириум, или как бред фанатика.
Каждый раз поражаюсь какое доброжелательное у Раста коммьюнити, и почему многие хейтят этих милых людей??
>Каждый раз поражаюсь какое доброжелательное у Раста коммьюнити, и почему многие хейтят этих милых людей??По сравнению со злобными функциональщиками в свое время просто зайки.
С чего вдруг?
Они сами пишут что Аоти только дорос до версии 1.0 и там еще кучу всего писать.Но проекты на раст уже подвергались аудиту, даже в новостях тут было
opennet.ru/opennews/art.shtml?num=60133"Фонд OSTIF (Open Source Technology Improvement Fund), созданный с целью усиления защищённости открытых проектов, опубликовал результаты аудита проекта RustVMM, предоставляющего компоненты для создания специфичных для определённых задач гипервизоров и мониторов виртуальных машин (VMM).
...
Аудит подтвердил высокое качество кодовой базы и использование в архитектуре и реализации приёмов, нацеленных на достижение максимальной безопасности. В ходе аудита было выявлено 6 проблем, не имеющих прямого влияния на безопасность. "
Не проекты на Rust, а проект )) только RustVMM. И еще они провели аудит полсотни проектов на других языках.
ждут когда chatgpt протестирует за них
Для проекта, который разрабатывается на Си, нетипично мало ошибок. Вероятно, это те самые люди, которые разрабатывают ПО, используя статические анализаторы.
Это те люди, которые ещё аудит заказывают.
Респект, вне зависимости от языка, ибо логические ошибки на любом могут быть.
Эх, вот бы придумали такой, где отсутствие логических ошибок можно доказать, да? Хотя не, тогда не получится каждый год заказывать аудит за деньги спонсоров.
Так есть же уже - формальная верификация и все дела.
Но на них настолько дорого "писать", что дешевле каждый год аудиты заказывать. И так лет на 100 хватит.PS. Почитайте на досуге, сколько лет и денег ушло на формальную верификацию ядра seL4, с его жалкими "8,700 lines of C code and 600 lines of assembler". Статья "seL4: Formal Verification of an OS Kernel" в открытом доступе на сайте Columbia University.
Сегодня есть спарк (ада), отзывы говорят, что подорожание незначительно.
GNATprove - инструмент для формальной верификации языка SPARK. Он проверяет соответствие подмножеству SPARK и выполняет анализ потока и доказательство исходного кода. Этот может потребовать дополнительного времени, но взамен предоставляет гарантии корректности кода. Если цель улучшение качества и надежности программного обеспечения, то оно того конечно же стоит.
>Эх, вот бы придумали такой, где отсутствие логических ошибок можно доказать, да?Давно придумали и не один, из самых практичных это ATS https://www.cs.bu.edu/~hwxi/atslangweb/
Но закорючки раста просто глаза будут радовать, в сравнении с тем сколько лишнего нужно писать на подобных языках чтобы все было доказано.
Просто это не первый аудит.
Плюс там сильная команда, которая старается писать очень аккуратно.
Поэтому и cveшек за все эти годы случилось не так много.
Хм, так выходит метод "писать нормально и не допускать очевидной лажи" все же работает? А местные сумасшедшие его высмеивали каждый раз.
>Хм, так выходит метод "писать нормально и не допускать очевидной лажи" все же работает? А местные сумасшедшие его высмеивали каждый раз.не забывай что эта же команда также применила метод "переписать свой продукт на раст".
А местные сумасшедшие его высмеивали каждый раз.
> также применила метод "переписать свой продукт на раст".все могут ошибаться, никто не идеален
> выходит метод "писать нормально и не допускать очевидной лажи" все же работаетНе работает, потому что оно требует неоправданно много трудозатрат. И все равно у них были такие ошибки.
> А местные сумасшедшие его высмеивали каждый раз.
Если у тебя нет доверия к местным, что вполне логично, то обратись к тем, кто написал большой и надежный продукт на си, который прошел уже два аудита.
Ну т.е. к авторам тора. К ним же больше доверия, так?)"Despite our efforts, it's all too simple to mess up when using a language that does not enforce memory safety. We estimate that at least half of our tracked security vulnerabilities would have been impossible in Rust, and many of the others would have been very unlikely."
gitlab torproject org/tpo/core/arti#why-rewrite-tor-in-rust
Им просто финансирование нужно осваивать. Иначе зачем им деньги давать, если все и так надежно работает? Потом начнут на что-то еще переписывать.
Что ни говорите, а живые программисты -- слабое звено современного IT.
Смотри шире! Живые люди - слабое звено современного мира.
Смотри ещё ширше. Люди, которых пытают - слабое звено современного мира.
Cовременного O_o??
Диды не могли правильно посчитать размер массива еще когда иксы писали. Хотя не, еще раньше.
И с того времени практически ничего не изменилось (добро пожаловать с соседние темы про ffmpeg, IPv6 и тд).
Добавились хорошие средства автоматического тестирования, фаззинга, всякие анализаторы, линтеры, санитайзеры.
А мясные мешки как допускали тупые ошибки, так и допускают((
А мы еще посмотрим как потомки будут разбирать те залежи гуано, что сегодняшние будущие диды понаписывают )) Там точно без искусственного суперинтеллекта не обойтись, потому как обычный повесится на своих же проводах ))
да ты в сервис сходи, аха
>Что ни говорите, а живые программисты -- слабое звено современного IT.То что сейчас почему-то называют ИИ по надежности вообще ниже плинтуса.
То есть теперь официально запруфано, что Си-версия Тора более чем безопасна? Это конец...
Да, после кучи времени разработки, багов и аудитов... они решили просто переписать все на Раст)Причем с формулировками
- Rust is more secure than C. Despite our efforts, it's all too simple to mess up when using a language that does not enforce memory safety.
- Rust enables faster development than C.Те самые люди, которые невероятными усилиями, добились более-менее работоспособной СИ версии.
> Это конец...
Да это конец. Для СИшной версии.
Will Arti replace the C Tor implementation?
Eventually, yes. But it will take a lot of work.
We plan to maintain and support the C Tor implementation until Arti is a viable replacement for the vast majority of use cases.
(gitlab.torproject.org/tpo/core/arti/-/blob/main/doc/FAQ.md)
>We plan to maintain and support the C Tor implementation until Arti is a viable replacement for the vast majority of use cases.То есть навсегда. Фух, можно выдохнуть... У напичканной закладками NSA версии на Rust всегда будет альтернатива на божественной Сишечке.
Пацаны, что там с подозрительным товарищ-майоровским входным нодом. Когда подключался без моста, он показывал страну Франция, и даже при изменении "идентичности" он всё время фигурировал в качестве входной ноды. Разумеется страна "Франция" может быть на практике сервером в Москве, и IP-шник у входной ноды был постоянно одним и тем же. Как у вас там ситуация, проверьте и отпишитесь.Мне кажется товарищ-майоры специально направляли трафик через одну входящую ноду, наверно это проделки китайского магистрального сетевого оборудования.
>Разумеется страна "Франция" может быть на практике сервером в МосквеНи хрена не разумеется. Каждый экземпляр TOR-клиента имеет локальную актуальную базу GeoIP:
GeoIPFile /usr/share/tor/geoip
GeoIPv6File /usr/share/tor/geoip6
# Generated: Fri, 08 Dec 2023 04:51:53 GMT
# Vendor: IPFire Project
# License: CC BY-SA 4.0>IP-шник у входной ноды был постоянно одним и тем же
Чего тебя так волнует входная нода? На ней можно определить ТОЛЬКО адрес откуда осуществляется вход в TOR и ни чего больше. Критичной является выходная нода. В случае незашифрованного HTTP, на выходной ноде можно снифить сайт назначения и содержимое сессии. Настрой у себя:
ExcludeExitNodes {by},{ru},{kz},{ua} и спи спокойно.
> На ней можно определить ТОЛЬКО адрес откуда осуществляется вход в TORА разве сам факт подключения к анонимной враждебной сети не будет уже флажком для майоров?
> В случае незашифрованного HTTP
Но.. но зачем?
Зачем вообще ходить куда-то по голому хттп?
> А разве сам факт подключения к анонимной враждебной сети не будет уже флажком для майоров?Конечно является.
> Зачем вообще ходить куда-то по голому хттп?
Потому что в мире есть отбитые, которое кричат, что https это заговор государства и/или корпов. И делают сайты http only.
Но к таким лучше не ходить ни по http, ни по https.
>Зачем вообще ходить куда-то по голому хттп?В случае TOR вариантов нет.
Facebook, Twitter, Reddit, ProtonMail, DuckDuckGo, Debian и т.п. могут себе позволить получить сертификат на домен .onion для HTTPS.
А как думаешь, найдется хоть один CA, который выпишет сертификат, например, для маркетов (чтоб им сдохнуть!) в даркнете?
>Каждый экземпляр TOR-клиента имеет локальную актуальную базу GeoIP:Хорошо. Тогда вопрос: "Кто контроллирует сервер входной ноды во Франции?". Не думаю, что это чувак-анархист, скорей всего там сидит крот.
>Чего тебя так волнует входная нода?
При смене "идентичности" вся цепочка, в том числе и входная нода должны изменятся. Но в данном случае IP входной ноды оставался прежним. Заметил факт - из России весь трафик направлялся через одну входную ноду.
>из России весь трафик направлялся через одну входную нодуВ РФ провайдеры негласно (РКН официально не запрещает TOR) блокируют входные ноды по списку открытого Tor Atlas. Вполне может быть, что эта входная нода - единственная из доступных у твоего провайдера. Просто пока не заблокирована.
>скорей всего там сидит кротИ оплачивают его:
- DARPA
- U.S. Department of State Bureau of Democracy, Human Rights, and Labor
- Federal Foreign Office of Germany
- Ford Foundation
- Freedom of the Press Foundation
- Naval Research Laboratory
......