買ったらまず実施！Jetson Nanoのセットアップとセキュリティ対策

# はじめに
本記事は、**Jetson Nano**購入時の**セットアップ方法と、実施すべきセキュリティ対策**について紹介します。

# Jetson Nanoとセキュリティ
[Jetson Nano](https://www.nvidia.com/ja-jp/autonomous-machines/embedded-systems/jetson-nano/)は、ポータブルにDeep Learning等のAI技術を活用できるデバイスで、2021年時点では代表的なIoT製品の一つと言えます。

近年このような**IoT製品を悪用したセキュリティ攻撃が多発**しており、
その代表例である[マルウェア"Mirai"](https://www.ipa.go.jp/files/000059579.pdf)では、ネットに常時接続されたWebカメラの脆弱性を悪用されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/067d2c77-91ef-1566-bd04-2b3bc6f89945.png)
Jetson Nanoは画像処理を主用途とする特性上、上記のWebカメラと同様に常時稼働を前提とした使用法が想定され、攻撃のターゲットになる可能性は十分に考えられます。
その一方で競合製品のRaspberry Piと比べ、**セキュリティ関係の記事が非常に少ない**と感じたので、対策を本記事にまとめたいと思います。

# 必要なもの
・Jetson Nano (本例ではJetson Nano 2GBモデルを使用)
・MicroSDカード（本例では128GBを使用）
・USBマウス＆キーボード
・無線LAN子機
・PC (SSH接続の確認に使用。本例ではWindows10を使用)
・上記Jetson NanoとPCのLAN接続環境（無線LANルータにつなげばOK）

# セットアップ
まずは[公式手順](https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit#write)に従い、Jetson Nanoを動作する状態までセットアップします

**手順**（リンク先から具体内容に飛べます）
[・周辺機器の接続](https://qiita.com/c60evaporator/items/a35e811edb49484c53bc#%E5%91%A8%E8%BE%BA%E6%A9%9F%E5%99%A8%E3%81%AE%E6%8E%A5%E7%B6%9A)
[・SDカードのフォーマット](https://qiita.com/c60evaporator/items/a35e811edb49484c53bc#sd%E3%82%AB%E3%83%BC%E3%83%89%E3%81%AE%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88)
[・SDカードにOSインストール](https://qiita.com/c60evaporator/items/a35e811edb49484c53bc#sd%E3%82%AB%E3%83%BC%E3%83%89%E3%81%ABos%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)
[・OSの初期設定](https://qiita.com/c60evaporator/items/a35e811edb49484c53bc#os%E3%81%AE%E5%88%9D%E6%9C%9F%E8%A8%AD%E5%AE%9A)

## 周辺機器の接続
下図に基づき、電源、HDMI、マウス、キーボード、無線LAN子機(またはLANケーブル)を接続します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/0182f371-f0b9-903b-b4f2-f36a950ef6c9.png)

## SDカードのフォーマット
[こちらのサイト](https://www.sdcard.org/downloads/formatter/sd-memory-card-formatter-for-windows-download/
)からSD Memory Card Formatterをダウンロードし、指示に従ってインストールします。

インストールが終わったら、SD Memory Card Formatterを起動してフォーマットを実行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/69b4eae1-e919-35c6-6e62-6bdcd9168bfb.png)

インストール後、エクスプローラで認識されているかを確認します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/dabef2cf-9aa2-0b5f-76b4-626b402fb131.png)

## SDカードにOSインストール
NVIDIA公式が配布している「JetPack」というOSをSDカードにインストールします。
JetPackはUbuntuベースのOSで、Jetson Nanoの独自機能を付加しています。
### OSイメージのダウンロード
[こちらのアドレス](https://developer.nvidia.com/embedded/downloads)からOSイメージ（2GBモデルの場合、「Jetson Nano 2GB Developer Kit SD Card Image」）をダウンロードしてください。
※6GB前後とサイズが大きいので注意してください

### OSイメージのSDカードへの書き込み
MicroSDカードへの書き込みにはEtcherというツールを使用します。

[こちらのサイト](https://www.balena.io/etcher/)からEtcherをダウンロードし、指示に従ってインストールします。

インストールが終わったらEtcherを起動し、OSイメージを選択してSDカードに書き込みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/a32a5b16-5ec1-b73a-9761-b89b6dcea4b0.png)
書き込みが完了したら、SDカードをJetson Nano本体に差し込みます。

## OSの初期設定
Jetson Nanoの電源を入れると、以下のようなライセンス確認の画面が表示されるので、Continueを押します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/80a00a69-2e8a-7cac-62b7-b52b05274cfc.png)
言語選択の画面が出るので、日本語を選択します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/353db69e-aed4-0fce-fb14-ff6e7e688303.png)
キーボード選択画面が出るので、日本語キーボードを選択します（USが良い人はUSを選択してください）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/cb44607a-6498-9f29-70ca-93c85d425db3.png)
WiFiネットワークの選択画面が出るので、好きなネットワークを選択します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/1a11135b-f903-c5a3-818a-401bf1682fbe.png)
タイムゾーン選択画面が出るので、Tokyoを選択します（海外在住の方は在住地を選択してください）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/afcc8b98-8e3c-57a1-8991-eebadbbb1f99.png)
ユーザ名とパスワードを設定します。
この際、**「自動的にログインする」はセキュリティ的に脆弱性を作る原因となるので極力選択しないでください**（[後述](https://qiita.com/c60evaporator/items/a35e811edb49484c53bc#1%E8%87%AA%E5%8B%95%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%AE%E8%A7%A3%E9%99%A4)）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/0cf26677-c392-086c-ad24-ad7ce5f34199.png)
パーティション選択画面が出ますが、基本的にはデフォルト（最大値が入力されている）のままで構いません
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/ebca069b-b45b-f6b7-a226-1389756e5c9d.png)
スワップ領域の作成有無を設定します。スワップ領域とはPyTorch等でAIのモデルを読み込む際に、メモリの不足分を補うための領域だそうです。基本的にはデフォルトの「作成する（Create SWAP File）」を選べば問題ないかと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/e79963dc-0dc0-22e2-37c2-f31188e51698.png)
初期設定に使った余分な領域を削除するかの確認が出ますが、基本的には「続ける」を押して先に進んでください
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/9753c9af-5ff0-26a0-8959-55d5b4a3dc58.png)
節電設定の選択をします。基本的にはデフォルトのままで良いかと思います
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/187e7325-969b-5f71-87ae-e5174b2aaee1.png)
これでJetPackのデスクトップが表示されるかと思います。
デスクトップ上のターミナル（LXTerminal）を開き、、下記コマンドでインストールされているパッケージをアップデートしてください

