Dominare il mondo con robot scritti in Perl - Warm up Hackmeeting @ Aula Occupata P2 Unical

1,106 views

Published on

Robot, spider, crawler conoscerli, capirli, usarli e difendersi quando necessario!

Published in: Education, Technology, Design
  • Be the first to comment

  • Be the first to like this

Dominare il mondo con robot scritti in Perl - Warm up Hackmeeting @ Aula Occupata P2 Unical

  1. 1. Dominare il mondo con robot scritti in Perl <ul><li>Qualcuno visita il tuo sito, </li></ul>e non è umano... [email_address] @105.7 FM fzz fzz
  2. 2. Robot? <ul><li>Robot : indica una qualsiasi macchina , in grado di svolgere più o meno indipendentemente un lavoro al posto dell'uomo .
  3. 3. Software Robot: </li></ul>Programmare al posto dell'uomo???
  4. 4. Software Robot? <ul><li>Ma mi faaaaccia il piacere!!!
  5. 5. Piuttosto possono eseguire
  6. 6. operazioni ”software” al posto
  7. 7. dell'uomo, magari ripetitive. </li></ul>
  8. 8. Web Robot <ul><li>Sono programmi che navigano il Web automaticamente.
  9. 9. Alcuni motori di ricerca li usano per indicizzare i contenuti web
  10. 10. Altri li usano per raccogliere contenuti sul web, come indirizzi email ( spammer ).
  11. 11. Altri li usano per altro </li></ul>
  12. 12. La prestigibilizzazione <ul><li>Sono conosciuti come: </li><ul><li>Robot
  13. 13. Spider
  14. 14. Crawler </li></ul><li>Perl opiù usati per conto dei motori di ricerca, come Google e Yahoo!. </li><ul><li>Google: googlebot
  15. 15. Yahoo!: slurp </li></ul></ul>
  16. 16. robots.txt (1/2) <ul><li>”Robots should be nice to
  17. 17. the servers they visit”
  18. 18. Il file robots.txt
  19. 19. Esempio: </li></ul>User-agent: Google Disallow: User-agent: * Disallow: / <ul><li>Posso bloccare i robot ”cattivi”? </li></ul>
  20. 20. robots.txt (2/2) <ul><li>In teoria si, in pratica no!
  21. 21. I robot possono ignorare
  22. 22. il file robots.txt
  23. 23. Problemi :
  24. 24. Indicizzazioni non desiderate (email, contenuti)
  25. 25. Sovraccarico sul server (botnet)
  26. 26. Soluzioni :
  27. 27. Blocco IP o range di IP </li></ul>
  28. 28. Robot in giro, Server in Paranoia! (1/4) <ul><li>Alcuni robot servono a scovare vulnerabilità sui server in giro per il mondo.
  29. 29. Con uno scan di IP random (non penso si siano spinti oltre IPv4) controllano solitamente che siano attive le seguenti porte : </li><ul><li>22 SSH
  30. 30. 80 HTTP
  31. 31. 8080 HTTP </li></ul></ul>
  32. 32. Robot in giro, Server in Paranoia! (2/4) <ul><li>Scan SSH : per un
  33. 33. accesso totale alla
  34. 34. macchina in base ad un
  35. 35. file di possibili password.
  36. 36. Scan HTTP : verificano che
  37. 37. sulla macchina vi siano
  38. 38. determinate vulnerabilità (note) e tentano di exploitarle.
  39. 39. Esempi: spam, operazioni illecite per conto tuo. </li></ul>
  40. 40. Robot in giro, Server in Paranoia! (3/4) <ul><li>Esempio:
  41. 41. Dai log del server Web Apache
  42. 42. 201.116.227.194 - - [06/May/2010:05:16:29 +0200] &quot;GET
  43. 43. ///scripts/setup.php HTTP/1.1&quot; 404 324 &quot;-&quot; &quot;ZeW&quot;
  44. 44. 201.116.227.194 - - [06/May/2010:05:20:03 +0200] &quot;GET
  45. 45. //phpMyAdmin//scripts/setup.php HTTP/1.1&quot; 404 336 &quot;-&quot; &quot;ZeW&quot;
  46. 46. 201.116.227.194 - - [06/May/2010:05:23:40 +0200] &quot;GET
  47. 47. 124.115.146.99 - - [02/May/2010:15:47:15 +0200] &quot;GET
  48. 48. //zen/admin/includes/stylesheet.css HTTP/1.1&quot; 404 277 &quot;-&quot; &quot;Mozilla/4.0
  49. 49. (compatible; MSIE 6.0; Windows 98) &quot; </li></ul>
  50. 50. Robot in giro, Server in Paranoia! (4/4) <ul><li>Paranoia!!
  51. 51. Accesso SSH su porte alte, con RSA, mai in chiaro !
  52. 52. Installazione software ”stable”, aggiornamento continuo sui bollettini della sicurezza, su exploit e vulnerabilità in generale.
  53. 53. Regole di Firewall ”toste”
  54. 54. Thor </li></ul>
  55. 55. Web Robot utili! <ul><li>Oltre ad essere crawler
  56. 56. o perfidi scannatori in barba
  57. 57. al prossimo, alcuni programmi
  58. 58. possono fungere da
  59. 59. Web Robot utili. </li><ul><li>Operazioni di routine sul web
  60. 60. Operazioni automizzate
  61. 61. SMS gratis :) </li></ul><li>Navigano il web in modo automizzato ma non random, eseguono brevi e/o coordinati Task </li></ul>
  62. 62. Essere un Browser <ul><li>Questi programmi per navigare il web devono somigliare ad un browser!
  63. 63. Essere un User Agent </li><ul><li>Firefox, Safari, Explorer.. </li></ul><li>Comunicare via HTTP </li><ul><li>GET,POST </li></ul><li>Estrapolare ed analizzare
  64. 64. HTML e quant'altro </li><ul><li>JavaScript, CSS, immagini,ecc. </li></ul></ul>
  65. 65. Quale linguaggio? <ul><li>Si può usare qualunque linguaggio di programmazione che supporti HTTP o almeno i Socket
  66. 66. Dovrebbe avere qualche funzione di supporto per la gestione dei Cookie
  67. 67. Dovrebbe essere veloce, figo..
  68. 68. Dovrebbe essere... </li></ul>
  69. 69. Perl! <ul><li>Scripting
  70. 70. Cross-platform
  71. 71. Ad ”oggetti”
  72. 72. (Sim SalaBim!)
  73. 73. Simile a PHP
  74. 74. Moduli a gogo
  75. 75. LWP::UserAgent
  76. 76. Altri: Ruby, Python, Java, C ( cURL ), ecc.. </li></ul>
  77. 77. Ragionare come un browser
  78. 78. Autenticarsi my $ua = LWP::UserAgent->new(); my $cookiejar = HTTP::Cookies->new(); $ua->cookie_jar($cookiejar); $ua->agent( &quot;Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)&quot; ); my $res = POST 'http://www.sitopalloso.com/login.php', [ login => $user, password => $pass ]; $content = $ua->request($res)->as_string; push @{ $ua->requests_redirectable }, 'POST'; say &quot;Zi non ti hanno creduto molto..” unless $content =~ /Benvenuto/;
  79. 79. Vita da Robot <ul><li>Non sottovalutate
  80. 80. la potenza di
  81. 81. robot in esecuzione
  82. 82. su un 486 di pochi
  83. 83. centimentri! </li></ul>
  84. 84. goText <ul><li>Web robot per invio SMS via Web
  85. 85. WWW::SMS
  86. 86. Risparmia & Cumparisci </li></ul>
  87. 87. AntiRobot? <ul><li>Captcha (ReCaptcha)
  88. 88. Javascript ”tosto”
  89. 89. Domande ”umane”
  90. 90. Finisce qui???? </li><ul><li>OCR
  91. 91. Algoritmi
  92. 92. Istanze dei browser (WWW::Mechanize::IE) </li></ul><li>Finchè il cammello va.. </li></ul>
  93. 93. Lascialo andare!! :-)

×