NFLabs. エンジニアブログ

セキュリティやソフトウェア開発に関する情報を発信する技術者向けのブログです。

OpenCTIの日本語化にあたって

TL;DR

  • 日本語翻訳作業は表現や語彙の統一が大変
  • 公式ドキュメントや著名な書籍をベースに専門用語を翻訳するのがいい

はじめに

こんにちは。
ソリューション事業部セキュリティソリューション担当の大沢です。
本ブログでは初めて出てくる部署名かもしれませんが、実は2022年10月に社内で組織再編があり、名前が変わったばかりの事業部です。
私のチームは普段はお客様向けに脅威情報の収集・分析支援を行っており、サイバー脅威インテリジェンス(CTI)プラットフォームの開発運用も業務の一環として行っています。
CTIプラットフォームといえばMISPを運用されている方が多いと思いますが、我々のチームでは、同じくOSSのCTIプラットフォームである OpenCTI を採用しています。

そして、1ヶ月ほど前に我々のチームでOpenCTIに日本語表示の機能を追加した Pull Request を送ったところ無事採用され、先日弊社のTwitterで紹介したとおり、Pull Requestが採用されたバージョン5.4.0がリリースされました。

実際にOpenCTIを日本語表示にすると画像のようになります。

さて、今回は『OpenCTIの日本語化にあたって』ということで、OpenCTIの日本語化に際してどういった作業をしたのか、どういった点に気をつけたのかといった話を通じて、今後同じようにOSSの日本語化をやっていくような方々に気付きを与えられたらいいなと思います。

チームのバックグラウンド

前述の通りチームでは普段脅威インテリジェンスに関する活動を4名で行っておりますが、チームメンバー全員が英語に堪能というわけではありません。
この記事を書いている私自身がTOEICは500点取れるかどうかで、基本的に翻訳サービスを使わずに英語の記事を読むのは困難です。

OpenCTIについて

OpenCTIはフランスのNPOであるLuatixというサイバーセキュリティに関する研究開発を行っている団体によって開発されているCTIプラットフォームです。
OpenCTIについては、にのせきさんの「OpenCTI入門」という記事が非常にわかりやすく解説されていますので、そちらを読んでいただくとよいかと思います。

また、弊社社員がSoftware Design様で執筆した『今日から始めるサイバー脅威インテリジェンス』では、脅威インテリジェンスの蓄積と共有について、実際にOpenCTIを使ったハンズオン形式で学ぶことができますので、興味のある方は読んでみてください。

実際の作業

1. 日本語表示のメニュー項目を追加する

日本語化する際には、ユーザーが日本語を選択できるようにする必要があります。
まずはソースコードから該当箇所を特定し、そこに日本語化の項目を追加します。

ソースコードでいうと以下のような箇所になります。

日本語表示を選択できるのがシステム全体、ユーザー単位、ログイン時に決定など様々なパターンがあると思いますので、ここはまずシステムにある程度習熟している必要があります。
ちなみにOpenCTIには2箇所ありました。

2. 日本人向けの日時表示を追加する

多くの日本人は yyyy/MM/dd hh:mm:ss の形式で日時表示されることに慣れていると思います。( 2022年10月21日~ のようなパターンは一旦除いてください)
なので、OpenCTIが扱う日時の表示もこの形式で表示されるようにすることが望まれるでしょう。

以下のような箇所があると思うので、日本向けにローカライズしていきます。

3. 表示内容の日本語化

ここが一番大変な作業です。
OpenCTIは Localization.js という1ファイルにすべての言語の対応表を記述していく形式でした。

一般的には各言語のファイルがあって、それを読み出す形式になっている方が多いような気もしますが、とにかく、プラットフォームとして表示する全ての文章がこのファイルに詰まっているので、これを1個ずつ翻訳していきます。

翻訳作業で気を付けたこと

今回の翻訳作業は一人で実施したわけではないので英語能力や意訳の程度がメンバー間で異なります。
また、これは一人で翻訳する場合にも課題になると思うのですが、特定の単語・専門用語の訳の統一が必須になります。

これらの課題に対する工夫について書いていきたいと思います。

まず、1500行ほどある文章リスト翻訳作業をメンバー数で均等に分割して一通り完了したあと、全員でレビュー会を行いました。
レビューでは文章のおかしいところの検査以外にも、専門用語を中心に訳の対応を作成していきます。
1.5日ほどかけて対応付けや文章レビューが完了したら、それぞれの担当分の修正を開始し、それをまたレビューしてすべての訳を作成していきました。
レビューからPull Requestの送信まで3日ほどかかったと思います。

次に訳の統一です。 こちらについては、元々我々の中で語彙を揃える目的で紹介し、チーム内でも全員で読んだ『脅威インテリジェンスの教科書』(技術評論社)で採用されていた訳をベースにしました。
本書では扱っていないような用語についても、例えば Windows Registry Key Value のようなWindowsの専門用語であれば、Windows公式の日本語ドキュメントの訳を採用するといったことを徹底しました。 こういった書籍や業界標準、公式ドキュメントに則ることで翻訳の解像度や利用性の高い翻訳ができたと思います。

最後に

日本にOpenCTIを普及していくうえで言語的なハードルを下げることができれば、という思いから始めた『OpenCTIの日本語化』というタスクに取り組む中で、それがそのままコミュニティに認められたのは非常に喜ばしい出来事でした。
我々のチームでは、これからもOpenCTIを活用しながら、その発展に微力ながら貢献していきたいと考えています。

『今日から脅威インテリジェンスを始めてみたい』といった方はもちろん、すでに他のCTIプラットフォームを運用されている方も、是非日本語で利用できるようになったOpenCTIを利用してみてください。