Miglior linguaggio di programmazione iniziale per chi è interessato alla sicurezza IT [chiuso]

1

Backstory:

Al momento sono una persona con una conoscenza molto limitata su computer e programmazione, ma mi piacerebbe cambiarla. Ho scoperto che sono principalmente interessato alla sicurezza IT e che mi piacerebbe soprattutto saperne di più su questo (non negherò che Skyfall non ha avuto un ruolo in questo, ma questo non è certo il motivo principale) a differenza, ad esempio, dello sviluppo di giochi / app e simili. Non so esattamente perché, forse ha qualcosa a che fare con il fatto che io stesso sono stato vittima di virus e phising un paio di volte.

Domanda stessa:

Recentemente ho deciso che mi piacerebbe imparare il mio primo linguaggio di programmazione. Questa decisione è separata dal mio interesse per la sicurezza IT, ma vorrei che la mia lingua madre fosse la lingua più utile per qualcuno che vuole saperne di più sulla sicurezza IT. Credo che questo sarebbe uccidere 2 uccelli con 1 pietra. Quale sarebbe questa lingua e perché?

    
posta OmnipresentAbsence 17.02.2013 - 18:55
fonte

1 risposta

5

Per capire veramente la sicurezza IT (e, più in generale, i computer), dovrai sapere come vanno le cose, quindi, prima o poi, dovrai imparare il montaggio per una o due architetture (preferibilmente più di due) . I codici di exploit di basso livello (ad esempio per overflow del buffer) non hanno senso se non si conosce l'assembly. Quindi passare a C, che è molto diffuso e un solito target per tali exploit. C è facile da imparare se conosci l'assemblaggio. Una volta che conosci l'assembly e C, puoi imparare lingue più complesse (ad esempio C # o Java); la tua comprensione del funzionamento interno della macchina ti guiderà attraverso le caratteristiche più "magiche" di tali linguaggi avanzati. Seguendo questo percorso, puoi provare i linguaggi di scripting, in cui ogni elemento linguistico nasconde un sacco di calcoli.

Questo ordine di apprendimento, da basso a alto livello, è un ideale ; Devo ancora incontrare una sola persona che si è attenuta rigorosamente ad essa. Nel mio percorso di apprendimento, ho iniziato con Basic ("versione 1.0", dal 1984) e poi passato all'assemblaggio (su una 6809E CPU ) perché Basic era veramente troppo lento sulla mia macchina (una CPU da 1 MHz non ha molti muscoli). Più tardi, ho imparato Pascal, poi C, e un po 'più di montaggio. In seguito, ho fatto un sacco di C, ho toccato molti altri linguaggi (ad esempio Caml, PostScript, Prolog, Objective-C, C ++), alcuni script (Unix sh , Perl ...) e anche più assembly (su diversi distinti architetture). Anche più tardi, ho fatto un sacco di Java. Ho anche provato Forth, Scheme, un po 'più di montaggio. Ultimamente, ho fatto un po 'di C # (che è molto simile a Java), PowerShell, e ho sofferto di un focolaio di VB.

Ciò che è da ricordare è che ogni lingua ha le sue peculiarità; raggiungerai l'equivalente di programmazione di illuminazione se riesci a vedere oltre le particolarità di una lingua specifica e concentrati sull'algoritmo sottostante. Conoscere un sacco di lingue e le architetture ti aiuteranno molto. Evidenzierà inoltre quali caratteristiche linguistiche sono particolarmente "pericolose" da usare, con cui intendo inclini a innescare debolezze sfruttabili. Al contrario, se ti limiti a una sola lingua, allora sarai solo un mediocre professionista della programmazione e della sicurezza IT.

Esistono altri percorsi di apprendimento e alcune persone sono felici con loro. Molti programmatori di apprendisti iniziano con qualcosa di alto livello come Python e solo più tardi provano a vedere "sotto il cofano" come il computer fa davvero le cose . Io tendo a favorire il percorso dal basso verso l'alto perché è simile al percorso che ho seguito io stesso, ma non c'è assolutamente bisogno in questo.

    
risposta data 17.02.2013 - 19:40
fonte

Leggi altre domande sui tag