```
sudo apt update
sudo apt upgrade
```

### nanoのインストール
JetPackには、デフォルトのエディタとしてvimが入っています。
vimの扱いに慣れていなければ、初心者でも扱いやすいnanoをインストールした方が無難です

```
sudo apt install nano
```
以上でセットアップは完了です。引き続いてセキュリティ対策に移ります。

# セキュリティ対策
上記でJetsonの使用自体はできるようになりますが、ここからはセキュリティを高める作業を実施します。

## 具体的な危険ポイント
セキュリティ面におけるJetsonの危険ポイントは以下が列挙されます。
セキュリティの頑強さは利便性はトレードオフ関係があるので、必要に応じて対処の有無を選択してください。

|No.|危険ポイント|対処法|
|---|---|---|
|1|電源を入れると自動的にログインされる設定が存在|[自動ログインの解除](https://qiita.com/c60evaporator/items/a35e811edb49484c53bc#1%E8%87%AA%E5%8B%95%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%AE%E8%A7%A3%E9%99%A4)|
|2|デフォルトで開いているポートが複数存在|[不要なポートを閉じる](https://qiita.com/c60evaporator/items/a35e811edb49484c53bc#2ufw%E3%81%A7%E4%B8%8D%E8%A6%81%E3%81%AA%E3%83%9D%E3%83%BC%E3%83%88%E3%82%92%E9%96%89%E3%81%98%E3%82%8B)|
|3|SSHのポート番号が固定|[ポート番号を変更](https://qiita.com/c60evaporator/items/a35e811edb49484c53bc#3ssh%E3%81%AE%E3%83%9D%E3%83%BC%E3%83%88%E7%95%AA%E5%8F%B7%E3%82%9222%E3%81%8B%E3%82%89%E4%BB%96%E7%95%AA%E5%8F%B7%E3%81%AB%E5%A4%89%E6%9B%B4)※|
|4|SSHがパスワード認証|[SSHを公開鍵認証に変更](https://qiita.com/c60evaporator/items/a35e811edb49484c53bc#4ssh%E3%82%92%E5%85%AC%E9%96%8B%E9%8D%B5%E8%AA%8D%E8%A8%BC%E3%81%AB%E5%A4%89%E6%9B%B4)|
|5|開発の早い製品で脆弱性の発見頻度が比較的高いが、ユーザ側は更新を放置しがち|[こまめにアップデートを実行](https://qiita.com/c60evaporator/items/a35e811edb49484c53bc#5%E3%81%93%E3%81%BE%E3%82%81%E3%81%AB%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88%E3%82%92%E5%AE%9F%E8%A1%8C%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%99%82%E3%81%A7%E3%81%AA%E3%81%8F%E7%B6%99%E7%B6%9A%E9%81%8B%E7%94%A8%E6%99%82%E3%81%AB%E5%AE%9F%E6%96%BD)|
※SSHのポート番号変更は実施の要否の意見が分かれるので、実施するかどうかは適宜判断してください。

**具体的な対処法**を下記します（上記「対処法」のリンクからも飛べます）

## 1.自動ログインの解除
インストール時に自動ログインを選択できますが（下図②の上）、自動ログインでは機器の電源をONするとそのままパスワード入力なしで自由に操作できるため、セキュリティの観点からは避けるべきです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/0cf26677-c392-086c-ad24-ad7ce5f34199.png)
もし**自動ログインを選択してしまった場合、以下の手順で解除**できます。

デスクトップの左下のメニューから、設定 → ユーザとグループ を選択します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/890df2e0-81ce-8f6f-b54e-cd8c1bca555f.png)
「パスワード」の項目にある「変更」をクリックします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/5eda94bd-64a6-b904-644e-044d4592ab6a.png)
「ログインの時にパスワードを尋ねない」のチェックを外します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/a41fb344-8862-ff21-d663-e071ee948665.png)

## 2.UFWで不要なポートを閉じる
Jetsonの一般的なOSであるJetPackでは、**SSHと呼ばれる遠隔操作用プロトコルのポート（TCPのポート22）がデフォルトで開放されています**。

前述のWebカメラが乗っ取られた例では、Telnetと呼ばれる遠隔操作用のプロトコルが悪用されました。
SSHは暗号化されているためTelnetよりはセキュリティ面で優れていますが、遠隔操作という特性上ターゲットにされやすいプロトコルなので、使用しないのであればポートを閉じた方が安全です（RaspberryPiではデフォルトで閉じています）

また、**開放されているポートが多いと、攻撃者から「チョロい」と思われて攻撃を受けやすくなる**心理的効果もあるので、この点でも不要なポートは閉じる方が好ましいです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/762e57bd-5bd6-7a25-1940-f13b30f1b872.png)

