• [^] # Re: Petite question à ceux qui "baignent" encore dans le C

    Posté par (site web personnel) . En réponse au journal Vulnérabilités multiples dans sudo-rs. Évalué à 4.

    Ce que tu ne comprends pas dans le propos, c'est que si tu prends un programme C donné et que tu le convertis en Rust

    C'est absolument faux, tu convertis du code C en Rust, tu te retrouves avec du code Rust 100% unsafe.

    Les pratique de codage de Rust et C sont différents, donc les algorithmes utilisés en C ne sont pas forcément simples à convertir en Rust safe.

    Tu ne convertis pas un programme C en Rust, tu le recodes, avec des pratiques de codages différentes, et des dépendances en plus, beaucoup.

    GNU coreutils, c'est principalement deux dépendances : glibc et GNUlib.
    uutils, c'est ça : https://deps.rs/repo/github/uutils/coreutils
    Si tu additionnes uu_core et coreutils, t'en a 14.
    Et si tu prends uu_touch, tu en rajoutes une qui a elle-même 10 dépendances.

    Sauf que les attaques par supply chain sont malgré tout bien plus rares et concernent aussi les applications C et C++.

    Sauf que les attaques mémoire concernent aussi Rust...

    Si les attaques par supply chaine sont rares, c'est aussi peu être, car C se repose sur moins de dépendances que du Rust ou JS.
    XZ, ça a été un gros travaille d'ingénierie sociale pour choisir l'une des rares libs C utilisée un peu partout, et peu maintenues.
    En Rust des lib comme XZ utilisé un peu partout, tu n'en as pas 10 comme en C, mais plus 300.

    Aussi, entre une erreur mémoire dans un programme comme ls, qui de toutes manières demande d'avoir accès à ton ordi en physique pour être exploité, et un bout de code ajouté par une dépendance derrière ton dos, qui va te modifier sshd_config à l'init de ls si tu es en root.
    Bah, je prends 30% de chances d'erreur mémoire à 0.5% de chances de supply chaine attaque.