Viernes 23 de junio de 2017

Javier Smaldone

Javier Smaldone
Blog de Javier Smaldone

J. Alex Halderman sobre los sistemas de votación de los EE.UU.

Intervención del Dr. J. Alex Halderman, reconocido especialista en sistemas de votación electrónica, en el Comité de Inteligencia del Senado de los EE.UU. sobre los ataques de Rusia al sistema electoral estadounidense de 2016 y las debilidades de los sistemas de votación electrónica y de asistencia electrónica al escrutinio.

Salvando las diferencias entre los sistemas electorales de los EE.UU. y la Argentina es interesante notar que destaca varios de los aspectos que quienes nos oponemos al uso de sistemas de voto electrónico hemos puesto de manifiesto en el Congreso de la Nación en reiteradas oportunidades.

A continuación, la traducción al español del documento presentado por Halderman (también puede consultar la versión original en inglés).

Comité de Inteligencia del Senado de los EE.UU.

Interferencia rusa en las elecciones estadounidenses de 2016

Testimonio Experto de J. Alex Halderman, Profesor de Ciencias de la Computación, Universidad de Michigan. 21 de junio de 2017

Presidente Burr, Vicepresidente Warner y miembros del Comité, gracias por invitarme a hablar hoy sobre la seguridad de las elecciones estadounidenses. Estoy aquí para decirles no sólo lo que pienso, sino también las preocupaciones compartidas por cientos de expertos de la investigación y la industria de la ciberseguridad. Esta experiencia es relevante porque las elecciones —el fundamento de nuestra democracia— están ahora en el frente de la ciberseguridad y se enfrentan a amenazas cada vez más serias. Nuestro interés en este asunto es decididamente apartidario; nuestro enfoque se centra en la integridad del proceso democrático y en la capacidad del sistema de votación para registrar, contabilizar e informar los resultados de las elecciones con precisión.

Mi investigación en ciencias de la computación y ciberseguridad aborda una amplia gama de desafíos de seguridad [1]. Estudio los ataques y defensas de los protocolos de Internet en los que todos confiamos a diario para mantener nuestra información personal y financiera segura. También estudio las capacidades y limitaciones de los atacantes más poderosos del mundo, incluyendo bandas criminales sofisticadas y estados nación hostiles. Gran parte de mi trabajo durante los últimos diez años ha sido estudiar la tecnología informática en la que se basa nuestro sistema electoral[2]. En este trabajo, a menudo lidero el “equipo rojo”, desempeñando el papel de un atacante potencial para encontrar dónde los sistemas y las prácticas son vulnerables y aprender a fortalecerlos.

Sé de primera mano lo fácil que puede ser manipular máquinas de votación computarizadas. Como parte de las pruebas de seguridad, he realizado ataques a máquinas de votación ampliamente utilizadas, y he hecho que los estudiantes ataquen con éxito las máquinas bajo mi supervisión.

Las máquinas de votación de los Estados Unidos son vulnerables

Como ustedes saben, los estados eligen su propia tecnología de votación[3]. Hoy en día, la gran mayoría de los votos se emiten utilizando uno de dos métodos informatizados. La mayoría de los estados y la mayoría de los votantes usan el primer tipo, llamado escaneo óptico de boletas, en el cual el votante llena una boleta de papel que luego es escaneada y contada por una computadora. El otro enfoque ampliamente utilizado lleva a los votantes a interactuar directamente con una computadora, en lugar de marcar una opción en el papel. Se llama votación DRE, o de registro directo electrónico. Con las máquinas de votación DRE, los registros primarios de la votación se almacenan en la memoria de la computadora[4].

Tanto los escáneres ópticos como las máquinas de votación DRE son computadoras. Bajo el capó, no son tan diferentes de su laptop o smartphone, aunque tienden a utilizar tecnología mucho más antigua, a veces décadas desactualizada[5]. Fundamentalmente, sufren de debilidades de seguridad similares a las de otros dispositivos informáticos. Lo sé porque he desarrollado formas de atacar a muchos de ellos como parte de mi investigación sobre las amenazas a la seguridad electoral.

Hace diez años, formé parte del primer equipo académico en realizar un análisis de seguridad integral de una máquina de votación de DRE. Examinamos lo que era en ese momento el DRE de pantalla táctil más utilizado en el país[6], y pasamos varios meses investigándolo en busca de vulnerabilidades. Lo que encontramos fue perturbador: podíamos reprogramar la máquina para inadvertidamente hacer que cualquier candidato ganara. También creamos software malicioso —código roba-votos— que podía propagarse de máquina a máquina como un virus informático, y cambiar silenciosamente el resultado de la elección[7].

Vulnerabilidades como éstas son endémicas en todo nuestro sistema electoral. Los expertos en ciberseguridad han estudiado una amplia gama de máquinas de votación de los Estados Unidos —incluyendo DRE y escáneres ópticos— y en cada caso han encontrado graves vulnerabilidades que permitirían a los atacantes sabotear las máquinas y alterar los votos[8]. Es por esto que existe un consenso abrumador en las comunidades de investigación sobre ciberseguridad e integridad electoral de que nuestras elecciones están en riesgo.

Los ciberataques podrían comprometer las elecciones

Por supuesto, interferir en una elección estatal o nacional es una tarea mayor que sólo atacar una única máquina. Algunos dicen que la naturaleza descentralizada del sistema de votación de los Estados Unidos y el hecho de que las máquinas de votación no están conectadas directamente a Internet hacen imposible el cambio de un resultado electoral estatal o nacional. Desafortunadamente, eso no es cierto[9].

Algunas funciones electorales están en realidad bastante centralizadas. Una pequeña cantidad de proveedores de tecnología electoral y contratistas de apoyo proveen los sistemas utilizados por muchos gobiernos locales. Los atacantes podrían apuntar a una o varias de estas compañías y propagar el código malicioso al equipo electoral que utilizan millones de votantes.

Además, en elecciones reñidas, la descentralización puede realmente volverse contra nosotros. Un atacante puede buscar vulnerabilidades en distintas áreas de los “swing states” más importantes, encontrar las que tienen la protección más débil y atacar allí[10]. En una elección reñida, cambiar algunos votos puede ser suficiente para inclinar el resultado, y un atacante puede elegir dónde —y en qué equipos— robar esos votos. Las elecciones estatales y locales también están en riesgo.

Nuestra infraestructura electoral no está tan lejos de Internet como puede parecer[11]. Antes de cada elección, las máquinas de votación tienen que ser programadas con el diseño de la boleta electoral, las contiendas y los candidatos. Esta programación se crea en una computadora de escritorio llamada sistema de gestión de elecciones, o EMS, y luego se transfiere a las máquinas de votación usando memorias USB o tarjetas de memoria. Estos sistemas son generalmente administrados por personal de TI del condado o por contratistas privados[12]. Lamentablemente, los sistemas de gestión electoral no están adecuadamente protegidos y no siempre están adecuadamente aislados de Internet. Los atacantes que comprometen un sistema de gestión de elecciones pueden extender el malware de robo de votos a una gran cantidad de máquinas[13].

Los intentos de ataque rusos: las amenazas son reales

La lección clave de 2016 es que las amenazas de hacking son reales.

Este mes, hemos visto informes que detallan los esfuerzos de Rusia para atacar los sistemas de registro de votantes en hasta 39 estados[14] y desarrollar la capacidad para propagar un ataque desde un proveedor de tecnología electoral a las oficinas electorales locales[15]. Atacar los sistemas de TI de los proveedores y los municipios podría poner a los rusos en posición de sabotear el equipamiento el día de las elecciones, haciendo que las máquinas de votación o libros electrónicos de votación (electronic poll books) fallen, lo que resultaría en largas colas u otras interrupciones. Los rusos podrían incluso haber diseñado este caos para que tuviera un efecto partidista, apuntando a localidades que se inclinen fuertemente hacia un candidato u otro.

La infiltración exitosa de los sistemas de TI electorales también podría haber puesto a los rusos en posición de propagar un ataque a las máquinas de votación y potencialmente robar votos. Aunque los sistemas de registro involucrados fueron por lo general mantenidos a nivel estatal, y la mayoría de la programación preelectoral es realizada por condados o proveedores externos, los condados tienden a estar aún menos defendidos que los gobiernos estatales. Por lo general, cuentan con poco personal de apoyo de TI y poca o ninguna experiencia en ciberseguridad.

Otro enfoque que los rusos podrían haber estado planeando es manipular el sistema de votación de manera obvia y fácil de descubrir, tal como hacer que los sistemas de reporte envíen a los medios de comunicación resultados iniciales incorrectos en la noche de las elecciones. Incluso si se corrigiera el problema y no se cambiaran los votos reales, esto causaría incertidumbre en los resultados y una desconfianza generalizada en el sistema, que perjudicaría nuestros procesos democráticos. Si los votantes no pueden confiar en que sus votos se cuentan honestamente, tendrán razones para dudar de la validez de las elecciones[16].

No sé hasta qué punto llegaron los rusos en su esfuerzo para penetrar en nuestra infraestructura electoral, ni si interfirieron con el equipamiento el día de las elecciones. (Hasta donde se ha hecho público, ningún equipo de votación ha sido sometido a exámenes forenses para comprobar si fue atacado con éxito). Pero no hay duda de que Rusia tiene la capacidad técnica de realizar ataques a gran escala contra nuestro sistema de votación, al igual que otras naciones hostiles. Como James Comey testificó aquí hace dos semanas, sabemos que “Vienen tras América” ​​y “Volverán”[17].

Pasos prácticos para defender la infraestructura electoral

Debemos comenzar a prepararnos ahora para defender mejor nuestra infraestructura electoral y protegerla de ciberataques antes de las elecciones de 2018 y 2020. La buena noticia es que sabemos cómo lograr esto. Boletas de papel, auditorías y otros pasos sencillos pueden hacer que las elecciones sean mucho más difíciles de atacar.

He incorporado al expediente una carta de más de 100 informáticos, expertos en seguridad y funcionarios electorales. Esta carta recomienda tres medidas esenciales que pueden salvaguardar las elecciones estadounidenses:

  • En primer lugar, necesitamos reemplazar las máquinas de votación obsoletas y vulnerables, tales como sistemas sin papel, por escáneres ópticos y boletas de papel, tecnología que 36 estados ya utilizan. El papel proporciona un registro físico resiliente del voto[18] que simplemente no puede ser comprometido por un ciberataque. El presidente Trump destacó este punto poco antes de las elecciones en una entrevista con Fox News. “Hay algo realmente agradable en el viejo sistema de boletas de papel”, dijo. “No hay que preocuparse por hackeos. No hay que preocuparse por todos los problemas que estamos viendo”[19].
  • En segundo lugar, necesitamos comprobar constantemente y de forma rutinaria que nuestros resultados electorales son precisos, inspeccionando una cantidad suficiente de boletas para saber si los resultados informáticos son correctos[20]. Esto se puede hacer con lo que se conoce como auditorías de limitación de riesgo (risk-limiting audits)[21]. Dichas auditorías son un control de calidad de sentido común[22]. Mediante la comprobación manual de una muestra aleatoria relativamente pequeña de boletas, los funcionarios pueden proporcionar rápida y económicamente una alta certeza de que el resultado de la elección es correcto. El escaneo óptico de boletas conjuntamente con auditorías de limitación de riesgo proporcionan una manera práctica de detectar y corregir ciberataques que cambien votos. Pueden parecer de baja tecnología, pero son una defensa fiable y rentable[23].
  • Por último, tenemos que elevar la vara para los ataques de todo tipo —incluyendo la manipulación de votos y el sabotaje— mediante la realización de evaluaciones exhaustivas de las amenazas y la aplicación de las mejores prácticas de ciberseguridad en el diseño del equipamiento de votación[24] y la gestión de las elecciones.

Estas correcciones no son caras. El reemplazo de sistemas inseguros sin papel en todo el país costaría entre $130 millones y $400 millones[25]. La ejecución de auditorías de limitación de riesgo a nivel nacional para las elecciones federales costaría menos de $20 millones al año[26]. Estas cantidades son sumamente pequeñas en comparación con la mejora de la seguridad nacional que resultaría de esta inversión. Sin embargo, estas medidas permitirían abordar un desafío cibernético primordial, aumentar la confianza de los votantes y fortalecer significativamente un elemento crucial de nuestra seguridad nacional. También enviarían una respuesta firme a cualquier adversario que contemplara interferir con nuestro sistema electoral.

Los funcionarios electorales tienen una tarea extremadamente difícil, incluso sin tener que preocuparse por ciberataques de gobiernos hostiles. El gobierno federal puede hacer inversiones prudentes y rentables para ayudarles a defender nuestra infraestructura electoral y mantener la confianza de los votantes. Con el liderazgo conjunto consensuado del Congreso y la acción en asociación con los estados, nuestras elecciones pueden estar bien protegidas a tiempo para 2018 y 2020.

Gracias por la oportunidad de testificar. Espero con interés responder a cualquier pregunta.

Referencias

[1] Mi curriculum vitae y publicaciones de investigación están disponibles en https://jhalderm.com.

[2] Para una introducción accesible a los riesgos de seguridad y potencial futuro de las tecnologías de votación por computadora, ver mi curso online, Securing Digital Democracy, que está disponible de forma gratuita en Coursera: https://www. coursera.org/learn/digital-democracy.

[3] En muchos estados, la tecnología en uso incluso difiere de un condado a otro. Verified Voting mantiene una base de datos en línea del equipamiento en uso en cada localidad: https://www.verifiedvoting.org/verifier/.

[4] Algunos DRE también producen un registro impreso del voto y lo muestran brevemente al votante, usando un mecanismo llamado respaldo en papel verificable por el votante (voter-verifiable paper audit trail), o VVPAT. Mientras que el VVPAT proporciona un registro físico del voto que es una salvaguarda valiosa contra ciberataques, la investigación ha demostrado que los registros VVPAT son difíciles de auditar con precisión y que los votantes a menudo no se dan cuenta si el registro impreso no coincide con sus votos. Por estas razones, la mayoría de los expertos en seguridad electoral apoyan el escaneo óptico de boletas de papel. Véase: S. Goggin y M. Byrne, “An Examination of the Auditability of Voter Verified Paper Audit Trail (VVPAT) Ballots”. En Proceedings of the 2007 USENIX/ACCURATE Electronic Voting Technology Workshop, agosto de 2007. Disponible en http: /www.accurate-voting.org/wp-content/uploads/2007/08/evt07-goggin.pdf. Ver también: B. Campbell and M. Byrne, “Now Do Voters Notice Review Screen Anomalies?” En Proceedings of the 2009 USENIX/ACCURATE/IAVoSS Electronic Voting Technology Workshop, agosto de 2009. Disponible en: http://chil.rice.edu/research/pdf/CampbellByrne_EVT_(2009).pdf.

