企業の外部公開システムのための脆弱性管理ルールの提案
大企業においては、セキュリティのプロシージャなどがすでに規定されていることがあることでしょう。しかし中小企業においてはITガバナンスの制定自体がただのコストになるケースが考えられます。
そこでルールがなくとも、公開システムの開発者が現場レベルで守るべき黄金律を考えてみたいと思います。
黄金律
- OSやソフトウェアは、必ずサポートが継続されていて、サポート終了までの期間的な余裕が十分にあるものを選ぶ
- OSやソフトウェアは、サポート体制がしっかりとしているものを優先的に選択する(例. Red Hat Enterprise Linuxの代わりにCentOSを利用しない。脆弱性公開後のリアクションが悪いベンダは利用しない。など)
- 設計時においてパッケージ管理システムでインストールできないソフトウェアのインストール数を最小限化する
- 開発時において不要ソフトウェアはアンインストールする
- サービス開始時およびシステム更改時には、インストールされているパッケージの一覧を取得する
- 脆弱性情報を受信する。
- 緊急の脆弱性対処においても、パッケージ管理システムによるアップデートを最優先する(自分でコンパイルしてインストールしない)
- 網内であっても定期的にパッチを適用する。
白銀律
(考え中)
青銅律
- 標準ソフトウェア構成を決めて、それ以外のソフトウェアを使用しないようにすることで、構成管理の稼働を削減する。
- システムやサービスについて、責任を有する組織を減らす。関係組織が増えるほど、セキュリティの対応は遅くなる。
根拠資料
CentOSよりRed Hat
Red Hat + CentOS FAQ
CentOSが無料であるからといってRed Hatの代用とするのは誤りである。多くの場合、重大な脆弱性が発表された時に真っ先にパッケージが提供されるのはRed Hatからである。
パッケージ管理システム
パッケージ管理システムごとのコマンド比較
DistroWatch.com: Put the fun back into computing. Use Linux, BSD.
インストールしているパッケージの一覧を取得するコマンドは、各表のList installed packagesを見ればよい。
Package manager | 主なOS | コマンド |
---|---|---|
RPM | Red Hat | rpm -qa |
deb | Debian | dpkg -l |
ports | FreeBSD | pkg_info |
Pacman | Arch Linux | pacman -Q |
Conary | Foresight Linux | conary query |
pkg | Solaris | pkginfo -i |
SD-UX | HP-UX | swlist |
MacPorts | Mac OS X | port installed |
Homebrew | Mac OS X | brew list |
Meta package manager | 主なOS等 | コマンド |
---|---|---|
yum | Red Hat | yum list installed |
zypper | openSUSE | zypper search -is |
RubyGems | Ruby | gem list --local |