Forum: Italian Ruby user group Compilare ruby

D61b870b87fe86a90ec57a19550ac72b?d=identicon&s=25 Fabrizio Soppelsa (Guest)
on 2013-12-19 10:49
(Received via mailing list)
Ciao, tu che stai leggendo, se sei un purista ignora questa mail :-)

A volte sulle macchine devo dare accesso ad alcuni utenti esterni
(supporti, clienti, consulenti). In questi script vi sono procedure
aziendali - si direbbe segreti industriali - che automatizzano la nostra
infrastruttura oltre che metodi comodi di recupero credenziali, e trovo
inconveniente che qualcuno possa fare cat myscript.rb, leggere, copiare,
o anche modificare accidentalmente questi script.

So che dall'avvento delle release >= 1.9.x  stata migliorata la VM e vi
sono interpreti alternativi, come RBX o JRuby, che creano bytecode.
Scrivo per chiedere se potete consigliarmi qualche best practice o
condividere esperienze (compatibilit, problemi) per *compilare* gli
script di sistema che scrivo in Ruby in binari eseguibili. Questi binari
devono girare su GNU/Linux x86_64. Li distribuisco automaticamente con i
miei .rpm o .deb privati o con puppet.

Cosa ne pensate?

Fabrizio.
6dbddfda34303f8d83620f7293612671?d=identicon&s=25 Tommaso Visconti (Guest)
on 2013-12-19 11:05
(Received via mailing list)
Il 19/12/13 10:49, Fabrizio Soppelsa ha scritto:
> sono interpreti alternativi, come RBX o JRuby, che creano bytecode.
> Scrivo per chiedere se potete consigliarmi qualche best practice o
> condividere esperienze (compatibilit, problemi) per *compilare* gli
> script di sistema che scrivo in Ruby in binari eseguibili. Questi binari
> devono girare su GNU/Linux x86_64. Li distribuisco automaticamente con i
> miei .rpm o .deb privati o con puppet.
>
> Cosa ne pensate?

Al codemotion o al rubyday, 2012 o 2013 (sorry, la mia memoria non
riesce a fare di meglio :D) c'era una presentazione di Github in cui,
tra le altre cose, spiegavano come offuscano il codice ruby per le
installazioni che fanno direttamente dai clienti enterprise.

Le vaghe indicazioni potrebbero aiutarti nel ricercare la presentazione
online :)
5ffafe70176a99f175d16192fd5be69e?d=identicon&s=25 Luca P. (luca_p)
on 2013-12-19 11:21
(Received via mailing list)
Per semplicit, non essendo probabilmente script enormi e neanche usati
tutti i giorni, forse ti conviene un binario in C o in Go.

Inviato da iPhone
D61b870b87fe86a90ec57a19550ac72b?d=identicon&s=25 Fabrizio Soppelsa (Guest)
on 2013-12-19 11:27
(Received via mailing list)
On 12/19/2013 11:21 AM, Luca Pradovera wrote:
> Per semplicit, non essendo probabilmente script enormi e neanche usati tutti i
giorni, forse ti conviene un binario in C o in Go.

In realt sono piuttosto complessi perch automatizzano setup,
aggiornamenti, backup e quant'altro... Li modifico spesso aggiungendo o
togliendo pezzi (poi si autodistribuiscono). Ti prego non dirmi che devo
riscriverli in C :-D

>> Al codemotion o al rubyday, 2012 o 2013 (sorry, la mia memoria non riesce a
fare di meglio :D) c'era una presentazione di Github in cui, tra le altre cose,
spiegavano come offuscano il codice ruby per le installazioni che fanno
direttamente dai clienti enterprise.
>>
>> Le vaghe indicazioni potrebbero aiutarti nel ricercare la presentazione online
:)

Ottimo grazie, cerco.

FS.
2dd4747f79885cbdb629d703a9a64ff4?d=identicon&s=25 Rocco Galluzzo (byterussian)
on 2013-12-19 11:28
(Received via mailing list)
Ciao,

la compilazione pu andare solo se vuoi difenderti da cat myscript.rb e
poco altro, non la considerare una sicurezza per le credenziali presenti
nello script, se necessaria adotta soluzioni alternative.


2013/12/19 Tommaso Visconti <tommaso.visconti@gmail.com>
D61b870b87fe86a90ec57a19550ac72b?d=identicon&s=25 Fabrizio Soppelsa (Guest)
on 2013-12-19 11:45
(Received via mailing list)
On 12/19/2013 11:27 AM, Rocco Galluzzo wrote:
> Ciao,
>
> la compilazione pu andare solo se vuoi difenderti da cat myscript.rb e
> poco altro, non la considerare una sicurezza per le credenziali presenti
> nello script, se necessaria adotta soluzioni alternative.

S, desidero proprio questo: che quello che pubblico su Github sia
pubblico, ma che le procedure interne aziendali (proprio le cose che
facciamo, in un determinato ordine con determinate condizioni con
determinate ottimizzazioni e sotto determinate regole) non possano
essere lette, almeno non cos facilmente :-)

Cio lo desidera il mio capo.

FS.
857c770ccb0a8e869994f663f09b22ec?d=identicon&s=25 Paolo Perego (Guest)
on 2013-12-19 11:52
(Received via mailing list)
Ciao Fabrizio, faccio la domanda banale. Non riesci a risolverla con
le permission Unix?

Compilare non ti cautela del tutto, se  un segreto quello che vuoi
difendere, con xargs recuperi le stringhe... e uno bravo ti
disassembla l'ELF.
Se vuoi compilare allora devi necessariamente anche offuscare il
compilato per evitare che qualcuno abbia accesso a quelle
informazioni.

Altrimenti la cosa che puoi fare  questa. Dai l'ownership del file
.rb ad un utente e 0 a group e other. Crei un launcher in C, lo fai
suid a root [1] (attenzione), e nel launcher cambi l'euid e fai la
system di "ruby file.rb".

Pi semplice? Fai firmare una NDA ai consulenti esterni :)


[1] (attenzione) il programma suid a root devi farlo in modo che non
accetti input dall'esterno, non onori alcuna variabile d'ambiente e
quindi non possa essere usato in una privilege escalation.

Paolo


2013/12/19 Fabrizio Soppelsa <fsoppelsa.ml@gmail.com>:
> determinate ottimizzazioni e sotto determinate regole) non possano
> essere lette, almeno non cos facilmente :-)
>
> Cio lo desidera il mio capo.
>
> FS.
> _______________________________________________
> Ml mailing list
> Ml@lists.ruby-it.org
> http://lists.ruby-it.org/mailman/listinfo/ml



--
$ cd /pub
$ more beer

The Application Security blog you really want to read:
http://armoredcode.com
4aa32d96389aab5d2d398b6dbf84fee5?d=identicon&s=25 Gianluca Padovani (Guest)
on 2013-12-19 13:14
(Received via mailing list)
Ciao Fabrizio,
per windows c' una cosa del genere https://github.com/larsch/ocra non
so se c' anche su linux o se  poi semplice modificarla per farla
andare anche su linux ...

C' un thread simile qu https://www.ruby-forum.com/topic/4417944

Ti posso, aggiungere che tempo fa girando su internet ho trovato un
prodotto simile a ocra, a pagamento, che sembrava molto completo,
purtroppo non riesco a ritrovare il link...

Saluti
Gianluca

Il 19 dicembre 2013 11:51, Paolo Perego <thesp0nge@gmail.com> ha
scritto:
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.