[5] En 2016, en 43 estados se usaron máquinas de votación por computadora que tenían por lo menos 10 años de antigüedad, cerca del final de su vida útil de diseño. El hardware y el software más antiguos generalmente carecen de defensas que se opongan a técnicas de ataque más modernas. Ver: L. Norden and C. Famighetti, “America’s Voting Machines at Risk”, Brennan Center, 2015. https://www.brennancenter.org/publication/americas-voting-machines-risk. Ver también: S. Checkoway, A. Feldman, B. Kantor, J. A. Halderman, E. W. Felten, and H. Shacham, “Can DREs Provide Long-Lasting Security? The Case of Return-Oriented Programming and the AVC Advantage”. En Proceedings of the 2009 USENIX/ACCURATE/IAVoSS Electronic Voting Technology Workshop, agosto de 2009. Disponible en: https://jhalderm.com/pub/papers/avc-evt09.pdf.

[6] La máquina fue la Diebold AccuVote TS, que es actualmente utilizada a lo largo del estado de Georgia en 2017.

[7] A. J. Feldman, J. A. Halderman, and E. W. Felten, “Security Analysis of the Diebold AccuVote-TS Voting Machine”. En Proceedings of the 2007 USENIX/ACCURATE Electronic Voting Technology Workshop (EVT), agosto de 2007. El artículo de investigación y un video explicativo están disponibles en: https://citp.princeton.edu/research/voting/.

[8] Para una bibliografía parcial de la investigación de ataques a máquinas de votación, ver: J. A Halderman, “Practical Attacks on Real-world E-voting”. En F. Hao and P. Y. A. Ryan (eds.), Real-World Electronic Voting: Design, Analysis and Deployment, CRC Press, diciembre de 2016. Disponible en: https://jhalderm.com/pub/papers/ch7evoting-attacks-2016.pdf.

[9] Expliqué cómo los atacantes pueden evitar estos obstáculos en un reciente informe del Congreso: Strengthening Election Cybersecurity, 15 de mayo de 2017. El video está disponible en https://www.electiondefense.org/congressional-briefings-cyber-security/.

[10] Para una descripción más detallada de cómo los adversarios pueden seleccionar objetivos, ver J. A. Halderman, “Want to Know if the Election was Hacked? Look at the Ballots”, noviembre de 2016, disponible en: https://medium.com/@jhalderm/want-to-know-if-the-election-was-hacked-look-at-the-ballots-c61a6113b0ba.

[11] Afortunadamente, los EE.UU. han resistido el uso generalizado de la votación por Internet —un desarrollo que pondría un nuevo blanco de tiro sobre nuestro sistema democrático. Yo mismo he demostrado ataques contra sistemas de votación por Internet en Washington D.C., Estonia y Australia. Ver: S. Wolchok, E. Wustrow, D. Isabel, and J. A. Halderman, “Attacking the Washington, D.C. Internet Voting System”. En Proceedings of the 16th Intl. Conference on Financial Cryptography and Data Security, febrero de 2012. Disponible en: https://jhalderm.com/pub/papers/dcvoting-fc12.pdf. D. Springall, T. Finkenauer, Z. Durumeric, J. Kitcat, H. Hursti, M. MacAlpine, and J. A. Halderman, “Security Analysis of the Estonian Internet Voting System”. En Proceedings of the 21st ACM Conference on Computer and Communications Security (CCS), noviembre de 2014. Disponible en: https://jhalderm.com/pub/papers/ivoting-ccs14.pdf. J. A. Halderman and V. Teague, “The New South Wales iVote System: Security Failures and Verification Flaws in a Live Online Election”. En Proceedings of the 5th International Conference on E-voting and Identity, septiembre de 2015. Disponible en: https://arxiv.org/pdf/1504.05646v2.pdf. Para una discusión más amplia sobre por qué los sistemas seguros de votación por Internet están a probablemente décadas de distancia, ver: R. Cunningham, M. Bernhard, and J. A. Halderman, “The Security Challenges of Online Voting Have Not Gone Away”. IEEE Spectrum, 3 de noviembre de 2016. http://spectrum.ieee.org/tech-talk/telecom/security/thesecurity-challenges-of-online-voting-have-not-gone-away.

[12] En mi propio estado, Michigan, alrededor del 75% de los condados externalizan la programación preelectoral en un par de proveedores de servicios independientes. Se trata de pequeñas empresas con 10-20 empleados que están principalmente en el negocio de la venta de material electoral, incluyendo urnas y pegatinas “Yo voté”.

[13] Ver, por ejemplo, J. Calandrino, et al., “Source Code Review of the Diebold Voting System”, parte del California Secretary of State’s “Top-to-Bottom” Voting Systems Review, julio de 2007. Disponible en: https://jhalderm.com/pub/papers/diebold-ttbr07.pdf.

[14] M. Riley and J. Robertson, “Russian Cyber Hacks on U.S. Electoral System Far Wider Than Previously Known”. Bloomberg, 13 de junio de 2017. https://www.bloomberg.com/politics/articles/2017-06-13/russianbreach-of-39-states-threatens-future-u-s-elections.

[15] M. Cole, R. Esposito, S. Biddle, and R. Grim, “Top-secret NSA Report Details Russian Hacking Efforts Days Before 2016 Election”. The Intercept, 5 de junio de 2017. https://theintercept.com/2017/06/05/top-secretnsa-report-details-russian-hacking-effort-days-before-2016-election/.

[16] Ver, a modo de ejemplo, E. H. Spafford, “Voter Assurance”. NAE The Bridge, diciembre de 2008. https://www.nae.edu/19582/Bridge/VotingTechnologies/VoterAssurance.aspx.

[17] Testimonio del ex Director del FBI James B. Comey ante el Comité de Inteligencia del Senado, 8 de junio de 2017.

[18] Por supuesto, las boletas en papel también pueden ser alteradas por las personas que las manipulan. El conteo por escaneo óptico tiene la ventaja de que produce registros tanto en papel como electrónicos. Mientras los funcionarios comprueben que ambos conjuntos de registros coincidan, sería muy difícil para los delincuentes alterar el resultado de la elección sin ser detectados, ya sea por un ciberataque o por la manipulación por métodos tradicionales de las boletas.

[19] Ver: http://www.businessinsider.com/donald-trump-election-day-fox-news-2016-11.

[20] Al menos 29 estados ya requieren algún tipo de auditoría post-electoral. Sin embargo, dado que los procedimientos en la mayoría de los estados no están diseñados como una ciberdefensa, la cantidad de boletas que se auditan puede ser demasiado baja o geográficamente localizada como para detectar con certeza un ataque. Algunos estados también permiten la auditoría controlando las boletas de papel a través de las mismas máquinas potencialmente comprometidas. Los resultados de las máquinas de votación DRE sin papel no pueden ser fuertemente auditados, ya que no hay registros físicos que verificar. Para detalles estado por estado, vea la National Conference of State Legislatures, “Post-election Audits”, junio de 2017. Disponible en: http://www.ncsl.org/research/elections-and-campaigns/post-election-audits635926066.aspx.

[21] Para una explicación detallada de las auditorías de limitación de riesgo, vea J. Bretschneider et al., “Risk-Limiting Post-Election Audits: Why and How”. Disponible en: https://www.stat.berkeley.edu/~stark/Preprints/RLAwhitepaper12.pdf. New Mexico ya requiere de algo similar a una auditoría de limitación de riesgo, y Colorado las está implementando desde 2017. Se han probado auditorías de limitación de riesgo en elecciones reales en California, Colorado y Ohio.

[22] Una de las razones por las que las auditorías posteriores a las elecciones son esenciales es que las pruebas previas de “lógica y precisión” pueden ser vencidas por software malicioso que se ejecute en las máquinas de votación. El código de robo de votos puede ser diseñado para detectar cuándo está siendo probado, y no realizar el engaño durante esas pruebas. El software de control de emisiones de Volkswagen hizo algo similar para ocultar el hecho de que estaba mintiendo durante las pruebas de la EPA.

[23] El ex director de la CIA James Woolsey y el Teniente Coronel Tony Shaffer pidieron boletas de papel y auditorías en un editorial del 12 de mayo de 2017 en Fox News: “En última instancia, creemos que la solución a la inseguridad electoral radica en el famoso viejo adagio del presidente Reagan: ‘confía pero verifica'”. http://www.foxnews.com/opinion/2017/05/12/america-s-voting-systems-need-security-upgrades-it-s-time-to-beef-up-cybersecurity.html.

[24] Un esfuerzo notable para desarrollar equipos de votación seguros es STAR-Vote, una colaboración entre investigadores de seguridad y la oficina electoral de Travis County, oficina electoral de Texas. STAR-Vote integra una gama de defensas modernas, incluyendo criptografía de extremo a extremo y auditorías de limitación de riesgo. Ver S. Bell et al., “STAR-Vote: A Secure, Transparent, Auditable, and Reliable Voting System”. USENIX Journal of Election Technology and Systems (JETS) 1(1), agosto de 2013. https://www.usenix.org/system/files/conference/evtwote13/jets0101-bell.pdf.

[25] Brennan Center, “Estimate for the Cost of Replacing Paperless, Computerized Voting Machines”, junio de 2017. https://www.brennancenter.org/sites/default/files/analysis/New_Machines_Cost_Across_Paperless_Jurisdictions%20%282%29.pdf. Este costo podría reducirse considerablemente mediante el desarrollo de equipos de votación basados en software de código abierto y hardware comercial de venta directa (COTS).

[26] Esta estimación supone que la auditoría de una elección federal tendrá un costo promedio similar al recuento manual del 10% de los precintos. En una auditoría de limitación de riesgo, la cantidad real de boletas que se deben verificar varía con, entre otros factores, el margen de victoria.

Jueves 22 de junio de 2017

Usemos Linux: osXFCE un tema inspirado en MacOS para XFCE basado en arc-flatabulous
Linux Adictos: Boot Repair Tool, una herramienta que nos ayudará a solucionar los problemas de arranque en Linux
Usemos Linux: PAM, NIS, LDAP, Kerberos, DS y Samba 4 AD-DC – Redes PYMES
Linux Adictos: IO Interactive conserva los derechos de HITMAN y se independiza

Miércoles 21 de junio de 2017

Linux Adictos: Simon Raffeiner explica por qué no triunfó Ubuntu Phone

Martes 20 de junio de 2017

Usemos Linux: Dragonfire: Un asistente virtual para Ubuntu

Instalar Atom en Elementary

Siempre he usado geany como IDE de desarrollo ahora, me gustaría conocer uno nuevo decidí instalar Atom

Entramos como root

sudo su

y luego ejecutamos

add-apt-repository ppa:webupd8team/atom
apt-get update
apt-get install atom

En el cual, agregamos el repositorio desde lo vamos a descargar, sincronizamos las cabeceras de los repositorios y se procede a instalar.

Ya tenemos a Atom instalado, mas adelante explico como se configura extensiones y templates.

En mi caso por que tenia instalado 32 bits, pero si tienes 64bits de un entorno debian o derivado te bajas directamente el .deb

Atom 64 Bits

Lo descargas  y luego lo instalas con dpkg -i

Lunes 19 de junio de 2017

Javier Smaldone

Javier Smaldone
Blog de Javier Smaldone

Otra vez a votar como siempre

Se vienen las elecciones legislativas de 2017. Y otra vez los argentinos vamos a votar con el viejo sistema francés de boletas partidarias en un cuarto oscuro (que ya ni los franceses utilizan así). Lastimosamente, se perdió una nueva oportunidad de mejorar nuestro sistema electoral.

Cuarto oscuro

La cosa había empezado bien. Como nunca, se había propuesto una reforma en un año en que no había elecciones, y no tres meses antes —cuando ya no hay tiempo de hacerlo— como suele ocurrir. Pero lamentablemente la intención del Gobierno era impulsar un proyecto de ley “a libro cerrado” para implementar un sistema de voto electrónico. Es cierto que en el medio del debate en la Cámara de Diputados accedieron a agregar un par de artículos para imponer un “cupo igualitario” femenino, pero el oficialismo jamás aceptó cambiar una coma en lo referido al sistema de votación mediante computadoras.

Y no es que nadie les haya acercado ideas. Enrique Chaparro y yo tuvimos la oportunidad de decirle personalmente a Adrián Pérez las mismas cuatro palabras que muchos venimos repitiendo desde hace más de una década: “boleta única de papel”. Pero claro, cuando finalmente pudimos hacerlo, ya el proyecto estaba escrito en piedra (fuimos convocados sólo para poder declamar “escuchamos todas la voces”). Nos oyeron, pero nunca nos escucharon.

Luego el proyecto entró a Diputados. Y allí los críticos del voto electrónico también fuimos convocados. Aunque lo que dijimos tampoco sirvió de mucho, quizás porque los siete que no opinábamos que votar con computadoras es la mejor idea desde el pan cortado en rebanadas fuimos ubicados casi al final de una lista de más de treinta oradores. La mayoría expusimos ante la atenta mirada de cuatro o cinco legisladores. Del proyecto original sólo se modificaron las penas impuestas a tareas que son esenciales para realizar auditorías independientes del sistema propuesto. Sin un sólo informático que avalara el sistema de voto electrónico propuesto, media sanción y al Senado.

Debo decir que en el Senado los críticos fuimos muchos más y mucho mejor tratados, pero sólo porque allí tiene mayoría la oposición. Esta, como tal, se opone a cualquier cosa que impulse el oficialismo (no importa que algunos de sus integrantes hubieran apoyado el sistema de voto electrónico en distritos como Salta y la CABA hasta hacía unos minutos). Se convocó a varios más, se nos dio más tiempo y hasta se organizó una sesión extra para hacer demostraciones. Fue todo un espectáculo ver en el Senado cómo se podía hackear un sistema bancario, romper el secreto del voto usando boletas impresas por una inocua impresora y vulnerar el secreto de la “boleta única electrónica” usando una radio de onda corta (y mejorar este ataque usando una “minipimer”).

Y se acabó el tiempo. Llegó el fin de año y el proyecto de reforma electoral no logró el dictamen de comisión en el Senado. Fin del sueño de votar con computadoras en 2017 y avalancha de descalificaciones e imputaciones a quienes estuvimos en contra desde el primer día (menos diez años). Que nos paga Gildo Insfrán, que promovemos el fraude, que queremos que Aníbal Fernández sea gobernador.

Y este año, a votar. Otra vez con boletas partidarias en un cuarto oscuro, para lo cual previamente cada partido político debe imprimir toneladas de estas (con negociados de los partidos truchos y sufrimiento presupuestario de los partidos chicos). Y conforme se acerque la fecha de la elección ya sabemos lo que pasará: Massa propondrá alquilar máquinas de voto electrónico a Brasil, como si fueran colectivos, y Marcos Peña llorará “vergüenza nacional” por tener que usar algo tan antiguo como el papel para elegir a nuestros legisladores, como lo hacen los países más desarrollados del mundo. Y el día de la elección, periodistas militantes tuitearán una y otra vez cuatro o cinco actas con errores como evidencia concluyente del fraude en las más de 90.000 mesas de votación del país. “Estamos esperando a tener resultados homogéneos”, dirá un señor con chaleco de cazador de patos la noche del domingo, ante la ausencia total de resultados oficiales. Va a ser interesante ver cómo conduce el operativo eleccionario un Ministro del Interior que se empeña en demostrar que el sistema utilizado no sirve para nada y debe “modernizarse”.

