Ir al contenido principal

Ralsina.Me — El sitio web de Roberto Alsina

Security Cargo Cults

Ear­lier I men­tio­ned a ha­ck I use when I need to get a clean bro­w­ser qui­ck. He­re it is agai­n:

rm -f ~/.config/ralsina/devicenzo.conf
curl https://devicenzo.googlecode.com/svn/trunk/devicenzo.py | python

Sin­ce that got pos­ted on re­ddit (no, not li­nking it), it tri­gge­red "in­te­res­tin­g" ar­gu­men­ts. Ba­si­ca­lly many we­re sho­cked (sho­cked) about run­ning ar­bi­tra­ry in­ter­net co­de lo­ca­lly in this man­ne­r. It's in­se­cu­re. Whi­le I am by no means a se­cu­ri­ty ex­per­t, at least I know I am ig­no­ran­t.

Le­t's exa­mi­ne that in­se­cu­ri­ty claim a li­ttle, in the con­text of what I was pro­po­sin­g. I am tr­ying to te­ll peo­ple "he­re's a sma­ll web bro­w­ser that re­qui­res no se­tup and sin­ce it's not your main bro­w­se­r, you can nuke it and re­set its sta­te ea­si­ly be­fo­re run­ning it, like this".

So, wha­t's wrong wi­th doing it that wa­y, ac­cor­ding to the co­m­men­ter­s:

It's insecure because you can't see the code before running it because it's piped.

We­ll, that makes it exac­tly as in­se­cu­re as eve­ry un­sig­ned bi­na­ry you ever do­wn­loade­d. Or, le­t's be ho­nes­t, eve­ry she­ll scrip­t, py­thon scrip­t, perl script etc you ha­ve ever do­wn­loade­d. Or you au­dit the­m?

Who exac­tly is being pre­ven­ted from au­di­ting it by ha­ving it pre­sen­ted this wa­y? Is the in­ter­sec­tion of "peo­ple who can au­dit this scrip­t" and "po­ple who do­n't un­ders­tand pi­pes" not emp­ty?

For tho­se who can au­di­t, this makes no di­ffe­ren­ce. For tho­se who can't au­di­t, this makes no di­ffe­ren­ce.

It would be better if I provided a hash of the file to know it's not tampered

And how would you know the hash is not tam­pe­re­d? Wat you wan­t, rea­lly is a di­gi­tal sig­na­tu­re of the scrip­t.

