取締役CTOの小竹(aka tkmru)です。
先日、Nmapというポートスキャナの日本語ドキュメントにコントリビュートしました。 この記事では、日本語ドキュメントの現状とコントリビュート方法の解説を行います。
デファクトスタンダードのポートスキャナNmap
Nmap(Network Mapper)は、セキュリティ業界でデファクトスタンダードのポートスキャナです。 ポートスキャンを行えるだけではなく、Luaスクリプトによって機能を拡張でき、多数の脆弱性を攻撃するためのスクリプトがデフォルトで含まれています。
1997年から存在するツールで、「マトリックス リローデッド」や「ダイ・ハード4.0」などの映画の中のハッキングシーンにもたびたび登場しており、セキュリティエンジニアであれば誰もが知る有名ツールです。 Nmapが登場した映画は次のURLにまとめられているので興味がある方は見てください。
日本語ドキュメントは古く役に立たない...
そんな有名なNmapですが、日本語ドキュメントは長年更新されていませんでした。 Nmapの最新バージョンは7.93ですが、日本語ドキュメントはバージョン4.501相当のものになっています。 そのため、コマンドライン引数に実際とは違うものが記載されているオプションが多数あり、それを鵜呑みにしていると、正しく使うことができないという状況です。
というわけで、コントリビュートしました!
以前より、時間を指定するオプションの引数が現在のバージョンではtime
なのに、milliseconds
と日本語ドキュメントに記載されているのが気になっていました。例えば、スキャンに時間がかかるホストをスキャンした際に、一定時間経過したらスキャンを停止する--host-timeout
オプションの引数の説明がこれに該当します。time
は、<数値><単位>
というフォーマットを意味します。例えば、30分と指定する場合は30m
、10秒と指定する場合は10s
というふうに記述します。
そこで、このような間違った説明が頻出する「タイミングとパフォーマンス」のページにコントリビュートを行い、引数の表記を正しいものへと修正を行いました。 該当コミットは次のURLです。 github.com
コントリビュートするには
日本語ドキュメントにどのようにしてコントリビュートを行うのか解説します。 NmapにはNmap Man Page Translation FAQという翻訳に関するガイドラインが存在します。 NmapのドキュメントはXMLで文書を記述できるDocBook XMLというフォーマットで記述されており、そのフォーマットの説明が書かれています。
日本語ドキュメントのファイルはdocs/man-xlate/nmap-man-ja.xmlに、英語ドキュメントのファイルはdocs/refguide.xmlに存在します。 ファイルに変更を加えたら、作者にメールするか、プルリクエストを送ることで反映してもらえます。 上記ガイドラインには、メールするように書かれていますが、実際はプルリクエストでも大丈夫です。
まとめ
Nmapの日本語ドキュメントの問題点とコントリビュート方法を紹介しました。 日本語ドキュメントに問題を感じているものの、コントリビュート方法が分からなかった人も多いのではないかと思います。
今回、私が更新した部分はほんの一部で、まだまだ直さないといけないところが残されています。 世界平和のために、日本語話者のNmapユーザーのみなさんにコントリビュートしていただけるとうれしいです。
- 日本語ドキュメントが準拠しているバージョン情報については以前GitHubのIssueで問い合わせました。https://github.com/nmap/nmap/issues/2243↩