Pasó más de un año. La obstinación del oficialismo no dio lugar a ningún cambio que no fuera votar usando computadoras. Y mientras tanto, nadie se preocupó por depurar los padrones electorales. Nada se sabe del sistema a utilizar para realizar el escrutinio provisorio y publicarlo. Los punteros se preparan nuevamente para hacer plegados raros en las boletas y ponerlas en el bolsillo de los votantes (los periodistas tendrán material para nuevos informes sobre bolsones de comida y remises trasladando gente). Las excusas y los chivos expiatorios ya están listos. Es que el proyecto de voto electrónico sigue en el Senado y habrá que revivirlo para 2019. Y a falta de argumentos reales para impulsarlo, la indignación de la gente es buen sucedáneo.

Sábado 17 de junio de 2017

Django tu primer proyecto

La idea es saber que tienes todo lo necesario para levantar una instancia en django

Tenemos que instalar pyhton para eso, depende de tu Sistema Operativo en mi caso uso Elementary

aptitude install python

Luego entramos en la carpeta y creamos con el nombre de nuestro proyecto

mkdir entorno

Al siguiente paso accedemos dentro de la carpeta entorno
Ya dentro de la carpeta ejecutamos el siguiente comando para crear el entorno
virtualenv .
Installing distribute.............................................................................................................................................................................................done.
Installing pip...............done

Luego para entrar a nuestro entorno ejecutamos lo siguiente
source bin/activate

Ya dentro de nuestro entorno nos damos cuenta por lo siguiente la terminal se coloca de la siguiente manera
(entorno)julioh@mordor:~/githubJulioh/entorno$
Ahora procedemos a instalar
pip install django
Luego de instalar, creamos los archivos base
django-admin startproject entorno

Cuando realizamos este comando nos crea una carpeta llamada entorno y adentro los siguientes archivos.

??? db.sqlite3
??? entorno
?   ??? __init__.py
?   ??? __init__.pyc
?   ??? settings.py
?   ??? settings.pyc
?   ??? urls.py
?   ??? urls.pyc
?   ??? wsgi.py
?   ??? wsgi.pyc
??? manage.py

Luego por ultimo nos falta es levantar el servicio y verlo desde nuestro navegador

python manage.py runserver
Nos sale lo siguiente
Performing system checks...

System check identified no issues (0 silenced).

You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run ‘python manage.py migrate’ to apply them.

June 17, 2017 – 11:45:47
Django version 1.11.2, using settings ‘entorno.settings’
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Nos sale la siguiente imagen  It worked!
Congratulations on your first Django-powered page

Domingo 11 de junio de 2017

Fabric como un ssh con esteroides en Debian Stretch

Fabric es una librería y herramienta de línea de comandos que genera un flujo de tareas para la automatización de despliegues y tareas administrativas de manera remota.


Este artículo se basa en un vídeo de youtube de una introducción a Fabric.


Se tiene 3 equipos:

  • 192.168.1.3: Equipo con Debian Stretch y donde se tiene fabric instalado.
  • 192.168.1.2: Equipo con Debian Stretch.
  • 192.168.1.6: Equipo con Debian Jessie.


Sólo se necesita un equipo con Fabric, se usa Debian Stretch por que en esta versión de Debian no es tan complicado de instalar Fabric, en Debian Jessie me ha dado algo de problemas, se logra instalar pero da errores en la ejecución (por lo que he investigado el problema es la librería paramiko).

Instalación de Fabric:
Con pip:
#pip install fabric


Ahora se crea un archivo fabfile.py co el siguiente contenido:


#!/usr/bin/env python

#de la api de fabric de importa run, sudo, task, get y put

from fabric.api import run,sudo,task,get, put



#Se define la tareta cmdrun que ejectua el argumento

@task

def cmdrun(arg):

    run(arg)



#Se define la tarea sudorun que ejecuta el argumento vía sudo

@task

def sudorun(arg):

    sudo(arg)



#Se define la tarea download que se le pasa un argumento que se descarga en /tmp/

@task

def download(arg):

    get(remote_path=arg,local_path="/tmp/",use_sudo=True)



#Se define la tarea upload que se le pasa dos argumentos

#local_path y remote_path.

@task

def upload(arg1,arg2):

    put(local_path=arg1,remote_path=arg2,use_sudo=True)



#Se define la tarea host_type que ejecuta uname.

@task

def host_type():

        run('uname -s')





Para ejecutar las tareaas se usa el comando fab (se define una variable de entorno llamada clave la cual maneja la clave del usuario):

Ejecución de ps en dos equipos en paralelo:
fab -H 192.168.1.2,192.168.1.6 -p $clave -P cmdrum:"ps -ef|wc -l"


Devuelve la ejecución del ps y la cantidad de líneas que resulta en cada equipo.

Se averigua el tipo de host de cada equipo remoto con host_type:
fab -H 192.168.1.2,192.168.1.6 -p $clave   host_type

Acá se muestra de manera secuencial la ejecución de los comandos en los equipos, par aque sea de manera paralela se usa la opción -P.
fab -H 192.168.1.2,192.168.1.6 -p $clave  -P host_type



Ya la ejecución no se hace de manera secuencial en cada equipo.


Se ejecuta fdisk por medio de sudo:
fab -H 192.168.1.2,192.168.1.6 -p $clave -P sudo:"fdisk -l| grep sda"



El comando devuelve las particiones sda que tiene cada equipo.


Se sube un arhivo sources.list al equipo 192.168.1.2, por medio de upload y se pasa como argumento el archivo local y la ruta remota:
fab -h 192.168.1.2 -p $clave upload:"sources.list","/tmp/"


La figura muestra que la subida del archivo se realizó sin problemas, ahora se revisa en el directorio /tmp/:
La figura muestra que el archivo sources.list se encuentra en /tmp/



Se baja el  archivo prueba.txt del equipo 192.168.1.2, por medio de download, pasando la ruta remota del archivo, este archivo se descarga por defecto en /tmp/:

fab -H 192.168.1.2 -p $clave upload:"sources.list","/tmp/"


En este caso se descargo el archivo /home/ernesto/prueba.txt a /tmp/, luego se listo localmente el archivo para verificar que se encuentra el dicho directorio.


Un tutorial más completo sobre Fabric lo pueden encontrar en su sitio.

Otros vídeos de sobre fabric:





Miércoles 07 de junio de 2017

Javier Smaldone

Javier Smaldone
Blog de Javier Smaldone

Es una impresora (y te puede delatar)

Una persona imprime un documento confidencial de la NSA. Lo envía a un medio periodístico, donde lo escanean y lo publican en formato PDF. Horas después, la persona es detenida. ¿Cómo llegaron a ella?

Esteganografía

Reality Winner es una lingüista que se desempeñaba como contratista de la NSA. Tuvo acceso a un informe confidencial de esta agencia sobre los ataques rusos al sistema electoral de los EE.UU., lo imprimió, y lo envió al diario online The Intercept. Allí digitalizaron el documento y lo publicaron en formato PDF. Lo que nadie tuvo en cuenta es que para imprimirlo se utilizó una impresora Xerox, que agrega información prácticamente imperceptible para el ojo humano y que permite identificar dónde y cuándo fue originado.

Este es un fragmento de la primera página del documento. Mírelo detenidamente:

Documento de la NSA

¿No ve nada raro, verdad? Probemos ahora invirtiendo los colores y ajustando brillo y contraste:

Colores invertidos

Ahora aparece algo raro. Veamos qué resulta de ajustar la saturación de los colores (algo que puede hacerse sobre el papel utilizando leds especiales):

Cambio de saturación

Claramente puede verse el mismo patrón de puntos repetido por toda la página. Aquí una imagen ampliada y rotada 180°:

Patrón de puntos

Nótese que estos puntos imperceptibles impresos en el papel “sobrevivieron” a la digitalización y la generación del PDF.

La Electronic Frontier Foundation tiene una herramienta que permite decodificar la información representada en estos patrones:

Matriz de puntos

Esta es la información representada por los puntos “ocultos” en el documento impreso:

  • Número de serie: 535218 (o 29535218)
  • Fecha: 9 de mayo de 2017
  • Hora: 6:20

15 bytes de información. Suficientes para ubicar un número de serie y la fecha y hora a la que se imprimió el documento.

Mensajes ocultos

Las técnicas que permiten ocultar mensajes dentro de otros de forma imperceptible se llama esteganografía. Heródoto en Las historias, allá por el año 440 a.C. relata dos métodos esteganográficos: tallar el mensaje oculto en las tablillas de madera que luego eran cubiertas por cera donde se escribía el mensaje “portador”, y tatuar el mensaje en el cuero cabelludo previamente afeitado de un esclavo y luego esperar unos días a que le crezca el cabello. También hay una receta del siglo XV para escribir un mensaje oculto en la clara de un huevo duro, a través de la cáscara. Nada nuevo, como puede verse. Este tipo de técnicas se utiliza mediante impresoras desde hace más de una década.

¿Y el voto electrónico?

Muchos impulsores de la llamada “boleta única electrónica” repiten que este sistema no tiene los riesgos de otros métodos de voto electrónico ya que la máquina utilizada “es sólo una impresora“. No sólo es completamente falso que se trate de impresoras, sino que como acabamos de ver, una impresora aparentemente inocua también puede utilizarse para violar el secreto del voto.

En el ejemplo anterior se codifican 15 bytes de información. Para romper el secreto bastaría con secuenciar el orden de emisión de los votos (cualquier fiscal partidario puede tener además el orden en que se votó punteando el padrón). ¿Cuántas personas votan en cada mesa? No más de 300. Sí, basta y sobra con 1 byte (una sola columna del patrón de las impresoras Xerox).

En noviembre de 2016 dos investigadores en ciencias de la computación de la Universidad de Buenos Aires hicieron una demostración en el plenario de comisiones del Senado ejemplificando el uso de este tipo de técnicas para romper el secreto del voto:

Conclusión

Sí, aún una impresora (en apariencia simple e inocua) puede utilizarse para develar información de formas difíciles de detectar. Y es tan sólo una de las posibles formas de explotar los canales encubiertos presentes en todo sistema informático. Así que, en adelante, debería desconfiar cada vez que alguien intente tranquilizarlo diciéndole que eso que tiene en frente “es sólo una impresora“.

Una foto del 2006

Es una foto del 4 Foro Mundial de Conocimiento Libre, realizado en Maturín

Con mi camisa de Debian que no se a donde fue a parar.


 

Usar tor desde privoxy en Debian Stretch

Privoxy es un proxy web que se usa normalmente con tor.

En el artículo anterior se explica como instalar tor. Ahora se usará privoxy como proxy para tor.

Para instalar simplemente se usa apt:
#apt-get install privoxy

En privoxy se define el sock forward quien será el puerto e IP donde se está ejecutando tor (localhost y puerto 9050), se edita el archivo /etc/privoxy/config y se agrega la siguiente línea:


forward-socks4a / localhost:9050 .




Se reinicia privoxy:

# /etc/init.d/privoxy restart
[ ok ] Restarting privoxy (via systemctl): privoxy.service.


Se revisa que esté funcionando:

