Quantcast
Viewing all 236 articles
Browse latest View live

EKOPARTY 2014 - LOCKPICKING & CONFERENCE REVIEW

Llegaron los 10 años de la Ekoparty a lo grande. Este año se pudo disfrutar de nuevos desafíos y charlas increíbles en un clima donde la gente se divierte y la pasa bien. Fiel a su nombre la Ekoparty fue una fiesta en la que participaron especialistas de tecnología y desarrollo de empresas, entusiastas de la tecnología y estudiantes.



Como charlas se destacaron la de Cesar Cerrudo, que mostró cómo es posible vulnerar la seguridad de los controladores de trafico vehicular instalados en las principales ciudad de EEUU; Rahul Sasi, de India, que expuso sobre la forma de hackear un sistema de cable hogareño; y Chris Valasek que mostró cómo hackear el sistema de computadoras de un auto.

Si querías participar de los desafíos te encontrabas con muchos para elegir como por ejemplo el de ESET  de malware, unpacking, desofuscación y reversing,  el de “Punch the Boss” que te daba la posibilidad de practicar un golpe a tu jefe y el  ya clásico desafío de lockpicking llevado a todo un nuevo nivel.  Y si esto fuera poco, tenias la posibilidad de armar una antena en el stand de la 2600.

En el stand de Infobyte encontrabas un desafío completo que mezcló tanto seguridad física como informática en una caja de 2x2m.



Se recreó un área física, en donde los participantes van utilizaron todas sus habilidades para identificar, obtener información, vulnerar y aislar desafíos relacionados tanto a la Seguridad Física como Informática. 


El control de acceso al área estaba limitada por cerraduras de varios tipos (tambor, trabex, candados, biométria, entre otras cosas). Hubo distintos escenarios como por ejemplo un desafío de criptografía o de análisis de un binario.  Algo fundamental, era trabajar en forma colaborativa para lograr con el equipo la mayor cantidad de desafíos posibles en el menor tiempo.


Participaron mas de 20 equipos.

Además, podías encontrar el taller de lockpiking:


No podía faltar el clásico wardriving en el trencito de la alegría. En esta actividad se buscan las redes wi - fi disponibles y se guarda la información de tipo de encriptación y posición GPS en un mapa para poder analizarla después. Para sumarle un grado de dificultad, cerveza libre para todos.

Para quien quería conocimiento mas profundo sobre un tema, podía asistir  la gran variedad de workshops que iban desde el futuro de la seguridad de bitcoins hasta Pentesting colaborativo.

Se destaca el workshop de Faraday, nueva herramienta de Pentesting Colaborativo con mas de 40 asistentes dado por los programadores del software.



Los 10 años de la Ekoparty se festejaron con mas de 2.000 participantes que aprendieron, se desafiaron y por sobre todo se divirtieron a lo grande en 3 días intensos de charlas, desafíos y fiesta.


Los esperamos en la Ekoparty 2015.

EKOPARTY 2014 - LOCKPICKING & CONFERENCE REVIEW


With a little bit of the time for the dust to settle, we can now unequivocally say the 10th edition of the Ekoparty was a huge success! Like every other year we tried to step up our game a bit. With new challenges, a new location (punta carrasco) and like always new research! Faithful to its´ name, the Ekoparty really was a party for IT specialists, enthusiasts and for students. 



One of the talks which really got people excited was from Cesar Cerrudo who showed how to hack the weight sensors under roads to cause traffic problems in different cities in Argentina, USA and in Europe. Later, Rahul Sasi demonstrated how one can hack into TV lines and control what someone sees on their TV; and Chris Valasek showed how to hack into a car´s computers

If challenges were more your things, you had a plethora to choose from. You had ESET´s which was a malware challenge involving unpacking, unobfuscation and reversing. If you had to let off a bit stress you had the excellent ¨Punch the Boss¨ that measured the force of your punch. There was also the lockpicking challenge but amped up quite a bit. Finally, if that wasn´t enough you could put together an antenna in 2600´s stand. 

In Infobyte´s stand we had the ¨Box¨ challenge that mixed together physical security as well as IT secuirty all in a 2x2m box.


The idea was to challenge ALL of a participant´s abilities, whether it be psychical security, IT security or encryption.


The entrance was locked a number of different ways with many different locks (tumbler, lever, padlocks, biometric readers among others). There were different parts with a cryptography test and binary analysis. The most important thing, 
was to work as a team to obtain the best score in the shortest time. 


Over 20 teams participated.
Additionally, you could check out the lockpicking workshop.

Of course, we couldn´t forget the all important wardriving in a fabulous party bus. This activity is all about finding available wi-fi networks, saving the encrypted information and the GPS position so it could be analyzed afterwards. To increase the difficulty level a bit, there was free beer for everyone.

For those that were looking to really gain a deeper understanding about topics ranging from the future of bitcoin to collaborative pentesting there were ample workshops to choose from.

In the Faraday workshop for collaborative pentesting, we were lucking enough to have over 40 attendees there to listen to the developers explain how to use the product as well as a couple practice examples.


We were able to celebrate the EPIC 10th Ekoparty with more than 2,000 people. Between excellent speakers, challenges and of course great attendees, we think the majority of people left with a smile on their face waiting for next year.

See you in 2015!

Faraday v1.0.7 Release


We´re happy to announce Faraday v1.0.7. After several months of hard work, finally we've been able to release the new version! Enjoy!



Changes made to the UX/UI:
  • Improved Vulnerability Edition usability, selecting a vulnerability will load it's content automatically.
  • ZSH UI now is showing notifications.
  • ZSH UI displays active workspaces.
  • Faraday now asks confirmation when exiting out. If you have pending conflicts to resolve it will show the number for each one.
  • Vulnerability creation is now supported in the status report.
  • Introducing SSLCheck, a tool for verifying bugs in SSL/TLS Certificates on remote hosts. This is integrated with Faraday as a plugin.
  • Shodan Plugin is now working with the new API.
  • Some cosmetic changes for the status report.
Bugfixes:
  • Sorting columns in the Status Report is running smoothly.
  • The Workspace icon is now based on the type of workspace being used.
  • Opening the reports in QT UI opens the active workspace.
  • UI Web dates fixes, we were showing dates with a off-by-one error.
  • Vulnerability edition was missing 'critical' severity.
  • Objects merge bugfixing
  • Metadata recursive save fix
We really tried to make it so the users would be able to generate a vulnerability without any hassle. 


The way to make a new vulnerability is easy. You select a target, you choose the type of vulnerability and the severity, after, you fill out the other parts, click OK and you´re good to go.
  • Made significantly easier for this vulnerability edition
Selecting a vulnerability uploads its content.
  • A SSLCheck Plugin was added

Also, we added a plugin for Faraday that is a tool to verify SSL/TLS errors for remote hosts. A Python script using code from OpenSSL, lets a user check the SSL/TLS remote server. The potential vulnerabilities (or the real ones) show up in red on the analysis report, that one can easily export to XML format.

Follow the steps below:
  1. Open Faraday using the following command./faraday.py --dev-mode, so that it refreshes the plugins folder
  2. Now that you Faraday open, go to scripts folder (cd scripts)
  3. Execute the command ./sslcheck.py target (./sslcheck.py 192.168.10.254)
Also, you can quickly run  the command for several targets and domains, the targets need to be written separately with a single space.

./sslcheck.py 192.168.10.254 facebook.com www.google.com 192.168.10.168
  • Some touchups made to the Status Report
    • Create/Edit/ Erase vulnerabilities
    • Filters
    • New fields
    • Changeable columns
https://www.faradaysec.com/

We hope you like it!

Faraday v1.0.7 release

Estamos muy contentos de anunciar Faraday v1.0.7. Después de varios meses de duro trabajo, finalmente publicamos la nueva versión!



Cambios que se realizaron UX/UI:
  • Crear/Editar/Borrar vulnerabilidades desde la UI
  • SSLCheck
  • Modificaciones en Status Report
  • ZSH UI muestra notificaciones y workspace activo
  • Shodan Plugin esta funcionando con la nueva API
  • Faraday ahora pide confirmación al salir, si tiene conflictos a resolver, se enumeraran
Corrección de errores:
  • Los filtros del Status Report ya están andando
  • Se abre el workspace activo en UI web
  • El icono de workspace de la interfaz de QT diferencia entre un workspace de couchdb y filesystem
  • Se corrigieron las fechas en UI Web, no mostraban la fecha exacta
  • En la edición de vulnerabilidad se agrego la severidad 'Critical'
  • Se arreglaron bugfixes que fueron reportados por usuarios

Se trabajó arduamente en el modo en el que los usuarios puedan generar una vulnerabilidad de forma sencilla y rápida.



El procedimiento para crear una vulnerabilidad en fácil, seleccionas el target, elegís que tipo de vulnerabilidad y su severidad, luego los demás campos, le das OK, y listo.
Algunos cambios que se introdujeron:
  • Más facilidad en la edición de vulnerabilidad
Seleccionando una vulnerabilidad se carga su contenido
  • Se agrego SSLCheck Plugin

Se integra un plugin a Faraday. Una herramienta para verificar errores de SSL/TLS en host remotos

Es un script de Python basado en OpenSSL, permite al usuario comprobar la configuración de un servidor SSL/TLS remoto. Las vulnerabilidades potenciales/reales se resaltan en rojo en el informe de análisis, que se pueden exportar en formato XML.

