初期状態のラズパイはどこまで危ないの?
初期状態Raspberry Pi OSのrootってそんなに簡単に奪取できちゃうんでしょうか?
試してみました。
なお、私自身、セキュリティの専門家ではありませんので、甘い部分や誤りの部分があるのかも知れません。
読まれている皆様におきましては、その辺を頭に入れていただいてくれれば幸いです。
Raspberry Pi OS 通常版の場合
piユーザーのパスワードの変更
テストのためにRaspberry Pi Imagerから直接作成したmicroSDを新たに作りました。
立ち上げると、ウイザードが開き、地域設定の他、piユーザーのパスワードを変更を促しますので、この時点でpiユーザーのパスワードは変更しています。
そして、各種アップデートを行います。
SSHを有効化する
この時点である程度の安全性は確保されているのですが、再起動後立ち上げても、SSHは有効になっていません。
おそらく、外部からアクセスできないようにするために、SSHを初期段階では無効にしているのでしょう。
この状態で、何らかの方法でIPアドレスを知り、SSHを使ってアクセスしても、当然アクセスできません。
SSHを有効にするには、意識的に操作する必要があります。
攻撃者のつもりになってログインを試みる(rootユーザー編)
SSHを操作できるようになったあと(ポート22のまま)、rootでログインを試みます。
パスワードなし、piの初期パスワード、piの変更後パスワードを入れてみましたが、すべてはじかれました。
このように、Raspberry Pi OSの初期段階では、rootユーザーから直接アクセスできなくなっており、 rootの安全性はある程度確保されています。
なお、/etc/ssh/sshd_configのPermitRootLoginの中身は 、以下のようになっており、rootでのアクセスそのものは、認めています。
この後、rootのパスワードを設定し、rootにてそのパスワードを使ってアクセスしようとしたのですが、うまくいきませんでした。
ただ、念のためにrootのパスワードも設定しておいた方がいいでしょう。
攻撃者のつもりになってログインを試みる(piユーザー編)
あと、攻撃者側がラズパイだとわかったあるいは仮定した上で、piユーザーでアクセスするとどうでしょう。
当然のことながら、パスワードさえわかれば、変更後パスワードでアクセスできてしまいます。
ここまで来れば、管理者権限奪取も可能でしょう。
Raspberry Pi OS Lightの場合
piユーザーのパスワードを変更する
今回も、Raspberry Pi Imagerから直接作成したmicroSDを新たに作りました。
立ち上げても、piユーザーのパスワードを変更を促すようなことはしませんので、初期パスワードを入れます。
ユーザーID:pi パスワード:raspberry
今回は実験のため行いませんでしたが、本来はログイン成功後は、piユーザーを残すか否かにかかわらず、ひとまずパスワードを変更して、精神的な安定を得た方がいいです。
また、通常版のようなアップデート機能はありませんので、手動で最初のアップデートを行う必要がありますが、今回は実験のため行っていません。
SSHを有効化する
SSHなのですが、Light版も、SSHは有効になっていません。
SSHを有効にするには、こちらも意識的に操作する必要があります。
$ sudo raspi-config (この後、「Interfacing Options」で、設定できます)
攻撃者のつもりになってログインを試みる(rootユーザー編)
SSHを操作できるようになったあと(ポート22のまま)、rootでログインを試みます。
パスワードなし、piの初期パスワードを入れてみましたが、すべてはじかれました。
こちらも、rootでのアクセスはできません。
このように、Raspberry Pi OSの初期段階では、rootユーザーから直接アクセスできなくなっており、 rootの安全性はある程度確保されています。
なお、/etc/ssh/sshd_configのPermitRootLoginの中身は、通常版と同じになっており、rootでのアクセスそのものは、認めています。
この後、rootのパスワードを設定し、rootにてそのパスワードを使ってアクセスしようとしたのですが、うまくいきませんでした。
ただ、念のためにrootのパスワードも設定しておいた方がいいでしょう。
攻撃者のつもりになってログインを試みる(piユーザー編)
あと、piユーザーはどうでしょう。
当然のことながら、変更後パスワードでアクセスできてしまいます。
管理者権限奪取も可能です。
ちなみに、上記を和訳(DeepLによる)すると、
Linux raspberrypi 5.10.17-v7l+ #1403 SMP Mon Feb 22 11:33:35 GMT 2021 armv7l Debian GNU/Linux システムに含まれるプログラムはフリーソフトウェアです。 各プログラムの正確な配布条件は、/usr/share/document の各ファイルに記載されています。 各プログラムの正確な配布条件は、/usr/share/doc/*/copyright の各ファイルに記載されています。 各プログラムの正確な配布条件は、/usr/share/doc/*/copyright の各ファイルに記載されています。 適用される法律で認められている範囲で、無保証です。 最終ログイン日 Fri Apr 23 04:45:21 2021 from xxx.xxx.xxx.xxx SSHが有効で、「pi」ユーザーのデフォルトパスワードが変更されていません。 これはセキュリティ上のリスクです。「pi」ユーザーでログインし、「passwd」と入力して新しいパスワードを設定してください。 Wi-Fi は現在 rfkill でブロックされています。 使用する前に raspi-config で国を設定してください。 pi@raspberrypi:~ $ sudo su -. SSHが有効で、「pi」ユーザーのデフォルトパスワードが変更されていません。 これはセキュリティ上のリスクです。「pi」ユーザーでログインし、「passwd」と入力して新しいパスワードを設定してください。 Wi-Fi は現在 rfkill でブロックされています。 使用する前に raspi-config で国を設定してください。 root@raspberrypi:~#
(太字化は筆者による)
このように、思いっきり怒られます。
教訓
ラズパイは、ある程度の安全性がありますが、SSH接続する場合は、真面目に安全対策した方がいいでしょう。
ラズパイをIoT機器として使用している現場は多いと思います 。
私はセキュリティの専門家ではありませんが、SSHを閉鎖のままにするか、あるいはサーバー並みのセキュリティ対策をするかは、必要ではないかと思います。