# /etc/init.d/privoxy status
● privoxy.service - Privacy enhancing HTTP Proxy
   Loaded: loaded (/lib/systemd/system/privoxy.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2017-06-06 22:50:00 -04; 1s ago
     Docs: man:privoxy(8)
           https://www.privoxy.org/user-manual/
  Process: 20044 ExecStopPost=/bin/rm -f $PIDFILE (code=exited, status=0/SUCCESS)
  Process: 20082 ExecStart=/usr/sbin/privoxy --pidfile $PIDFILE --user $OWNER $CONFIGFILE (code=exited, status=0/SUCCESS)
 Main PID: 20083 (privoxy)
    Tasks: 1 (limit: 4915)
   Memory: 1.3M
      CPU: 8ms
   CGroup: /system.slice/privoxy.service
           └─20083 /usr/sbin/privoxy --pidfile /var/run/privoxy.pid --user privoxy /etc/privoxy/config

jun 06 22:49:59 grievous systemd[1]: Starting Privacy enhancing HTTP Proxy...
jun 06 22:50:00 grievous systemd[1]: Started Privacy enhancing HTTP Proxy.



En firefox se instala foxy proxy standar:


Se configura para usar el proxy localhost y puerto 8118:


Al verificar con la siguiente URL el uso de tor https://check.torproject.org/?lang=es_AR, se tiene lo siguiente:


Al lado izquierdo de la caja de busqueda está el icono de foxyproxy, el cual se encuentra activo al momento de verificar si se está usando tor.

Mejorar las respuestas de consultas de DNS con dnsmasq usando DNSCrypt

He usado dnsmasq como dns cache de las consultas de opendns o de los DNS de Google.

Los artículos anteriores que hablan de dnsmasq son:

  1. Usar dnsmasq como servidor DNS cache y local
  2. Mejorando la velocidad de consultas de DNS con dnsmasq y probar pruebas de diagnostico
Y ahora se usará DNSCrypt como lo muestra los siguientes artículos:

  1. Cifrar el tráfico de DNS en Linux con DNSCrypt y OpenDNS
  2. Cifrar el tráfico de DNS en Debian 9 Stretch (actualización 2017)


Para iniciar se instalará dnsmasq:

#apt-get install dnsmasq 


DNSCrypt escucha en la IP 127.0.2.1 en el puerto 53, para el caso de dnsmasq, este escuchará desde la IP 127.0.0.1 y el puerto 53 para evitar conflictos entre ambas aplicaciones.

Se edita el archivo /etc/dnsmasq.conf :

#vim /etc/dnsmasq.conf

#Realizar consultas de dominios completos solamente.
domain-needed
#Evitar busquedas internas de dominios locales
bogus-priv
#Habilita dnssec en dnsmasq
proxy-dnssec
#No tomar en cuenta el contenido del archivo /etc/resolv.conf
no-resolv
#Se escucha el servidor de nombres de dnscrypt
server=127.0.2.1
#Evitar ataques de dns rebinding
stop-dns-rebind
#evitar que servidores resuelvan consultas localhost
rebind-localhost-ok
#Se reciben consultas a dnsmasq en 127.0.0.1
listen-address=127.0.0.1
#No se habilita las interfaces para dhcp
no-dhcp-interface=wlp1s0,enp2s0,lo
#Sólo se realizan busquedas de direcciones que está resolviendo.
bind-interfaces
#No tomar en cuenta los hosts del archivo /etc/hosts
no-hosts
#Se define un cache de 500k
cache-size=500

Se salva el archivo y se reinicia dnsmasq:


#systemctl status dnsmasq.service
● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
   Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2017-06-04 18:10:08 -04; 2 days ago
  Process: 851 ExecStartPost=/etc/init.d/dnsmasq systemd-start-resolvconf (code=exited, status=0/SUCCESS)
  Process: 814 ExecStart=/etc/init.d/dnsmasq systemd-exec (code=exited, status=0/SUCCESS)
  Process: 793 ExecStartPre=/usr/sbin/dnsmasq --test (code=exited, status=0/SUCCESS)
 Main PID: 842 (dnsmasq)
    Tasks: 1 (limit: 4915)
   Memory: 844.0K
      CPU: 7.042s
   CGroup: /system.slice/dnsmasq.service
           └─842 /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -r /run/dnsmasq/resolv.conf -7 /etc/dnsmasq.d,.d

jun 04 18:10:08 grievous systemd[1]: Starting dnsmasq - A lightweight DHCP and caching DNS server...
jun 04 18:10:08 grievous dnsmasq[793]: dnsmasq: revisión de sintaxis OK.
jun 04 18:10:08 grievous dnsmasq[842]: iniciado, versión 2.76 tamaño de caché 500
jun 04 18:10:08 grievous dnsmasq[842]: opciones de compilación: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conn
jun 04 18:10:08 grievous dnsmasq[842]: advertencia: ignorando opción resolv-file porque no-resolv está fijado
jun 04 18:10:08 grievous dnsmasq[842]: usando nombre de servidor 127.0.2.1#53
jun 04 18:10:08 grievous dnsmasq[842]: el caché fue liberado
jun 04 18:10:08 grievous dnsmasq[851]: Too few arguments.
jun 04 18:10:08 grievous systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.


Por lo que se ve dnsmasq trabajando sin problemas. 

Se revisa el archivo /etc/resolv.conf y se tiene lo siguiente:

cat /etc/resolv.conf
# Generated by resolvconf
#nameserver 127.0.2.1
nameserver 127.0.0.1

Se están usando tanto dnscrypt como dnsmasq para resolver las consultas de DNS.

Al consultar un dominio por medio de dig se tiene lo siguiente:

# dig www.google.com

; <<>> DiG 9.10.3-P4-Debian <<>> www.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41085
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.google.com. IN A

;; ANSWER SECTION:
www.google.com. 190 IN A 172.217.22.164

;; Query time: 300 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Jun 06 20:08:50 -04 2017
;; MSG SIZE  rcvd: 59

# dig www.google.com

; <<>> DiG 9.10.3-P4-Debian <<>> www.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49000
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.google.com. IN A

;; ANSWER SECTION:
www.google.com. 189 IN A 172.217.22.164

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Jun 06 20:08:51 -04 2017
;; MSG SIZE  rcvd: 59



Al realizar la segunda consulta se nota que el tiempo de respuesta pasa de 300mseg a 0mseg. 



Martes 30 de mayo de 2017

Martín Albisetti

Martín Albisetti
Martin Albisetti's blog

A year at Bitnami

I’m a stone’s throw away from reaching my 1 year anniversary at Bitnami, so it feels like a good time to pause a bit and look back.

After 8 years working at Canonical on a wide range of projects and roles, it was a very difficult step to take and was riddled with uncertainty and anxiety about leaving behind so many things I had poured my heart and soul into for so many years behind, and more than anything else a once-in-a-life-time epic team of people to work with.

A year in, I’m overwhelmingly happy I made that decision.

A lot of people expressed surprise I was joining Bitnami as either they hadn’t heard about them at all or they had but thought of them as a company that “made some installers or something”. However, Bitnami had been quietly but consistently growing in size, scope and revenue, all fueled by being organically profitable which is very rare nowadays in the tech world.

Fast forward a year later Bitnami is starting to move out of the shadows and some of what’s been cooking for a while is getting some well deserved time in the spotlight.

Of the things that are public, I would say they fall into two buckets: Kubernetes & Packaging open source applications.

 

Kubernetes

The Kubernetes community has been growing at a healthy and inclusive pace for some time now, some would say it’s the hippest place to be right now.

One of things that was attractive to me when changing jobs was the possibility of being able to use some new and interesting technologies more hands-on as part of my day-to-day job, and K8s was at the very top of my list. Shortly after I joined we made a company decision to go all-in on K8s and began setting up our own clusters and migrating over our internal services to it. Aside from the amount of buzz and customer requests we had, once we started using it more hands on it became obvious to us it would win over hearts and minds fairly quickly and we doubled down on being all-in  🙂

Aside from all the knowledge we gained by setting up, maintaining and upgrading our internal clusters, Bitnami acquired a small but very relevant start-up called Skippbox which brought over further expertise in training, but even more interesting was a project called Kubeless.

Kubeless is a functions-as-a-service framework which has the advantage of having been built on top of K8s native objects, making it very easy to extend and interact with anything inside your cluster. That project has been a lot of fun to play with is a natural addition to our internal clusters to fulfill our stated goal of making it easy and enjoyable for our own development team to get deliver software to production.

It was a busy year, have I said it’s been a busy year? So, as well as all of that along came the Helm project. Once we heard “a packaging format for applications on K8s” we knew someone’s current iteration would be derailed  🙂

We jumped in with Deis and helped get the project off the ground by applying our knowledge of how to package software to Helm and quickly produced the majority of the charts that the project launched with. It’s been getting a healthy string of contributions since then, which is as good as you can hope for.

Because humans are visual creatures, no matter how technical, on the heels of the launch of Helm we took the lead on a new project code-named “Monocular”, which is a web-ui to search and navigate existing Helm charts and even deploy them to your cluster with one click. An app store of sorts for K8s applications.

With all that K8s experience in our toolbelts, we started to realise there was a gap in how to consistently deploy applications across clusters. Why across clusters, you say? A very common pattern is to have at least a staging and a production environment, which in K8s you would likely want to model as different clusters. We happen to internal also provide a development cluster as we do so much development in the K8s and often need to test in larger machines or use some specific features that minikube doesn’t satisfy. The way to do that in Helm is essentially to copy and paste your yaml files, which for a small amount of clusters or apps is fine. For us, this quickly grew out of control and realised that we needed to instrument some amount of re-usability and flexibility when trying to use K8s features that Helm itself hadn’t exposed yet. It turned out, we weren’t alone. Our friends over at hept.io and box.com had similar problems and were in fact trying to address it in a similar way (given there were a few ex-googlers in our ranks, jsonnet was picked as the library to help with re-usability), and as such ksonnet was born. You can take  a look at it more closely if you’re interested, but in essence it takes json & jsonnet templates and compiles them down to native K8s yaml files that you can track and feed directly into your cluster.

 

Packaging open source applications

This is what is probably the most underrated aspect of Bitnami, as it’s probably not very obvious the scale at which we operate and there’s nobody else really to compare the company to.

Let me try and give you some hints at the scale at which we operate. At this exact point in time, you can find Bitnami-built assets as:

  • Windows, Linux and macOS installers
  • Amazon EC2 VMs
  • Azure VMs
  • Google Cloud VMs
  • Oracle Cloud VMs
  • Virtual Machines (OVA’s)
  • Huawei Cloud VMs
  • Deutsche Telekom VMs
  • 1&1 VMs
  • GoDaddy VMs
  • Centurylink VMs
  • Docker containers
  • Eclipse Che containers
  • Docker-compose templates
  • Amazon Cloudformation templates
  • Azure ARM templates
  • Google deployment templates
  • Kubernetes Helm charts
  • ...and more on its way  🙂

That is 20 different target environments! Even if you just built one applications for all those targets it would be an interesting problem in itself. However, there’s more  🙂

Bitnami has a catalog of about 170+ open source applications of which we don’t always provide the full catalog to every environment as it doesn’t always make sense (not everything makes sense as a Docker container or a multi-tier application), and while I haven’t looked at the exact numbers it would likely average out over all targets at around ~110 apps. That is 110 x 20 = 2,200 assets to build. That on its own should feel daunting for anyone who’s tried to build an application for more than one environment. But wait, there’s more!
Bitnami’s missions is to make it easy for everyone to use open source software, and to try and reach more of “everyone” you need to support major versions of these applications (because not everyone has migrated to Python 3 yet :), so that ends up with around 4,400 assets. Mind. Blown. But you know how it goes, there’s always more!

Building these images and templates is an interesting and hard problem, but the hardcore last-level boss problem is in doing so in a way where you can keep building those continuously so they are actually up-to-date all the time. In order to do that you have to track a lot of software (eg., libssl, libc, openssh, php, java, rails, etc) packaged in different ways (ie., debs, rpms, gems, pip, etc), so you end up watching thousands of different pieces of software over all, some of which can affect every single image (hello openssl & heartbleed!).
To solve this problem there’s over a decade of code that’s been brewing, carefully structured metadata about how applications like to be configured in different scenarios, regression tests, tracking upstream releases and watching and matching CVEs. Over the last year there’s been a tight focus on taking all that work to streamline the tools to plan for continued growth as the landscape of software expands, and some refactoring to be able to shape it into a product that might be useful to others beyond our internal use.

Daunting problems end up being the most fun to work on and this has been no exception. This is why I joined Bitnami, to lead this effort and make open source software a bit easier to use and access every day.

Viernes 26 de mayo de 2017

Ubuntips: Cómo protegerse de los vídeos con virus
Ubuntips: ¿Cuánto daño puede hacer un hacker?

Martes 09 de mayo de 2017

PCTux: Probando el servicio de VPS Clouding.io

Sábado 15 de abril de 2017

Javier Ledesma

Javier Ledesma
Rotas Cadenas

Linux Tiles Wallpapers

Linux Tiles es un bonito pack de wallpapers para tu escritorio Linux. Hecho con Blender 3D y renderizado con Cycles.

http://www.rotascadenas.com/2017/04/linux-tiles-wallpapers.html

Miércoles 12 de abril de 2017

Ubuntips: Rubias sexys en Internet

Viernes 31 de marzo de 2017

Eduardo Federico

Eduardo Federico
Paraiso Linux

Como auto ejecutar aplicaciones en escritorios especificos en Gnome

Este mini tutorial les va a parecer complicado pero en realidad no lo es tanto. El objetivo es sencillo: auto ejecutar aplicaciones en Gnome, y que se inicien en los escritorios que deseemos.

Auto iniciar aplicaciones en Gnome

Resulta que los de Gnome han decidido quitar esa opción, por lo tanto para recuperarla tenemos que instalar gnome-session-properties. Estoy seguro que saben como instalar aplicaciones en Linux.

Luego iniciamos esta utilidad con Alt + F2.

Todavía no la vamos a usar, pero dejo una captura de ejemplo de como se podria auto iniciar Polly, un cliente de twitter para Linux.

Como mover aplicaciones a un escritorio predefinido

Para esto vamos a hacer uso de una aplicacion llamada wmctrl. Esta nos permite interactuar con el gestor de ventanas. Es una aplicacion que usa desde la consola o desde scripts.

Por ejemplo, para mover polly que abrimos recien al escritorio 2 escribiriamos en la consola algo asi:

wmctrl -r polly -t 1

Tambien podemos hacer otras cosas como:

  • -a para que el foco se ponga sobre el programa que le indiquemos, sin importar en cual escritorio este
  • -s para movernos a un escritorio predefinido

Como auto iniciar aplicaciones en un escritorio predefinido en Gnome

Ahora, uniendo las 2 partes anteriores del tutorial vamos a hacer lo que vinimos a hacer. Primero, abren gedit o cualquier editor de texto. Y escriben lo siguiente adentro:

 

#!/bin/bash

google-chrome-stable &
polly &
spotify &
spacefm &

sleep 5

wmctrl -r google-chrome-stable -t 0
wmctrl -r spacefm -t 0
wmctrl -r polly -t 1 
wmctrl -r spotify -t 2 

wmctrl -a google-chrome-stable

Este script tiene 3 partes.

  • Primero: Abrimos todas las aplicaciones que deseamos auto iniciar.
  • Segundo: Movemos cada aplicación al escritorio deseado. 0 es para el primer escritorio, 1 para el segundo, etc etc
  • Tercero: Ponemos el foco en la aplicación preferida.

Guardamos el archivo en nuestra carpeta home con un nombre descriptivo y que empiece con un '.'. Por ejemplo: .auto-iniciar

Ahora abrimos gnome-session-properties y añadimos una entrada que se llame 'Auto Iniciar' y que apunte al script que acabamos de guardar. Algo asi:

Si no funciona prueben cambiando el valor de sleep por uno mas grande, o agregando un sleep al inicio.

Eso deberia ser todo, espero que les funcione y que compartan la entrada.

La entrada Como auto ejecutar aplicaciones en escritorios especificos en Gnome pertenece a Paraiso Linux.

Viernes 03 de marzo de 2017

Javier Ledesma

Javier Ledesma
Rotas Cadenas

10 juegos sorprendentes para tu terminal en Linux

Para ser un usuario avanzado en Linux, siempre es obligatorio dominar el uso de la línea de comandos. Controlar el sistema por medio de comandos ofrece al usuario más poder y control sobre un sistema Linux.

http://www.rotascadenas.com/2017/03/10-juegos-para-tu-terminal-linux.html

Más información »

Lunes 30 de enero de 2017

Eduardo Federico

Eduardo Federico
Paraiso Linux

Como agregar un certificado SSL gratuito desde Vesta Panel

Si están al tanto de las noticias sobre internet, webs, SEO y tecnologia en general, seguramente habrán leído los nuevos cambios que involucran a la seguridad de las webs y las transcacciones realizadas en distintas webs.

Lo voy a resumir muy facilmente:

  • Muchas webs estan implementando certificados SSL en sus webs. Esto les permite tener una url que empiece con https://
  • Esto es debido a que no tenerlo puede afectar al SEO de un sitio. Ver esta nota en el blog de webmasters de google.
  • Ademas Chrome y Mozilla muestran como inseguros los sitios que no cuenten con dicho certificado. Ver nota en ayudawp.

La cuestión es que hace unos años tener un certificado SSL significaba desenbolsar $50 dolares anuales por cada sitio. Pero gracias a los certificados de Let’s Encrypt podemos tener certificados 100% gratuitos y muy fáciles de instalar.

Y como se hicieron tan comunes, la ultima version del panel Vesta agrega una opcion para que agregar este tipo de certificados a tu web sea todavia mas facil. Vamos a ver como hacerlo.

En la seccion WEB de su panel Vesta, hagan click en EDIT del dominio en cuestion.

Veran que hay un check que dice SSL Support. Deben marcarlo y tambien marcar el que aparece debajo que dice Lets Encrypt Support.

Guardan los cambios.

Ahora en su navegador prueban escribir la url completa con https:// y el navegador deberia marcarles esa web como segura.

Redirigir http a https

Ahora lo que deben hacer es solución un pequeño problema muy grande, y es no tener 2 versiones del mismo sitio. Para ello vamos a editar el archivo .htaccess y agregamos esto:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://paraisolinux.com/$1 [R,L]

Obviamente poniendo tu url en lugar de la mia.

Para probar escriben en la navegador escriben la url sin el https y si se redirige esta bien.

Solucionar Error 403 forbidden

En la mayoría de los sitios con hacer lo anterior ya estaría todo solucionado. Pero si por ejemplo siguieron el tutorial de Laravel + Vesta veran que no funciona, lo que deberán hacer es:

sudo nano /home/admin/conf/web/sapache2.conf

Y editar las mismas lineas mencionadas en el tutorial mencionado.

 

La entrada Como agregar un certificado SSL gratuito desde Vesta Panel pertenece a Paraiso Linux.

Domingo 29 de enero de 2017

Eduardo Federico

Eduardo Federico
Paraiso Linux

Como añadir un subdominio en Vesta Panel

Ya hemos visto lo sencillo que es agregar un dominio a Vesta. Pero tambien vimos que es necesario tocar los RECORDS.

Para agregar un subdominio también tendremos que hacerlo. Pero sigue siendo una tarea super sencilla.

Primero nos dirigimos a la seccion WEB de Vesta. Alli vamos a agregar el subdominio haciendo click en 'ADD WEB DOMAIN'.

Al igual que cuando añadimos el dominio deberemos elegir correctamente la IP y crear un usuario FTP.

A continuación nos dirigimos a nuestra cuenta de Digital Ocean y en la seccion 'Networking' buscamos la opcion 'Manage Domain' del dominio que nos interesa.

En esta nueva pagina debemos agregar un nuevo Record del tipo A. Escribiendo en el primer campo el nombre del subdominio y en el segundo campo eligiendo el droplet a donde apuntara ese dominio.

Ahora si ingresan en ese subdominio deberían ver la pagina por defecto de Vesta.

Una cosa mas. Si por X casualidades de la vida, en ese subdominio desean tener un proyecto realizado con Laravel o Lumen, lo mejor seria seguir el tutorial para instalar Laravel en Vesta.

 

La entrada Como añadir un subdominio en Vesta Panel pertenece a Paraiso Linux.

Lunes 09 de enero de 2017

Mariano Mendez

Mariano Mendez
[A]NTRAX - [L]ABS

BING: El buscador olvidado


Posicionamiento WEB

Hoy día, quien tiene una un sitio Web de cualquier naturaleza, sea para ofrecer un servicio, producto, o incluso para compartir materiales o documentación digital, si quiere marcar presencia en la red de redes, necesariamente tendrá que considerar el posicionamiento WEB o SEO (Search Engine Optimization). 

Sabemos que el SEO comprende una serie de estrategias, técnicas, o incluso habilidades para lograr las primeras posiciones en los resultados de los buscadores clásicos: Google, Bing, Yahoo, etc.
Va de suyo que podemos pagar marketing publicitario para tales fines; sin embargo las destrezas del SEO nos permiten lograr estupendos posicionamientos en las búsquedas gratuitamente,  aunque impliquen laboriosidad.

En mi opinión, se leen muchísimos tips para el SEO de Google, pero me queda la sensación que tanto Bing como Yahoo, no siempre son tenidos en cuenta en este trabajo de posicionar nuestro sitio digital. 

Aclaro que no es mi idea en esta entrada enumerar estrategias o sugerencias para mejorar el SEO, sino apuntar a que se consideren otros buscadores diferentes de Google a la hora de posicionar un espacio cibernético.  Sino llamar a la reflexión para tener presente al  segundo motor de búsqueda más importante: BING.


Números en BING

La cuota de mercado de BING, según señalan  los expertos va en ascenso:

“...Bing actualmente cuenta con el 21,9% de la cuota de mercado en escritorio en Estados Unidos. Una información que ha llamado nuestra atención y que demuestra que el buscador de Microsoft no ha dejado de crecer. Un punto en el que podrían tener que ver las últimas novedades incorporadas por el gigante tecnológico. Pero vayamos con los datos.



 “En concreto, la cifra supone un incremento de un 0,1 porcentual respecto del mes de junio, cuando contaba con el 21,8%. Los datos ofrecidos por la citada compañía, asimismo, muestran una caída del 0,4 por parte de Google...”

Los números de la gráfica hablan por sí mismos.


Otros comentarios sobre Bing

Más allá de las cifras expuestas, es oportuno recordar que Facebook y Skype emplean a Bing como buscador por defecto y las redes sociales o la mensajería instantánea son puntos claves en el SEO, tanto  por su extendido uso como por su  notoriedad.

Si a esto le agregamos los aspectos técnicos que a Bing le preocupan como, por ejemplo: velocidad, link rotos del sitio, evitar contenidos flash, entre otros; se torna una sumatoria de elementos que no deberían estar olvidados para el SEO de nuestra Web.

Posicionar un espacio digital no es tarea sencilla, pero es la base para el éxito del mismo.
Como comenté antes, no dejaré un tutorial de sugerencias, pero quiero destacar en lo referente al SEO en bing una interesante guía para que al momento de poner manos a la obra la consideren.

Mariano Mendez

Mariano Mendez
[A]NTRAX - [L]ABS

Cómo comprar BITCOINS


En esta entrada hablaremos de las criptomonedas, en particular de los Bitcoin. Seguramente todos han oído hablar de este tipo de moneda digital, pero no está de más recordar qué es y para qué sirven los Bitcoins, sin perjuicio de algunas reflexiones personales sobre las ventajas de su uso.

Referencias previas del término Bitcoin

Si consultamos en Wikipedia el término Bitcoins:


“Bitcoin (signo: BitcoinSign.svg; abr.: BTC, XBT) es una criptodivisa concebida en 2009. El término se aplica también al protocolo y a la red P2P que lo sustenta y de forma común se denomina como una moneda digital. Generalmente se usa «Bitcoin» para referirse a la red o al protocolo y «bitcoin» (plural: «bitcoines») para referirse a las unidades monetarias.”


De la transcripción precedente puede inferirse que bajo la expresión “Bitcoin” se comprenden tres aspectos diferentes:

Como moneda digital o unidades  de pago en intercambios comerciales vía online.


Como protocolo estandarizado que da soporte a las transacciones electrónicas, sin la mediación de terceros.

Como red para donde se negocian las operaciones comerciales.
Desglosadas estas referencias, hay que destacar que la criptomoneda se sustenta en un sistema totalmente peer-to-peer(persona a persona) donde los intermediarios quedan excluidos. La no intervención de terceros y la ausencia de una Autoridad Central bancaria de país alguno,  es una de las ventajas de los Bitcoins, en la medida que inhibe la especulación y la participación en ganancias como lo hacen las entidades financieras. 

Apoyando estas líneas de pensamiento, en bitcoins.org se reseña: 


“De la misma manera que nadie controla la tecnología detrás del correo electrónico, Bitcoin tampoco tiene propietarios. Bitcoin lo controlan todos los usuarios de Bitcoin del mundo. Aunque los programadores mejoran el software, no pueden forzar un cambio en el protocolo de Bitcoin porque todos los demás usuarios son libres de elegir el software y la versión que quieran. Para que sigan siendo compatibles entre sí, todos los usuarios necesitan utilizar software que cumpla con las mismas reglas. Bitcoin sólo puede funcionar correctamente si hay consenso entre todos los usuarios. Por lo tanto, todos los usuarios y programadores tienen un gran aliciente en proteger dicho consenso.”


Se señala como creador del sistema a  Satoshi Nakamoto y el 12/01/2009 se anota como la primera transacción con esta moneda; y desde esa fecha no solo se ha disparado el uso de Bitcoins, sino el valor que los respalda. Razones evidentes por las que se hace recomendable su uso.  

¿Cómo comprar Bitcoins?

Adscribirse al sistema no es difícil y en lo particular recomiendo las orientaciones del siguiente enlace como comprar bitcoins en Argentina, donde se explica detalladamente los pasos a seguir para la adquisición y operaciones con la moneda criptográfica de la que hablamos. Además de contener un estupendo FAQ de preguntas frecuentes que solventan toda duda. 

A modo de cierre de la entrada y en forma sintética  se pueden destacar cuatro puntos a saber:

Seguridad del sistema: basado en un sistema criptográfico altamente seguro.


    Anonimicidad en las transacciones: la privacidad es un elemento fundamental al momento de adquirir, vender, enviar o recibir pagos. 

      Operaciones en tiempo real al instante:se puede enviar y recibir pagos a cualquier lugar del mundo en forma instantánea.
Expansión de la criptomoneda:actualmente casi todos los negocios online aceptan el Bitcoin como medio de pago. Se habla del Bitcoin como la moneda futurística.


Domingo 08 de enero de 2017

David Moreno

David Moreno
dm's blog

Thanks Debian

I sent this email to debian-private a few days ago, on the 10th anniversary of my Debian account creation:

Date: Fri, 14 Aug 2015 19:37:20 +0200
From: David Moreno 
To: debian-private@lists.debian.org
Subject: Retiring from Debian
User-Agent: Mutt/1.5.23 (2014-03-12)

[-- PGP output follows (current time: Sun 23 Aug 2015 06:18:36 PM CEST) --]
gpg: Signature made Fri 14 Aug 2015 07:37:20 PM CEST using RSA key ID 4DADEC2F
gpg: Good signature from "David Moreno "
gpg:                 aka "David Moreno "
gpg:                 aka "David Moreno (1984-08-08) "
[-- End of PGP output --]

[-- The following data is signed --]

Hi,

Ten years ago today (2005-08-14) my account was created:

https://nm.debian.org/public/person/damog

Today, I don't feel like Debian represents me and neither do I represent the
project anymore.

I had tried over the last couple of years to retake my involvement but lack of
motivation and time always got on the way, so the right thing to do for me is
to officially retire and gtfo.

I certainly learned a bunch from dozens of Debian people over these many years,
and I'm nothing but grateful with all of them; I will for sure carry the project
close to my heart — as I carry it with the Debian swirl I still have tattooed
on my back ;)

