LINUX.ORG.RU
ФорумTalks

ржавчина и все, все, все

 


0

5

на фоне все этих страчей и прочего, решил опять попробовать собрать огнелиса. так как он требует раст, нужно удовлетворить.

ок, лезу на сайтик этого вашего язычка - https://www.rust-lang.org/tools/install, смотрю на recommended и вижу следующее

It looks like you’re running macOS, Linux, or another Unix-like OS. To download Rustup and install Rust, run the following in your terminal, then follow the on-screen instructions. See "Other Installation Methods" if you are on Windows.

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

говно вопрос, вижу следующкее

(vic@vilen)..jects/tmp $> curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
info: downloading installer
Warning: Not enforcing strong cipher suites for TLS, this is potentially less secure
Warning: Not enforcing TLS v1.2, this is potentially less secure
main: строка 412: /tmp/tmp.RION2DV1Zb/rustup-init: Нет такого файла или каталога

продолжайте называть ЭТО системным языком

★★★★★

Последнее исправление: ananas (всего исправлений: 1)
Ответ на: комментарий от X512

Защита от вирусов — дело рук человека.

Да и как вообще поможет частая смена аби? Думаете, лень будет прописывать все?

fernandos ★★★
()
Ответ на: комментарий от Harald

И стандартную библиотеку конпелять при запуске!

Достаточно патчить при загрузке. Можно сразу из ядра, чтобы коды системных вызовов не узнали. И шифровать PIDом. Подобные технологии (рандомизация адресов, важных указателей, дескрипторов и структур) в Windows и Linux уже используются. Например данные setjmp/longjmp в glibc шифруются по умолчанию.

X512 ★★★★★
()
Ответ на: комментарий от fernandos

Думаете, лень будет прописывать все?

Если генерировать случайно при каждом запуске, то не поможет. Заодно уйдут от порочной практики полностью статической линковки.

X512 ★★★★★
()
Ответ на: комментарий от Legioner

Почему безальтернативно?

потому что речь не об установке вообще, а об инсталляторе, который торчит в официальном download. он только один там, все остальное - неофициальная самодеятельность

ananas ★★★★★
() автор топика
Ответ на: комментарий от Legioner

Можно подумать вирусописателю сложно сделать switch по популярным версиям.

Как-будто им доступен API определения версии.

X512 ★★★★★
()
Ответ на: комментарий от ananas

Заходим на https://www.rust-lang.org/tools/install

Прокручиваем вниз

The installation described above, via rustup, is the preferred way to install Rust for most developers. However, Rust can be installed via other methods as well.

Нажимаем на LEARN MORE

Нажимаем на Standalone installers

The official Rust standalone installers contain a single release of Rust, and are suitable for offline installation. They come in three forms: tarballs (extension .tar.gz), that work in any Unix-like environment, Windows installers (.msi), and Mac installers (.pkg). These installers come with rustc, cargo, rustdoc, the standard library, and the standard documentation, but do not provide access to additional cross-targets like rustup does.

Each of these binaries is signed with the Rust signing key, which is available on keybase.io, by the Rust build infrastructure, with GPG. In the tables below, the .asc files are the signatures.

Ничего неофициального в них нет. Всё абсолютно официально, подписано криптографически. Собственно я даже подозреваю, что rustup примерно отсюда файлы и качает.

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 2)
Ответ на: комментарий от Legioner

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

ananas ★★★★★
() автор топика
Ответ на: комментарий от Spoofing

Это он к тому, что небезопасно запускать всякие левые скрипты из инторнетов.

Meyer ★★★★★
()

It looks like you’re running macOS, Linux, or another Unix-like OS. To download Rustup and install Rust, run the following in your terminal, then follow the on-screen instructions.

Это общемировая болезнь всех NuLangов, котлы в аду уже разогреты.

t184256 ★★★★★
()
Ответ на: комментарий от t184256

It looks like you’re running macOS, Linux, or another Unix-like OS. To download Rustup and install Rust, run the following in your terminal, then follow the on-screen instructions.

Это общемировая болезнь всех NuLangов, котлы в аду уже разогреты.

++

intelfx ★★★★★
()
Ответ на: комментарий от fernandos

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

rustup тащем сам себе пакетный менеджер. Что не сказать что хорошо, но что поделать