デフォルトではTCPのポート22（SSH）以外にも、TCPのポート111 (rpcbind、[悪用例あり](https://www.mtioutput.com/entry/2019/01/24/090000))もデフォルトで開いているようなので、これら不要なポートを以下の手順で閉じます

### UFWのインストール
ポートを閉じるために、LinuxのパーソナルファイアウォールであるUFWを使用します。

下記コマンドでUFWをインストールします。

```
sudo apt install uwf
```
下記コマンドでUFWを有効化します。

```
sudo ufw enable
```
この時点で**ポートが全て閉じるので、対処としてはいったん完了**となります。
さらに詳細な設定をしたい方は、以下の設定を必要に応じて実施してください。

### IPv6を無効にする
通常はIPv4しか使用しないと思うので、その場合はIPv6を無効にします。
以下のコマンドでufwの設定ファイルを開きます

```
sudo nano /etc/default/ufw
```
ファイルの上の方にある`IPV6=yes`となっている部分を、`IPV6=no`に書き換えます

### 必要なポートを開放する
インストール完了時点では全てのポートが閉じた状態となっています。
必要なポートを開きたい時は、以下のコマンドで指定したポートを開放します

```
sudo ufw allow [開きたいポート番号]
```

例えば、https（443）のポートを開放したい時、以下のコマンドを実行します

```
sudo ufw allow 443
```

### 開放されているポートの確認
開放されているポート一覧は、以下のコマンドで確認できます

```
sudo ufw status
```

```:表示結果
To                         Action      From
--                         ------      ----
443                        ALLOW       Anywhere
443 (v6)                   ALLOW       Anywhere (v6)
```

### ポートの開放を解除する
ポートの開放を解除（ルールを削除）したいときは、以下のコマンドを実行します

```
sudo ufw delete [削除したい行]
```
※[削除したい行]は、ポート番号ではなくstatusで表示される表の何行目かで指定します。
上記「表示結果」のルールの場合、443は1行目、443 (v6)は2行目として指定します。

### ポート開放をTCPのみに絞る
少しマニアックですが、トランスポート層プロトコルにおいてTCPは許可するがUDPは許可したくないときは、以下のコマンドで実現できます。

```
sudo ufw allow [開きたいポート番号]/tcp
```
例えば22番ポート（SSH）のTCPのみを開きたい時は、

```
sudo ufw allow 22/tcp
```
となります。

### 送信元のIPを制限してポート開放
以下のように送信元のIPを制限すれば、セキュリティ的な強度はかなり向上します。

```
sudo ufw allow from [許可したいIP] to any port [開きたいポート番号] (proto [許可したいトランスポート層プロトコル])
```
例えば192.168.1.2から22番ポートへのTCP通信のみを許可したい場合

```
sudo ufw allow from 192.168.1.2 to any port 22 proto tcp
```
となります。

あるネットワーク全体からの通信を許可したい場合は、以下のように設定します

```
sudo ufw allow from [許可したいネットワークのIPアドレス]/[サブネット] to any port [開きたいポート番号] (proto [許可したいトランスポート層プロトコル])
```
例えば192.168.1.0/24系列のネットワークから22番ポートへのTCP通信のみを許可したい場合、

```
sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp
```
となります。

ひとまず今回は全てのポートをいったん閉じ（`sudo ufw delete`でルール削除）、次の操作に進みます

## 3.SSHのポート番号を22から他番号に変更
デフォルトではSSHのポート番号が22となっており、このことは広く知られた事実であるため、ネットワークのIPとパスワードが分かれば遠隔操作可能となってしまいます。
ポートを変更すれば、変更後の番号も知る必要が生まれるため、セキュリティ強度が多少向上します。

※攻撃者が本腰を入れれば変更後の番号もポートスキャン等で割れる恐れがあり、変更の必要性は意見が割れています。**実際に変更するかどうかは各自ご判断**いただければと思います

### ポート番号の変更
下記のコマンドを実行し、

```
sudo nano /etc/ssh/sshd_config
```
開かれたファイルの上の方にある
`#Port 22`
の部分を
`Port 新ポート番号`
に変更し、（コメントアウトを外すのを忘れずに）

sudo /etc/init.d/ssh restart
でSSHを再起動します。

### UFWで変更後のポート番号への接続を許可
このままだと前述のUFWに弾かれてSSH接続できないので、以下のコマンドで変更後のポート番号からのTCP通信を許可リストに追加します。

```
sudo ufw allow [変更後のポート番号]/tcp
```
となります。

上記の代わりに以下のコマンドで接続元のネットワークまで制限すれば、さらにセキュリティ強度が上がるかと思います
（ただし、ネットワーク外部からSSH接続できなくなります）

```
sudo ufw allow from [許可したいネットワークのIPアドレス]/[サブネット] to any port [変更後のポート番号]/tcp
```

上記作業後、同ネットワーク内のPCから

```
ssh [Jetsonのユーザ名]@[JetsonのIPアドレス] -p [新ポート番号]
```
を実行し、パスワードを入力してSSH接続できれば成功です。

## 4.SSHを公開鍵認証に変更
デフォルトではSSH接続はパスワード認証で実施されますが、
より**セキュリティレベルの高い公開鍵認証が推奨**されます。

https://l-w-i.net/t/openssh/auth_001.txt

パスワードは「知識認証」、公開鍵は「所持認証」にあたり、
それらを組み合わせた公開鍵認証は、多要素認証の観点からセキュリティレベルが高いそうです。

https://njs-net.hatenablog.com/entry/2015/07/10/091655

というわけで、公開鍵認証を実現するための設定を進めていきます。

###秘密鍵と公開鍵の作成
※これはSSH接続元となる**PC側（本例ではWindows10）での作業**です。
間違えてJetsonNano側で作成した場合、id_rsaとid_rsa.pubを削除して下さい
※WindowsPCとJetsonNanoが、同ネットワークにある前提で話を進めます。

コマンドプロンプトで下のコマンドを実行します（メールアドレスは任意です）

```
ssh-keygen -t rsa -b 4096 -C "email@example.com"
```
鍵の生成場所を聞かれますが、こだわりがなければEnterでデフォルトの場所へ

```
Enter file in which to save the key (C:\Users\[ユーザ名]\.ssh\id_rsa):
```
パスワードが求められるので、
好きなパスワード（2段階認証の観点ではJetsonNanoユーザパスワードとは別のもの推奨）を入力すると、
上で指定したフォルダにid_rsa（公開鍵）とid_rsa.pub（秘密鍵）が生成されます。

###公開鍵のJetsonNanoへの送信
色々とやり方（SDカード等）がありますが、ここではSSHで送信します。

**JetsonNano側の**ホームディレクトリ直下に.sshフォルダを作成します
（権限関係でハマるので、**絶対に「sudo mkdir」としないでください**）

```
mkdir ~/.ssh
```

**PC側で**下記コマンドを実施し、
SSH通信で公開鍵を送信（この時点ではパスワード認証を使用）

```
cd [公開鍵の場所 (デフォルトではC:\Users\[ユーザ名]/.ssh/id_rsa)]
scp -P [新ポート番号] id_rsa.pub [JetsonNanoのユーザ名]@[JetsonNanoのIPアドレス]:/home/[JetsonNanoのユーザ名]/.ssh
```

###※JetsonNanoのIPアドレスの調べ方

```
ifconfig
```
これにより表示される

```
wlan0: flags=   <UP,BROADCAST,RUNNING,MULTICAST>  mtu
        inet 192.168.***.***以下続く
```
このinetの右に記載されている数字がJetsonNanoのIPアドレスとなります。


###公開鍵のパーミッション変更
**JetsonNano側で**下記コマンドを実行します。

**・id_rsa.pubの内容をauthorized_keysに追加**

```
cd ~/.ssh/
cat id_rsa.pub >> authorized_keys
```
**・authorized_keysのパーミッションを600（所有者のみ読み書き可能）に**

```
chmod 600 authorized_keys
```
**・.sshフォルダのパーミッションを700（所有者のみ全権限付与）に（うまくいかなければsudoを加える）**

```
chmod 700 ~/.ssh
```

**・公開鍵ファイルを削除**

```
rm ~/.ssh/id_rsa.pub
```

※なお、過去に他のPCから本JetsonNanoに接続したことがある場合は、下記のパーミッション変更操作は不要です（公開鍵のauthorized_keysへの書込のみ必要）

```
chmod 600 authorized_keys
chmod 700 ~/.ssh
```

**公開鍵認証での接続を確認**
**PC側で**下記コマンドを実行し、公開鍵認証でSSH接続します

```
ssh [JetsonNanoのユーザ名]@[JetsonNanoのIP] -i [秘密鍵のパス] -p [SSHのポート番号]
```
※秘密鍵のパスは、ファイル名まで記載します
（デフォルトでは「C:\Users\\[ユーザ名]\\.ssh\id_rsa」）

公開鍵認証のパスワードが要求されるので入力します。
JetsonNanoのユーザ名が表示されれば成功です

###各種SSH設定の変更
SSHのセキュリティを向上させるため、下記の設定変更を実施します。
・rootユーザでのログイン禁止
・パスワード認証を無効化して公開鍵認証のみ許可
・空パスワードを無効に


③のときと同様に、**JetsonNano側**でsshd_configを編集します。
※OSのバージョンによりデフォルト設定が変わりますが、
変更後さえ合っていれば問題ありません

```
sudo nano /etc/ssh/sshd_config
```
開かれたファイルに対し、下記部分を変更します
**・rootユーザでのログインを禁止**
上の方に記載されている
「#PermitRootLogin prohibit-password」を「PermitRootLogin no」に変更

**・パスワード認証を無効化して公開鍵認証のみ許可**
真ん中付近に記載されている
「#PasswordAuthentication yes」を「PasswordAuthentication no」に変更

**・空パスワードを無効に**
PasswordAuthenticationのすぐ下に記載されている
「#PermitEmptyPasswords no」を「PermitEmptyPasswords no」に変更

###設定の反映と公開鍵認証接続の再確認
下記コマンドでSSHサービスを再起動し、設定を反映させます

```
sudo /etc/init.d/ssh restart
```

再度**PC側で**下記コマンド実行し、公開鍵認証接続できれば成功です！

```
ssh [JetsonNanoのユーザ名]@[JetsonNanoのIP] -i [秘密鍵のパス] -p [SSHのポート番号]
```

## 5.こまめにアップデートを実行（インストール時でなく継続運用時に実施）
攻撃者はセキュリティの抜け穴である「脆弱性」を突いてきますが、近年は発見された脆弱性を素早く突く攻撃が盛んに行われており、これを防ぐためには**こまめなソフトウェアのアップデート**を実行し、修正パッチを適用することが何より重要です。

JetsonNanoは新機能開発が盛んに行われているという特性上、直近も[脆弱性](https://ameblo.jp/nx-station/entry-12686791809.html)が何度か発見されており、こまめなアップデートの重要性が高い機器の一つと言えますが、一方で設置後は手を掛けたくないというIoT機器という特性上、ユーザ側は更新を放置しがちです。

脆弱性に関しては、[以下のnvidiaのページにまとめられて](https://nvidia.custhelp.com/app/answers/detail/a_id/5205/~/security-bulletin%3A-nvidia-jetson-agx-xavier-series%2C-jetson-xavier-nx%2C-jetson)いたりしますが、これら最新情報を全てキャッチアップするのは困難だと思うので、現実的には**OSのアップデートを行う事が有効な対処**となります。

手動で行う場合と、自動で行う場合を以下に示します。
状況に応じて好きな方法を選択してください。

### 手動アップデート
OS全体（JetPack）のアップデートを手動で実行します。
下記の記事が分かりやすいです

https://konchangakita.hatenablog.com/entry/2020/12/04/220000

### 自動アップデート（Ubuntuのみ）
JetPackのうち、ベースとなるUbuntu部分に関しては自動更新を設定する事ができます。
下記の記事が分かりやすいです。

https://www.miki-ie.com/column/jetson-nano-security/