http://damog.net/blog/2005/06/29/debian-tattoo/

I have three packages left that have not been updated in forever and you can
consider orphaned now: gcolor2, libperl6-say-perl and libxml-treepp-perl.

With all best wishes,
David Moreno.
http://damog.net/


[-- End of signed data --]

I received a couple of questions about my decision here. I basically don’t feel like Debian represents my interests and neither do I represent the project – this doesn’t mean I don’t believe in free software, to the contrary. I think some of the best software advancements we’ve made as society are thanks to it. I don’t necessarily believe on how the project has evolved itself, whether that has been the right way, to regain relevancy and dominance, and if it’s remained primarily a way to feed dogmatism versus pragmatism. This is the perfect example of a tragic consequence. I was very happy to learn that the current Debian Conference being held in Germany got the highest attendance ever, hopefully that can be utilized in a significant and useful way.

Regardless, my contributions to Debian were never noteworthy so it’s also not that big of a deal. I just need to close cycles myself and move forward, and the ten year anniversary looked like a significant mark for that.

Poke me in case you wanna discuss some more. I’ll always be happy to. Specially over beer :)

Peace.

Jueves 15 de diciembre de 2016

Mariano Mendez

Mariano Mendez
[A]NTRAX - [L]ABS

XSS por POST


Hace unos días reportaron un XSS por POST en el formulario de contacto de Underc0de. Por suerte no era nada riesgoso, pero era una vulnerabilidad que debíamos arreglar.
En esta ocasión usaremos el código de ese formulario de contacto para reproducir la falla y para ver como probar si nuestras aplicaciones son vulnerables a los XSS por POST.

El código del formulario de contacto está acá: www.hospedando.com.mx/descargas/formulario.zip por si alguno desea realizar la prueba.

Además, necesitaremos alguna herramienta que modifique los parámetros que enviemos por POST. Yo usare Tamper Data que es un complemento de Firefox:

https://addons.mozilla.org/es/firefox/addon/tamper-data/

Una vez montado el formulario de contacto se vera algo así:



El primer paso será completar todos sus campos y abrie Tamper Data. Una vez hecho esto, damos en "Comenzar Modificación" (En el tamper data) y enviamos el formulario de contacto.
Seguido a esto, nos aparecerá una alerta en Tamper Data para modificar los datos que estamos enviados.


Damos en modificar, y revisamos los valores que está enviando del lado derecho, que son los que hemos cargado desde el formulario.


Ahora es momento de jugar con estos campos. Este formulario de contacto no filtra sus variables, asique colocaremos algún vector de XSS en sus parámetros.
En este caso, coloqué un simple alert en el campo correo.

<script>alert('XSS')</script>

Pero podemos buscar o usar cualquier otro. Al dar en Aceptar, el sitio seguirá cargando con la nueva información suministrada...


Y como podrán apreciar, apareció el Alert con nuestro mensaje.

Espero que les sirva!

Sábado 29 de octubre de 2016

Javier Ledesma

Javier Ledesma
Rotas Cadenas

7 diferencias entre Linux y Windows: expectativas de los usuarios

Muchos usuarios de Windows esperan que Linux sea un equivalente exacto. La realidad, por supuesto, es muy diferente.

http://www.rotascadenas.com/2016/10/7-diferencias-entre-linux-y-windows.html

Más información »

Lunes 29 de agosto de 2016

David Moreno

David Moreno
dm's blog

Webhook Setup with Facebook::Messenger::Bot

The documentation for the Facebook Messenger API points out how to setup your initial bot webhook. I just committed a quick patch that would make it very easy to setup a quick script to get it done using the unreleased and still in progress Perl’s Facebook::Messenger::Bot:

use Facebook::Messenger::Bot;

use constant VERIFY_TOKEN => 'imsosecret';

my $bot = Facebook::Messenger::Bot->new(); # no config specified!
$bot->expect_verify_token( VERIFY_TOKEN );
$bot->spin();

This should get you sorted. What endpoint would that be, though? Well that depends on how you’re giving Facebook access to your Plack’s .psgi application.

Domingo 21 de agosto de 2016

David Moreno

David Moreno
dm's blog

WIP: Perl bindings for Facebook Messenger

A couple of weeks ago I started looking into wrapping the Facebook Messenger API into Perl. Since all the calls are extremely simple using a REST API, I thought it could be easier and simpler even, to provide a small framework to hook bots using PSGI/Plack.

So I started putting some things together and with a very simple interface you could do a lot:

use strict;
use warnings;
use Facebook::Messenger::Bot;

my $bot = Facebook::Messenger::Bot->new({
    access_token   => '...',
    app_secret     => '...',
    verify_token   => '...'
});

$bot->register_hook_for('message', sub {
    my $bot = shift;
    my $message = shift;

    my $res = $bot->deliver({
        recipient => $message->sender,
        message => { text => "You said: " . $message->text() }
    });
    ...
});

$bot->spin();

You can hook a script like that as a .psgi file and plug it in to whatever you want.

Once you have some more decent user flow and whatnot, you can build something like:



…using a simple script like this one.

The work is not finished and not yet CPAN-ready but I’m posting this in case someone wants to join me in this mini-project or have suggestions, the work in progress is here.

Thanks!

Miércoles 29 de junio de 2016

PCTux: El hashtag que pide a Messi que no se vaya

Viernes 05 de febrero de 2016

PCTux: Cupones de descuento en Argentina

Viernes 29 de enero de 2016

Sergio Gonzalez

Sergio Gonzalez
hackendemoniado

script para automatizar tareas (PARTE 3) - Detectar intruso en nuestra red + aviso por mail

