Changes between Initial Version and Version 1 of security/workflow


Ignore:
Timestamp:
2011/03/08 00:02:00 (13 years ago)
Author:
iwamoto
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • security/workflow

    v1 v1  
     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 
     25web 巡回が基本になります。 
     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 
     84package の作成は、通常の 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 が必要になった場合は要注意です。前節で述べた「依存関係に変化がないこと」が満たされていない恐れがあります。 
     115BTS にその旨報告しましょう。 
     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 
     138errata 発行の際に一番手間を食うのが「案内文の作成」です。 
     139脆弱性の BTS への登録時に「案内文の案」を同時に登録しておいて、メンバーで練るというながれがとれると理想かと思います。 
     140 
     141== 最後に == 
     142 
     143security watch team の作業の流れを書いてきましたが、これを全部1人でやれる必要はありません。そのための "team" なのですから。[[BR]] 
     144「あーこれならお手伝いできそうだ」という項目があれば、お手を挙げていただけると助かります。