El procedimiento es el siguiente:
  1. Abrir faraday con el siguiente comando: ./faraday.py --dev-mode, para que se actualice la carpeta de plugins
  2. Ya con faraday abierto entras a la carpeta scripts (cd scripts)
  3. Ejecutas el comando ./sslcheck.py target (./sslcheck.py 192.168.10.254)
También podes ejecutar el comando hacia varios target y dominios, tenes que escribir los target separados por un espacio. 

./sslcheck.py 192.168.10.254 facebook.com www.google.com 192.168.10.168

  • Modificaciones en Status Report
    • Crear/Editar/Borrar vulnerabilidades
    • Filtros
    • Nuevos campos
    • Columnas variables


https://www.faradaysec.com/

Esperamos que les guste!

Infobyte Highlights and Announcements

2014 was without a doubt a memorable year for the IT security community. A wide range of vulnerabilities were found in a number of critical services. Additionally, a number of companies were exposed with critical security breaches; the recent Sony case will serve as a reminder for years to come.

Image may be NSFW.
Clik here to view.
infobyte-logopared.jpg

Every year technology grows by leaps and bounds and 2014 was no exception. The increasing ubiquity of basically being connected at all times (whether it be your tablet, phone or fridge), helps further blur the lines between work/life (think; having banking information on company servers, expense accounts mixed with personal credit cards, etc). Additionally, with developers stressing getting products out fast on the market. Not to mention the rise of cloud computing, new digital payment options and big data, there has been to say the least A lot of big changes for IT companies and employees this year.  While these changes can reap huge rewards for an organization, they also unfortunately pose new threats and challenges for the security infrastructure and policies of an organization.

As we saw in the news time and time again, an IT attack is not just an inconvenience for an organization but can cause major harm including the loss of sensitive information, property and lasting damage to your brand. Even in the best case scenario -which for many it wasn´t-, it can still be a major headache for employees and managers alike requiring damage control.

With these new tech trends, Infobyte with their experienced and diverse technical team is on the front lines of defending your organization from today´s and tomorrow´s threats. 

Whether it be new research, innovative trainings or outstanding services we are constantly striving for excellent results for our clients as well as being able to contribute to the community at large.

2014 for Infobyte was also a year of change as the company grew significantly. We stayed busy as always, continuing working on Faraday, attending the major security conferences, organizing the massive Ekoparty 10 and launching PictureMe.

Also, we were able to welcome on board Martin Tartarelli, our new Chief Operations Officer. Martín will be in charge of Red Team Services as well as developing a number of different projects for 2015. Martín said Infobyte was the kind of challenge he was looking for and was excited to work with such a dynamic team. Before coming to Infobyte, Martín was the Head of Information Security Engineering for one of the largest ATM networks in Latin America.

Finally, during the month of December we were able to celebrate and look back on a successful year filled with challenges and growth. We are looking forward to an even better 2015 with new opportunities.


We wish you a healthy and happy New Years and a great 2015!

Nuevo integrante y Fin de Año Infobyte Fest

El 2014 fue un año memorable para la Industria donde vulnerabilidades en servicios críticos fueron sin duda protagonistas, por otro lado un número de Empresas se vieron expuestas mediante la publicación de sus datos más sensibles; el reciente caso de Sony Pictures que está en boca de todos es un buen recordatorio.


Cada año la industria de la seguridad informática crece a pasos agigantados, y este año no fue la excepción. Actualmente, las empresas se ven obligadas a exponer sus datos más sensibles para poder competir en el mercado flexible y cambiante que exige Internet. La velocidad y el Time to Market desafía a las mismas generando riesgos en la adecuada implementación de controles y seguridad con la que deben contar estos datos.


Con mayor frecuencia las empresas son víctimas de ataques en forma escandalosa causando pérdidas económicas y un impacto residente en la imagen de la marca.
Conocer el nivel de seguridad, las amenazas que se encuentran expuestas y el impacto que las mismas pueden causar es el camino mitigante para estos días.

Infobyte acompaña este crecimiento directamente proporcional a la industria gracias al equipo formado por grandes profesionales que dedican diariamente su esfuerzo en buscar la excelencia en la ejecución de sus tareas. Investigar acerca de nuevas vulnerabilidades, capacitarse y trabajar en procesos de mejora continua nos permite llevar al siguiente nivel los resultados de nuestros clientes.

Durante el 2014 logramos crecer como equipo, continuamos desarrollando Faraday, visitamos las principales conferencias de seguridad, organizamos los 10 años de la Ekoparty, expusimos frente al público más exigente y lanzamos PictureMe.

Durante diciembre festejamos un año de gran dedicación que nos permitió continuar creciendo y así estar preparados en los desafíos del próximos año.

Por último le dimos la bienvenida a Martin Tartarelli, nuestro nuevo Chief Operations Officer quien se sumó al equipo de trabajo y estará liderando el equipo de Red Team Services así como también llevando adelante diferentes proyectos durante 2015. Martin nos expresó que en Infobyte encontró el gran desafío que estaba buscando. Anteriormente Martín trabajó en la industria de servicios financieros liderando proyectos de Networking, desarrollo seguro de aplicaciones y gestión de equipos de respuesta a incidentes.

Les deseamos un Feliz 2015


¡Infobyte estará en la próxima RSA Security Conference!


Estamos contentos de anunciar que Infobyte LLC tendrá un stand en la próxima RS security conference. La conferencia se llevará a cabo el próximo 20 a 24 de Abril en el Salon Moscone Center en la ciudad de San Francisco. 





Image may be NSFW.
Clik here to view.

Iniciada en 1991, la RSA Conference siempre ha atraído a los mejores del mundo y los más brillantes en el campo. 
Es donde la industria de la seguridad converge para discutir las preocupaciones actuales y futuras; obtener acceso a la gente, el contenido y las ideas que ayudan a las personas y empresas a aprender acerca de problemas de IT más importantes de seguridad de primera mano; Es el mercado final para las últimas tecnologías y oportunidades y prácticas educativas profesionales de la industria. 

No importa si sos una Star up, un gigante de la tecnología o alguien en el medio, esta conferencia es de interés para todos. 

Este año la conferencia contará con 275 sesiones(de 20 minutos y 60 minutos) y se esperan más de veintiocho mil asistentes. Además de las sesiones hay una eventos durante los cuatro días. Infobyte estará ubicado en el stand 2637 en la Sala de Exposiciones del Sur cerca de Sala C y la salida 19. 




Contactanos a communications@infobytesec.com y contanos si vas a asistir a la conferencia. Estamos contentos de responder cualquier consulta. Nos vemos en la conferencia!


Te esperamos!

Infobyte is coming to RSA Conference 2015

RSA will be held April 20th-24th at the Moscone Center in San Francisco.

Image may be NSFW.
Clik here to view.

Founded in 1991, RSA Conference has grown to be one of the most important IT security conferences  in the world. On top of cutting edge talks given by internationally recognized speakers, RSA allows attendees, exhibitors and sponsors to network in a dynamic setting. Whether you´re a startup , a tech giant, or somewhere in between there is a little bit of something for everyone!

This year there will be more than 275 sessions (some consisting of 20 minutes, others an hour) featuring a wide variety of topics. More than twenty-eight thousand people are expected to attend and besides the talks there are a number of networking activities and events through the four days. During the four days, Infobyte will have a stand where we will be giving demos of Faraday and our services.  We will be located in stand 2637 in the South Exhibit Hall near Hall C and exit 19. 

Get in touch with us at communications@infobytesec.com and let us know if you´re coming, we would be happy to answer any questions! See you there!