Ya vamos por la tercer parte de esta serie de scripts, ahora toca un script muy curioso que me tomo un buen tiempo dejarlo a punto, antes que nada hay que entender que es necesario tener instalado: nmap para poder saber quien esta conectado a nuestra red y también a mutt o cualquier aplicación que nos deje enviar correo a través de la terminal, y después solo necesitas un poco de tiempo y paciencia para ir probando como funciona y adaptarlo a tu redo u organización, como siempre voy a explicar línea a línea para que todos podamos aprender y crecer....

Acá dejo las partes anteriores:
http://hackendemoniado.blogspot.com.ar/2015/11/script-para-automatizar-tareas-parte-1.html

En la parte dos muestro como configurar a mutt para poder mandar mail por la terminal
http://hackendemoniado.blogspot.com.ar/2015/12/script-para-automatizar-tareas-parte-2.html

"POR FAVOR LEER TODO EL POST PORQUE HAY QUE TENER EN CUENTA VARIOS DETALLES PARA ADAPTARLO A SU RED"

Vamos directamente a mostrar el script:




Como se dan cuenta ya tiene comentarios como para llegar a entender algo, pero bueno debo comentar algunos puntos del funcionamiento del script:

  1. Primero que nada este script funciona como base buscando los mac de cada pc o equipo por ende debo de tener una lista blanca de host que yo conozco y que lógicamente no son intrusos recordad que esto incluye no solo las computadoras sino también celulares, routers,.... etc.
  2. El archivo llamado listablanca.txt cuando se ejecuta la primera ves se va a crear con un mac por defecto 00:00:00:00:00:00 el cual si desean lo dejan así la primera ves y ejecutan el script ingresando los rangos a escanear y ver como muestra y reporta los intrusos o detienen el script y modifican los host porniendo las mac pertinentes.
  3. Si la ruta no les apetece simplemente cambien por la de su interés o que se les complique menos, yo simplemente lo programe así por comodidad en la utilización del script.
  4. Tener en cuenta un punto muy importante que es lo siguiente, el script va a lanzar nmap a cada segmento de ip de su red y si tienen varios segmentos va a tomar un buen tiempo..., lo ideal seria que primero lo ejecuten y tomar aproximadamente el tiempo que toma en analizar toda su red y en definitiva dejar que ejecute completo y de a cuerdo a ese tiempo agregarlo a las tareas automáticas.
  5. El script también realiza un nmap sobre el intruso y con más razón tomar bien el tiempo para su próxima ejecución.
  6. Para que no se ejecute cada tanto tiempo podrian poner el script en una pc en cada segmento de red que mande el correo a la misma cuenta y así no hacer que la tarea en cron se ejecute cada mucho tiempo

Bueno luego de las consideraciones del script pasamos a explicar un poco el script por si no llegan a entender bien....

  • El primer if "if [ ! -d $ruta ]; then" pregunta si existe la ruta, osea si ya fué creada la carpeta, con la opción -d verifica sobre carpetas, si no existe simplemente la crea.
  • Segundo if "if [ -f $ruta/listablanca.txt ];" es lo mismo que en el caso anterior solo que con la opción -f que se utiliza para comprobar si existe o no el archivo, asique ya saben -d para directorios y -f para archivos, no tiene el signo "!" porque ya es implícito que deseamos comprobar que existe asique no es indispensable ese signo.
  • El siguiente punto importante es "nmap -sP $ips > $ruta/controlred.txt" aca es muy simple hacemos un escaneo con nmap sobre el segmento de ip que ingresamospor teclado obviamente esto no funcionara si lo ejecutamos con cron... por eso deje un poco más abajo un ejemplo de nmap sin el pedido por teclado "nmap -sP 192.168.100.1-255 --exclude 192.168.100.4 > $ruta/controlred.txt" osea comentamos las líneas anteriores osea desde el echo que pide el segmento hasta el nmap que utiliza lo ingresado por teclado y descomentamos esta línea que deje de ejemplo y ponen su segmento de red.
  • "cat $ruta/controlred.txt | grep Address | cut -c 14-31 | tr -d "()" > $ruta/host.txt" con esto lo que hago es mostrar la salida del nmap guardada en "controlred.txt" y busco la palabra Address y corto justo en el lugar del mac con la opción "cut -c ..." y lo mando a un archivo llamado "host.txt".
  • "cat $ruta/controlred.txt | grep for | cut -c 22-36 | tr -d "()" > $ruta/ip.txt" exactamente lo mismo que en caso anterior pero buscando solo las ip, también lo guardo en un archivo llamad "ip.txt".
  • Luego genero 2 variables que se llaman "hostmac" y "hostip", la idea es que en el bucle se guarde línea por línea los respectivos mac e ip de los host que están conectados y luego en "busca" guardo un 0 (cero) o un 1 dependiendo de que si lo encontró o no en la lista blanca de host permitidos, si debuelve un cero es porque no esta en esa lista y es un intruso.
  • "echo $hostmac | nmap -v -A -O $hostip >> $ruta/infointruso.txt " lo hago porque encontre un intruso e intento descubrir toda la info posible de el y lo guardo en un txt en el cual se va a ir concatenando cada ves que encuentre uno.
  • "echo "Se encontro un intruso con MAC Address: "$hostmac "IP: "$hostip" acá simplemente muestro el mac y el ip del intruso.
  •  "if [ $bandera == 1 ];then" si la bandarea esta en uno significa que encontro aunque sea un intruso en la red entonces debo de mandar el correo.
  • Luego de eso simplemente mando el correo pertinente con el archivo adjunto y borro la info del intruso.

Link para descargar script

Luego lo que hice fue agregar a cron el script de la siguiente manera:

Y luego puse lo siguiente:


Lo puse para que se ejecute cada 15 minutos, algunas capturas de pantalla:









Como muestra la imagen llega el correo con el adjunto que posee la info del intruso.

Si no entienden algo o encuentra algún error por favor me avisan así lo soluciono, como siempre digo la idea es aprender entre todos....

Espero que les resulte interesante y compartan....

Si tienen ideas de script que pueden llegar a ser útiles no duden en contarme y ver si los puedo ayudar a realizarlos....

