パーティションハッシュを記録するには

パーティションハッシュを記録するには

私は公的機関のためのプロジェクトを開発しようとしています。つまり、Raspberry Piコンピュータを買う余裕のない家族にコンピュータを提供するのです。Raspbianオペレーティングシステムといくつかの便利なソフトウェアがすでにインストールされているSDカードが付属しています。

つまり、一部のプロバイダに私たちのために作成してもらう必要があります。たとえば、500枚のSDカードと私たちが提供するスクリプト:インストールRaspbianバージョンXYZそれからapt-get install ...

しかし、セキュリティの問題があります。プロバイダが悪意のない、SDカードに表示されたくない他のソフトウェアを追加しようとしないことを確認するにはどうすればよいですか?

SDカードをランダムに取り出して差し込んだ場合、Rasperry Pi良い命令を使用してSDカードが期待どおりに作成されたことを確認する方法はありますか?

答え1

誰かがあなたの代わりにオペレーティングシステムをどのように設定したかを確認する方法はありません。物を隠すことはいつでも可能です。ベンダーが悪意のある行動を起こす危険がある場合、唯一の選択肢は次のとおりです。

  • より信頼できるサプライヤーと協力
  • どのイメージをインストールする必要があるかをバイト単位で知っていることを確認してください。プロバイダにスクリプトだけでなく、正確な画像を送信すると機能します。

各パーティションのsha256sum(ハッシュ値)を画像に書き込んだ後、SDカードと比較できます。プラグを差し込んで電源を入れる前に。理論的にはパーティションを追加できますが、これは簡単に見つけることができます。

イメージハッシュが利用できない理由は、SDカードが予想より1バイト大きいか小さい場合はハッシュが無効なためです。 SDカードのサイズは、指定されたサイズを持っていると主張するカードによって異なります。


パーティションハッシュを記録するには

この手順はすべてのLinuxシステムで実行できます。 SD容量が十分に大きいRaspberry Piを使用できます(少なくとも16GBを推奨)。

  1. 使用したい画像をダウンロードしてください。例: 最新ラズベリーパイ画像:

    wget --content-disposition https://downloads.raspberrypi.org/raspbian_full_latest
    unzip *raspbian-stretch-full.zip
    
    ls -lh *raspbian*
    -rw-r--r-- 1 philip philip 5.1G Apr  8 19:43 2019-04-08-raspbian-stretch-full.img
    -rw-r----- 1 philip philip 2.0G Apr  8 19:48 2019-04-08-raspbian-stretch-full.zip
    
  2. カスタム画像。

  3. ループバックデバイスの設定
    sudo losetup /dev/loop0 2019-04-08-raspbian-stretch-full.img
    sudo partprobe /dev/loop0
    
    ls -lh /dev/loop0*
    brw-rw---- 1 root disk   7, 0 May 15 19:18 /dev/loop0
    brw-rw---- 1 root disk 259, 0 May 15 19:18 /dev/loop0p1
    brw-rw---- 1 root disk 259, 1 May 15 19:18 /dev/loop0p2
    
  4. 各パーティションのsha256sumを取得します(少し時間がかかります!)。ファイルとして保存してください。
    sudo sha256sum /dev/loop0p*
    66aa77d8405ab585865d0e0378f06bd8baa5ab41bbb6e9cc23ac6b2be40974d4  /dev/loop0p1
    1895a2c5d9e93eb3b644d8cacab9d928184290e30bba6d27b7eb9d486c30e5e8  /dev/loop0p2
    
  5. 掃除する
    sudo partx -d /dev/loop0
    sudo losetup -d /dev/loop0
    

ハッシュ値の確認

実行中のLinuxシステムにカードを挿入します。ラズベリーファイを使用したい場合は、USB SDカードリーダーを利用して確認したいカードを2枚目のカードに挿入すればよい。

/dev/sdaカードは、または/dev/sdb...などの新しいドライブとして表示されます。

次のように読み取ると仮定すると、/dev/sda各パーティションのハッシュを取得できます。