Dark_SavanT ★★★★★
()
Ответ на: комментарий от Legioner

подозреваю, что rustup примерно отсюда файлы и качает.

Но зачем он нужен? Почему просто не привести список доступных файлов для установки? Чтобы не возникло такой ситуации?

grem ★★★★★
()
Ответ на: комментарий от Legioner

Один компилирует только богомерзкую C/C++ лапшу для охлоса, другой - платформа для разных языков, включая языки благородных кровей для потомков богов вроде Rust.

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 2)
Ответ на: комментарий от vertexua

Какой вектор атаки ты ожидаешь? Ты пытаешься установить бинарник с чужого сайта, но скрипт с того же сайта мама эксплоит спасите помогите?

https://thejh.net/misc/website-terminal-copy-paste

Сайт Rust’а может быть девственно чист, но в браузере установленно протрояненное расширение, которое мониторит | sh или | bash и пихает тебе троянца.

Где-то была статья про то что так делать – моветон, даже приводились примеры эксплоитов и расширений браузеров на этот вектор атаки.

EXL ★★★★★
()
Ответ на: комментарий от ananas

/etc/os-release, lsb_release -a - не?

Из машинного кода без API и системных вызовов?

X512 ★★★★★
()
Ответ на: комментарий от vertexua

Напоминаю о взломе страницы дистрибутива Linux Mint несколько лет назад, когда на странице ссылки на зеркала были изменены на ссылки ведущие на скачивание пропатченных троянами злоумышленником iso образов.

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

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 1)

Ты не можешь поставить rustup из пакетного менеджера дистрибутива?

quantum-troll ★★★★★
()

Наитупейший говнонаброс. Даже Тсарь и то интереснее был.

WatchCat ★★★★★
()
Ответ на: комментарий от grem

Но зачем он нужен?

Всё-таки rustup не просто устанавливает раст. Он ещё умеет обновлять, устанавливать несколько тулчейнов и переключаться между ними, задавать дефолтные тулчейны для разных проектов и т.д.

DarkEld3r ★★★★★
()
Ответ на: комментарий от X512

По хорошему номера системных вызовов вообще надо рандомизировать при каждом запуске как ASLR.

А если реально, то сделали кое-что другое, как раз была новость на OpenNET: Представлены патчи для рандомизации адресов стека ядра Linux при системных вызовах (15.04.2021).

gag ★★★★★
()
Ответ на: комментарий от X512

Стабильное ABI системных вызовов — это зло и оно сильно упрощает написание вредоносного ПО: не надо ничего импортировать из динамических библиотек, достаточно использовать фиксированный код без обращений по каким-либо адресам. По хорошему номера системных вызовов вообще надо рандомизировать при каждом запуске как ASLR.

Что-то я плохо себе представляю, как это защитит от вредоносного ПО. Обычное ПО ведь как-то будет получать нужные номера. Почему вредоносное ПО не сможет делать то же самое?

i-rinat ★★★★★
()

продолжайте называть ЭТО системным языком

Как будто системный это претензия на что-то крутое и высокое качество. А так они не осилили веб, настройку своего веб-сервера.

Warning: Not enforcing TLS v1.2, this is potentially less secure

А курл не согласился участвовать в преступлении и использовать TLS v1.2)

goingUp ★★★★★
()
Ответ на: комментарий от i-rinat

Что-то я плохо себе представляю, как это защитит от вредоносного ПО.

Я про ситуацию заражения через запись исполняемого кода при переполнении буфера например на стеке. Если человек напрямую запускает бинарник вредоносного ПО от рута, то тут уже ничего не поможет.

X512 ★★★★★
()
Ответ на: комментарий от X512

Атаки на переполнение буфера очень узко таргерированные, поэтому у вредоносного кода есть вся информация о взаимном расположении частей кода. Довольно много эксплойтов успешно обходят ASLR и могут вызывать любой импортированный символ. Поэтому если внешний агент получил исполнять код в контексте локального процесса, рандомизация номеров системных вызовов никак не поможет. Ну будет код вызова write() чуть длиннее. Вместо вызова сразу будет поиск номера и вызов по номеру.

Я всё ещё не вижу, как это вообще хоть от чего-то может помочь.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

По идее ещё W^X очень эффективен против атак на переполнение буфера.