Saludos amigos

      Jueves 28 de enero de 2016

      Sergio Gonzalez

      Sergio Gonzalez
      hackendemoniado

      script para automatizar tareas (PARTE 2) - Controlar logins fallidos y mandar alerta por email

      Hola seguimos con el tema de los script, ahora vamos a dar un pequeño paso más en esto de los script con cosas bastante útiles, la cosa es muy simple controlar los intentos de login en nuestro equipo por el momento a nuestros usuarios osea controlar la cantidad de intentos de acceso y en caso de ser necesario que nos llegue un email a nuestro correo reportando alguna actividad y de paso esta opción la podremos ocupar en el futuro para otros scripts y obviamente utilizaremos algunas cosas de la parte 1.
      Vamos a necesitar un corrego en gmail, y tener conocimentos en comandos variados de linux y programación básica,  pueden leet la parte uno para empezar desde cero porque hay cosas que ya las explique en esa parte y no da que repita lo mismo, todo lo nuevo obvio lo explico paso a paso para no perderce.

      Bueno pasemos directamente a trabajar:

      1. Primero creamos un archivo y le damos los permisos necesarios para ejecutar dicho script:
      2. Bien pasemos de lleno al script voy a explicar línea por línea:
        • La variable unahoramenos sirve para tener guardada una hora menos que la actual, osea si son las 20 horas va a guardar la hora 19, se entiende?? esto lo utilizo para que cuando ejecute el script empiece a controlar no desde la hora actual sino desde una hora antes y revisar la cantidad de intentos de acceso, obvio eso ustedes los pueden manipular como ustedes más gusten.
        • La variable horaactual obtiene la hora actual del sistema sin los segundos.
        • El comando "lastb" es lo principal de este script porque es el que lista los intentos fallidos en el sistema para todos los usuarios con información relevante como fecha, hora, etc. con la "-s" indicamos un horario en el cual queremos revisar para que no nos liste absolutamente todo desde el origen de los tiempos, obvio primero lo hacemos para algún usuario en particular en mi caso el mio (| grep hackende) y luego lo redirigimos a un txt (loginfailshackende.txt).
        • Con el comando "wc -l" lo que hacemos es contar la cantidad de lineas que tiene el archivo de txt que creamos en la línea anterior para saber exactamente la cantidad de intentos fallidos en el sistema y lo redirigimos a un txt (cantfailhackende.txt).
        •  "awk" lo que permite es manipular los strings, y precisamente sacamos lo que tiene la primer columna es decir la cantidad de intentos fallidos y lo guardamos en la variable "contador".
        • Para la variable "dia" utilizamos el comando "awk" de nuevo pero obteniendo la columna 5 que tiene justamente el número del día en que sucedio el intento de acceso del archivo "loginfailshackende.txt" con el comando "head -n 1" hacemos que solo lo haga para la primer línea porque sino guardaria la columna entera y seria ineficiente tener cosas de más.
        • En la variable "hora" justamente guardamos la hora.
        • En la variable "diahoy" guardamos el número del día de hoy.
        • Ahora llega el momento de explicar "if [ $contador -ge 3 ] && [ $dia -eq $diahoy ]; then" bueno es solo un condicional que realizara alguna acción si se cumplen uno o varios factores determinantes que permitan tomar el control para alguna acción en particular, para nuestro caso es muy simple, decimos "si [lo que tiene la variable "contador" es mayor igual a 3] y [la variable "dia" es igual a la variable "diahoy"]" hacemos...., osea simplemente controlamos 2 factores, primero que la variable contador sea mayor a 3 porque en ese caso posiblemente alguien este intentando demasiadas veces entrar y debemos actuar al respecto; y el segundo punto que solo se realice para la fecha de hoy.
        • Acá mandamos directamente el email porque se supone que se cumplieron los 2 factores en la linea de control IF, bueno yo utilice mutt para mandar el email, para instalar simplemente hacemos:Luego lo configuramos modificando el archivo "nano /root/.muttrc":Debemos de cargar los datos para configurar correctamente a mutt para eso hacemos:Esto es solo pegar lo anterior y acomodarlo a su gusto, obviamente cuando lo utilicen se darán cuenta para que se utiliza cada cosa pero obviamente yo solo lo probé en gmail (en hotmail hay que investigar un poco pero bueno como yo ya tenia ese correo lo deje...) una ves echo eso ya estamos listo para mandar email desde la consola, en nuestro script lo realizamos con un "echo" que indica el texto que aparecera en nuestro email como texto simple en nuestro caso la advertencia¡¡¡ luego con una tuberia llamamos a mutt con "-s" para indicar el encabezado del email a enviar.
        • Todo lo demas dentro de ese bucle ya lo conocemos de la parte 1.
      3. Luego el siguiente paso es mandar el script a que se ejecute con cron:
      4. Y solo agregamos la ruta del script al igual como lo hicimos en la parte 1: "3 * * * * root /home/hackendemoniado/Documentos/scripts/login_hackendefail.sh" yo lo configuro para que se ejecute cada 3 minutos para probarlo pero en realidad hay que dejarlo cada una hora eso seria cada 59 minutos o ponerlo dentro de la carpeta que se ejecuta cada hora (al script copiarlo dentro obvio) o como ustedes quieran.
      5. Para root es exactamente lo mismo solo que buscamos todo para root:
      6. Bien pasemos de lleno al script voy a explicar línea por línea:
      7. como ven es casi lo mismo pero adaptado al ususario root, luego lo agregamos a cron como hicimos para nuestro usuario anterior y listo
      8. Imagenes:





      Como ven efectivamente llego el email luego de probar a traves de laterminal el acceso como root y poner 3 veces la clave mal, obvio funciona tanto para root como para nuestro usuario, es algo que me parecio curioso de hacerlo y de paso compartirlo, espero que les sea útil a ustedes y cualquier cosa me consultan porque se pueden precentar una variadad de errores que lógicamente están todos controlados con el script y con la configuración de mutt (igual como digo siempre todo puede fallar¡¡¡¡ jeje) asique ya saben consulten sus dudas y ya estare publicando la parte 3.....

        Miércoles 30 de diciembre de 2015

        Sergio Gonzalez

        Sergio Gonzalez
        hackendemoniado

        Que hacer después de instalar kali linux 2.0

        Hola como andan, seguimos con el tema de kali linux pero ahora poniendo a punto, primero obviamente lo tienes que tener instalado siguiendo esta guia http://hackendemoniado.blogspot.com.ar/2015/12/como-instalar-kali-linux-20.html
        Luego de ese sencillo paso vamos derecho a terminar de sacarle filo....

        1. En caso de tenerlo instalado en virtualbox, lo primero es instalar el guest additions, luego de montada tiramos los siguientes comandos:
        2. Luego verificamos o modificamos los repositorios, primero que nada el archivo de repositorios se debe de corresponder con los que aparecen en la documentación oficial y si queremos las modificamos, solo voy a agregar los repositorios de tor y firefox:
        3. Luego toca actualizar la distro:
        4. Luego de un buen rato pasamos a instalar TOR obviamente que no es algo necesario pero como soy un poco paranoico con esto de la privacidad prefiero tener algo que lo intente:
        5. Verificamos que todo se ejecuta como corresponde:
        6. Realizamos una prueba para ver si tor funciona como queremos:
        7. Ahora si queremos enrutar todo el tráfico a traves de tor necesitaremos a la famosa Backbox-anonymous, si no saven o no la conocen les explico un poco que se trata de un par de script que apuntan a configurar nuestro iptables para lograr que todo el sistema pase o se enrute primero a traves de tor se entiende?? osea configuraremos toda la máquina para que todas las plicaciones que toquen algo a traves de la red o internet pase enrutado a través de TOR, es muy sencilla de utilizar y bastante descriptiva si se presentan errores y así poder solucionar los inconvenientes que se presenten, para configurar necesitamos los siguientes 2 script y copiarlos (crearlos ) en las rutas indicadas:Y pegamos lo siguiente:Ahora seguimos con el último script:le insertamos lo siguiente:Por las dudas dejo los links de cada uno por separado https://github.com/hackendemoniado/scripts/blob/master/etc/default/backbox-anonymous y el último es https://github.com/hackendemoniado/scripts/blob/master/usr/sbin/backbox-anonymous Ahora solo hace falta iniciar el servicio:A mi me apareció el siguiente problema (es algo normal la primera ves que lo ejecutemos...):
          Como les aclare que era muy descriptivo solo agregue ese texto al archivo /etc/tor/torrc y luego ya funciona con normalidad y nos realiza las consultas pertinentes:
          Ahora vamos a comprobar que realmente esté funcionando como nosotros deseamos, la forma más simple es mirar cual es nuestra ip externa actual y cual es nuestra geolocalización:
          Como se darán cuanta funciona.....
        8. Luego instalaremos firefox (otro paso opcional pues yo estoy más a costumbrado...), obvio removeremos a iceweasel:
        9. Flash player ni se te cruce por la mente instalarlo heeeee.
        10. Ahora agregaremos un usuario para no manipular siempre con root:
        11. Si te molesta el "Intelligent Sidebar Option" lo podemos desactivar de la siguiente manera:                                                                                            
        Bueno amigos espero que les funcione todo y aclaro que lógicamente desde este punto ya pueden instalar todas las aplicaciones que ustedes deseen pero como es una distro para pentesting (legal o no ja) lo demás ya no me parece imprescindible explicar como instalar pues ya se aleja del objetivo para el cual esta diseñada la distro, cualquier cosa ya saben consulten.

        Domingo 08 de noviembre de 2015

        Sergio A. Alonso

        Sergio A. Alonso
        Bunker Blog

        Taller de Linux y Ruby on Rails

        Hace tiempo que no posteo en el Blog
        Sepan disculpar: no solo no me he retirado, sino que gracias a mis dos últimos empleos, Belatrix y Supercanal (donde sigo trabajando) he aprendido mucho y apenas me ha alcanzado el tiempo para transmitir conocimientos nuevos
        Como para no dejar completamente de lado la docencia, lanzo la cuarta edición de este Taller, con muchas novedades.
        Si bien el Taller es presencial, incluye un aula virtual propia con todo lo necesario para crear los primeros algoritmos en Ruby, diseñar aplicaciones web, hacer scripting, y armar ambientes reales de producción.
        El taller es muy intenso: incluye varios meta conocimientos alrededor de esta tecnología adquiridas a lo largo de 20 años de experiencia: intercambio de llaves, GIT, seteo de Apache, balanceadores de carga, debug sobre el terreno, despliegue de nodos, deploy en clouds, y una larga lista de habilidades tanto del desarrollador web como de esa nueva profesión que se viene gestando llamada DevOp.


        Ejemplo del aula, la cual gracias a Screen y al fantástico Codebox IDE me permite asistir rápidamente a los alumnos:

        Para los impacientes, aquí les dejo un enlace a la descripción del Taller, clase por clase: https://goo.gl/ngQ2BE

        Enlace hacia la nota completa: http://goo.gl/BLyqdy

        Se agradece su difusión.

        Lunes 07 de septiembre de 2015

        Sergio A. Alonso

        Sergio A. Alonso
        Bunker Blog

        Shot of work's laptop




        A typical work session with Arch, Mate Window Manager, Numix Theme + my own colors.

        Vim Janus with Molokai theme, Oh-my-zsh with Agnoster theme, Terminator, Tig, and Fuck correct typos. 

        Wallpaper is one of my favorites related to Owl's Moving Castle, downloadable from here: http://www.allmacwallpaper.com/get/iMac-21-inch-wallpapers/-Howl's-Moving-Castle-1920x1080/5226-9.jpg

        Jueves 02 de julio de 2015

        Che … ¿y los datos?

        Hace mas de un año, en abril de 2014, hice una presentación sobre Gobierno Abierto / Datos Abiertos para Libres del Sur / FAP.

        En dicha presentación me enteré que dentro de la Secretaría de Desarrollo Tecnológico se había iniciado un proceso de apertura de datos de la administración municipal.

        Como con todo aquello que hace el Intendente Pulti, me pareció bien la iniciativa pero me reservé las opiniones para mas adelante, ya que su costumbre siempre es patear para adelante y esperar que los reclamantes se cansen.

        Ah, y también hacer mucha parafernalia y ruido con poquitas nueces.

        Así fue como apareció el “Portal de Datos Abiertos” de la MGP. Y se hizo un Hackaton. Y un Concurso de Aplicaciones.

        Me voy a referir al primer punto, el portal de datos abiertos.

        Se suponía que allí uno iba a poder encontrar la información que necesitara sobre la Municipalidad y la ciudad, en formatos libres y abiertos, y actualizada.

        Lo que realmente se encuentra (con la excepción de los datos de llamadas al 147, que parecen ser extraídas directamente del sistema que usa el call center), es todo lo que publicaron hace un año y olvidaron ahí.

        Asi se ve la parte sobre datos sobre seguridad:

        datos_seguridad_20150701

        Así los referidos a medio ambiente:

        datos_medioambiente_20150701

        datos_medioambiente_osse_20150701

        Los de movilidad:

        datos_movilidad_20150701

        Los de economía y presupuesto:

        datos_economía_20150701

        datos_presupuesto_20150701

        Adicionalmente, en la página de Información Presupuestaria, los archivos que hasta el 2014 se publicaban en formato de planilla de cálculo, ahora han pasado a estar publicados en pdf, dificultando así cualquier análisis que uno quiera hacer, u obligando a convertirlos, con los problemas que implica cuando se tratan de datos en esquemas de tablas.

        Todo sigue igual. O peor. Pero manteniendo el relato.

        Domingo 17 de mayo de 2015

        25 años de Internet en Argentina

        patchcord_keyboardHoy es el día en que se conmemora el “día de Internet”. En realidad, el Día Mundial de las Telecomunicaciones y de la Sociedad de la Información, pero a veces es bueno simplificar un poco 😉 .

        Este festejo surge de una propuesta de la Cumbre Mundial sobre la Sociedad de la Información, que pidió a la Asamblea General de las Naciones Unidas instituir el 17 de mayo como Día Mundial de la Sociedad de la Información, lo cual resultó decidido en forma afirmativa. Luego, la ITU (International Telecommunication Union) decide unificarlo con su Día de las Telecomunicaciones, dado que en esta fecha, y de eso también hoy se festejan los 150 años, se fundaba dicha unión.

        Pero, lo que es la casualidad, resultó que un día 17 de mayo de 1990, en la ciudad de Buenos Aires y de la mano de Jorge Amodio, Argentina ponía en marcha su primer enlace a Internet.

        Como fue que esto sucedió pueden leerlo en el blog del propio Amodio, haciendo click aquí.

        También destaco este documento histórico: el e-mail en el cual se informa al administrador en USA que el enlace estaba funcionando.

        >From pete Thu May 17 19:55:20 1990
        >Subject: Line up ….
        >To: atina!umd5.umd.edu!rcoltun (Rob Coltun)
        >Date: Thu, 17 May 90 19:55:20 GMT-3:00
        >
        > Hi Rob,
        >
        > glad to contact you again, and very glad now because I’m
        >looking the Cisco console showing “line up” over our link.
        >
        > I sent to Glenn the formal Internet Number and Autonomus
        >System registration.
        >
        > Can you help me with the configuration of the Cisco router,
        >I believe that we are able to do real networking tests ( your words
        >sometime ago ) …
        >
        > I’ll wait your response,
        >
        > Best regards,
        > Jorge.

        Por esto es que quiero enviar mi saludo y las felicitaciones a quienes fueron los pioneros de Internet en Argentina, los que tras 25 años nos han dejado un legado de posibilidades extrarordinarias.

        Gracias colegas!!!

        Domingo 05 de abril de 2015

        A 10 años del ICANN Meeting en Mar del Plata

        Hace 10 años, un día 4 de abril de 2005, se iniciaba en Mar del Plata el ICANN Meeting XXII, el primero en ser realizado en nuestro país.

        No fue casualidad que se haya organizado en la ciudad donde vivo. Un año antes, un grupito de marplatenses propusimos que se hiciera en nuestra ciudad y tuvimos la suerte de que los costos de alojamiento y comida estuvieran, en ese momento, bastante mas bajos que en la Ciudad de Buenos Aires, lo que nos dio ventaja en la decisión final de donde se hacía.

        Y así empezó esta aventura que hoy es uno de los mas gratos recuerdos de mi vida profesional.

        El evento se llevó a cabo en el Hotel Sheraton de Mar del Plata, quien tuvo que acelerar la instalación de su red inalámbrica para poder brindar la conectividad a los que terminaron siendo 604 participantes de 80 países distintos, con 60 APs

        La conectividad a Internet se contrató a Comsat, quien tuvo que poner dos parabólicas de 2.5 metros de diámetro para poder brindar los 10 mbps simétricos que nos solicitaron con un rango /23 para contar con 512 Ips.

        6 servidores DHCP, DNS y SMTP, con una estación de monitoreo de red, 20 PCs de uso público, transmisión en vivo de las reuniones y hasta hacer de service de los equipos que se le iban rompiendo a los miembros de ICANN.

        Todo el grupo estuvo compuesto por gente de primera.

        En la organización, Oscar García, del Polo Informático Mar del Plata, Antonio Harris, de Cabase, OTI Internacional en los servicios turísticos y Congress Rental en servicios de audio, video en pantalla gigante, registración, traducción, etc.

        En la técnica, Steve Conte, Alexander Kulik, Tim Cole y Mike Evans, de ICANN, Guillermo Pereira Irujo, Claudio Roulliet, Alexis Bertola, Martín Salinas y yo, de Comtron, Marcelo Valencia y Hector Blanche, de Comsat, Juan Gimeno Rossi y German Paak, del Hotel Sheraton.

        Y, a continuación, la “medalla” que nos quedó de recuerdo, con la firma, nada mas y nada menos, que de Vinton Cerf.

        Para el final, el agradecimiento a Ignacio Marcos, que pasó una tarde para conocernos personalmente y que terminó a un costado, tomando un mate y mirándonos ir de un lado para otro, ya que gracias a el y a esa visita este blog existe como tal.

        Jueves 06 de noviembre de 2014

        Martín Albisetti

        Martín Albisetti
        Martin Albisetti's blog

        Click packages and how they’ll empower upstreams

        As the pieces start to come together and we get closer to converging mobile and desktop in Ubuntu, Click packages running on the desktop start to feel like they will be a reality soon (Unity 8 brings us Click packages). I think it's actually very exciting, and I thought I'd talk a bit about why that is.

        First off: security. The Ubuntu Security team have done some pretty mind-blowing work to ensure Click packages are confined in a safe, reliable but still flexible manner. Jamie has explained how and why in a very eloquent manner. This will only push further an OS that is already well known and respected for being a safe place to do computing for all levels of computer skills.
        My second favorite thing: simplification for app developers. When we started sketching out how Clicks would work, there was a very sharp focus on enabling app developers to have more freedom to build and maintain their apps, while still making it very easy to build a package. Clicks, by design, can't express any external dependencies other than a base system (called a "framework"). That means that if your app depends on a fancy library that isn't shipped by default, you just bundle it into the Click package and you're set. You get to update it whenever it suits you as a developer, and have predictability over how it will run on a user's computer (or device!). That opens up the possibility of shipping newer versions of a library, or just sticking with one that works for you. We exchange that freedom for some minor theoretical memory usage increases and extra disk space (if 2 apps end up including the same library), but with today's computing power and disk space cost, it seems like a small price to pay to empower application developers.
        Building on top of my first 2 favorite things comes the third: updating apps outside of the Ubuntu release cycle and gaining control as an app developer. Because Click packages are safer than traditional packaging systems, and dependencies are more self-contained, app developers can ship their apps directly to Ubuntu users via the software store without the need for specialized reviewers to review them first. It's also simpler to carry support for previous base systems (frameworks) in newer versions of Ubuntu, allowing app developers to ship the same version of their app to both Ubuntu users on the cutting edge of an Ubuntu development release, as well as the previous LTS from a year ago. There have been many cases over the years where this was an obvious problem, OwnCloud being the latest example of the tension that arises from the current approach where app developers don't have control over what gets shipped.
        I have many more favorite things about Clicks, some more are:
        - You can create "fat" packages where the same binary supports multiple architectures
        - Updated between versions is transactional so you never end up with a botched app update. No more holding your breath while an update installs, hoping your power doesn't drop mid-way
        - Multi-user environments can have different versions of the same app without any problems
        - Because Clicks are so easy to introspect and verify their proper confinement, the process for verifying them has been easy to automate enabling the store to process new applications within minutes (if not seconds!) and make them available to users immediately

        The future of Ubuntu is exciting and it has a scent of a new revolution.

        Martes 30 de septiembre de 2014

        Sergio A. Alonso

        Sergio A. Alonso
        Bunker Blog

        El Mundo Según JuanCPovE: Día de la Tierra, ese pequeño punto azul pálido en...

        El Mundo Según JuanCPovE: Día de la Tierra, ese pequeño punto azul pálido en...: Siempre en este día cito a Carl Sagan y su obra "Pale Blue Dot". Una buena razón para reflexionar y cambiar de una buena vez nue...

        Jueves 31 de julio de 2014

        Martín Albisetti

        Martín Albisetti
        Martin Albisetti's blog

        Engineering management

        I'm a few days away from hitting 6 years at Canonical and I've ended up doing a lot more management than anything else in that time. Before that I did a solid 8 years at my own company, doing anything from developing, project managing, product managing, engineering managing, sales and accounting.
        This time of the year is performance review time at Canonical, so it's gotten me thinking a lot about my role and how my view on engineering management has evolved over the years.

        A key insights I've had from a former boss, Elliot Murphy, was viewing it as a support role for others to do their job rather than a follow-the-leader approach. I had heard the phrase "As a manager, I work for you" a few times over the years, but it rarely seemed true and felt mostly like a good concept to make people happy but not really applied in practice in any meaningful way.

        Of all the approaches I've taken or seen, a role where you're there to unblock developers more than anything else, I believe is the best one. And unless you're a bit power-hungry on some level, it's probably the most enjoyable way of being a manager.

        It's not to be applied blindly, though, I think a few conditions have to be met:
        1) The team has to be fairly experienced/senior/smart, I think if it isn't it breaks down to often
        2) You need to understand very clearly what needs doing and why, and need to invest heavily and frequently in communicated it to the team, both the global context as well as how it applies to them individually
        3) You need to build a relationship of trust with each person and need to trust them, because trust is always a 2-way street
        4) You need to be enough of an engineer to understand problems in depth when explained, know when to defer to other's judgments (which should be the common case when the team generally smart and experienced) and be capable of tie-breaking in a technical-savvy way
        5) Have anyone who's ego doesn't fit in a small, 100ml container, leave it at home

        There are many more things to do, but I think if you don't have those five, everything else is hard to hold together. In general, if the team is smart and experienced, understands what needs doing and why, and like their job, almost everything else self-organizes.
        If it isn't self-organizing well enough, walk over those 5 points, one or several must be mis-aligned. More often than not, it's 2). Communication is hard, expensive and more of an art than a science. Most of the times things have seemed to stumble a bit, it's been a failure of how I understood what we should be doing as a team, or a failure on how I communicated it to everyone else as it evolved over time.
        Second most frequent I think is 1), but that may vary more depending on your team, company and project.

        Oh, and actually caring about people and what you do helps a lot, but that helps a lot in life in general, so do that anyway regardless of you role  🙂

        Jueves 04 de octubre de 2012

        LugSaJu: La tecla que te salva del DESASTRE

        Jueves 09 de agosto de 2012

        Dear Martínez

        Dear Martínez
        La vida Linux

        Software de mensajería instantánea Jitsi 1.0

        La competencia entre los programas de mensajería instantánea a través de VoIP, video conferencia y más, es grande y todas satisfacen nuestras necesidades. Competidores somo Skype, Ekiga, lideran el poderío de uso, pero existen otras alternativas menos utilizadas por no ser famosas, pero de mejor dicción y predisposición de servicio al usuario, tal como Jitsi, antes conocido como SIP Communicator y que desde hace tan solo días, ha lanzado su nueva versión estable.

        Jitsi 1.0 Software de mensajería instantánea Jitsi 1.0

        El renovado Jitsi 1.0 reúne todas las funciones que se pueden encontrar en diversos programas con las herramientas VoIP, video conferencia, mensajería instantánea tanto para Windows como para Mac y GNU/Linux. Esta interfaz es sumamente cómoda y amigable, siendo intuitiva y fácil de utilizar. Es compatible con los protocolos más populares de mensajería instantánea y telefonía, pero también se le puede dar uso con las cuentas habituales de correo tales como Hotmail, Gmail o Yahoo, o bien otros como AIM, XMPP, Jabber, SIP y la posibilidad de emparejar la cuenta de la red social Facebook.

        Entre sus características más destacadas se encuentra la de transferencia de llamadas atendidas o ciegas, el cambio de estado automático cuando el usuario no se encuentre utilizando el ordenador, la autoconexión, además de permitir grabar las llamadas para seguridad del usuario y el cifrado de protocolos SRTP Y ZRTP. No obstante, también permite establecimiento de conexión de medios directa mediante protocolo ICE, streaming de escritorio, almacenamiento de contraseñas cifradas, transferencia de archivos, soporte IPv6 para SIP y XMPP, etc.

         

        Jueves 02 de agosto de 2012

        Dear Martínez

        Dear Martínez
        La vida Linux

        Aprende a tocar la guitarra con TuxGuitar

        Un nuevo software para los amantes de la guitarra y la música, además de para aquellos aficionados que siempre quisieron aprender, existe una herramienta llamada TuxGuitar, siendo un editor visual de tablaturas y partituras de código abierto. Esta aplicación ha de ser ideal para llevarla consigo a cualquier parte. Desarrollada hace tiempo, es una idea que surgió para crear una herramienta que le haga competencia al popular Guitar Pro, pero que esta pueda ser utilizada por todo el mundo de forma gratuita.

        Tux Guitar Aprende a tocar la guitarra con TuxGuitar

        La herramienta de Tux Guitar es muy útil para el aprendizaje de la música y el arte de utilizar cualquier guitarra, aunque también cuenta con bajo, teclado y batería con el cual el usuario podrá aprender lo que no, o poner en práctica lo conocido en la materia. Desarrollado por la compañía Java, se puede abrir y exportar ficheros GP3, GP4 y GP5, además de ser compatible con los archivos del Guitar Pro, permitiendo que se pueda utilizar las partituras creadas para ese programa.

        No solamente el Tux Guitar es un simple editor visual de partituras con el que se puede componer la música, sino también ofrece una gran variedad de efectos de sonido, soporte multipista, tempo, posibilidad de tercetos, scroll automático en la reproducción y muchas otras herramientas que lo ayudarán a formar su música tal como la disponga.

        Lunes 16 de julio de 2012

        Dear Martínez

        Dear Martínez
        La vida Linux

        Nueva versión de MythTV 0.25 con soporte para Windows

        El conocido reproductor de TV se ha escondido en la sombra de las noticias tecnológicas respecto a Linux durante un año y medio, sin tener novedades de ellas y varios retrasos en el desarrollo de la última versión del reproductor, por lo que MythTV anunció que ha sido liberado y trae 5200 cambios como si fuera poco. Muchos saben en qué consiste este software reproductor de TV y multimedia, por lo que les interesará saber sobre las novedades de cambios.

        MythTV Nueva versión de MythTV 0.25 con soporte para Windows

        En la versión 0.25 de MythTV se incluyen nuevas características que destacan el interés en los usuarios, como nuevas capacidades de aceleración de video, tales como VAAPI y video de DirectX2, mejoras de audio, incluyendo soporte para E-AC3, TrueHD y DTS-HD, mejoras de los metadatos que integra gestión de grabaciones y videos, una API para aplicaciones de terceros, para aprovechar la interacción con el frontend y backend, control del televisor y otros componentes AV a través del consumer electronics control, o la inclusión de un HTTP Live Streaming, para compartir el contenido de video en tiempo eral a través de la API integrada.

        También se destaca en el nuevo reproductor MythTV, el MythMusic que ha sido completamente reescrito y MythVideo que ahora se ha integrado completamente, en lugar de ser distribuido como un plug-in por separado. Además, a través de MythThemes, todos los temas, incluyendo los de terceros, se pueden descargar directamente desde el selector de temas de la interfaz.

         

        Jueves 05 de abril de 2012

        Soft-Libre: GNOME 3.4 disponible con interesantes novedades
        Soft-Libre: Wallpapers para Ubuntu 12.04 LTS
        Soft-Libre: LibreOffice adquiere capacidad colaborativa en la nube + LibreOffice 3.5.2

        Domingo 26 de febrero de 2012

        Luciano Bello

        Luciano Bello
        Luciano's webpage

        Lessons Learned: Fettisdagen y Semla

        Fettisdagen, (martes de carnaval). Fet es grasa, mientras tisdag es martes. El sufijo en es el artículo determinado. Por lo tanto, el martes graso

        Semla, Comida. Etimológicamente, viene de semilla. También llamado fastlagsbulle, es una berlinesa (bola de fraile, que le dicen) con crema y pasta de almendras en su interior.

        SemlaFlickr
        En el post sobre Lucía ya hemos hablado sobre lo sorprendentemente apegado que son los suecos a ciertas fiestas de origen religioso, incluso cuando solo el 23% de ellos dice cree en algo llamado dios (ya no decir "ser cristiano"). Este parece ser un nuevo caso de lo mismo.

        En Argentina, así como en muchos (por no decir todos) países de América existe el carnaval. En otras palabras, festejar y comer antes de los 40 día de ayuno y penitencia por la Cuaresma que comienza el día siguiente, es decir, el Miércoles de Ceniza.

        Acá, y en otros países nórdicos, no parece haber carnaval. Lo que sí hay es Fettisdagen. Éste podría ser un martes de lo más común, si no fuese porque se consumen enormes cantidades de semla.

        Casualmente, ese martes me tocó ser el anfitrión del PhD fika (cuando los estudiantes de doctorado nos juntamos a tomar café y conversar), por lo me subí a la tradición y los invité con semla de distintos sabores. El sabor está dado por la crema, que puede ser común, de vainilla, con canela y otras variantes.

        Los semlor (plural de semla) es algo tan popular en la cultura sueca que un detective de cuentos para chicos llamado Ture Sventon es adicto a estos (y también vuela en una alfombra mágica, pero no viene al caso).

        Y este podría no ser único caso sueco de adición a semla. En el siglo XVII, rey Adolfo Federico habría muerto (literalmente) de un atracón después de clavarse 14 porciones de semla (tradicionalmente servidos con un tazón de leche caliente) como postre.

        La receta, aquí.

        Domingo 15 de enero de 2012

        Luciano Bello

        Luciano Bello
        Luciano's webpage

        Corriendo Debian en un server fanless

        Debido a una reciente mudanza, he bajado unos servers que tenía corriendo en casa de mis padres. Sin embargo, en mi nuevo hogar estoy en proceso de generar una nueva DMZ, esta vez, sin ventiladores.

        El primer paso de este proceso ocurrió en forma de weekend project y consiste en hacerme de un "servidor". Las comillas hacen referencia a que no se trata de un gran server sino un procesador ARM de 200Mhz y 32MB de RAM, lo que es suficiente para que corra Debian y algunos otros servicios que pueden ser interesantes.

        Los ingredientes

        • Un all-in-one LAN server que es la forma en que DealExtreme llama a unos dispositivos con chips de la familia str8132. Dado que vamos a instalar snake-os en ellos (en este caso se trata de la versión 1.3.2-20111019), es importante chequear la lista de compatibilidad. En particular me hice de un NS-K330 por 40 dólares.
        • Storage USB, puede ser en la forma de stick o como disco portable.
        • Un RS232 to TTL level converter, también conocido como cable para Nokia N1200/1208/1650/2630/2670. Es para conectarse por serie a la consola. No lo necesitamos ahora mismo, pero está bueno tenerlo a mano en caso de brickearlo, aunque es un procedimiento que no explicaré esta vez.

        Instalación de Snake-OS

        Es realmente sencillo. Lo primero es bajar snake-os, desde la sección de downloads de la web. Es importante que el archivo sea de la forma snakeos-<versión>-from-original.zip Instalar el que dice from-snake lleva definitivamente al brickearlo y recuperarlo puede ser complejo.
        Desde la página de administración del dispositivo hay que subir el archivo snakeos-<versión>-from-original.bin contenido en el zip bajado. Confirmar el md5sum no está de más.

        Acceso inicial

        Los datos para acceder a la nueva interfaz con el browser:

        http://192.168.0.240 (si es que no hay un DHCP en la red)
        usuario: admin
        contraseña: snake

        Por SSH la contraseña de root la misma y, al cambiarla por la página de administración, se cambia en todos los accesos.

        Post instalación

        Incluso cuando Max opine que el uso de memoria virtual está rumbo a la extinción (lo cierto es que tal vez no es la mejor idea cuando el storage es de estado sólido como en los pendrives), activé el uso de SWAP desde el menú Service-Swapfile.

        Si se quieren las mismas prestaciones que se tenían con el firmware original, hay que instalar unos paquetes adicionales. El sistema de paquetes que utiliza snake-os es opkg y tiene que ser primero activado desde Service-Opkg. Los paquetes pueden bajarse desde la página de download de snake-os y se instalan desde System-Packages. En particular, pueden ser interesantes (siempre pensando en los features originales):
        Transmission: Es un cliente de BitTorrent, para dejar tus descargas corriendo. Es bastante mejor que el original.
        miniDLNA: Es el server de streaming compatible con DLNA/UPnP-AV. Está un poco verde, pero se está trabajando en su mejora.

        Corriendo Debian dentro

        Las instrucciones están acá. Aunque esto es lo más obvio y necesario:

        wget http://snake-os.googlecode.com/files/debian_chroot.tgz
        tar -xvf debian_chroot.tgz
        mount -o bind /proc /usb/sda1/debian/proc
        mount -o bind /dev /usb/sda1/debian/dev
        chroot /usb/sda1/debian/

        Esta instalación base requiere unos 200MB. Tiene todo el potencial de un Debian (¡porque lo es!).
        Claro que falta ajustar varios detalles, pero será la piedra inicial para el resto.

        Lunes 12 de diciembre de 2011

        Luciano Bello

        Luciano Bello
        Luciano's webpage

        Lessons Learned: Lucia

        Lucia, fiesta (13 de diciembre). Tradicional fiesta sueca asociada a Santa Lucía de Siracusa, el solsticio y las velas.

        Según el santoral católico, el 13 de Diciembre (o sea, en un par de horas) es el día dedicado a Santa Lucía. Dato que seguramente pasa totalmente desapercibido para la gran mayoría de la personas del mundo. A menos claro, que se sea habitante de Suecia (o de Sicilia, pero no viene al caso).

        El día de Santa Lucía, o simplemente Lucia como prefieren llamarlo acá, es de la fiestas más importantes de la cultura sueca. Y, como extranjero, me es sumamente difícil de entender como en un país tan poco religioso algo así tiene cabida. Así que analicemos los hechos.

        La santa en cuestión: Durante el siglo III y principios del IV vivió en Siracusa (una ciudad de Sicilia, Italia) una joven católica de familia potentada llamada Lucía, quien tenía intensiones de consagrarse a Dios. Pero un despechado pretendiente la denunció a la autoridades (eran tiempos de persecución a los católicos) y fue enjuiciada y sentenciada a muerte. La tradición cuenta que se ordenó torturarla arrancándole los ojos y que aún así siguió viendo por milagro divino (sí, lo que tiene en la bandeja de la estampita son un par de ojos). Más datos sobre su vida en la Wikipedia y referencias.
        Es, obviamente, patrona de los ciegos. También, aunque bastante menos evidentemente, de los electricistas, choferes, afiladores y cristaleros. Tal vez en este último caso exista alguna relación con el tradicional arte de soplar vidrio que existe en Suecia.

        Su asociación con la luz: El nombre Lucía, hace clara referencia al latín, Lux. La leyenda de los ojos también parecen referir a la luz (o a la falta de ésta). Aunque no pude encontrar referencias, algunas personas me comentan que Santa Lucía fue condenada a la hoguera y que el fuego no la consumía. Y que por esto hay velas durante la celebración. Aún más simpático es que parece ser que, por errores acumulados durante la Edad Media en el calendario Juliano, la festividad de Lucía coincidía con el día más corto del año, el solsticio de invierno.

        Conociendo lo odioso que puede ser la oscuridad en estos lares y lo fanático de las velitas y de los artefactos lumínicos que son lo locales, no parece ser tan loco que quieran festejar que los días empiezan a alargarse (aunque esto no ocurrirá hasta dentro de poco más de una semana).

        Las velas también pueden hacer referencia a una leyenda pre-cristina en que la noche más larga del año lo animales nocturnos adquirían poderes sobrenaturales (incluso podían hablar) y había que mantenerlos alejados con fuego.

        Luciatåg: Significa procesión de Lucia. Es el acto por excelencia y se celebra totalmente independiente de la fiesta religiosa. Se realiza en escuelas (especialmente en las guarderías) y en ámbitos públicos en donde una mujer representa a Lucia llevado "la luz" con una corona de velas (electrónicas en muchos casos, matando cierta divertida tensión macabra). La vestimenta es una túnica blanca ceñida por una faja roja, representando el martirio. Las tärnor (literalmente, golondrinas, aunque también puede ser las damas de honor o doncellas) acompañan a Lucia llevando velas en las manos y cantando canciones tradicionales. Hay más personajes, pero quedarán para otro post.

        Entre las muchas tradiciones gastronómicas asociadas a esta época del año, hay una que hace referencia directa a Lucia: los lussekatter. Son como unas facturas dulces de azafrán y que representan ojos. La palabra lussekatt se traduce como gatos de Lucia y se suele acompañar con Glögg, una especie de glühwein local.

        Para terminar, durante esta fecha se elige en Estocolmo la Sveriges Lucia. Es una especie de concurso por representar a Lucia a nivel nacional en donde cada ciudad propone su candidata. Las participantes representan a una entidad de beneficencia y tengo entendido que se valoran las cualidades para canto y la personalidad con entrevistas que son televisadas. Se puede votar por tu Lucia favorita a través de SMS, aunque creo que la votación para este año ya está cerrada. ¿Que qué se lleva la ganadora? No tengo idea...

        Pero acá les dejo las candidatas finalistas de este año:

        Lunes 07 de noviembre de 2011

        Punto Libre: サイトマップ

        Viernes 01 de abril de 2011

        Tecnoscopio: Clon de Counter-Strike Gratis en tu navegador

        Miércoles 30 de marzo de 2011

        Tecnoscopio: Gestor de Descargas para Megaupload Depositefiles y otros

        Lunes 28 de marzo de 2011

        Tecnoscopio: Generación de electricidad con peatones y tránsito de autos

        Miércoles 09 de marzo de 2011

        Punto Libre: デートを成功させる