ls -lh /dev/sd*
brw-rw---- 1 root disk 8, 16 May  9 12:23 /dev/sda
brw-rw---- 1 root disk 8, 17 May  9 12:23 /dev/sda1
brw-rw---- 1 root disk 8, 18 May  9 12:23 /dev/sda2
sudo sha256sum /dev/sda1 /dev/sda2
66aa77d8405ab585865d0e0378f06bd8baa5ab41bbb6e9cc23ac6b2be40974d4  /dev/sda1
1895a2c5d9e93eb3b644d8cacab9d928184290e30bba6d27b7eb9d486c30e5e8  /dev/sda2

カスタム画像

この手順はLinuxシステムでは実行されず、Raspberry PiなどのARMプロセッサが必要です。

  1. 以前に作成されたループバックパーティション(/dev/loop0p2)をマウントします。オペレーティングシステムは起動p2設定にインストールされますp1

    mkdir rpi-os
    sudo mount /dev/loop0p2 rpi-os
    
    df -h foo
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/loop0p2    4.9G  4.4G  202M  96% /home/philip/rpi-os
    
  2. chrootマウントされたファイルシステムを入力してください。
    sudo chroot rpi-os
    
  3. 必要なソフトウェアをインストールし、必要に応じて変更してください。たとえば、
    apt-get update
    apt-get install some-new-package
    
  4. シャットダウンと削除
    df -h rpi-os
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/loop0p2    4.9G  4.5G  149M  97% /home/philip/rpi-os
    
    exit
    sudo umount rpi-os
    

答え2

確認する方法はありますか?Linuxなんとなくインストールされました。はい。

正当な更新と構成ファイルの変更を無視します。

  • まず、LUKSを使用してLinuxルートパーティションを暗号化できます。 {これは追加防御になりますが、他の合併症が発生する可能性があります。}
  • まず、すべての関連書類を確認してください。
  • 明らかに、カーネルは通常/bootにあります。vmlinuz...何か
  • 対応するinitrd、initramfs、grub、およびefiファイルはすべて/bootの下にあります。

  • Linuxの1つがチェックサムデータベースを実行しているLinuxでAIDEを使用すると便利です。侵入検知

  • ファイルシステムのレイアウト、インストールされたフォルダ、有効化/無効化サービス(chkconfigまたはsystemctl)など、基本が期待どおりであることを確認するいくつかのスクリプトを作成します。

すべてが確認されたら、すべてが大丈夫であるという一定のレベルの自信を持つことができます。誤った警告が原因で問題が発生します。たとえば、合法的なカーネルアップデートがあり、チェックサムを新しいカーネルに合わせて変更する必要があります。それ以外の場合は、変更されたと赤で表示されます。そして、.confや他の重要で本当に重要なファイルと変更することができますが、気にしない、または気にしないでください結果をもたらすファイルを区別します。

プロバイダが悪意のない、SDカードに表示されたくない他のソフトウェアを追加しようとしないことを確認するにはどうすればよいですか?

ここに百万ドルの質問があります。 {特定の順序なし} ubuntu、suse、redhat / centos、debian、Linux「プロバイダ」が誰であるかに関係なく、何かを接続しないかどうかはどうすればわかりますか?答え=良いプロバイダを選択してください。 「Linux カーネルソース」が欠落しているという編集証に陥り、すべてのソースをチェックして、「それら」が何かを挿入していないことを確認します。次に、Linux上で実行されているgnomeやgnomeなどの1000以上のrpmの両方をチェックして、機能していることを確認します。 glibc は何かが滑るのを防ぎます。危険があります。このリスクをどれだけ最小限に抑えたいかはあなた次第です。約100を超えるLinuxプロバイダがあります。 ubuntu、debian、suse、rhなど、すでに存在し、ほとんど検証済みのプロバイダを選択してください。

答え3

OPの質問に固執する:

SDカードをランダムに取り出してラズベリーファイに差し込んだとき、良い命令でSDカードが期待どおりに生成されたかどうかを確認する方法はありますか?

カードをRaspberry Piに接続して起動すると、インストールされているものを確認できません。ルートキットの目的は、ルートキットの存在を隠すことです。

もちろん、解決策はまったく実行せず、自分が所有し信頼するシステムで読み、調査、比較することです。

関連情報