  Global Positioning System (GPS) is used ubiquitously in a wide variety of
applications ranging from navigation and tracking to modern smart grids and
communication networks. However, it has been demonstrated that modern GPS
receivers are vulnerable to signal spoofing attacks. For example, today it is
possible to change the course of a ship or force a drone to land in an hostile
area by simply spoofing GPS signals. Several countermeasures have been proposed
in the past to detect GPS spoofing attacks. These countermeasures offer
protection only against naive attackers. They are incapable of detecting strong
attackers such as those capable of seamlessly taking over a GPS receiver, which
is currently receiving legitimate satellite signals, and spoofing them to an
arbitrary location. Also, there is no hardware platform that can be used to
compare and evaluate the effectiveness of existing countermeasures in
real-world scenarios. In this work, we present SPREE, which is, to the best of
our knowledge, the first GPS receiver capable of detecting all spoofing attacks
described in literature. Our novel spoofing detection technique called
auxiliary peak tracking enables detection of even a strong attacker capable of
executing the seamless takeover attack. We implement and evaluate our receiver
against three different sets of GPS signal traces and show that SPREE
constrains even a strong attacker (capable of seamless takeover attack) from
spoofing the receiver to a location not more than 1 km away from its true
location. This is a significant improvement over modern GPS receivers that can
be spoofed to any arbitrary location. Finally, we release our implementation
and datasets to the community for further research and development.
