| 1 | |
| 2 | = セキュリティーウォッチチームの作業 = |
| 3 | |
| 4 | セキュリティーウォッチチームでは、以下のような作業を行っています。 |
| 5 | |
| 6 | * セキュリティ情報を発見・収集 |
| 7 | * セキュリティ情報を Security BTS に登録 |
| 8 | * 対策済みパッケージの作成 |
| 9 | * 対策済みパッケージのテスト |
| 10 | * errata 作成と発行 |
| 11 | |
| 12 | それぞれについて、具体的な作業の内容を解説したいと思います。 |
| 13 | |
| 14 | 解説することで「あーこれなら私にもお手伝いできそうだ」と広く思っていただけることを目的としています。ですので、当文書に対するツッコミは大歓迎です。 |
| 15 | |
| 16 | == セキュリティ情報の発見・収集 == |
| 17 | |
| 18 | なにはともあれ、セキュリティ情報がなくては作業が始まりません。[[BR]] |
| 19 | セキュリティ情報を発見したら、それが Vine Linux に該当するものかどうかの判断を行います。 |
| 20 | |
| 21 | === セキュリティ情報の発見・収集 === |
| 22 | |
| 23 | ==== 能動的に集める ==== |
| 24 | |
| 25 | web 巡回が基本になります。 |
| 26 | |
| 27 | 日本語のリソース |
| 28 | |
| 29 | * セキュリティーホールメモ (http://www.st.ryukoku.ac.jp/~kjm/security/memo/) |
| 30 | * Japan Vulnerability Notes (http://jvn.jp/) |
| 31 | |
| 32 | 英語のリソース |
| 33 | |
| 34 | * Common Vulnerabilities and Exposures (http://cve.mitre.org/) |
| 35 | * VUPEN (http://www.vupen.com/english/) |
| 36 | * !SecurityFocus (http://www.securityfocus.com/) |
| 37 | * Distro Watch (http://distrowatch.com/) |
| 38 | * The Linux Kernel Archives (http://kernel.org) |
| 39 | |
| 40 | など。 |
| 41 | |
| 42 | ==== 受動的に集める ==== |
| 43 | |
| 44 | 各 Distribution の security 告知 Mailing List に登録しておくと、security update が発行されると自動的に情報が入るので便利です。 |
| 45 | ただし、情報の入手が遅れがちになります。 |
| 46 | |
| 47 | また、上記の web 巡回先が RSS に対応していれば、RSS feed で情報を得ることもできます。 |
| 48 | |
| 49 | === Vine Linux に該当するか === |
| 50 | |
| 51 | セキュリティ情報を発見しても、それが Vine Linux に該当するものかどうか判断しなければなりません。 |
| 52 | |
| 53 | * 脆弱性があるソフトウェアが Vine Linux に採用されているか? |
| 54 | * 脆弱性があるバージョンが Vine Linux に採用されているか? |
| 55 | * 脆弱性がある機能が有効になっているか? |
| 56 | |
| 57 | の3つが大きな判断ポイントです。 |
| 58 | |
| 59 | 次に、Vine Linux に該当する場合、 |
| 60 | |
| 61 | * Core, Main のカテゴリに属する package か? |
| 62 | |
| 63 | を判断することになります。[[BR]] |
| 64 | もし、plus package になっていて security team の担当外と分かった場合、!VinePlus Mailing List にその旨を投稿し packager さんに対応を促すことになります。 |
| 65 | |
| 66 | == セキュリティ情報を Security BTS に登録 == |
| 67 | |
| 68 | 残念ながら、発見された脆弱性が Vine Linux に該当することが分かった場合、Security BTS に登録して管理することになります。 |
| 69 | |
| 70 | 以下のような情報を揃えて、BTS に登録します。 |
| 71 | |
| 72 | * 脆弱性情報が載っている url |
| 73 | * CVE 番号 |
| 74 | * 他の distribution の対応 url (security announce/bts へのリンク) |
| 75 | * 修正 patch / 修正 patch へのリンク |
| 76 | * 脆弱性の解説 / アナウンス文の案 |
| 77 | * poc / poc へのリンク |
| 78 | |
| 79 | これらが全部揃っている必要はありません。[[BR]] |
| 80 | あとから判明したものは、追加で登録すれば OK です。 |
| 81 | |
| 82 | == 対策済みパッケージの作成 == |
| 83 | |
| 84 | package の作成は、通常の package 作成作業となんら変わるところはありません。 |
| 85 | |
| 86 | * 既存 package の src package を入手 |
| 87 | * 対策 patch を追加、changelog 変更 |
| 88 | * build する |
| 89 | |
| 90 | という流れです。 |
| 91 | ただし、既に release 済みの package を修正する作業ですので、 |
| 92 | |
| 93 | * 含まれるファイルが既存 package と変化ないこと |
| 94 | * 依存関係が既存 package と変化ないこと |
| 95 | |
| 96 | が重要になります。[[BR]] |
| 97 | (もちろん、対策 patch 追加による依存関係の変化がある場合もありますが、その場合は plus カテゴリに依存していないことが重要になります) |
| 98 | |
| 99 | 対策済みの package が完成したら、security incoming に put し、security watch team のメンバーにテストしていただくことになります。 |
| 100 | また、BTS に put した旨書き込んで、テスト中であることを宣言します。 |
| 101 | |
| 102 | === 対策済みバージョンがリリースされている場合 === |
| 103 | |
| 104 | 脆弱性が解消されたバージョンがリリースされていて、ABI などに変化がない場合は、新バージョンへの更新も検討します。[[BR]] |
| 105 | どちらかというと対策済みバージョンに更新したほうが、次の更新が有利になる(patch がそのまま流用できるなど)場合が多いので、対策済みバージョンへの更新を勧めます。 |
| 106 | |
| 107 | == 対策済みパッケージのテスト == |
| 108 | |
| 109 | === 対策済みパッケージの入手 === |
| 110 | |
| 111 | 対策済み package が put されたら、数時間後には security の apt-line に入ります。[[BR]] |
| 112 | テストする人は apt に security apt-line を登録しておけば、通常の apt の操作 (apt-get update, upgrade) で対策済みパッケージを入手できます。 |
| 113 | |
| 114 | この時に 単純な upgrade だけでは入手できず dist-upgrade が必要になった場合は要注意です。前節で述べた「依存関係に変化がないこと」が満たされていない恐れがあります。 |
| 115 | BTS にその旨報告しましょう。 |
| 116 | |
| 117 | === 対策済みパッケージのテスト === |
| 118 | |
| 119 | 次はその package のテストに移ります。 |
| 120 | テストと一言でいってもいろいろなレベルが考えられます。 |
| 121 | |
| 122 | * よーわからんけど、新しい package 入れても動いている |
| 123 | * 新しい package が提供する機能に変化はない |
| 124 | * 新しい package の脆弱性が含まれていた機能に変化はない |
| 125 | * 脆弱性が確かに無くなっていることを PoC 使って確認した |
| 126 | * 脆弱性が確かに無くなっていることを Source Code レベルで確認した |
| 127 | |
| 128 | などなど…。[[BR]] |
| 129 | 全てのパッケージについて、全てのメンバーが最後のレベルまで確認できるのが理想ですが、それは無理というもの。 |
| 130 | 「とりあえず入れてみたけど、問題はなさそうだよ」や、「新パッケージ使ってみてるけど特に問題なさそうだよ」というのも立派なテスト結果です。 |
| 131 | |
| 132 | テスト結果が得られたら、その結果を BTS に書き込みます。 |
| 133 | |
| 134 | == errata 作成と発行 == |
| 135 | |
| 136 | 対策済み package をテストして問題がなさそうならば、正式に errata 発行されます。[[BR]] |
| 137 | |
| 138 | errata 発行の際に一番手間を食うのが「案内文の作成」です。 |
| 139 | 脆弱性の BTS への登録時に「案内文の案」を同時に登録しておいて、メンバーで練るというながれがとれると理想かと思います。 |
| 140 | |
| 141 | == 最後に == |
| 142 | |
| 143 | security watch team の作業の流れを書いてきましたが、これを全部1人でやれる必要はありません。そのための "team" なのですから。[[BR]] |
| 144 | 「あーこれならお手伝いできそうだ」という項目があれば、お手を挙げていただけると助かります。 |