Parrot Bebopドローンは携帯電話やタブレットとWiFiで接続して操縦します。Bebopがアクセスポイントになる形で接続しますがまったくの鍵なし、パスワード無しで接続します。流石に操縦するためのアプリケーションは一度にひとつしかBebopをコントロールすることは出来ません。また多くの人はBebopが何者であるかは知らないでしょうし、飛行している時間はせいぜい10分ほどですから特別にセキュリティーを気にかける必要は無いのかも知れません。
しかしながら、所謂known portであるftpとtelnetもパスワードなしで開放されています。ドローンですから盗まれるのは写真くらいなものですが破壊活動は色々と可能です。負荷をかけることも出来るでしょうし、ファイルを壊したり、リブートすら簡単に出来てしまいます。やはり少々心配なので何かしら簡単な対策を施してみたいと思います。
[ SSIDの変更 ]
これは特別な手順ではなく、もともとBebopの機能として実装されています。BebopのディフォルトSSIDはbebopの文字が含まれていて知っている人がみればひと目で分かります。設定画面の中にSSIDが表示されている場所があります。そこの文字列を書き換えてBebopを再起動すれば変更完了です。皆が接続したくないようなSSIDが思いつかなかったので、ランダムな文字列にしてみました。
[ WEPを設定する ]
http://forum.parrot.com/usa/viewtopic.php?id=30025
Parrot Bebopフォーラムにて設定方法が紹介されています。ただしftpでのデータ転送速度がかなり遅くなることも報告されています。たださえビデオフィードの遅れが指摘されているので、データ転送速度が遅くなるのはあまり好ましくはありません。おそらくは操縦そのものや本体に記録されているビデオには影響はないと思います。WEP自体は、その気になれば瞬時に破られてしまういますが、何もないよりは良いでしょう。私自身はWEP設定は使用していません。
注) このスレッドでAutomatic modeとして紹介されている方法は危険ですのでお勧めしません。これについては後で説明します。
[ MACフィルターと隠しSSID ]
http://forum.parrot.com/usa/viewtopic.php?id=30038
Bebop側で接続を許可するMACアドレスを設定する方法とSSIDを見せなくする方法も同じくParrot Bebopフォーラムで紹介さていました。私はMACフィルターを現在使用中です。
注) このスレッドの最初でPersitent setupとして紹介されている方法は危険ですのでお勧めしません。
[ 設定方法について ]
WEPもMACフィルターもbcmwlというコマンドで設定します。telnetでコマンドを投入すると一時的に設定されますが、再起動すると設定はなくなってしまいます。そのため起動時にこの設定をどこかに書き込む必要があります。ただし、現在のところ文鎮化する可能性のある方法しか見つかっていません。私自身も簡単なテストを行ってみました。フォーラムで紹介されているスクリプト(/sbin/broadcom_setup.sh)とアクセスポイントの設定ファイル(/etc/hostapd.conf)のコメントを少し変更してファクトリーリセットと呼ばれる方法(電源ボタンをLEDが点滅するまで長押し、その後自動的に遮断するまで待つ)を試してみました。変更したSSIDは元に戻りますが、/sbin/broadcom_setup.shと/etc/hostapd.confは元に戻ることはありませんでした。このため、接続不可能になるような設定を書き込んでしまった場合は文鎮化することになります。実際にフォーラムでも文鎮化した事例が報告されています。TTL接続でコンソールは活かせるようですので最悪の場合も何とか回復は出来るかも知れません。
私はSHEILD Portableに以下のtelnetアプリケーションを導入して起動するたびにコマンドを投入することにしました。
https://play.google.com/store/apps/details?id=apc.android.tool.telnet
MACフィルターに必要なコマンドは2つですが以下のようにセミコロンを挟めば一度に投入出来ます。
bcmwl mac MM:AA:CC:11:11:11 ;bcmwl macmode 2
MM:AA:CC:11:11:11は端末のMACアドレスを調べて置き換えます。
また入力域を長押しすることによりコマンド履歴が呼び出せますので実際に長いMACアドレスを入力するのは最初の一回だけです。実際にやってみると、さほど手間ではありません。ただし、Bebopが起動してからコマンド投入までの間に誰かが接続した場合は防ぎようがありません。
10 comments untill now