]> pere.pagekite.me Git - homepage.git/blobdiff - blog/archive/2017/09/09.rss
New image for new post.
[homepage.git] / blog / archive / 2017 / 09 / 09.rss
index 7baa3bf688323b960fd08ca62f239a237979e6c8..72b333b15797747f9d0d66cb153472b569b9dc92 100644 (file)
@@ -6,6 +6,143 @@
                 <link>http://people.skolelinux.org/pere/blog/</link>
 
        
                 <link>http://people.skolelinux.org/pere/blog/</link>
 
        
+       <item>
+               <title>Visualizing GSM radio chatter using gr-gsm and Hopglass</title>
+               <link>http://people.skolelinux.org/pere/blog/Visualizing_GSM_radio_chatter_using_gr_gsm_and_Hopglass.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Visualizing_GSM_radio_chatter_using_gr_gsm_and_Hopglass.html</guid>
+                <pubDate>Fri, 29 Sep 2017 10:30:00 +0200</pubDate>
+               <description>&lt;p&gt;Every mobile phone announce its existence over radio to the nearby
+mobile cell towers.  And this radio chatter is available for anyone
+with a radio receiver capable of receiving them.  Details about the
+mobile phones with very good accuracy is of course collected by the
+phone companies, but this is not the topic of this blog post.  The
+mobile phone radio chatter make it possible to figure out when a cell
+phone is nearby, as it include the SIM card ID (IMSI).  By paying
+attention over time, one can see when a phone arrive and when it leave
+an area.  I believe it would be nice to make this information more
+available to the general public, to make more people aware of how
+their phones are announcing their whereabouts to anyone that care to
+listen.&lt;/p&gt;
+
+&lt;p&gt;I am very happy to report that we managed to get something
+visualizing this information up and running for
+&lt;a href=&quot;http://norwaymakers.org/osf17&quot;&gt;Oslo Skaperfestival 2017&lt;/a&gt;
+(Oslo Makers Festival) taking place today and tomorrow at Deichmanske
+library.  The solution is based on the
+&lt;a href=&quot;http://people.skolelinux.org/pere/blog/Easier_recipe_to_observe_the_cell_phones_around_you.html&quot;&gt;simple
+recipe for listening to GSM chatter&lt;/a&gt; I posted a few days ago, and
+will show up at the stand of &lt;a href=&quot;http://sonen.ifi.uio.no/&quot;&gt;Åpen
+Sone from the Computer Science department of the University of
+Oslo&lt;/a&gt;.  The presentation will show the nearby mobile phones (aka
+IMSIs) as dots in a web browser graph, with lines to the dot
+representing mobile base station it is talking to. It was working in
+the lab yesterday, and was moved into place this morning.&lt;/p&gt;
+
+&lt;p&gt;We set up a fairly powerful desktop machine using Debian
+Buster/Testing with several (five, I believe) RTL2838 DVB-T receivers
+connected and visualize the visible cell phone towers using an
+&lt;a href=&quot;https://github.com/marlow925/hopglass&quot;&gt;English version of
+Hopglass&lt;/a&gt;.  A fairly powerfull machine is needed as the
+grgsm_livemon_headless processes from
+&lt;a href=&quot;https://tracker.debian.org/pkg/gr-gsm&quot;&gt;gr-gsm&lt;/a&gt; converting
+the radio signal to data packages is quite CPU intensive.&lt;/p&gt;
+                                       
+&lt;p&gt;The frequencies to listen to, are identified using a slightly
+patched scan-and-livemon (to set the --args values for each receiver),
+and the Hopglass data is generated using the
+&lt;a href=&quot;https://github.com/petterreinholdtsen/IMSI-catcher/tree/meshviewer-output&quot;&gt;patches
+in my meshviewer-output branch&lt;/a&gt;.  For some reason we could not get
+more than four SDRs working.  There is also a geographical map trying
+to show the location of the base stations, but I believe their
+coordinates are hardcoded to some random location in Germany, I
+believe.  The code should be replaced with code to look up location in
+a text file, a sqlite database or one of the online databases
+mentioned in
+&lt;a href=&quot;https://github.com/Oros42/IMSI-catcher/issues/14&quot;&gt;the github
+issue for the topic&lt;/a&gt;.
+
+&lt;p&gt;If this sound interesting, visit the stand at the festival!&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>Easier recipe to observe the cell phones around you</title>
+               <link>http://people.skolelinux.org/pere/blog/Easier_recipe_to_observe_the_cell_phones_around_you.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Easier_recipe_to_observe_the_cell_phones_around_you.html</guid>
+                <pubDate>Sun, 24 Sep 2017 08:30:00 +0200</pubDate>
+               <description>&lt;p&gt;A little more than a month ago I wrote
+&lt;a href=&quot;http://people.skolelinux.org/pere/blog/Simpler_recipe_on_how_to_make_a_simple__7_IMSI_Catcher_using_Debian.html&quot;&gt;how
+to observe the SIM card ID (aka IMSI number) of mobile phones talking
+to nearby mobile phone base stations using Debian GNU/Linux and a
+cheap USB software defined radio&lt;/a&gt;, and thus being able to pinpoint
+the location of people and equipment (like cars and trains) with an
+accuracy of a few kilometer.  Since then we have worked to make the
+procedure even simpler, and it is now possible to do this without any
+manual frequency tuning and without building your own packages.&lt;/p&gt;
+
+&lt;p&gt;The &lt;a href=&quot;https://tracker.debian.org/pkg/gr-gsm&quot;&gt;gr-gsm&lt;/a&gt;
+package is now included in Debian testing and unstable, and the
+IMSI-catcher code no longer require root access to fetch and decode
+the GSM data collected using gr-gsm.&lt;/p&gt;
+
+&lt;p&gt;Here is an updated recipe, using packages built by Debian and a git
+clone of two python scripts:&lt;/p&gt;
+
+&lt;ol&gt;
+
+&lt;li&gt;Start with a Debian machine running the Buster version (aka
+  testing).&lt;/li&gt;
+
+&lt;li&gt;Run &#39;&lt;tt&gt;apt install gr-gsm python-numpy python-scipy
+  python-scapy&lt;/tt&gt;&#39; as root to install required packages.&lt;/li&gt;
+
+&lt;li&gt;Fetch the code decoding GSM packages using &#39;&lt;tt&gt;git clone
+  github.com/Oros42/IMSI-catcher.git&lt;/tt&gt;&#39;.&lt;/li&gt;
+
+&lt;li&gt;Insert USB software defined radio supported by GNU Radio.&lt;/li&gt;
+
+&lt;li&gt;Enter the IMSI-catcher directory and run &#39;&lt;tt&gt;python
+  scan-and-livemon&lt;/tt&gt;&#39; to locate the frequency of nearby base
+  stations and start listening for GSM packages on one of them.&lt;/li&gt;
+
+&lt;li&gt;Enter the IMSI-catcher directory and run &#39;&lt;tt&gt;python
+  simple_IMSI-catcher.py&lt;/tt&gt;&#39; to display the collected information.&lt;/li&gt;
+
+&lt;/ol&gt;
+
+&lt;p&gt;Note, due to a bug somewhere the scan-and-livemon program (actually
+&lt;a href=&quot;https://github.com/ptrkrysik/gr-gsm/issues/336&quot;&gt;its underlying
+program grgsm_scanner&lt;/a&gt;) do not work with the HackRF radio.  It does
+work with RTL 8232 and other similar USB radio receivers you can get
+very cheaply
+(&lt;a href=&quot;https://www.ebay.com/sch/items/?_nkw=rtl+2832&quot;&gt;for example
+from ebay&lt;/a&gt;), so for now the solution is to scan using the RTL radio
+and only use HackRF for fetching GSM data.&lt;/p&gt;
+
+&lt;p&gt;As far as I can tell, a cell phone only show up on one of the
+frequencies at the time, so if you are going to track and count every
+cell phone around you, you need to listen to all the frequencies used.
+To listen to several frequencies, use the --numrecv argument to
+scan-and-livemon to use several receivers.  Further, I am not sure if
+phones using 3G or 4G will show as talking GSM to base stations, so
+this approach might not see all phones around you.  I typically see
+0-400 IMSI numbers an hour when looking around where I live.&lt;/p&gt;
+
+&lt;p&gt;I&#39;ve tried to run the scanner on a
+&lt;a href=&quot;https://wiki.debian.org/RaspberryPi&quot;&gt;Raspberry Pi 2 and 3
+running Debian Buster&lt;/a&gt;, but the grgsm_livemon_headless process seem
+to be too CPU intensive to keep up.  When GNU Radio print &#39;O&#39; to
+stdout, I am told there it is caused by a buffer overflow between the
+radio and GNU Radio, caused by the program being unable to read the
+GSM data fast enough.  If you see a stream of &#39;O&#39;s from the terminal
+where you started scan-and-livemon, you need a give the process more
+CPU power.  Perhaps someone are able to optimize the code to a point
+where it become possible to set up RPi3 based GSM sniffers?  I tried
+using Raspbian instead of Debian, but there seem to be something wrong
+with GNU Radio on raspbian, causing glibc to abort().&lt;/p&gt;
+</description>
+       </item>
+       
        <item>
                <title>Datalagringsdirektivet kaster skygger over Høyre og Arbeiderpartiet</title>
                <link>http://people.skolelinux.org/pere/blog/Datalagringsdirektivet_kaster_skygger_over_H_yre_og_Arbeiderpartiet.html</link>        
        <item>
                <title>Datalagringsdirektivet kaster skygger over Høyre og Arbeiderpartiet</title>
                <link>http://people.skolelinux.org/pere/blog/Datalagringsdirektivet_kaster_skygger_over_H_yre_og_Arbeiderpartiet.html</link>