If you trust google (and usua­ll­y, peo­ple do­), then you know tha­t:

  1. The script was uploaded by me (che­­ck the his­­to­­­ry of the fi­­le)

  2. The script has not been ta­m­­pe­­red from the re­­po (si­n­­ce it's a se­­cu­­re co­n­­ne­c­­tion and ye­s, the­­re is a hash of the re­­vi­­sio­­n)

If you do­n't trust google, then you do­n't know who uploaded it, and if you do­n't trust me, you do­n't ca­re who uploaded it, even if it's sig­ned (be­cau­se it's sig­ned by so­meo­ne you do­n't trus­t).

How does the user know it's not malware?

He does­n'­t. Li­fe is like tha­t.

Why should the user trust you?

He should­n'­t. OTOH, we­re he so in­cli­ne­d, he can che­ck who wro­te it, and that I am a real per­so­n, wi­th a long his­to­ry of sha­ring co­de on­li­ne and no clai­ms of ever pus­hing ma­lwa­re.

This is more insecure because it downloads on every run

You do­n't need to run ma­lwa­re mo­re than on­ce, an­ywa­y. So, not mu­ch of a di­ffe­ren­ce.

This propagates bad habits

So does Dunki­n' Do­nu­ts, and noone pos­ts about it at re­ddi­t. But in any ca­se, su­re, it's a bad ha­bi­t. Big dea­l.

So, is it se­cu­re? He­ll no! Is it sig­ni­fi­can­tly le­ss se­cu­re than ins­ta­lling a ran­dom PPA you see men­tio­ned in a fo­ru­m? Ma­y­be sli­gh­tl­y. Is it le­ss se­cu­re than run­ning ran­dom un­sig­ned bi­na­rie­s? He­ll no. Is it le­ss se­cu­re than do­wn­loading and run­ning it? No. Is it le­ss se­cu­re than buil­ding a ran­dom thing from sour­ce? He­ll no.

But is it le­ss se­cu­re than the other rea­lis­tic wa­ys in whi­ch I can gi­ve you a 100+ li­ne chunk of py­thon co­de that wo­rks as a web bro­w­se­r? I do­n't thi­nk so.

In the con­text of "he­re's the co­de for it, it can do this", this is not sig­ni­fi­can­tly in­se­cu­re. It's mo­re or le­ss as in­se­cu­re as the al­ter­na­ti­ve­s. Wi­th the ad­van­ta­ge tha­t, if you wan­t, you can au­dit it. It's 128 li­nes of co­de (a­s­su­ming you trust Qt and Py­Qt and Py­tho­n, etc)

So the­re.

El motivo de la visita de la presidenta al papa, según la UCR

"Se ve que la vi­si­ta de la Pre­si­den­ta al Pa­pa no sir­vió de na­da [...] Son ab­so­lu­ta­men­te irres­pe­tuo­so­s. Di­cen que no van a acep­tar nin­gu­na mo­di­fi­ca­ción y ha­blan de de­mo­cra­ti­za­r"

—Jo­sé Ca­no, je­fe del blo­que de sena­do­res de la UCR

Por fin al­guien en es­te país que des­ta­pa la olla, que mues­tra la en­tre­te­la de la po­lí­ti­ca, que ba­te la jus­ta, que can­ta las cua­ren­ta, que ca­carea don­de al­guien, sí, es­ta vez pu­so el hue­vo.

Me sa­co el som­bre­ro, es má­s, me sa­co el cue­ro ca­be­llu­do an­te Jo­sé Ca­no, ín­cli­to sena­dor ra­di­cal y su ca­pa­ci­da­d, cual Mr. Mús­cu­lo par­la­men­ta­rio, de sa­car to­da la su­cie­dad que el ofi­cia­lis­mo es­con­de.

¿Por­que ya sa­be­n, el mo­ti­vo por el que la pre­si­den­ta fue al Va­ti­ca­no? Pa­ra que los ra­di­ca­les ten­gan más sena­do­res pue­dan así cam­biar los pro­yec­tos de la ma­yo­ría. O tal vez pa­ra que no les ha­gan na­na en los sen­ti­mien­to­s. En­ton­ce­s, pa­ra la pr­óxi­ma elec­ción de sena­do­res, vo­te Vi­ggo Mor­ten­sen / Ara­gor­n. Ha­ga fe­liz a un pa­pa.

Olvidate del modo "incógnito", usá un browser descartable!

No es por­que lo ha­ya es­cri­to yo (bue­no, sí) pe­ro si ne­ce­si­tás un bro­w­ser "lim­pio" sin cookie­s, etc, pa­ra tes­tear al­go, po­drías en­con­trar ma­ne­ras peo­res que usar De­vi­cen­zo así:

rm -f ~/.config/ralsina/devicenzo.conf
curl https://devicenzo.googlecode.com/svn/trunk/devicenzo.py | python

La pri­me­ra lí­nea eli­mi­na to­da la con­fi­gu­ra­ció­n, cookie­s, etc que pue­das te­ne­r, y la se­gun­da des­car­ga la úl­ti­ma ver­sión (no te preo­cu­pes, tar­da dos se­gun­do­s) y la lan­za.

Y voi­lá, un bro­w­ser re­cién des­em­ba­la­do, ba­sa­do en we­bki­t, sin his­to­ria pre­via, ni cookie­s, ni con­fi­gu­ra­ció­n, y ra­zo­na­ble­men­te fea­tu­re-­com­ple­te.

Carrió es así y piensa eso, vótenla si quieren

Spa­nis­h-on­ly be­cau­se it's about ar­gen­ti­ne po­li­ti­cs


"Es ma­ra­vi­llo­so lo que es­tá pa­san­do aun­que sea muy di­fí­cil y aun­que ha­ya muer­to­s"

“La tra­ge­dia de La Pla­ta es una tra­ge­dia má­s. No hu­bie­ra pa­sa­do na­da si no el nú­me­ro de muer­tos no hu­bie­ra si­do tan im­por­tan­te. En con­se­cuen­cia esos muer­tos des­de una mi­ra­da son los que se lle­va Dios pa­ra que al­go pa­se [...] Al­go pa­só muy gra­ve ¿y que es lo tan gra­ve? ¿La llu­via? No. ¿La inun­da­ción [...]? No­."

"¿­Por fa­vor es­to no hay me­dios no? Ja­ja­ja­ja"

—Li­li­ta Ca­rrió

¿Qué pa­sa cuan­do vos pen­sás que to­do lo que pa­sa pa­sa por un mo­ti­vo? ¿Qué pa­sa cuan­do vos es­tás con­ven­ci­do de que sa­bés ese mo­ti­vo? Pa­sa es­to. Pa­sa que ha­blás de los muer­tos de ha­ce dos días mien­tras te ca­gás de ri­sa y con­tás chis­tes.

Des­pués de to­do, se mu­rie­ro­n, sí, pe­ro se mu­rie­ron por­que dio­s, que es bue­no, quie­re que Li­li­ta sea pre­si­den­ta, ¿no? O al­go así. Ese creer que to­do tie­ne un mo­ti­vo es la raíz de la ab­so­lu­ta in­ca­pa­ci­dad de em­pa­ti­zar de Li­li­ta en es­te ca­so.

Por­que tie­ne tres op­cio­nes, pue­de creer que a ve­ces pa­san co­sas ma­las por ca­sua­li­dad y dios no tie­ne na­da que ve­r, y se ha­cen peo­res por im­pe­ri­cia, o por ne­gli­gen­cia, o pue­de creer que ese dios en que ella cree hi­zo al­go ma­lo, o pue­de creer que en rea­li­dad es al­go bue­no, pe­ro ella es la úni­ca que lo ve.

Cla­ro, se mu­rie­ron 50, 60 per­so­na­s, o las que sean, pe­ro es bue­no, por­que va a ha­cer que cam­bie al­go (y no, no va a ha­cer que cam­bie un ca­ra­jo na­da im­por­tan­te).

Y en­ton­ces la gen­te que vea es­to, por­que por suer­te al­guien lo gra­bó, y vea que Li­li­ta se ca­ga de ri­sa mien­tras ha­bla de los muer­to­s, y cuen­ta chis­tes, y di­ce que es ma­ra­vi­llo­so aun­que se ha­yan muer­to, po­bre­ci­to­s, se­pa lo que pien­sa Li­li­ta.

Por­que Li­li­ta sí, pien­sa que to­do lo que pa­sa tie­ne un mo­ti­vo, y cree que ella es la que nos va a sal­var a to­do­s, y que to­do lo ma­lo que pa­se va a lle­var­la a ese 60% del que ha­bla al prin­ci­pio, y que de­trás de to­do lo que pa­se es­tá dio­s, que quie­re que ella sea pre­si­den­ta.

Te­ne­mos una co­sa a fa­vo­r, eso sí, no­so­tro­s, los que sa­be­mos que dios no exis­te, que la llu­via no la man­da el ta­ta dio­s, que las inun­da­cio­nes son una com­bi­na­ción de una llu­via de la pu­ta ma­dre y fal­ta de obra­s, y sa­be­mos que Li­li­ta es­tá co­mo una ca­bra.

Po­de­mos ver­la ha­bla­r, es­cu­char lo que di­ce, y es­cri­bi­r, de­cir­le a nues­tros ami­go­s, o lo que sea, Li­li­ta es así. Li­li­ta cree eso. Li­li­ta cree que es ma­ra­vi­llo­so que se mue­ran 60 per­so­nas por­que eso la va a ayu­dar a ga­nar elec­cio­nes. Y si te mu­rie­ras vos tam­bién le ve­ría el la­do bue­no.

Y ni si­quie­ra es cier­to. Por­que Li­li­ta no rom­pe más el 1% ni aun­que cai­ga un me­teo­ri­to. Por­que Li­li­ta es así, y Li­li­ta cree eso.

Vó­ten­la si quie­ren.

Serbo-Croatian version of PyQt By Example!

A whi­le ago I got an email from An­ja Skr­ba asking me for per­mis­sion to trans­la­te Py­Qt by Exam­ple in­to Ser­bo­-­Croa­tian.

And he­re it is all ni­ce and trans­late­d. Lo­ts of thanks to An­ja for the hard wo­rk!


Contents © 2000-2023 Roberto Alsina