ソフトウェアアップデートとは、インストール済みのソフトウェアをより最新の状態にするために変更するプロセスです。また、ソフトウェアのアップデートに使用される保存データも指します。ストレージが高価だった時代には、ファイルのパッチ適用がアップデートの主流でした。しかし、大容量の配布用ストレージメディアと高速なインターネット帯域幅の登場により、パッチ適用ではなくファイル全体を置き換えることが一般的になりました。
アップデートには、他のアップデートの事前適用が必要な場合や、複数のコンポーネントの事前または同時アップデートが必要な場合があります。アップデートを容易にするため、オペレーティングシステムには自動または半自動のアップデート機能が用意されていることがよくあります。パッケージ管理システムやアプリストアでも、アップデートの自動化機能が提供されています。
アップデートのサイズは様々です。ゲームのアップデートのように、グラフィックファイルやサウンドファイルなどのデータが追加または置き換えられる場合は、アップデートのサイズが比較的大きくなることがあります。通常、アップデートの実行時間はソフトウェアの初回インストールよりも短くなります。
アップデートは多くの場合、機能向上を目的としていますが、実際には機能低下を招く可能性があります。アップデートには、意図しない不具合が含まれる場合もあります。場合によっては、アップデートによって意図的に機能が無効化されることもあります。例えば、ユーザーがライセンスを保有していない機能を削除するなどです。

