概要
Linux系のパッケージのバージョン番号が古くても、セキュリティフィックスは入っている場合がある
例えば
Debianのbuster(バージョン10)に入っている apache2 は 2.4.38
本家の apache2 は 2.4.43 で、リリースノートを見ると、色々なセキュリティフィックスが入っている
debianのbusterのapache2は 2.4.38 だから、脆弱性が残っているの?
実はそんなことはなくて、2.4.38 にセキュリティフィックスを入れている
なんでそんなことしてるの?
Debianは安定性を重視しているため
勝手にパッケージのバージョンを上げて互換性を損なわないようにしている
そのため、互換性を維持しながら、現状のバージョンのセキュリティフィックスを入れている(これをバックポートと言う)
参考: 質問: なぜ旧バージョンのパッケージを変更しているのですか?
セキュリティフィックスが入ったかどうかは、どこで確認したら良いの?
security-tracker というBTSのようなもので管理されている
以下のように、https://security-tracker.debian.org/tracker/${CVE-番号}
で状況が確認できる
自分の環境のパッケージにセキュリティフィックスが入っているかはどう確認するの?
例えば、上記の CVE-2019-0217
は、 バージョン 2.4.38-3+deb10u3
で修正されたと出ている
deb10u3
は、Debianのbuster(バージョン10)での 3 回目のupdateという意味
dpkg -l
コマンドで、パッケージの詳細なバージョンが確認できるので、そこで +deb10u${x}
のxが3以上ならば、 CVE-2019-0217
のセキュリティフィックスは適用済と分かる
# dpkg -l apache2 Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-==============-================-============-================================= ii apache2 2.4.38-3+deb10u3 amd64 Apache HTTP Server
自分の環境のバージョンが古い場合どうしたら良いの?
以下のコマンドでパッケージを更新すればOK
apt-get update && apt-get install ${パッケージ名}
参考
Debianで実際にバックポートをしている方の記録
RHELも同様の仕組みを採用している