ハッシュによるスクリプトの整合性を検証する
このステップでは、暗号化ハッシュを使用してスクリプトの整合性を検証する方法を学びます。これにより、スクリプトを保護した後、攻撃者によって変更または改ざんされていないことを確認できます。ここでは、SHA-256 ハッシュを計算する sha256sum ユーティリティを使用します。
まず、安全な check_file.sh スクリプトのハッシュを生成し、ファイルに保存しましょう。このファイルは「既知の良好な」署名として機能します。
sha256sum ~/project/check_file.sh > ~/project/check_file.sha256
このコマンドは check_file.sh の SHA-256 ハッシュを計算し、その出力を check_file.sha256 という新しいファイルにリダイレクトします。このファイルのコンテンツを表示してみましょう。
cat ~/project/check_file.sha256
ファイル名に続く長い文字列が表示されます。この文字列はスクリプトの一意のハッシュです。
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 /home/labex/project/check_file.sh
(注意:あなたのハッシュ値は異なる場合があります。)
次に、不正な変更をシミュレーションしましょう。スクリプトの末尾に簡単なコメントを追加します。このような小さな変更でも、ハッシュは完全に変わるはずです。
echo "## A harmless comment" >> ~/project/check_file.sh
これでスクリプトは変更されました。その整合性を確認するために、-c (check) オプション付きの sha256sum を使用できます。これは、署名ファイルからハッシュを読み取り、スクリプトの現在のハッシュと比較します。
sha256sum -c ~/project/check_file.sha256
ファイルが変更されたため、コマンドは失敗を報告します。
/home/labex/project/check_file.sh: FAILED
sha256sum: WARNING: 1 computed checksum did NOT match
これにより、スクリプトの整合性が侵害されたことが確認されます。この手法は、実行しているコードが信頼できるコードであることを保証するために不可欠です。