ソフトウェア更新システムでは、ユーザーとソフトウェア開発者が更新を管理できます。2017年のPetyaサイバーパンデミックでは、金融ソフトウェア「MeDoc」の更新システムが侵害され、更新を介してマルウェアが拡散されたと言われています。 [ 1 ] [ 2 ] Torブログで、サイバーセキュリティ専門家のMike Perry氏は、決定論的で分散型のビルドは、ソフトウェア開発およびビルドプロセスを攻撃して、単一の公式に署名された即時更新で数百万台のマシンに感染するマルウェアから防御する唯一の方法である可能性が高いと述べています。 [ 3 ]更新マネージャーは、セキュリティ更新を迅速かつ広範囲に適用することもできます。SynapticなどのLinuxの更新マネージャーを使用すると、ユーザーはマシンにインストールされているすべてのソフトウェアを更新できます。Synapticなどのアプリケーションは、暗号化チェックサムを使用して、ソース/ローカルファイルを適用前に検証し、マルウェアに対する信頼性を確保します。[ 4 ] [ 5 ]
自動更新は、時間の経過とともに広く普及してきた。その普及の一因として、2000年代初頭のWindowsのサポート体制を挙げる人もいる。Windows XPのService Pack 2(2004年リリース)では、自動更新がデフォルトで有効になっていた。
アップデートは様々な方法で分類されます。以下に、主な分類をアルファベット順に示します。
ホットフィックスとは、通常のアップデートサイクル外でリリースされる、または稼働中のシステムに適用することを目的としたソフトウェアアップデートであり、多くの場合、バグを修正するために使用されます。[ 6 ]
元々、ホットフィックスとは、稼働中のシステム、つまりクライアントにサービスを提供している本番サーバーにパッチを適用することを指していました。開発においては、このような変更は通常、通常の開発プロセスとは別に迅速に設計する必要があり、比較的高いコストがかかり、他の開発作業を犠牲にすることになります。ユーザーにとって、ホットフィックスはテストする時間がないままサーバーに適用されるため、比較的リスクが高いと言えます。ホットフィックスを適用するリスクは、適用しないリスクと比較検討する必要があります。修正すべき問題が非常に重大な場合、何もしないことの方が、サービス停止の可能性よりもリスクが高い場合もあります。
時が経つにつれ、その意味は、緊急性を要するアップデート、あるいはソフトウェアの通常のアップデートサイクル外でリリースされるアップデートへと変化してきた。
ホットフィックスの適用(インストール)は、一般的に他のソフトウェアアップデートと同じ手順で行われます。最新のオペレーティングシステムやデスクトップアプリケーションのほとんどは、アップデートを自動的にダウンロードして適用できます。ネットワーク管理者は、管理対象のマシンへのアップデート適用を自動化・簡素化するために、ソフトウェアプログラムを使用する場合があります。
サイバー犯罪者は、マルウェアを含む偽のソフトウェアアップデートを送信するために、さまざまな方法を使用できます。この種の悪意のあるソフトウェアを配布する方法には、電子メールやポップアップウィンドウなどがあります。[ 7 ]アメリカ自由人権協会のレポートでは、国家主体が監視目的で、従来安全で信頼できると考えられていた正規の企業やソフトウェア開発者から入手したソフトウェアアップデートにコードを含めようとしたと示唆されています。[ 8 ] [ 9 ]
パッチとは、プログラムやファイルなどの既存のソフトウェア リソースを変更するためのデータであり、多くの場合、バグやセキュリティの脆弱性を修正するために使用されます。[ 10 ] [ 11 ]パッチを適用するとは、既存のリソースにデータを適用するプロセスでもあります。システムのパッチ適用には、パッチの適用が含まれます。パッチは、機能性、使いやすさ、またはパフォーマンスを向上させるために作成されることがあります。パッチは手動で作成することもできますが、一般的には、リソースの 2 つのバージョンを比較し、一方を他方に変換するために使用できるデータを生成するツールを使用して作成されます。
通常、パッチは変更対象となるリソースの特定のバージョンに適用する必要がありますが、例外もあります。一部のパッチ適用ツールは、既存のリソースのバージョンを検出し、複数のバージョンをサポートしている場合でも適切なパッチを適用できます。パッチがリリースされるにつれて、その累積サイズは大幅に増加し、リソース自体のサイズを超える場合もあります。これを管理するために、サポートするバージョンの数を制限したり、リソースの完全なコピーを提供したりすることがあります。
パッチ適用によってバイナリ実行ファイルを変更することが可能になります。これは技術的に難しい場合もありますが(実行ファイルの動作を深く理解する必要があるため)、ソースコードが入手できず完全な実行ファイルを作成できない場合には有効な手段となり得ます。また、完全なファイルを配布するよりも、より小さなファイルサイズで配布できるため、コスト削減にもつながります。
パッチは多くの場合、問題を解決することを目的としていますが、新たな問題を引き起こす可能性があります。これはソフトウェアの回帰と呼ばれる現象です。場合によっては、アップデートによって意図的に機能が無効化されることもあります。たとえば、ユーザーがライセンスを保有していない機能を削除するなどです。パッチ管理はライフサイクル管理の一部であり、どのシステムにどのタイミングでどのパッチを適用するかという戦略と計画が含まれます。通常、パッチは永続的に(つまりストレージに)適用されますが、場合によってはメモリに(デバッガなどのツールを介して)適用されることもあります。この場合、リソースがストレージから再ロードされると変更は失われます。
ソフトウェアアップデートは、同義語ではないにもかかわらず、パッチと混同されることがあります。アップデートは、パッチファイルとパッチ適用プロセスを使用して実装できます。また、パッチ適用はファイルの内容を変更することだけに限定されず、ファイル全体を追加、削除、置換することもパッチ適用であると主張する人もいます。通常、パッチは比較的小さな変更を意味するため、サイズや範囲が大きいパッチは、より一般的なソフトウェアアップデート、またはサービスパックなどのより具体的な名前で呼ばれることがあります。Windows NTとその後継バージョン ( Windows 2000、Windows XP、Windows Vista、Windows 7を含む) はサービスパックを使用します。[ 12 ]歴史的に、IBM はこのようなアップデートにFixPakおよびCorrective Service Disketteという用語を使用していました。 [ 13 ]
IBMの用語では、プログラム一時修正または製品一時修正(PTF)とは、インストール可能な形式で配布されるソフトウェア修正、または修正のグループのことです。[ 14 ] [ 15 ]
PTF は通常、承認済みプログラム分析レポート(APAR) の後にリリースされます。[ 16 ] APAR 修正が発行されると、PTF は一般的にテスト済みの APAR 修正、または一連の APAR 修正となります。[ 17 ]ただし、APAR が「次回に修正」または「恒久的制限」として解決された場合、現在のリリースには PTF がなく、後のリリースで修正が行われる場合があります。
PTF は複数の IBM プラットフォームで使用され、プラットフォーム固有のサービス ツールを使用してインストールされます。IBM iでは、PTF は一時的または永続的に適用でき、一時的に適用された修正は永続的に適用されるまで元に戻すことができます。[ 18 ] IBM i では、累積 PTF パッケージや PTF グループなどの集約された形式で修正が配布されます。[ 19 ] [ 20 ] z/OSでは、PTF は一般的にSystem Modification Program/Extended (SMP/E)を使用してインストールおよび追跡されます。[ 21 ] z/VMでは、VMSES/E は、PTF として提供される修正サービスを含むソフトウェア レベルのサービスに使用されるインストールおよびサービス ツール セットを提供します。[ 22 ]
セキュリティパッチとは、脆弱性によって示される弱点を修正するための変更のことです。この修正措置により、悪用が成功することが防止され、特定の脆弱性を悪用する脅威の能力が除去または軽減されます。パッチ管理は脆弱性管理の一部であり、脆弱性の特定、分類、修復、軽減という一連のプロセスです。
セキュリティパッチは、ソフトウェアのセキュリティ脆弱性を修正する主要な手段です。現在、マイクロソフトはセキュリティパッチを月に一度(「パッチチューズデー」)リリースしており、他のオペレーティングシステムやソフトウェアプロジェクトにも、脆弱性の発表後できるだけ早く最も信頼性の高いソフトウェアパッチをリリースすることに専念するセキュリティチームが存在します。セキュリティパッチは、責任ある情報開示と密接に関連しています。
これらのセキュリティパッチは、業務プロセスへの影響を防ぐために不可欠です。2017年には、WannaCryと呼ばれるランサムウェアが企業を襲撃しました。このランサムウェアは、特定のバージョンのMicrosoft Windowsのファイルを暗号化し、ビットコインで身代金を要求します。これに対し、Microsoftはランサムウェアの実行を阻止するパッチをリリースしました。
コンピューティングにおいて、サービスパックとは、ソフトウェアプログラムに対するアップデート、修正、または機能強化をまとめたもので、単一のインストール可能なパッケージとして提供されます。企業は、特定のプログラムに対する個別のパッチの数が一定の(任意に設定された)制限に達した場合、またはユーザーからのフィードバックやバグ報告に基づいて、ソフトウェアのリリースが安定し、残存する問題が限定的になった場合に、サービスパックをリリースすることがよくあります。オフィススイート、オペレーティングシステム、データベースソフトウェア、ネットワーク管理などの大規模なソフトウェアアプリケーションでは、製品リリース後1~2年以内にサービスパックが発行されることは珍しくありません。サービスパックのインストールは、多数の個別のパッチをインストールするよりも簡単でエラーも少なく、特にサービスパックが一般的に使用されるネットワーク経由で複数のコンピュータを更新する場合には、その利点はさらに顕著になります。
サービスパックは通常番号が付けられており、SP1、SP2、SP3などと略称されます。[ 23 ]また、バグ修正に加えて、[ 24 ] Windows XPのSP2(Windowsセキュリティセンターなど)や、データベースに大きく依存するTrainz 2009: World Builder EditionのSP3とSP4のように、まったく新しい機能をもたらす場合もあります。[ 25 ]
非公式パッチ(コミュニティパッチ、ファンパッチとも呼ばれる)とは、ソフトウェアの公式メンテナー(つまり、元の開発者)の関与なしに、ユーザーコミュニティなどの第三者によって作成されるソフトウェアアップデートのことです。非公式パッチは、一般的に、改造やクラックなどの他の第三者による改変とは異なり、ソフトウェアの本来の用途を変更することはありません。
非公式パッチは通常、バグを修正し、新しいオペレーティングシステムのサポート、ディスプレイ解像度の向上、新しいディスプレイ形式などの新機能を提供することを目的としています。[ 26 ] [ 27 ]非公式パッチはPCプラットフォームで最も一般的ですが、エミュレーションコミュニティの文脈ではコンソールゲームでも見られます。[ 28 ]
ファン翻訳とは、ソフトウェアに自然言語サポートを追加する非公式のパッチのことです。[ 29 ]ファン翻訳は、欧米市場向けにローカライズされていないことが多い日本のロールプレイングゲームで最もよく見られます。[ 30 ] [ 31 ]
スリップストリームのようなパッチは、複数の公式パッチを1つの非公式アップデートパッケージにまとめたもので、個々のパッチがオンラインでしか入手できない場合や、小規模な増分アップデートとしてしか入手できない場合に、ユーザーの利便性を高めるために提供されます。
非公式パッチを作成する一般的な動機は、公式メンテナーからの技術サポートの不足であり、これは次のような原因による可能性があります。
ビデオゲームは、問題を修正したり、ゲームルールやアルゴリズムの変更などの機能を変更したりするために、アップデート(パッチと呼ばれることが多い)を受け取ります。これらのアップデートは、マルチプレイヤーゲーム体験において、他のプレイヤーに対して不当な優位性を得るために使用できるエクスプロイトが発見されたことがきっかけとなる場合があります。追加機能やゲームプレイの微調整が加えられることもよくあります。このようなアップデートは、マルチプレイヤー機能を備えたファーストパーソン・シューティングゲームや、通常は非常に複雑で大量のコンテンツを持つMMORPGでよく見られます。MMORPGは、最初のリリース後、ほぼ常にアップデートに大きく依存しており、アップデートによってプレイヤーが利用できる新しいコンテンツや機能が追加されることがあります。エクスプロイトによって、MMORPGのすべてのプレイヤーのバランスと公平性が短時間で著しく損なわれる可能性があるため、MMORPGのサーバーは、重要な修正を適用するために、予告なしに停止されることがあります。
企業は、バグがあることを承知の上でゲームをリリースすることがあります。Computer Gaming WorldのScorpia は1994年に、「パッチやアップグレードで対応できると知りながら粗悪な製品をリリースし、顧客を『有料テスター』にする企業(数えきれないほど)を非難した」と述べています。[ 39 ]