Faraday v1.0.8 Release


    Hi all! We are happy to announce that Faraday v1.0.8 has been released. 
    A special thanks to all the community feedback and support. If you find an issue or what a new feature, please report it or better yet create a pull request
  • This release provides the following features:
    • WcScan script and plugin (scripts/wcscan.py)
      • We added a plugin for Faraday that is a tool to verify configuration file currently we support web.config and php.ini. The potential vulnerabilities (or the real ones) show up in gray on the analysis report, that one can easily export to XML format.
      • Follow the steps below:
      1. Open Faraday using the following command./faraday.py 
      2. Now that you Faraday open, go to scripts folder (cd scripts)
      3. Execute the command ./wcscan.py "location of php.ini/web.config" 
    Image may be NSFW.
    Clik here to view.



      • New Dashboard D3 with AngularJS
      • Easy access to Vulnerability pages in the Status Report
      • Easy access to the Host pages on the dashboard
      • Creation and Editing capabilities for the Workspace from the UI Web
      • Support installation for the latest version of Debian/Ubuntu/Kali
      • sqlmap version 1.0-dev support updated
      • API Status Check in both ZSH & QT GUI
      • Field added for resolution of vulnerabilities classification with plug-ins updated to support the new function.
      • Field added for rating "ease of resolution" for vulnerabilities
      • Adjustments for Resolution field
      • New Faraday plugin for Burp. Version 1.2 
      • Automated backup for couch database
      • Ability to upload evidence of a vulnerability (as an attachment)
      • Ability to assign Vulnerability Impact (confidentiality, integrity, availability).
          Spreading the Word
          If you are excited about Faraday, help show the love! 

          Opening Minds: Bank Tunneling 101



          Introduction


          On the internet every day there´s really a staggering amount of information generated and to keep up with all this, businesses are being forced to stock up on new equipment to be able to store it all. For example, IBM´s new server that can process 100 cyber monday’s worth of transactions a day.


          James Hamilton, VP and a prominent engineer for Amazon shared some pretty mind-blowing stats about the current state of data storage. Two stats especially telling from the article:
          -Every day, Amazon Web Services AWS adds enough new server capacity to support all of Amazon´s global infrastructure when it was a $7b annual revenue enterprise (in 2004).
          -S3 has a 132% year-over-year growth in data transfer.

          Accordingto Facts Hunt, in 2014 there were:

          14.3 billion web-pages on the internet.
          48 billion web pages indexed by Google.
          14 billion web pages indexed by Microsoft Bing.
          672 Exabytes or 672,000,000,000 Gigabytes (GB) of accessible data
          43,639 Petabytes of global internet traffic in 2013
          More than 900,000 servers in Google
          More than 1 Yotta-byte ( thats septillion byte) of total stored information on the internet (it also isn´t related to a small green star wars character that talks backwards in anyway).


          Note: Currently Microsoft leads the industry in number of servers with 1,000,000 which is 100,000 more than Google.


          Image may be NSFW.
          Clik here to view.
          In December 2012, IDC and ECM estimated that the digital size of the universe (this would be all the digital data created, replicated and consumed this year) was 2,837 exabytes (EB) and they predicted that number growing to 40,000 EB by 2020. Just so you have an idea of what a ridiculous amount of data that is, it´s the equivalent of a million terabytes (TB) or a billion gigabytes (GB). This means, according to IDC and EMC´s prediction every person on the planet on average will contribute 5,200 GB to the digital universe (or 325 16gb iphones).
          Looking at this from a security perspective, it becomes increasingly clear that with so much information generated there will be a lot of sensitive data. Whether it be your own, your friends or your relatives´, it´s coming from everyone and is being sent to a lot of different places. An unfortunate consequence of this huge influx of data, is the much publicized rise of cyber-crime. Unfortunately , far from being something that people find out about quickly and get it taken care of easily, it can go on for months or years without people even realizing they were the victim of an attack. Once people realize that a cyber-crime has occurred, it can be a long and arduous process to correct all the resultant problems.

          Anyone that wants to rob something valuable, only has to find one fault in the system while ¨the good guys¨ have to think of all the different places and variations of possible attacks (a slightly more difficult task one might say). With all this in mind, it´s vital to maintain a sensible balance between security, practicality, budget and intellect.

          The idea of this investigation series is to show that seemingly harmless public information on the internet can be used for illicit personal gain and criminal activity.

          History

          Not all losses of information or goods are what we would call ¨cyber/ IT¨ security breaches. Using a couple of examples, we´re going to analyze a very interesting type of robbery; that of the bank tunnel. 

          Image may be NSFW.
          Clik here to view.
          These are not something that can be made on a whim and require a huge amount of planning and investment of both time and money.

          Why, you might ask? Because bank tunnels are one of the thefts with the greatest impact from a physical security viewpoint and many times, they carry large financial implications as well.

          ¨Okay, I get that they can be a problem, but what does this have to do with IT security¨?

          For a couple of reasons. First, it's important to remember the physical and the IT realm are never far apart. Second, we're going to show below how we can exploit public information to assist us with one of the most difficult part of planning a tunnel (the location).

          Just so we have a little context, we are going to talk about bank tunnels (or holes) that have been utilized to extract valuables from different places, focusing primarily on banks and safes. With this in mind, we tried to be as thorough as possible. While, we found different examples in a number of different countries. We decided to go into a little more depth for countries in the Americas region.

          Below we are going to list some of the more exceptional cases that we were able to find (listed by country).

          Argentina
          USA
          Brazil
          Canada
          Colombia
          France
          Germany
          United Kingdom
          Thailand
          A visual summary of all the examples we mentioned:

          CountryBankYearDistanceMoneyValuables
          ArgentinaBanco Galicia
          1976

          AR$5.000.00050kg of Jewelery
          ArgentinaBanco Mercantil
          1992


          200 safe boxes
          ArgentinaBanco Credito
          1997
          50 mtsAR$5.000.000
          ArgentinaBanco Río
          2006

          AR$8.000.0008kg+ of jewelery
          ArgentinaBanco Macro
          2011

          US$3.000.000+
          ArgentinaBanco Provincia
          2011
          30 mtsAR$10.000.000
          ArgentinaBanco Galicia
          2011
          20 mtsAR$500.000
          BerlinCommerzbank
          1995
          170 mts$12.400.000
          BerlinBerliner Volksbank
          2013
          30 mtsL$8.300.000
          BrasilBanco Central
          2005
          200 mtsR$160.000.000
          CanadaRoyal Bank
          1986
          6 mtsUS$196.000
          ColombiaBanco de la República de Pasto
          1977
          50 mtsAR$82.000.000
          ColombiaCaja Agraria
          1991
          20 mts

          EEUUCobb Exchange Bank
          1964
          42 mtsUS$1.000
          EEUUFirst Interstate Bank
          1986
          30 mtsUS$270.000
          EEUUBank of Quitman
          1986
          20 mtsUS$20.000
          EEUUBank of America
          1987
          20 mtsUS$91.000
          FranciaSociété Générale bank
          1976
          8 mtsL$6.000.000Jewels
          FranciaSociété Générale bank
          1976

          $5.000.000
          FranciaBanco Río
          1987
          46 mts
          300 Deposit Boxes
          FranciaCrédit Lyonnais
          2010

          EU$24.000.000
          ThailandThai Bank
          1994
          15 mtsUS$100.000
          UKLloyds Bank
          1971
          15 mtsL$1.500.000260 Safes
          UKBlockbusters
          2012
          12 mtsL$6.000
          UKTesco Store
          2014
          30 mtsL$100.000+

          Technical research

          One of the most important decisions when deciding to build a tunnel, is like most brick and mortar business endeavors, a matter of location. The different variables one should keep in mind are: proximity, movement, waste elimination, sound, etc.

          Looking at it from a security perspective, we had the idea one day to see how difficult it would be to develop a system that recommends (given a target using GPS coordinates or address) an optimal place to start digging a tunnel. To start off, first we are going to search places reasonably close, as a way of starting to filter our results. For the moment, we´re not going to consider other variables.

          To begin the search we will need the following_
          - Public information of the banks
          - Information of Real Estate rentals and sales
          - GPS

          Results:
          The map below shows only some of the cases mentioned above:




          Bank Information
          For public information on banks we searched the different bank branches on their websites,  or well-known sites and online directories. The searches we did, were restricted to Argentina, Brazil and the United States, but of course any country could be included. Some of the information was extracted a little more by hand than others, but generally we used a process called scrapping in most cases.

          Buildings
          For the part concerning buildings or possible sites to start constructing the tunnels, we used a number of different sites. In Argentina we used zonaprop, sumavisos and mercadolibre. The first two it turns out didn't have APIs (or at least not accessible to third party users), but MercadoLibre fortunately did have a library in python making it quite easy to make requests or find things we wanted.

          In other Latin American countries, such as Brazil, we can also use MercadoLibre. Although it might not be the best possible search engine for real estate, it provided sufficient information for our purposes. Thus, for Brazil we used the same API. (we only had to change a couple of characters to get it working the same as in Argentina).

          In the US it was a little more complicated. The APIs that are out there, didn't give out so much information and what they could do was quite limited. They showed estimated prices in an address database (or in another database with buildings categorized by ID (which you can get to through other means) or simple mortgage prices. Only Zillow gave us any ¨useful¨ data that would be useful to automate our search.

          Geopositioning (GPS)
          The answer for this was pretty easy. Google maps provides us with a function in it's API whereby by simply giving an address we can obtain the geographic coordinates of the location. This is similar to what is regularly done using the navigator but more automated.


          Applications

          Google Maps
          Like we said above, the only thing we needed from Google maps was to be able to calculate the geographic coordinates using a physical address as a starting point. The code for this was pretty straight forward and only a couple of lines were needed.

          import json
          from urllib2 import urlopen
          from urllib import urlencode

          GEOAPI_AUTH = "YOUR_API_KEY_AUTH"
          GEOAPI_URL = "https://maps.googleapis.com/maps/api/geocode/json?"

          def getCoordinates(addr):
          params = urlencode({'sensor' : 'false', 'address': addr, 'key' : GEOAPI_AUTH})
          data = json.loads(urlopen(GEOAPI_URL+params).read())
          if data['results']:
          return (data['results'][0]['geometry']['location']['lat'],
          data['results'][0]['geometry']['location']['lng'])

          return None

          With this information, we then needed to be able to calculate distances. Once we have the coordinates of a target and a possible candidate, we can evaluate it by calculating its distance.

          import math
          GEO_ERR = -1

          def getDistance(coordA, coordB):
          if coordA and coordB:
          R = 6371
          dLat = math.radians((coordB[0] - coordA[0]))
          dLon = math.radians((coordB[1] - coordA[1]))
          lat1 = math.radians(coordA[0])
          lat2 = math.radians(coordB[0])
          a = math.sin(dLat/2) * math.sin(dLat/2) + \
          math.sin(dLon/2) * math.sin(dLon/2) * math.cos(lat1) * math.cos(lat2)
          c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a))
          d = R * c
          return d * 1000
          return GEO_ERR

          Remember: We used -1 so that we know when the calculation for the distance isn't working (whether it be because of the API or some other problem with the coordinates.


          getDistance([-34.6044185,-58.3815473],[-34.602953,-58.381634]) = 163.1492529420307 mts

          With these results and using the distances that the different tunnels had as a base, we can estimate that for our purposes we are interested in up to 300 meters (anymore based on prior successful tunnels is probably too much (think about all the dirt you need to get rid of)!

          Zillow API.
          The problem with the majority of the APIs for real estate that we find is that the majority of the data is private and the stuff that is available publicly isn't particularly helpful or rich in detail.

          Adding to that, the way one can see the information manually is pretty straight forward but if you want to automate it using an API, we aren't able to get enough information.

          Putting it simply, the API only lets you access the information of the property, only if you have the ID itself, but without the proper ID you can't search using other filters or criteria. However, the page lets you search using the zip or postal code and using this we get an ¨interesting¨ quantity of real estate in the area (that is enough for our PoC).

          However, with a mix of scrapping and using the API we were able to get what we wanted.

          Thus, we can find properties by putting in the zipcode, the city and the name of the state. Lets try it using San Francisco, California, 94121.

          The search engine automatically formats (if it's right), the url to the following:


          As we can see in the web page, on the right you have some recommended properties with their Zillow Property ID. This we are going to use a little later with theAPI to get additional information, that right now the web page doesn´t let us access.

          We define a regexp to match the Ids "\/[0-9]*_zpid\/" and after we implement a request to access directly, a city inside a state, changing the location depending on its zipcode.

          import re
          from urllib2 import urlopen as uopen

          ZILLOW_PATTERN = re.compile("\/[0-9]*_zpid\/")

          def getCandidates(city, state, zcode):
          domain = "http://www.zillow.com/"
          url = "%s%s%s%s" % (domain, city, state, zcode)
          raw_results = uopen(url).read()
          return set(ZILLOW_PATTERN.findall(raw_results))

          Why did we decide to do it like this? Because at first there weren't a lot of options and second because the majority of banks' directories in the US have the zipcode next to the physical address of the bank, which is really important for us to be able to improve the proximity when we do our searches.

          Once we have all the IDS we have to put them into the API, we are then able to get an address for any property, which for our purposes is of utmost importance.

          from urllib2 import urlopen as uopen
          import math
          import xml.etree.ElementTree as ET
          import re

          ZILLOW_AUTH = "YOUR-API-KEY-AUTH"
          ZILLOW_ESTIMATE = "http://www.zillow.com/webservice/GetZestimate.htm?zws-id="
          ZILLOW_PATTERN = re.compile("\/[0-9]*_zpid\/")


          def getCandidates(bank_coord, city, state, zcode):
          domain = "http://www.zillow.com/"
          url = "%s%s%s%s" % (domain, city, state, zcode)
          raw_results = uopen(url).read()

          candidates = []
          for x in set(ZILLOW_PATTERN.findall(raw_results)):
          xml_response = uopen(ZILLOW_ESTIMATE+ZILLOW_AUTH+"&zpid="+x[1:-6]).read()
          root = ET.fromstring(xml_response)

          Until here, we've gotten all our data about the properties using the API in xml format. Now, were going to parse through the most important parts and obtain the distance. For each candidate we're going to save them in a list, ordering them by proximity to the bank.

          lat = getVal(root.find('response/address/latitude'))
          lon = getVal(root.find('response/address/longitude'))

          if lat != None and lon != None:
          candidates.append([getDistance([float(lat), float(lon)], bank_coord), homedetail])

          candidates = sorted(candidates, key=lambda x: x[0])
          After we're only going to show the candidates that don't go over the distance limit.


          for distance, details in candidates:
          if distance > LIMIT:
          print "[-] Skipping next candidates, over %s meters" % LIMIT
          break
          print "[!] Found candidate:"
          print "[+] Distance:", distance
          print "[+] Details:", details
          print "-------------"

          This will wrap-up the part about the United States. If we were to ¨standardize" the input, (which isn't too tricky), we can repeat the process for any bank.

          MercadoLibre API
          A little different from how we were doing things with Zillow, the only option we have with MercadoLibre is to look for properties with three filters (State, City, Neighborhood) and (unfortuanetely) there's no way to order the results in a useful fashion. Clearly, at least for someone that is looking for prices about a specific area, probably Mercadolibre isn't going to be that useful and you are going to have better results using a ¨real estate" API (because we can search for proximity). Due to this, our results are going to depend a bit on luck and how much we can abuse the three filters.

          For Argentina, we're going to use a couple of city in the province of Buenos Aires and some parts in the Capital Federal district. For Brazil we'll use São Paulo state. The search process for both countries is pretty similar.

          In particular, MercadoLibre's API was without quesiton one of the easiest to work with in general. It was simple to use and the development part to do testing (with documentation included that they provide) is sufficient to be able to understand everything.

          Below, we find a simple (but complete) example of how to obtain the full list of buildings using a python library which can be downloaded here for free.


          from meli import Meli

          MELI_CID = "1337"
          MELI_AUTH = "YOUR-API-KEY-AUTH"

          meli = Meli(client_id=MELI_CID, client_secret=MELI_AUTH)

          url = "/sites/MLA/search?category=MLA1459"

          r = meli.get(url)

          if r.status_code == 200:
          print r.content

          The response you save in JSON format for the results of the question. In this case the URL represents the parameters that the API receives.

          We're not going to write too much explaining how the whole API works because it’s not our goal and because there is already a lot of literature on this topic. We are going to use MLX as our notation for each country (the X represents the country). MLA for Argentina and MLB for Brasil for example. The category filter is set to buildings (1459) and that’s what we're going to look at. .

          After, for filtering all the search results, with all the parameters that would be useful for us, we can see below.

          /sites/MLA/search?category=MLA1459&state=Buenos Aires&city=Capital Federal&neighborhood=Microcentro"

          Really, for each value for the filters there is a unique ID in the database and this isn't always necessary when we want to apply all the filters at once.

          The filters have IDS looking like this:

          "capital federal": "TUxBUENBUGw3M2E1"
          "belgrano": "TUxBQkJFTDcyNTJa"

          All the IDs (generally) are associated with their physical location. For example if there are two cities in different provinces with the same name, when we use the ID, automatically it’s going to show which province the place belongs to. It's not too difficult at all to get everything and put together a good database, so luckily solving our conundrum isn't proving too complicated, now that we have public data and free access.

          This works to our advantage because the searches we can do by filtering by the smallest denomination, which in our case would be by neighbourhood. If we are trying to analyze a bank in Buenos Aires proper and the address of the bank is in Belgrano (a neigborhood in Buenos Aires), we only need to use the neighbourhood filter.

          /sites/MLA/search?category=MLA1459&neighborhood=TUxBQkJFTDcyNTJail.

          Also, by limiting and offsetting we can cut down our results to get the prices.

          The rest is interpreting the results, getting the address of each property and calculating the distance between the bank, for which we are applying the filters and see if the address is useful.

          Our results
          It's important to remember that the views we are going to provide are through Gooble Maps and they're really only for us to better orientate ourselves a bit (the distances to do a tunnel don't need to take into account which way the streets are going and these kinds of things ;)

          Some close ones we got for Brasil, Sao Paulo
          In the case of Banco Safra, the coordinates from the news send us 6 meters from the bank, but in the article the address is much farther away. This would be a false positive but not because of our search mechanisim, but because we are depending on if the users fill out correctly the search fields.

          And sometimes we find one building works for different banks.
            From closest to farthest away we have some of the results we got for Argentina, Buenos Aires

            Some examples we got for USA, San Francisco, taking advantage of the request limit for the API


            Contingency Plan:

            We believe that the organizations, law makers and financial institutions should make new requirements and precautions in the buying and selling of real estate for those located near centrally strategic points. For us, banks should try and be proactive about this, trying to figure out if they are really at risk for this kind of robbery and what precausions they should take. 

            Future work
            Mercadolibre.
            Additionally, we can do a lot of improvements to be able to accelerate the process automatically and with better performance.

            In the case of MercadoLibre, as the filters are what gave us the most trouble, we could organize the information of the banks by filters (that they're going to apply), and for each result we compare with all the banks in the group, saving us a bit of unnecessary searches.

            If we have the following banks:
            Banco A, Buenos Aires, Capital Federal, Palermo, Mario Bravo 1000
            Banco B, Buenos Aires, Capital Federal, Belgrano, Cabildo 100
            Banco C, Buenos Aires, Capital Federal, Palermo, Honduras 1000
            Banco D, Buenos Aires, Capital Federal, Belgrano, Virrey del Pino 100
            Banco E, Buenos Aires, Capital Federal, Palermo, Córdoba 3000

            The banks A, C and E the same filters apply:
            State : Buenos Aires
            City: Capital Federal
            Neighborhood: Palermo

            and for banks B and D the following:
            State : Buenos Aires
            City: Capital Federal
            Neighborhood: Belgrano

            With all the final address sorted out, we can group them by filter. Each filter is a type of unique key that the group banks would share. If we're able to do this, instead of an attempt for each bank, we only need to try with the filters and we should be able to compare the distance for each one of the members.

            Zillow
            In Zillow's case, there was a way to control the limits of the API. The quantity of the petitions is by AUTH KEY, but by putting any real email address we can bypass the limits. Afterwards, its a matter of checking when we have reached the limit (put a counter if you want) and rotate different KEYs.

            Google maps
            The Google Maps APU also has a limit, but APIs such as MercadoLibre don't and this gives us the opportunity to get more coordinates of different buildings (although they're not always there). In the case of googlepi, we got to the limit of the number of the times we could use the coordinates.

            Services
            Another thing we could do is pay for all the services that we used, if we wanted to reduce the limits or get rid of them all together. The paid version of the API for Google Maps l lets you do searches around a specific area and filter by category. One of the categories you can find is called ¨banks", need we say more?.

            Spoiler: If you only try with the avialibe properties, having the nearby banks (uisng the bank filter) we ŕe able to get the most complete results of our searches.

            Conclusion
            As we've been able to show, the first step for finding a good place for our tunnel is really easy. 

            We believe that this type of research helps us to be aware that the information one can find is abundant and people can use this information in productive or counterproductive ways (I suppose it also largely depends on what one's definition of productive is, for some robbing a bank would fall in the first category).

            Do you know who to trust with your information?

            Funny facts
            #1.- While robbing Banco Rio de Acasuso in 2006, the tunnelers all the time stayed in one shop, they ordered pizza and soda and sang happy birthday to one of the hostages.

            Image may be NSFW.
            Clik here to view.
            When the police decided to go into the bank, they only found the hostages, the tunnel where the thieves had fled, toy weapons and a weapon saying ¨In ricachones neighborhood, no weapons or grudges. It's only money, not love¨.

            #2.- While robbing the Banco de la República de Pasto in 1977, the criminals had time to tell some jokes. On the vault they wrote in big letters ¨Chanfle, he wasn't expecting my cunning¨.

            #3.- Australian men tried tunneling into a jewelery store and tunneled into a KFC by accident. It was their third attempt trying to rob the jewelery store.
            Useful Links.
            Branches for banks and safe boxes, official web pages.
              This will be the second of a series of articles highlighting different ways to abuse public accessible information. Also, a big thanks to Matias A. Ré Medina and Francisco Amato for their huge contributions to the article.


              Opening minds: Bank tunneling 101 [SPANISH]


              Introducción

              En Internet diariamente se maneja un gran caudal de información, y es tal la cantidad que día a día las empresas requieren abastecerse de nuevos dispositivos de almacenamiento para poder soportarlo. Por ejemplo, el nuevo servidor de IBM puede procesar el equivalente a todas las transacciones de 100 cyber mondays en un sólo día.

              James Hamilton, VP y distinguido Ingeniero en Amazon compartió este año varias curiosidades relevantes. Entre ellas cabe destacar las siguientes dos:
               - Todos los días, AWS agrega la suficiente capacidad en servidores como para soportar toda la infraestructura global que poseía Amazon cuando era una empresa de 7 mil millones de ingresos anuales (en el 2004).
              - S3 tiene un 132% de incremento de transferencia de datos año tras año.

              Según factshunt, en el 2014 existieron:
              14.3 billones - Páginas web en Internet.
              48 mil millones - Páginas web indexadas por Google.Inc.
              14 mil millones - Páginas web indexadas por Microsoft Bing.
              672 Exabytes - 672,000,000,000 Gigabytes (GB) de datos accesibles.
              43,639 Petabytes - de tráfico total mundial en Internet en el 2013.
              Más de 900,0000 servidores -  En Google.Inc, el datacenter más grande del mundo.
              Más de 1 Yotta-byte - Cantidad de datos almacenados en Internet. (Incluye casi todo)

              Nota: Actualmente Microsoft lidera el puesto de cantidad de servidores en el munrdo con 1.000.000, 100.000 por arriba de Google.

              En diciembre del 2012, IDC y EMC estimaron que el tamaño digital del universo (esto sería, todos los datos digitales creados, replicados y consumidos en ese año) era de 2,837 exabytes (EB) y pronosticaron un crecimiento a 40,000EB para el 2020. Un exabyte equivale a mil petabytes (PB), o a un millón de terabytes (TB), o a mil millones de gigabytes (GB). Entonces, para el 2020, según IDC y EMC, el universo digital va a pesar arriba de los 5,200GB por persona en el planeta.

              Ahora mirándolo desde una perspectiva de seguridad, está claro que entre tanta cantidad de información hay muchísimos datos sensibles; nuestros, de nuestros amigos, familiares; distribuidos en distintos lugares. Y cada vez que sale una noticia sobre robo de información no hay nada que nosotros podamos hacer porque los datos ya fueron robados. Los perjudicados a veces se toman días, meses o años en darse cuenta de que fueron hackeados.

              Quien quiere robar un bien, para lograr su cometido, necesita tan sólo una falla en el sistema, mientras quienes están en la vereda de en frente necesitan contemplar absolutamente en todos los lugares posibles todas las variaciones de probables ataques, y eso es prácticamente imposible. Siempre hay que mantener un balance entre seguridad vs practicidad vs presupuesto vs intelecto.

              La idea de esta serie de investigaciones es poner en evidencia qué se podría hacer, como prevenir y tratar de anticiparse a futuros problemas.


              Historia:

              No todos los robos de información o de bienes son íntegramente informáticos. Vamos a comenzar dando el ejemplo de uno de los tipos de robos más interesantes, los boquetes, obras maestras que contienen una planificación e inversión muy importante.

              ¿Por qué? Porque es uno de los robos con mayor impacto desde el lado de la seguridad física que se puede realizar, y con información pública, accesible a todos, vamos a demostrar qué tan difícil puede llegar a ser planificar el comienzo de uno.

              Según Wikipedia un boquete es: una apertura o un espacio.

              En nuestro contexto vamos a hablar de boquetes, como agujeros que se han utilizado para extraer contenido valioso de distintos lugares, más generalmente bancos o cajas fuertes, principalmente vamos a hablar de algunos países de América, entre ellos Argentina, Brasil y Estados Unidos.

              Debajo vamos a listar algunas de las noticias que hemos encontrado, ordenadas por país, en donde se observan casos satisfactorios de robos mediante el uso de boquetes.

              Argentina


              USA

              Colombia

              Brasil

              Canada

              Francia:

              Berlin

              United Kingdom

              Thailand

              También encontramos algunos intentos fallidos que no está de más mencionarlos:

              Un resumen en forma de resumen visual para todas las noticias mencionadas previamente:

              Country
              Bank
              Year
              Distance
              Money
              Not Money
              Argentina
              Banco Galicia1976AR$5.000.00050kg en joyas
              ArgentinaBanco Mercantil1992200 cajas
              ArgentinaBanco Credito199750 mtsAR$5.000.000
              ArgentinaBanco Río2006AR$8.000.0008kg+ joyas
              ArgentinaBanco Macro2011US$3.000.000+
              ArgentinaBanco Provincia201130 mtsAR$10.000.000
              ArgentinaBanco Galicia201120 mtsAR$500.000
              BerlinCommerzbank1995170 mts$12.400.000
              BerlinBerliner Volksbank201330 mtsL$8.300.000
              BrasilBanco Central2005200 mtsR$160.000.000
              CanadaRoyal Bank19866 mtsUS$196.000
              ColombiaBanco de la República de Pasto197750 mtsAR$82.000.000
              ColombiaCaja Agraria199120 mts
              EEUUCobb Exchange Bank196442 mtsUS$1.000
              EEUUFirst Interstate Bank198630 mtsUS$270.000
              EEUUBank of Quitman198620 mtsUS$20.000
              EEUUBank of America198720 mtsUS$91.000
              FranciaSociété Générale bank19768 mtsL$6.000.000joyas
              FranciaSociété Générale bank1976$5.000.000
              FranciaBanco Río198746 mts300 cajas
              FranciaCrédit Lyonnais2010EU$24.000.000
              ThailandThai Bank199415 mtsUS$100.000
              UKLloyds Bank197115 mtsL$1.500.000260 cajas
              UKBlockbusters201212 mtsL$6.000
              UKTesco Store201430 mtsL$100.000+

              Technical research

              Una de las decisiones más importantes en la lógica detrás del robo mediante boquete, es elegir el lugar desde donde se comenzará a realizar el mismo. Las variables que hay que tener en cuenta son: proximidad, movimiento, eliminación de residuos, sonidos, etc.

              Desde el lado de la informática se nos ocurrió tratar de ver qué tan difícil podía ser hacer un sistema que recomiende dado un target (coordenada geográfica o dirección) un lugar próximo/óptimo para comenzar a realizar un boquete. Para empezar vamos a basarnos primero en buscar lugares próximos, que sería nuestro cuello de botella. Así que por el momento vamos a discriminar algunas variables.

              Para ello necesitaremos lo siguiente:
              - Información pública de bancos
              - Información de alquiler/venta de inmuebles
              - Geolocalización

              Resultados obtenidos

              El siguiente mapa describe solo algunos de los casos obtenidos luego del investigación:


              Datos de bancos

              Para la información pública de bancos recurrimos a la búsqueda de sucursales provenientes de los sitios de los bancos más conocidos, y a directorios online. La búsqueda está restringida originalmente para Argentina, Brasil y Estados Unidos pero claramente se puede expandir a cualquier país. Algunos datos fueron extraídos de una manera un poco más manual que otros, pero generalmente todos pasaron por un proceso de scrapping en cierto punto. Los directorios que usamos no van a ser mencionados porque son irrelevantes a la investigación.

              Inmuebles

              Para la parte de inmuebles, en Argentina teníamos en mente zonaprop, sumavisos y mercadolibre. Estas primeras dos resultaron no tener API (o al menos accesible a terceros), pero MercadoLibre sí, ya que posee una librería en python muy sencilla para hacer requests.

              En países latinoamericanos, como Brasil, también se puede usar MercadoLibre aunque no sea el estándar de búsqueda de inmuebles para algunos, pero para esta investigación como prueba de concepto cumple el propósito, así que decidimos usar también su API en Brasil, la cual no alteraba nada más que un par de caracteres en como se usa para Argentina.

              Para Estados Unidos fue un poco más complicado, las APIs que existían no daban mucha información, y las que lo hacían estaban muy limitadas. Mostraban cotizaciones estimadas en base a direcciones que uno proveía o información en base a un inmueble por ID (el cual previamente tendría que haber sido obtenido por otro camino), o simplemente precios de hipotecas. Ninguna excepto Zillow nos devolvía datos 'útiles' que nos sirvan para automatizar un poco la búsqueda.

              Geolocalización

              La respuesta era muy fácil. Google maps provee una función en su API que mediante una dirección se pueden obtener las coordenadas geográficas, algo similar a lo que hacemos comúnmente desde el navegador pero de manera automática.


              Aplicación

              Google Maps

              Como dijimos más arriba, lo único que necesitamos de Google maps es poder calcular las coordenadas geográficas en base a una dirección física. El código para esto es muy sencillo, de hecho no se necesitan muchas líneas:

              importjson
              fromurllib2importurlopen
              fromurllibimporturlencode

              GEOAPI_AUTH="YOUR_API_KEY_AUTH"
              GEOAPI_URL="https://maps.googleapis.com/maps/api/geocode/json?"

              defgetCoordinates(addr):
              params=urlencode({'sensor':'false','address':addr,'key':GEOAPI_AUTH})
              data=json.loads(urlopen(GEOAPI_URL+params).read())

              ifdata['results']:
              return(data['results'][0]['geometry']['location']['lat'],
              data['results'][0]['geometry']['location']['lng'])

              returnNone

              A esto lo vamos a necesitar para poder calcular las distancias, una vez que se tienen las coordenadas de un target, y de un posible candidato, se evalúa con un cálculo matemático su distancia:

              importmath
              GEO_ERR=-1

              defgetDistance(coordA,coordB):
              ifcoordAandcoordB:
              R=6371
              dLat=math.radians((coordB[0]-coordA[0]))
              dLon=math.radians((coordB[1]-coordA[1]))
              lat1=math.radians(coordA[0])
              lat2=math.radians(coordB[0])
              a=math.sin(dLat/2)*math.sin(dLat/2)+ \
              math.sin(dLon/2)*math.sin(dLon/2)*math.cos(lat1)*math.cos(lat2)
              c=2*math.atan2(math.sqrt(a),math.sqrt(1-a))
              d=R*c
              returnd*1000
              returnGEO_ERR

              Notar que usamos -1 para saber cuándo me está fallando el cálculo de la distancia, ya sea por la API o por algún problema con las coordenadas.

              Vamos a probar de medir como ejemplo cuánto mide de largo la plaza que rodea el Obelisco de Buenos Aires.

              getDistance([-34.6044185,-58.3815473],[-34.602953,-58.381634]) = 163.1492529420307 mts

              Con estos resultados, y basándonos en las distancias que han tenido los boquetes, podemos suponer un límite de interés hasta de 300 metros, deducido empíricamente basado en las noticias que mostramos al comienzo del artículos, más de eso ya sería demasiado.

              Zillow API

              El problema de la mayoría de las APIs de inmuebles (real state) que encontramos es que la mayoría de los datos son privados, y los que son públicos son escasos.
              Sumado a eso, la manera en la que uno puede ver los datos de un inmueble de manera manual es sencilla, pero si se quiere automatizar por medio de la API, no, ya que a ésta le falta información que mediante ella misma no se puede conseguir.

              Explicado de una manera más sencilla, la API proporciona datos de un inmueble sólo si se tiene el ID del mismo, pero no permite buscar bajo ningún criterio. Sin embargo, la página en sí permite buscar en los alrededores de un código postal, y ofrece una cantidad "interesante" (o que para el propósito de un PoC basta) de inmuebles en el área.

              Así que con una mezcla de scrapping + uso de la API conseguimos lo que queríamos.

              La manera en la que se buscan propiedades en el sitio es introduciendo el código postal, la ciudad y el nombre del Estado. Vamos a tomar de ejemplo San Francisco, California, 94121.

              El buscador automáticamente formatea (si es correcto), la url a lo siguiente:
              http://www.zillow.com/ciudad-estado-codigopostal

              Osea que para nuestro ejemplo quedaría así: http://www.zillow.com/san-francisco-ca-94121/

              Como se puede observar en la página del ejemplo, a la derecha se listan algunas propiedades recomendadas, y en su link está asociado su Zillow Property ID, que es el que más adelante vamos a usar con la API para obtener datos adicionales, que la página por el momento no nos brinda.

              Definimos una regexp para matchear los IDs: "\/[0-9]*_zpid\/" y luego implementamos un request para acceder de manera dinámica, a una ciudad dentro de un Estado, variando su área dependiendo su zipcode.

              importre
              fromurllib2importurlopenasuopen

              ZILLOW_PATTERN=re.compile("\/[0-9]*_zpid\/")

              defgetCandidates(city,state,zcode):
              domain="http://www.zillow.com/"
              url="%s%s%s%s"%(domain,city,state,zcode)
              raw_results=uopen(url).read()

              returnset(ZILLOW_PATTERN.findall(raw_results))


              ¿Por qué elegimos hacerlo de esta manera? Primero porque no había muchas más opciones, y segundo porque la mayoría de los directorios de bancos de USA contienen el zipcode al lado de la dirección física del Banco, lo cual nos sirve muchísimo para mejorar las proximidades a la hora de las búsquedas.

              Una vez que se tienen todos los IDS hay que alimentar a la API con ellos, y obtener por ejemplo las direcciones de cada propiedad, que sería lo primordial.

              fromurllib2importurlopenasuopen
              importmath
              importxml.etree.ElementTreeasET
              importre

              ZILLOW_AUTH="YOUR-API-KEY-AUTH"
              ZILLOW_ESTIMATE="http://www.zillow.com/webservice/GetZestimate.htm?zws-id="
              ZILLOW_PATTERN=re.compile("\/[0-9]*_zpid\/")


              defgetCandidates(bank_coord,city,state,zcode):
              domain="http://www.zillow.com/"
              url="%s%s%s%s"%(domain,city,state,zcode)
              raw_results=uopen(url).read()


              candidates=[]
              forxinset(ZILLOW_PATTERN.findall(raw_results)):
              xml_response=uopen(ZILLOW_ESTIMATE+ZILLOW_AUTH+"&zpid="+x[1:-6]).read()
              root=ET.fromstring(xml_response)

              Hasta aquí obtuvimos todos los datos sobre una propiedad mediante la API en formato xml. Vamos a parsear la parte más importantes y obtener la distancia. A cada candidato lo guardamos en una lista y los ordenamos por proximidad.

              lat=getVal(root.find('response/address/latitude'))
              lon=getVal(root.find('response/address/longitude'))

              iflat!=Noneandlon!=None:
              candidates.append([getDistance([float(lat),float(lon)],bank_coord),homedetail])

              candidates=sorted(candidates,key=lambdax:x[0])

              Luego solamente mostramos los candidatos que no superan el límite de distancia.

              fordistance,detailsincandidates:
              ifdistance>LIMIT:
              print"[-] Skipping next candidates, over %s meters"%LIMIT
              break
              print"[!] Found candidate:"
              print"[+] Distance:",distance
              print"[+] Details:",details
              print"-------------"

              Y eso sería todo para la parte de USA, lo único que hay que hacer es normalizar los datos de entrada, que no es algo muy difícil, e iterar por banco.

              MercadoLibre API

              A diferencia de las APIs del estilo Zillow, la única opción que nos da MercadoLibre para buscar propiedades es con 3 filtros (Estado, Ciudad, Vecindario) y no tienen ningún criterio para ordenar los resultados que nos sean útiles. Porque claramente a menos que uno esté buscando cotizaciones sobre un área en especial, para lo cual MercadoLibre no sirve y la mayoría de las APIs "real state" sí, no se puede ordenar con criterio de proximidad. Así que los resultados van a depender de la suerte que tengamos y de lo finita que sea nuestra búsqueda gracias al abuso de los 3 filtros. Básicamente dependemos de una buena data de bancos normalizada.

              Para Argentina usamos la provincia de Buenos Aires, algunas ciudades y partes de Capital Federal. Para Brasil usamos el Estado de São Paulo, sus distritos y municipios. El proceso para buscar en ambos países es muy similar.

              Particularmente la API de mercadolibre ha sido una de las que me ha resultado más fácil trabajar en general. Es muy sencilla y la parte de desarrollo para realizar testeos con documentación incluida que ellos te proveen en su sitio es suficiente como para entender todo.

              Debajo se encuentra un simple, pero completo, ejemplo de como obtener toda la categoría Inmuebles usando una librería en python que se puede descargar gratuitamente.

              frommeliimportMeli

              MELI_CID="1337"
              MELI_AUTH="YOUR-API-KEY-AUTH"

              meli=Meli(client_id=MELI_CID,client_secret=MELI_AUTH)

              url="/sites/MLA/search?category=MLA1459"

              r=meli.get(url)

              ifr.status_code==200:
              printr.content

              El response guarda en formato JSON los resultados de la consulta. En ese caso la URL representa los parámetros que recibe la API.

              No vamos a utilizar muchas palabras para explicar cómo funciona toda la API porque no es el propósito de ésta redacción y porque ya hay una documentación extensa para ello. Pero vamos a limitarnos a decir que MLX se refiere a la notación usada por cada país, en donde X representa alguna inicial que lo identifique. MLA para Argentina y MLB para Brasil en estos casos. El filtro de categoría está puesto para inmuebles (1459), que es lo que nos interesa.

              Luego para filtrar una búsqueda completa, con todos los parámetros que más nos sirven sería de la siguiente forma:

              /sites/MLA/search?category=MLA1459&state=Buenos Aires&city=Capital Federal&neighborhood=Microcentro"

              En realidad para cada valor de cada filtro hay un ID único en la base de datos, y no es siempre necesario aplicar todos los filtros a la vez.

              Los filtros tienen IDs de este estilo:

              "capital federal": "TUxBUENBUGw3M2E1"
              "belgrano": "TUxBQkJFTDcyNTJa"

              Cada ID (generalmente) está asociado implícitamente con su locación geográfica. Por ejemplo si se tienen dos ciudades de distintas provincias con el mismo nombre, cuando se use su ID automáticamente se va a apuntar a la provincia a la cual pertenece. De todos modos no es difícil de obtenerlo, armarse de una buena base de datos para solucionar esto no es un problema, ya que son datos públicos y de libre acceso.

              Esto nos favorece porque las búsquedas las podemos hacer aplicando el filtro en la cota más chica, que sería vecindario. Si nosotros sabemos que estamos analizando bancos de Capital Federal, y la dirección del Banco es en Belgrano, aplicamos únicamente el filtro de vecindario sobre él.


              /sites/MLA/search?category=MLA1459&neighborhood=TUxBQkJFTDcyNTJa

              También con limit y offset se pueden limitar los resultados para ir obteniendo en cuotas.

              El resto es interpretar los resultados, obtener las direcciones de cada propiedad, calcular la distancia entre el banco desde el cual se están aplicando los filtros, y fijarse si la distancia nos es útil.


              Detalle de resultados obtenidos

              Recordemos que las vistas que vamos a proveer desde Google Maps a continuación no son más que para orientarnos un poco, ya que las distancias para realizar un túnel mediante un boquete no necesitan respetar las direcciones de las calles ;)

              Algunas proximidades obtenidas sobre Brasil, Sao Paulo:


              En el caso del Banco Safra, las coordenadas del anunciante nos envían a 6 metros de un banco, pero en el artículo la dirección esta mucho más lejos. Esto sería un falso positivo pero no por nuestros mecanismos de búsqueda, sino porque dependemos de que los usuarios completen bien los campos.

              Y a veces nos encontramos que un mismo inmueble sirve para cubrir varios Bancos:

              De menor a mayor algunos de las resultados para algunos de los bancos obtenidos en Argentina, Buenos Aires (poco tiempo de procesamiento):


              Algunos ejemplos para USA, San Francisco, aprovechando el límite de requests de la API (poco tiempo de procesamiento):

              Plan de contingencia:

              Creemos que las Entidades e Instituciones deben plantear nuevos requisitos y controles en la comercialización de inmuebles sobre aquellas ubicaciones cercanas o puntos estratégicos. Inclusive los mismos bancos deberían tomar una actitud proactiva, determinando ellos mismos las posibilidades existentes de sufrir un atentado de este estilo.


              Future work

              Mercadolibre

              Adicionalmente se pueden hacer un montón de mejoras para poder acelerar el proceso automático previamente mencionado, y con más performance.

              En el caso de Mercadolibre, como los filtros son lo que más nos condicionan, se pueden organizar los datos de los bancos por filtros que van a aplicar, y por cada resultado por filtro comparar contra cada uno de los bancos dentro de ese grupo, ahorrándonos así varias iteraciones innecesarias.

              Un ejemplo para entender esto mejor.

              Teniendo los siguientes bancos:
              Banco A, Buenos Aires, Capital Federal, Palermo, Mario Bravo 1000
              Banco B, Buenos Aires, Capital Federal, Belgrano, Cabildo 100
              Banco C, Buenos Aires, Capital Federal, Palermo, Honduras 1000
              Banco D, Buenos Aires, Capital Federal, Belgrano, Virrey del Pino 100
              Banco E, Buenos Aires, Capital Federal, Palermo, Córdoba 3000

              Los bancos A, C y E aplican los siguientes filtros:
              State : Buenos Aires
              City: Capital Federal
              Neighborhood: Palermo

              Y los bancos B y D los siguientes:
              State : Buenos Aires
              City: Capital Federal
              Neighborhood: Belgrano

              Como las direcciones finales se discriminan, entonces podemos agruparlos por filtros, donde cada filtro es una especie de key única para un conjunto que contendrá todos los bancos que lo compartan. Logrando así, en vez de iterar por cada banco, iteramos por filtros, y frente a cada resultado obtenido se compara la distancia con cada uno de los miembros del conjunto que posee ese filtro.

              Zillow

              En el caso de Zillow, existe una especie de solución para los límites de la API. La cantidad de peticiones es por AUTH KEY, pero con poner cualquier email que sea capaz de recibir correo (ya que a los datos nos los envían él) basta. No hay límites ni captcha. Después es cuestión de chequear cuando se haya llegado al límite (o poner un contador, por qué no), y rotar de KEY.

              Google maps

              La API de Google maps también tiene límite, pero apis como mercadolibre no tienen y proveen adicionalmente la posibilidad de obtener las coordenadas del inmueble (aunque no siempre están), así que en caso de que la geoapi de google llegue al límite se pueden usar esas coordenadas.

              Servicios

              Otra cosa que se puede hacer es pagar por todos los servicios que usamos, para reducir o quitar completamente los límites. La versión paga de la API de Google Maps posee la posibilidad de realizar búsquedas alrededor de una área en especial, y filtrar por categorías. Dentro de las categorías se encuentra una llamada "banco" :), no hace falta decir más nada, ¿no?

              Spoiler: Se itera una sola vez por todos los inmuebles disponibles, obteniendo todos los bancos cercanos (filtrando por categoría Banco), logrando así lo más óptimo que existiría en complejidad relacionado a estas búsquedas.


              Conclusión

              Como han podido ver, comenzar a pensar en la planificación de un robo a un banco en cuestiones de proximidad es mas sencillo de lo que uno puede imaginar.

              Vivimos en un mundo pletórico de datos. La percepción que hoy tenemos cada uno de nosotros mismos ha cambiado, como también la apreciación que tenemos de nuestro entorno. Pasamos de nuestros barrios, ciudad o país a un horizonte de carácter planetario.

              Creemos que estas investigaciones o trabajos deben ayudar a tomar conciencia de que la información que se encuentra expuesta es abundante, donde no se tiene claro que brindamos y a quienes lo hacemos echando a la suerte su uso para propósitos buenos o malos.

              Y ustedes, ¿saben a quién le confían sus datos?

              Funny facts

              #1.- Durante el robo al Banco Río de Acasuso en el 2006, los boqueteros todo el tiempo que permanecieron adentro del local, pidieron pizza y gaseosas y le cantaron el feliz cumpleaños a una de las rehenes.
              Cuando la policía se decidió a entrar al banco, sólo encontraron a los rehenes, el túnel por el cual huyeron los ladrones, armas de juguete y una nota que decía "En barrio de ricachones, sin armas ni rencores. Es sólo plata, no amores".
              #2.- Durante el robo al Banco de la República de Pasto en en 1977, los delincuentes tuvieron tiempo hasta para hacer bromas. En la bóveda pintaron un letrero grande que decía: "Chanfle, no contaban con mi astucia".

              Links útiles

              Sucursales para bancos, y cajas de seguridad, páginas oficiales.


              Este es el segundo articulo de una serie demostrando la distintas formas de abusar de la información publica. Agradecemos a Matias A. Ré Medina y Francisco Amato por la enorme contribución al mismo.

              Infobyte en la 3ra Conferencia Ciberseguridad e Infraestructuras Críticas de Información

              El próximo jueves 9 Infobyte será parte de la 3ra Conferencia Internacional y Taller de la República Argentina sobre Ciberseguridad e Infraestructuras Críticas de Información 2015 en el Palacio San Martin- Arenales 761 CABA-. 

              Image may be NSFW.
              Clik here to view.
              Nuestro CEO Francisco Amato será orador en el panel del Sector Privado desarrollando sobre el rol de las empresas en la ciberseguridad junto con otras empresas líderes.

              La jornada tiene como objetivo realizar un intercambio de buenas prácticas a nivel internacional y nacional, en aspectos técnicos, jurídicos y para los hacedores de políticas de protección de infraestructuras críticas de información y ciberseguridad.

              La conferencia además abordará la ciberseguridad en Latinoamerica y contará con oradores como Christopher Painter el Coordinador de Asuntos Ciberneticos del Departamento de Estado de Estados Unidos, el Ingeniero Manuel Sicilia, Jefe de Análisis en Ciberseguridad  del Centro Nacional para la Protección de las Infraestructuras Críticas CNPIC de España y Alexis Brignoni, Agente Especial FBI. 






              Infobyte Sponsors BarCamp Miami!


              On March 28th the fifth edition of Bar Camp Miami took place where people celebrated 10 years of Bar Camp worldwide.


              Barcamp tries to bring together a wide range of members in the IT community, including technologists, designers and engineers, as well as angel investors. Barcamp provides an event where people from different backgrounds can participate with an eye on making sure Miami is on the cutting edge of technology and innovations. 

              Infobyte was fortunate to be able to Sponsor the 2015 edition which was held in the Miami Ad School.


              In a Bar camp, everyone is expected to participate in some way. This adds a lot of diversity and different points of view to the types of talks presented and the discussions afterwards. Some of the more notable ones included were ¨How to explain a project in three minutes¨, ¨How crowdfunding works¨,  among others . One of the most interesting was from one of the biggest hacker groups in Miami, Code for Miami: How to hack Miami.

              Overall, it was a great event and we hope to be able to participate in future Bar Camps!








              Lanzamos PictureMe, aplicación para pacientes con Alzheimer

              La aplicación contribuye al mejoramiento y calidad de vida de quienes sufren la enfermedad.

              PictureMe, una aplicación para smartphones que les permite a quienes sufren la enfermedad registrar cada momento de sus vidas, contribuyendo de esta manera al mejoramiento de su memoria y de su calidad de vida

              Image may be NSFW.
              Clik here to view.
              El Mal de Alzheimer es una terrible enfermedad neurodegenerativa, que afecta a la memoria, al pensamiento, al comportamiento y a las actividades diarias a medida que mueren las células nerviosas (neuronas).
              Aparece con mayor frecuencia en personas mayores de 65 años, afectando hoy en día a 37 millones de personas, y debido al aumento de expectativa de la población, se estima que en el 2050 serán 115 millones los que sufrirán este mal.

              Si bien hasta hoy el síndrome es incurable, existen diferentes maneras de reducir su impacto.

              El prestigioso neurocientífico e investigador Facundo Manes, formado en Harvard y Cambridge, director del “Instituto Alzheimer”  y autor del libro “Convivir con personas con Alzheimer y otras demencias”,
              afirma que “una de las estrategias más eficaces para reducir el deterioro cognitivo, es proteger aquellas neuronas sanas”

              Siguiendo esta misma línea, y contribuyendo a mejorar la calidad de vida y a atenuar el deterioro cognitivo de quienes se ven afectados, y dentro de las políticas de Responsabilidad Social Empresaria de nuestra compañía, hemos desarrollado PictureMe, que convierte al equipo en un “Instant Life Recorder”, es decir una grabadora instantánea de vida.

              PictureMe, aplicación para pacientes con Alzheimer

              Image may be NSFW.
              Clik here to view.
              PictureMe, aplicación para pacientes con Alzheimer
              PictureMe es una aplicación Open Source y se puede obtener de manera 100 % gratuita, para que todo afectado o el entorno familiar del que sufre la enfermedad pueda acceder a ella. La aplicación va a estar también disponible desde el Android Market los ingresos obtenidos serán cedidos a la ONG Salud Activa, institución sin fines de lucro que tiene como misión mejorar la calidad de vida de las personas y de la comunidad.

              PictureMe permite a sus usuarios llevar un registro diario y de cada pocos segundos de su entorno. De acuerdo a Estudios científicos de la Universidad de Cambridge,  se comprobó que la revisión de los acontecimientos diarios documentados en fotos permite mejorar en pacientes con Alzheimer la memoria y la calidad de vida.

              Un antecedente de Pictureme es Sensecam, un dispositivo con el mismo objetivo creado por Microsoft, licenciado por diversas empresas para su comercialización. A un costo superior de u$s 400.

              Con la popularización de los Smartphones, la mejora continua en las cámaras incorporadas y el aumento de hardware de los dispositivos, PictureMe se convierte hoy en un aliado ideal para la contención de la enfermedad.

              Se puede acceder a la aplicación y código de fuente desde aquí:
              https://github.com/infobyte/pictureme

              Si queres apoyar este proyecto puedes bajarla desde aquí:
              https://play.google.com/store/apps/details?id=com.pictureme

              Para más información, acceder al sitio web de PictureMe en http://www.pictureme.ws/

              Faraday v1.0.10 release


              Faraday v1.0.10 is finally here!

              Changes:

              • Styles changes in Web UI: fancy component selection, improved workspaces selection.
              • Performance improvement in the dashboard

              Take a look our new pretty Web UI !




              Image may be NSFW.
              Clik here to view.



              Bugfixes:

              • Date on Workspace creation
              • Tables in Firefox compatibility
              • Fix bug OSX install





              Faraday Workshop! Tuesday May 19th - 2 PM (EST)



              Join us for the next Faraday workshop, Tuesday May 19th - 2 PM (EST).

              Image may be NSFW.
              Clik here to view.


              During this workshop we will quickly go over how to get the corporate demo version up and running and then show the new features included in Faraday v1.0.10


              To register for the workshop, click here.

              Image may be NSFW.
              Clik here to view.


              After the workshop, participants will receive the full corporate versionto try out for thirty days.   









              Questions? Comments? Get in Touch with us at communications@infobytesec.com. 

              PictureMe released, a new app for Alzheimers patients

              This new app tries to help improve the quality of live for those that suffer from this terrible disease.

              PictureMe, a smartphone app that turns your phone into a life camera, allowing for pictures to be taken every few seconds. Studies have been shown that this helps to offset memory loss, improving the quality of life for those with the disease.
              Image may be NSFW.
              Clik here to view.


              Alzheimer is a neuro- degenerative disease, that affects one´s memory, thought, behavior and daily activities that many of us take for granted. This is due to the gradual loss of nervous system cells.

              The ailment is most prevelant in those over 65, affecting over 37 million people today and given the general greying of the population, its estimated that in 2050 there will be over 115 millon people suffering from this dissease.

              Although there is of yet no known cure, there are different ways to alleviate its impact.

              The prestigious neuro-scientist and researcher (studied and worked in both Harvard and Cambridge) Facundo Manes, stresses that one of the most effective strategies for reducing  cognitive deterioration, is to try to protect healthy neurons¨.

              Following Infobyte´s strong commitment to corporate social responsibility, we have developed PictureMe, that instantly records photos for the wearer and allows them to review these photos at the end of the day or whenever they want. This is shown to reduce memory loss and protect neurons.

              Image may be NSFW.
              Clik here to view.
              PictureMe, aplicación para pacientes con Alzheimer
              PictureMe is an Open Source app and can be obtained 100% free, for those with these disease or for a family member looking to help. The app will be available on the Google Play App store and all proceeds will be donated to the the NGO, Salud Activa (http://www.saludactiva.org.ar/), a not-for-profit working to improve the quality of life of those with dementia and alzheimers and works to improve awareness and treatment in the community.

              The predecessor of PictureMe was Sensecam, a device with the same goal made by Microsoft and licensed to different businesses for its commercialisation with a price of over $400.

              With the popularization of Smartphones, including having multiple cameras and the rapid imporvement of both the hardward and software of the devices it is not quite easy to have this tool with out spending a fortune. PictureMe is now an ideal ally in the fight against Alzheimers.


              You can download the app as well the source code here:
              https://github.com/infobyte/pictureme

              If you want to support the project and want to download it, check out:
              https://play.google.com/store/apps/details?id=com.pictureme

              For more information, go to http://www.pictureme.ws/

              Infobyte en la RSA 2015


              El pasado 20 a 24 de Abril se celebró la  edición 2015 de una de las más grandes conferencias de seguridad,  "donde el mundo habla seguridad"; con un número récord de 490 sesiones, 700 speakers y más de 33.000 asistentes. Las conferencias magistrales, sesiones y debates se centraron en  Internet of Things, Threat Intelligence, Application Security & DevOps y mucho más.


              Los que pasaron por el stand de Infobyte durante la RSA obtuvieron una demo de la última versión  de Faraday, un innovador software para la ejecución de Penetration Test colaborativos.

              “La conferencia nos brindó un espacio para mostrar lo que hacemos en profundidad abriendonos a nuevos mercados de todo el mundo. La RSA brinda un espacio donde uno puede fortalecer el mercado con su aporte y al mismo tiempo, enriquecerse con lo que otros líderes de mercado tienen para ofercer" comentaron Francisco Amato y  Federico Kirschbaum, directores de Infobyte que viajaron al evento.

              Algunas fotos del evento: 




              RSA Recap- Infobyte

              From April 20th to the 24th, the 2015 edition of RSA Conference was held in the Moscone Center in San Francisco. RSA, which is one of the biggest events on the IT security calender broke records this year with over 490 sessions, 700 speakers and more than 33,000 people in attendance. Some of this year´s hot topics included the Internet of Things, Big Data, Threat Intelligence and Application Security among others.

              Infobyte had the opportunity to have a booth during the event, where besides giving away cell phone stands, snazzy tee-shirts and chocolates, were also showing demos of the latest version of Faraday, an innovative platform for performing collaborative penetration tests.

              ¨The conference was a great opportunity for us to show both our services and products to people from all around the world. RSA really gives a space for a company to show how they can help the entire industry and at the same time understand what other companies can offer as well¨ said Francisco Amato, CEO of Infobyte.

              A couple of pictures from the event: 



              Webinar Faraday May 19th 2PM (est)


              This is the webinar Faraday May 19th 2PM (est). During this workshop we will quickly go over how to get the corporate demo version up and running and then show the new features included in Faraday v1.0.10.  


              Viewing all 236 articles
              Browse latest View live


              <script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>