2012-02-05 13 views
5

C'è un modo per vedere un nuovo processo con il nome 'X' che inizia in python (idealmente) o bash? So che posso guardare i processi in esecuzione, ma non è abbastanza veloce per le mie esigenze. L'unico pensiero che posso pensare è come aggrapparsi al nuovo processo e registrarlo, ma come?Python per l'avvio del processo?

Ulteriori informazioni: faccio parte di un team CCDC (http://www.nationalccdc.org/) e sono nella squadra blu. La premessa della competizione è quella di offrire agli studenti una rete per difendersi dagli addetti alla penna professionale per aiutare la prossima generazione di esperti di sicurezza a essere migliori. Quello che voglio fare è caricare questo script python sulle scatole di Linux e controllare certi comandi che sono in esecuzione, che probabilmente verrebbero usati solo dal team rosso, ad esempio il comando "chattr". Idealmente mi piacerebbe essere in grado di fornire alla sceneggiatura un elenco di processi da guardare. Riesco a capire quella parte ma non so come guardare per un processo di deposizione delle uova.

Qualsiasi direzione è apprezzata. Grazie.

risposta

4

Non conosco alcun modo per un processo che non ha i privilegi di root per essere avvisato quando un processo viene avviato con qualsiasi mezzo su un sistema Linux pienamente funzionante. Se il polling non è abbastanza veloce, dovrai fare un po 'di hackering serio.

Se hai root, questo è possibile. Se no, non posso vederlo.

Con root, è possibile impostare una sostituzione a livello di sistema delle chiamate di sistema fork e exec che fornisce la notifica desiderata. Questo potrebbe essere nel kernel, o potrebbe essere un hack LD_PRELOAD.

Questo vale non solo per Python; anche con un programma C, non conosco uno "inotify per la creazione del processo".

+0

Grazie per la direzione! Questo suona come quello che voglio fare. Abbiamo accesso root alle caselle. L'intera competizione viene eseguita tramite VM. – Trcx

+0

@Trcx Ooh, se hai root puoi implementare un sistema MAC come SELinux e tenerli fuori completamente. – Borealid

+0

Il problema è che non ho le conoscenze di programmazione su come farlo, ma questo è ciò che Google è per. > _> Grazie. – Trcx

1

non ho ancora testato questa idea, ma su Linux viene dato ogni processo una directory sotto /proc/<it's process id>/ Se è stato aperto un inotify sulla creazione di directory in /proc si potrebbe essere in grado di monitorare la creazione di directory di processo e poi vedere se /proc/<dir>/cmdline corrisponde il processo stai cercando. Questo è solo un pensiero, spero che aiuti!

+2

Anche questo era il mio pensiero. Sfortunatamente, sembrerebbe che dal momento che procfs non sia un vero e proprio fs, non è inotify di nuove directory :( – nfirvine

Problemi correlati