Proteger los sistemas tecnológicos críticos de posibles amenazas es una preocupación cada vez mayor para los gobiernos. Y un ejemplo de ello es el reciente llamamiento dirigido a la industria del desarrollo de software y realizado por la Casa Blanca a través de la Oficina de su Director Nacional de Ciberseguridad (ONCD) para que adopten lenguajes "seguros para la memoria"...
|
etiquetas: memoria , c , seguridad informática , lenguajes de programación , actualidad , oncd
...
No hablan ni catalán ni castellano ni inglés, hablan "consulto". El lenguaje de los lamebotas, copypasteros de PowerPoints y Excels qué viven de call en call, gathereando informacion de tus equipos para luego hacerte el reporting.
Todo muy corporativo y profesional.
www.youtube.com/watch?v=BKorP55Aqvg
Entiendo que terminemos hablando un lenguaje criollo en horas de trabajo con tanto anglicismo y acrónimos. Y creo que es sano limitarlo un poco; aunque creo que en mayor o menor medida todos nos dejamos llevar por la comodidad hasta cierto punto. Para mí el mayor problema viene de olvidarse o no saber que se pueden usar palabras ya existentes sin añadir longitud o complejidad especial; y que esto se retroalimente y… » ver todo el comentario
De acuerdo con lo que dices, solo que secularizar si existe aunque no tiene mucho que vez con la seguridad informatica. Yo odio el "encriptar" cuando no se habla de criptas.
Se me ha ido la.olla y en vez de darte a responder te he dado negativo, te doy otro par de positivos luego
A mí también me da grima que se use lo de "encriptar", quizá porque me enseñaron que no era el término correcto (para eso está "cifrar", al fin y al cabo). Pero me parece que cada vez lo aceptan más, incluso quienes trabajan directamente en la materia. Como decían en una película, el lenguaje también actúa como un virus y hay que tener cuidado con lo que se transmite.
No te preocupes por lo otro. Gracias por la explicación en todo caso.
Encriptar es ocultar la información cifrándola mediante el uso de clave/s.
Si lo prefieres puedes usar el sinónimo cifrar, pero encriptar aparte de ampliamente utilizado esta admitido.
dle.rae.es/encriptar
Otra cosa es la mala gestion de memoria, que viene del modelo de usar la memoria para tener datos y codigo, y el heap y la stack. De hecho, lo logico, que no ha hecho nadie hasta ahora, seria cambiar el paradigma de los compiladores y de la gestion de la memoria.
Precisamente eso es lo que ha hecho Rust. Incorporando, por una parte, el concepto de "propiedad" a los valores almacenados en memoria (liberando ésta cuando el propietario sale del scope) y el de "borrowing" (que permite acceder a los datos sin cambiar la propiedad) y, por otra parte, incorporando un montón de reglas al compilador (que… » ver todo el comentario
"Para qué quieres hace eso jaja saludos"
Rust las incluye en la stdlib: std::collections::LinkedList. Pero teniendo en cuenta que el principal caso de uso de las listas doblemente enlazadas es implementarlas para resolver pruebas de programación, tienes dos opciones:
- Usar smart pointers: Rc permite varios owners y RefCell mutabilidad interna (con la penalización de las comprobaciones en tiempo de ejecución), o...
- Usar "unsafe" y hacer lo mismo que harías en un lenguaje como C++
Rust proporciona un montón de mecanismos de seguridad que en C++ ni están ni se les espera, pero también puedes prescindir de ellos.
No hace tanto he visto ese error y me han dicho: "Que es el linker?", la madre que me pario del amor hermoso!!!!!!!!
Muchos de esos problemas con C se han arreglado con las mitigaciones de OpenBSD, opciones de malloc, y pledge y unveil en Firefox y Chromium.
Nota: yo está como "sistemas" en las reuniones en las que daban caña al equipo de producto... No soy programador.
Ya se que confiar en este comentario sin más pruebas es una estupidez pero confío plenamente en su criterio.
Si necesitas hacer algo crítico en lo que no te fies del GC, por supuesto que Rust es un candidato ideal.
Para montar una API decentilla, o crear un CLI, o cualquier cosa medianamente compleja que tampoco sea súper crítica, Go es una maravilla. Ya vale la pena solo por la cantidad de herramientas que te da la librería estándar sin tener que bajarte paquetes de otros.
En cuanto tenga tiempo quiero mirar Rust. Lo he empezado, pero en cuanto tengo tiempo me meto con matematicas para ML y esas cosas.
Otra cosa es la mala gestion de memoria, que viene del modelo de usar la memoria para tener datos y codigo, y el heap y la stack. De hecho, lo logico, que no ha hecho nadie hasta ahora, seria cambiar el paradigma de los compiladores y de la gestion de la memoria.
El propio creador de C++ decía algo parecido. Él sugiere el uso de analizadores de código estático. Supongo que habría que meterle a estos analizadores algo más. Por ejemplo, la notación:… » ver todo el comentario
Es que a los mayores de 40 no nos han prohibido todavia volver a la universidad.
Y ademas ahora existe Internet y puedes sacarte una carrera en universidades en otro continente.
En mi caso estoy intentando una segunda carrera en Ciencia de Datos y estoy pegandome con las asignaturas de matematicas porque hace mas 25 anios que me hice las de la carrera.
Soy mas bien calvo, que cuando empece usabamos el Turbo Pascal y el Turbo C, y OWL era un adelanto de la… » ver todo el comentario
Pero eso solo alivia algunos de los problemas, no resuelve el problema. Por qué el problema es el modelo de gestión de memoria y la forma en la que el programador se relaciona con el.
De hecho, por eso existe rust. Si fuese como tú dices, no haría falta rust para nada.
Especialmente en desarrollo de drivers y código que necesita alto rendimiento, el programador está muy tentado a saltarse todas las buenas prácticas. En Rust o Go, el riesgo está mucho más acotado y con un rendimiento similar.
Que prefieres Rust? Pues genial
Saltarse "las prácticas" pasa con todas las tecnologías y todas las áreas de la vida misma
Habiendo lenguajes equivalentes, empezar un proyecto nuevo en C/C++ tiene poco sentido en la inmensa mayoría de casos. Y te lo dice un ex programador de C.
Respetable, por supuesto, pero no es necesariamente verdad
No lo sé, pero me suena raro
A ver si me explico: con Rust no tiene sentido usar Valgrind, porque nunca vas a leer o escribir fuera de rango (que es lo que hacen la mayoría de exploits para ganar acceso a un sistema, aprovechar un fallo de esos para escribir donde les… » ver todo el comentario
"Rust consigue eso sin utlilizar un recolector de basura, por lo que es igual de eficiente que C"
Hace más trabajo y más comprobaciones consumiendo menos cpu/recursos? qué es lo siguiente? La máquina de movimiento perpetuo?
En serio, creo que toda tecnología tiene su aplicación pero está obsesión de algunos, no lo tomes personal por favor, de demonizar C++ por los "riesgos" que podría tener la flexibilidad que te daba el C ...me suena a trauma infantil
Lo que hace es prohibir/impedir (salvo que te emperres usando métodos unsafe) que se pueda hacer algo mal, para que no haga falta comprobar si se hace algo mal.
Así te ahorras el esfuerzo mental de programarlo sin vulnerabilidades y las comprobaciones en tiempo de ejecución.
Y te lo dice un programador de C a pelo con toda la gestión de memoria manual y que Rust lo ha tocado bien poco pero las ventajas saltan a la vista.
Por cierto, no me… » ver todo el comentario
Aparte el compilador es muy moderno y está muy muy optimizado y da errores con sentido (no como los que hemos sufrido durante décadas en C++).
En el tema de performance, hay algunos benchmarks en los que Rust funciona mejor que C (por ejemplo en pidigits aquí benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/rust-gpp.h ), pero… » ver todo el comentario
He visto memory leaks y cuelgues usando lenguajes "sin punteros"
Los errores se cometen sin punteros también
C / C++ son leguajes potentísimos que mal usados te vuela el pie, una buena analogía puede ser un bazooka.
Es un lenguaje que de potente que es, te puedes llevar un buen disgusto. Sobre todo perfiles que no tengan un buen y largo bagaje de programación.
Y claro, el legacy de C++ es como el legacy estándar solo que con nuevos superpoderes: memory leaks, punteros inválidos ... para mí tiene que estar muy muy justificado programar algo en C/C++ hoy en día.
Aparte que desde c11 y posteriores la cosa ha ido mejorando.
¿Lenguajes "artesanales" ?
donde el programador se encarga de gestionar la memoria a mano.
He programado en C durante años y jamás he "gestionado la memoria a mano". He cogido memoria cuando la he necesitado y la he liberado cuando ya no me hacía falta.
No es tan difícil.
Los problemas de seguridad se derivan de una mala programación. Y mientras haya esas malas praxis habrá problemas. Uses Javascript, PHP, Rust o lo que quieras.
Hoy en día los problemas de buffer-overflows que es lo más típico debido a la falta de control en el almacenamiento en memoria en C no son los peores problemas de seguridad ni de lejos.
Yo no he programado extensamente en C pero, precisamente, C te PERMITE hacer optimizaciones del uso de la memoria que no estan al alcance de lenguajes de más alto nivel. Como por ejemplo alinearte con los tamaños de pagina para reducir las llamadas del S.O.
Si, C *puede* usarse de forma artesanal y conseguir cotas de rendimiento y reduccion de huella de memoria muy interesantes.
Pero hacer eso y NO CAGARLA no esta al alcance de cuaquiera ... y por ahi ha de venir el problema.
Es un tema que era importante especialmente en dispositivos embebidos, no se como andará la cosa ahora.
Trabajé 5 los en proyectos en C++ y teníamos prohibido gestionar la memoria, y no tuvimos ni una fuga de memoria en esos años.
Yo toco c++ cada día, como parte de mi trabajo, ya está bien de ataques personales que no aportan nada
Una cosa que no queda clara es si la estela que deja el sable de luz también repele. ¿Hay algún tipo de atracción entre el sable y los láseres?
Luego si hay alguien que usa pólvora pues se le tira el sable de luz haciendo el molinillo a la cara y ya está
#33 A mí me confundía la forma en que usaban los sables de luz en las nuevas películas. Sale el llorón cortando árboles de un tajo, pero luego a los buenos les roza un poquito haciéndoles… » ver todo el comentario
Es que Disney "olvidó" el funcionamiento de los sables láser de forma muy conveniente para intentar suavizar el impacto "gore". En algunos juegos nuevos de la franquicia parece que estés pegando guantazos con una porra fluorescente. En cambio en el antiguo Jedi Knight (qué tiempos...) caían trozos si golpeabas una extremidad.
Ya no se puede secularizar.
...
Programar punteros en C es como hacer malabares con el jabón en la ducha de la carcerl: todo es diversión hasta que cometes un fallo.
Me lo acaba de preguntar GCC.exe, que no sabe lo que es.
Para quién le intentese, mandé el otro día el comunicado de la Casa Blanca citado en el envio:
- www.meneame.net/m/tecnología/comunidado-prensa-casa-blanca-software-f
Por favor, que alguien me explique esto. No entiendo como la vulnerabilidad de una librería de Java puede tener como consecuencia un llamamiento a dejar de utilizar C/C++ y ofrecer Java como una de las alternativas.
Me da la sensación de que nos están tomando por gilipollas, pero de una manera tan burda que me cuesta creerlo y pienso que soy yo que no lo estoy entendiendo.
El otro día leí que más de la mitad de las vulnerabilidades de los sistemas venían de las librerías gratuitas.
El ilustrador aquí no es un empleado básico.
Y eso de escribir en un editor de texto? Está mal, hay que llamar a una imprenta.
No, no tensajero.
te voy a instalar la máquina virtual de Java.
Ah, pues no cabe.
Oh, wait...
Del nivel de los que piden esa estupidez.
Creer eso es lo estúpido
Tener un Linux en Rust no aportaría nada de nada
En serio, no hay que hacer caso a burócratas de mierda que no tienen ni puta idea de nada, y menos de informática.
Se entiende que C++ evolucione, todos los lenguajes lo hacen, pero pienso que el salto de C++ de alguien que lo haya usado 15 atrás… » ver todo el comentario
La "gestión de memoria" de C es excelente. Se sabe exactamente cuando se usa y el instante en que se deja de usar una porción de memoria. Y se sabe Exactamente donde se está escribiendo y donde se puede escribir y donde no.
No hace falta más
Buscar que un lenguaje arregle la incompetencia de un programador es muy mala idea.
C++ aporta mucho sobre C. Es cierto.
Y Rust no es ni parecido ni puede sustituir a C++. No es un lenguaje orientado a Objetos