ソフトウェアのアップデート手順は多種多様です。ここでは、代表的な手順をいくつか紹介します。
ファームウェア(マザーボードのBIOSなど)のアップデートは、ハードウェア上のイメージ全体を置き換える必要があるため、困難な場合があります。そのため、アップデート処理中にエラーや中断(停電など)が発生すると、ハードウェアが使用不能になる可能性があります。
アップデート(バイナリイメージ)は、多くの場合、サプライヤーが提供するプログラムを介してインストールされ、既存のイメージを別のイメージで上書きします。このプログラムは、深刻な損傷を防ぐための対策となる場合があります。例えば、アップデート手順では、プライマリコピーが破損していると判断された場合(チェックサムなどによる)、ファームウェアのバックアップを作成して保持することができます。
大規模なアップデートや重要な変更の場合、販売元はベータテストとして、資格のある開発者のみにアップデートの提供を限定することがよくあります。
ホットパッチング(ライブパッチングまたは動的ソフトウェア更新とも呼ばれる)は、システムまたは対象プログラムをシャットダウンして再起動することなくパッチを適用することです。これは、システムまたはプログラムによって提供されるサービスが利用できないことに関連する問題に対処します。[ 40 ]この方法は、システムを停止せずにLinux カーネルを 更新するために使用できます。 [ 41 ] [ 42 ] このように適用できるパッチは、ホットパッチまたはライブパッチと呼ばれます。これは、モバイル アプリの分野で一般的な慣行になりつつあります。[ 43 ] Rollout.ioのような企業は、メソッドスウィズリングを使用してiOS エコシステムにホットパッチを配信します。[ 44 ] iOS アプリをホットパッチするもう 1 つの方法は JSPatch です。[ 45 ]
クラウドプロバイダーは、基盤となるインフラストラクチャを更新する際に顧客のダウンタイムを回避するために、ホットパッチングをよく使用します。[ 46 ]
スリップストリーミングとは、アップデートを元のアプリのインストールファイルに統合する行為であり、その結果、アップデートされたアプリを直接インストールできるようになります。[ 47 ] [ 48 ]
スリップストリーミングは、初期段階で時間と労力を要しますが、長期的には大幅な時間(ひいてはコスト)の節約につながります。これは、多数のコンピュータを管理する管理者にとって特に重要です。通常、各コンピュータにオペレーティングシステムをインストールする際には、元のメディアを使用し、インストール完了後に各コンピュータをアップデートするという手順を踏みます。しかし、より最新の(スリップストリーミングされた)ソースから始め、スリップストリーミングされたソースに含まれていない少数のアップデートをダウンロードしてインストールする方が、はるかに多くの時間を節約できます。
しかし、すべてのアップデートをこの方法で適用できるわけではなく、欠点の1つは、特定のアップデートが後々の問題の原因であることが判明した場合、元の、スリップストリームされていないインストールソースを使用しない限り、そのアップデートを削除できないことです。
トーマンは、Deadly Premonitionのプレイヤーがゲームの解像度を手動で調整できるようにするパッチ「DPfix 0.1 alpha」をアップロードした。[...] 最新のDPfixリリースでは、高解像度で発生するピクセルオフセットエラーが修正され、アンチエイリアシングが正しく適用されていなかった場合の修正、被写界深度効果の改善、スクリーン空間アンビエントオクルージョンのオプションの追加が行われた。
Glass Studios は System Shock 2 のリリースから 1 年後の 2000 年に閉鎖され、シリーズの著作権は保険会社の手に渡りました。そのため、EA には System Shock という名前だけが残り、実際の開発権はなくなりました。
アンチウイルス プログラムの開発元であるセキュリティ ベンダー ESET は、マイクロソフト社が正式にテストされたセキュリティ アップデートをリリースする予定のほぼ 1 週間前に、水曜日にこのバグに対する暫定パッチを出荷した。
あるSANS Instituteは、マイクロソフトの修正プログラムが来週利用可能になるまで、脆弱性に対するパッチをリリースした。