X512 ★★★★★
()

язычка

удобно когда автор в начале поста указывает на то, что воспринимать его серьезно не стоит.

Dred ★★★★★
()

main: строка 412: /tmp/tmp.RION2DV1Zb/rustup-init: Нет такого файла или каталога

Они не знали, что /tmp монтируется как noexec? Я бы после такого не стал продолжать с растом возиться. Трудно предсказать, где они в систему насрут своим скриптиком.

rupert ★★★★★
()
Ответ на: комментарий от vertexua

К llvm. Фикс нестандартного пути к линкеру у меня давно уже скриптом специально обученым правится. Повторюсь, проблема в самом подходе к установке, который мне лично неприемлем от слова вообще

ananas ★★★★★
() автор топика
Ответ на: комментарий от vertexua

У меня свой дистр, и я, соответственно, рассматриваю проблему как майнтейнер, а не пользователь

ananas ★★★★★
() автор топика
Ответ на: комментарий от anonymous-angler

А в некоторых нормальных дистрах оно опакечено
https://packages.gentoo.org/packages/dev-util/rustup

Кстати, дистрибутивно-правильная сборка

Running pre-merge checks for dev-lang/rust-1.51.0-r2

  • Checking for at least 15616 MiB disk space at "/var/tmp/

в стандартном tmpfs, в половину ОЗУ, уже не запускается.

boowai ★★★★
()
Последнее исправление: boowai (всего исправлений: 1)

Уф, скомпили этот rust, для этого пришлось /tmp дать 6G памяти,
и, наоборот, сдалать umount /var/tmp/portage/

novus ★☆
()
Ответ на: комментарий от boowai

А в некоторых нормальных дистрах оно опакечено

https://packages.gentoo.org/packages/dev-util/rustup

Кстати, дистрибутивно-правильная сборка

Running pre-merge checks for dev-lang/rust-1.51.0-r2

  • Checking for at least 15616 MiB disk space at "/var/tmp/

в стандартном tmpfs, в половину ОЗУ, уже не запускается.

-system-llvm +llvm_targets_*?

numas13
()
Ответ на: комментарий от numas13

[ebuild U ]
dev-lang/rust-1.51.0-r2:stable/1.51::gentoo [1.47.0-r2:stable/1.47::gentoo]
USE="-clippy -debug (-doc) (-libressl) (-miri) (-nightly) (-parallel-compiler) -rls -rustfmt (-system-bootstrap) (-system-llvm) -test -wasm"
ABI_X86="32 (64) (-x32)"
CPU_FLAGS_X86="sse2"
LLVM_TARGETS="(X86) -AArch64 -AMDGPU -ARM -AVR -BPF -Hexagon -Lanai -MSP430 -Mips -NVPTX -PowerPC -RISCV -Sparc -SystemZ -WebAssembly -XCore" 474039 KiB

По ebuild
M=8192 базовые
*1,5 за мультилиб
+2048 за !system-llvm
+256 за llvm_targets_X86
+1024 за !system-bootstrap
=15616

pre_build_checks() {
        local M=8192
        # multiply requirements by 1.5 if we are doing x86-multilib
        M=$(( $(usex abi_x86_32 15 10) * ${M} / 10 ))
        M=$(( $(usex clippy 128 0) + ${M} ))
        M=$(( $(usex miri 128 0) + ${M} ))
        M=$(( $(usex rls 512 0) + ${M} ))
        M=$(( $(usex rustfmt 256 0) + ${M} ))
        # add 2G if we compile llvm and 256M per llvm_target
        if ! use system-llvm; then
                M=$(( 2048 + ${M} ))
                local ltarget
                for ltarget in ${ALL_LLVM_TARGETS[@]}; do
                        M=$(( $(usex ${ltarget} 256 0) + ${M} ))
                done
        fi
        M=$(( $(usex wasm 256 0) + ${M} ))
        M=$(( $(usex debug 15 10) * ${M} / 10 ))
        eshopts_push -s extglob
        if is-flagq '-g?(gdb)?([1-9])'; then
                M=$(( 15 * ${M} / 10 ))
        fi
        eshopts_pop
        M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
        M=$(( $(usex doc 256 0) + ${M} ))
        CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
}
boowai ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.