Linuxでソフトウェアを安全にダウンロードするための5つの方法
「Linuxにはウイルスが存在しない」というのはよくある誤解です。実際には、Linuxにもウイルスは存在します。プログラムファイルを一つずつ調べて感染ファイルを見つけることは可能ですが、Linuxシステムが侵害されたことに気づくまでに数ヶ月かかることもあります。
信頼とは繊細なもので、安易に与えるべきではありません。インターネット上に公開されているからといって、それが安全だとは限りません。OSと自分自身を守るためには、いくつかの対策を講じる必要があります。
油断によるセキュリティリスクは、情報漏洩やウイルス感染、さらには許可されていないユーザーによるLinuxマシンへの不正アクセスまで多岐にわたります。そこで本記事では、Linuxでソフトウェアを安全にダウンロードする方法を紹介します。
1. ハッシュ値を確認する
ハッシュ値(チェックサムとも呼ばれます)とは、データを暗号学的関数に通すことで生成される英数字の文字列です。ファイルにとってのデジタル署名のような役割を果たします。
ダウンロードしたファイルが破損していないことを確認するために、多くのオープンソースサイトでは、ダウンロード完了後に得られるべきハッシュ値を事前に公開しています。具体例を見てみましょう。
人気のWebサーバーであるTomcat 10をダウンロードするとします。Tomcatバージョン10.0.6のハッシュ値は以下の通りです。
3d39b086b6fec86e354aa4837b1b55e6c16bfd5ec985a82a5dd71f928e3fab5370b2964a5a1098cfe05ca63d031f198773b18b1f8c7c6cdee6c90aa0644fb2f2 *apache-tomcat-10.0.6.tar.gz*apache-tomcat-10.0.6.tar.gz の部分は単なるファイル名です。「3d39...2f2」までの値がハッシュ値に該当します。
この値を取得するには、アーカイブファイルをダウンロードしたディレクトリに移動し、次のコマンドを実行します。
sha512sum apache-tomcat-10.0.6.tar.gz上記のハッシュ値が表示されれば問題ありません。異なる値が表示された場合は、ダウンロードが破損していることを意味するため、直ちにそのファイルを削除してください。
この例ではsha512というハッシュ関数を使用しています。これはApache Tomcat財団がダウンロードの整合性を保護するために採用した関数だからです。
他のサイトでは、一般的なsha256やsha384など、別のハッシュ関数を使用している場合があります。
サイトが別のハッシュ関数を採用している場合は、コマンド名を対応するハッシュ関数名に置き換えるだけでOKです。
sha256sum ダウンロードしたファイル名
sha384sum ダウンロードしたファイル名また、ここで使用したファイルはTARファイル(アーカイブファイル)ですが、バイナリファイルをダウンロードした場合はどうでしょうか?幸い、Linuxではファイル形式に関わらず同じハッシュ結果が得られます。
Linuxのハッシュ関数はデフォルトではテキストモードで動作します。バイナリモードに切り替えるには、-bオプションを以下のように使用します。
sha256sum -b ファイル名2. 安全なサイトを利用する
信頼できるサイトからダウンロードすることで、マルウェアに感染するリスクを大幅に減らせます。基本的なルールとして、必ずダウンロードしたいソフトウェアの公式サイトを利用しましょう。何らかの理由で公式サイトが見つからない場合は、信頼できるサイトの利用を検討してください。
FileHorseやSourceForgeなどのダウンロードサイトは、長年にわたり運営されており、ユーザーの信頼を獲得している信頼性の高いサイトの例です。
3. ソースコードを自分でコンパイルする
オープンソースコミュニティが存在する最大の理由の一つは、大手ソフトウェア企業を盲目的に信用し、自分のPCで不正なことが行われていないと願う必要がない点にあります。
バイナリファイルをダウンロードするとき、あなたはコードをコンパイルした人物に一定の権限を委ねることになります。しかし、ソースコードにアクセスできれば、その権限を自分の手に取り戻すことができます。
オープンソースなら、ソフトウェアが作者の主張どおりに動作することを独自に検証できます。唯一の欠点は、平均以上のプログラミングスキルが必要になること、そして該当分野について十分な知識が求められることです。
戦略的に、関心のある重要なファイルだけを確認するという選択肢もあります。
例として、GitHubリポジトリからC言語のソースコードをクローンした場合を考えてみましょう。以下は自分でコンパイルする手順です。
まず、build-essentialパッケージをインストールするために次のコマンドを実行します。このパッケージには、Linuxでソフトウェアをビルドする際に必要な重要なツールが含まれています。
sudo apt-get install build-essential次に、gccコンパイラを使ってC言語のコードをコンパイルします。
gcc プログラム名.c -o プログラム名コンパイル後、次のように入力すればプログラムを実行できます。
./プログラム名4. 公式パッケージマネージャーを使用する
ソフトウェアのインストール、更新、アンインストールを行う最も簡単な方法は、パッケージマネージャーを利用することです。pacman、dpkg、DNF、APTなど、さまざまなパッケージマネージャーが存在します。パッケージマネージャーは公式のソフトウェアリポジトリやアプリストアと直接連携して動作します。
パッケージマネージャーは多くの面倒な作業を自動的に処理してくれます。ソフトウェアが必要とする依存関係の管理、ダウンロードの整合性と真正性の確保、バージョン管理といった標準的な操作を担当します。
さらに良いことに、多くのディストリビューションにはパッケージマネージャーがプリインストールされています。例えば、Debian 10にはAPTが、Archベースのシステムにはpacmanが搭載されています。
5. 自ら情報収集を行う
ソフトウェアの世界は絶えず変化しており、セキュリティトレンドを追い続けることは自己防衛の重要な要素です。状況に応じて選べるインストール方法は複数あります。例えば、仮想マシンへのソフトウェアインストールや、アプリケーションのコンテナ化などです。
特に注目すべきはアプリのコンテナ化です。これにより、アプリは異なる実行環境でも同じように動作することが保証されます。
ソフトウェア本体と依存関係の実行を基盤となるインフラから分離できることは、前例のないレベルのセキュリティをもたらします。例えば、依存関係のセキュリティ検証を一度行えば、さまざまな環境でも同様の安全性が期待できます。
また、ソフトウェアのレビューを確認したり、GitHubでの議論をフォローしたりするのも良い習慣です。レビューを見れば、ダウンロード後に何を期待すべきか、ユーザーが観察した予期しない挙動、そして推奨事項などを把握できます。
GitHubのディスカッションを通じて、ソフトウェアのインストール中やインストール後に講じるべき予防策についても知ることができます。公式ドキュメントに記載されていない多くのセキュリティ上の考慮事項も得られるでしょう。
さらに、GitHub上で多数のコントリビューターが参加しているフォークにも注意を払いましょう。プロトコルの変更が行われている可能性があり、こうしたアップデートに追随できないとセキュリティが損なわれる恐れがあります。
推奨事項とベストプラクティス
主要なソフトウェアをダウンロードする前に、まずシステムのパッケージとリポジトリリストを更新しておくのが常に良い習慣です。すべてのパッケージマネージャー(Arch Linuxのpacmanなど)には、パッケージのインストール、更新、削除の機能が備わっています。
インストール済みパッケージが最新であることを確認したら、必要なソフトウェアのダウンロードに進みましょう。可能な限り、パッケージマネージャーでパッケージを入手できる場合はそちらを利用してください。これがLinuxでソフトウェアをインストール・更新する最も簡単かつ安全な方法です。
-
LinuxでZipファイルを解凍する方法|GUIとコマンドラインの使い方を徹底解説
Zipファイルは、ダウンロード速度が遅く1バイトでも節約が重要だった時代ほど頻繁には使われなくなりました。それでも今なお広く普及しているファイル形式の一つであり、いずれ開く必要に迫られることもあるでしょう。使用しているディストリビューションにもよりますが、Zipアーカイブの展開自体は比較的簡単です。とはいえ、より高度な操作方法や応用的なテクニックを知っておけば、いざというときにきっと役立ちます。GUIを使ってZipファイルを解凍する多くのLinuxデスクトップ環境では、Zipファイルの解凍は非常に簡単です。ファイルを右クリックすると複数のオプションが表示され、通常は「ここで展開」や「ここに解凍
-
PCにサードパーティ製ソフトウェアを安全にダウンロード・更新する方法
パソコンはソフトウェアとハードウェアで構成されており、ソフトウェアの中で最も重要なのがOS(オペレーティングシステム)であるMicrosoft Windowsです。しかし、Windows 10だけではすべてのソフトウェアのニーズを満たせないため、さまざまな作業を行うためにサードパーティ製アプリケーションをPCにインストールすることになります。インターネット上には数十万規模のアプリが存在し、そこで生まれるのが「どれが安全なのか見分けられない」という悩みです。さらに、ダウンロード元の信頼性をどう確認するかという課題もあります。こうした疑問を解決してくれるのが「Systweak Software U