"BOKU"のITな日常

還暦越えの文系システムエンジニアの”BOKU”は新しいことが大好きです。

このツールやライブラリは使っても安全か?を調査して報告する方法例

会社の上司から「オープンソースの〇〇というツールが良いらしいけど、使っても安全かを確認してくれ」と頼まれた時に調べる方法についてです。

f:id:arakan_no_boku:20190509011608j:plain

 

なんで、こんな記事を書いているかというと

 

小さな企業の場合だけでしょうけど、「オープンソースの〇〇というツールが良いらしいけど、会社で使っても安全かを確認しといてくれ」などと頼まれることがあります。

これが意外とやっかいで。

どうやって確認したら良いか?がピンとこなかったり、まあ・・滅多にあることではないですけど、万が一やった後でも何か問題がおきたら、ひとりに責任押し付けられるリスクがあったりします。

何故そうかというと。

どうなっていたら「安全」なのかの基準が、人によって違うのと、万人が納得する一般化された基準や手順みたいなものがあるわけでもないからです。

だから。

何となく・・でやっても別にとがめられない代わりに、問題がおきたら必ず揉めます。

問題が大きければ、「あいつが安全と言ったから信じたのに・・」と、一人責められるというバカげた事態になるリスクは大きいと思っといた方がいいです。

そうならないために。

この面倒な仕事を、穏便に乗り切る方法を経験をベースにまとめておいたら、後で役に立つかもね・・と考えたということです。

 

報告する相手と「安全と判断する基準」を合意するのが一番大事

 

最大の問題は「安全の基準が人によって違うこと」なわけです。

だから。

後に憂いを残さないために最も大事なこと。

それは基準をあわせておくことです。

具体的には、報告する相手と「安全と判断する基準」を合意することになります。

それも口頭ではなく文書で。

自分の場合は、メールを使います。

例えば、こんな項目をならべて、この基準をを満たしていれば「安全」と判断しますよと送信して、返信とあわせて保存しておくわけです。

例えば、こんな項目です。

  • 少なくともリリース後2年以上の稼働実績がある。
  • 開発元がメジャーまたはメジャーなディストリビューションの採用実績がある。
  • 現在も開発が継続していて、定期的にバージョンアップされている。
  • 少なくとも、5年間は開発中止になるリスクを考えなくてよさそう
  • 致命的な脆弱性の報告がないか、修正されている
  • マルウエアなどによる障害の報告がないか、問題が完全に解決済である。
  • ホームページ・ダウンロードサイトが安全である
  • 開発責任者および開発チームメンバーの身元がはっきりしている。
  • 開発元がセキュリティ的にリスクがあると言われている国ではない。

ちょっと面倒ですが、身を守る術みたいなもんですね。

でも、これができれば半分くらいOKみたいなもんです。

もっとも、実際は安全かどうかだけではなくて、機能の評価をして、適用しようとしている局面で役にたつかという判断も頼まれたりすることもありますが、そこは今回ははしょってます。

 

第一段階の確認

 

あとは確認の方法です。

先にお断りしておきますが「完璧な調査の方法」を述べるつもりはありません。

自分はセキュリティの専門家でもないですし。

述べるのは、あくまで「他の仕事と並行しながら、短い期間で、できるだけ説得力のある報告ができて、かつ、そこそこの安全性は担保できるであろう(笑)方法」です。

その点はご容赦くださいね。

さて。

確認の依頼が来るということは、名前がわかっているということを前提にします。 

まずは、それをキーワードにして情報を探して、第一段階の確認をします。

Google検索をするわけですが、やみくもにやっても効率が悪いです。

自分は、以下のような順番でするようにしてます。

  1. Wikipediaを見る。
  2. Google検索で対象と関連しそうなキーワード検索をしてみる。
  3. 英語版のStackOverflow等でのコメントを探す。
  4. 脆弱性データベースで検索してみる
  5. マルウエア情報データベースで検索してみる

ポイントは、この段階で「対象ソフト・ライブラリのホームページやダウンロードサイト」を安易には開かないことですかね。

ソフト・ライブラリ自体が安全でも、ダウンロードサイトが汚染されているなんてことも珍しくはないというか、そちらの方が危なかったりしますので。

5項目ありますが、上記の1~3までは、実質的な調査で、4、5は念のため+調査報告に説得力をもたせる意味合いの項目になります。

 

Wikipediaを見る

 

日本語版と英語版を両方チェックするようにはした方がいいです。

日本語版だけだと漏れますし、後で網羅性の落ち度として問題にされるリスクが残りますので。

どちらかでひっかかれば、開発元・開発者とか、リリース年月とか採用されているLinuxディストリビューションとか、かなりの情報がWikipediaから取得できます。

方法は簡単で、例えば、「darktable」というソフトを調べる場合なら。

wikipedia darktable

 みたいにググればいいだけです。

正直言えば、この段階でメジャーなディストリビューションに採用とかされているのがわかれば、ほぼ大丈夫なわけですから、第一段階はここで終わって、第二段階のダウンロードサイト等の脅威の確認だけする・・ってな場合も当然あります。

 

Google検索で対象と関連しそうなキーワード検索をしてみる

 

画像加工なのか、テキスト処理なのかなど対象の機能と関連しそうなキーワードで検索するとともに、わざと「危険」とかのネガティブワードでも検索してみます。

これは評判や事例を調べたり、日本で利用しているユーザがいそうかどうかとかの巷の噂話集め程度のことでしかないですが、この手順は誰でも気づくものだけに、はしょると後で手抜き呼ばわりされかねませんから、きっちりやっときます。

特に、依頼者が気にしているキーワードは、必ず押さえておきましょう(笑)。

 

英語版のStackOverflow等でのコメントを探す

 

日本語版でない・・ところがミソです。

例えば、「darktable」というソフトについて確認するなら、

site:stackoverflow.com darktable

 みたいにするわけです。

残念ながら、日本版の方は情報が遅いのと、まだまだ利用者が少ないのか量も不足しています。

日本で一般的でないソフトの情報は、ほぼありません。

悲しいかな・・日本発の新技術は少ないですしね。

経験的に「stackoverflow.com 」で質問・回答がそれなりの件数あって、かつ、内容的に超ネガティブでない限りは、それなりに使われているんだなと判断することができると思っていて、意外に報告したときに説得力を持ちます。

 

脆弱性データベースで検索してみる

 

Google検索でも探せますが、自分はこちらは必ずチェックするようにはしてます。

jvndb.jvn.jp

引用すると。

JVNに掲載される脆弱性対策情報のほか、国内外問わず日々公開される脆弱性対策情報のデータベースです。

 となっていて、JVNというのは「JPCERT コーディネーションセンターと独立行政法人情報処理推進機構 (IPA)が共同で運用する脆弱性対策情報ポータルサイト」なので、日本語で読めるこの種の情報としては一番充実しているのでは・・と思ってます。

正直。

ここで引っ掛かることはないでしょうけど、一応、チェックしました・・という実績としては押さえておいたほうがいいかなと思ってます。

 

マルウエア情報データベースで検索してみる

 

上記のチェックに加えて、一応、トレンドマイクロの「脅威データベース」にひっかかってないよね?くらいのチェックするようにしてます。

www.trendmicro.com

これも、念のためレベルですけどね。

ダイレクトに調査するソフトもしくはライブラリの名前で何かがひっかかることはないはずなのですけど、「チェックした対象」として報告にいれとくと、なぜか若干説得力が増す(笑)ということもあります。

 

第一段階まとめ

 

ここまでで、だいたい以下の確認はできている状態のはずです。

  • 少なくともリリース後2年以上の稼働実績がある。
  • 開発元がメジャーまたはメジャーなディストリビューションの採用実績がある。
  • 現在も開発が継続していて、定期的にバージョンアップされている。
  • 少なくとも、5年間は開発中止になるリスクを考えなくてよさそう
  • 致命的な脆弱性の報告がないか、修正されている
  • マルウエアなどによる障害の報告がないか、問題が完全に解決済である。

 

第二段階の確認

 

あとはこの3つです。

  • ホームページ・ダウンロードサイトが安全である
  • 開発責任者および開発チームメンバーの身元がはっきりしている。
  • 開発元がセキュリティ的にリスクがあると言われている国ではない。

 

ホームページ・ダウンロードサイトが安全である

 

ホームページとかダウンロードページが安全かどうかを客観的に証明するのは難しいのですが、今はとても便利なサイトがあります。 

securl.nu

ここでURLを入力して、チェックボタンを押すと、仮想ブラウジングで脅威の検出までやってくれて、OKかどうかを判定してくれます。

注意するとしたら、検査対象URLの取得方法です。

無防備に開いてしまってはだめです。

なので、例えばGoogleの検索結果から「リンクのアドレスをコピー」とかで取得するとかの工夫は必要です。

f:id:arakan_no_boku:20190511231959p:plain

 

開発責任者や開発元の身元の確認

 

実のところ、一番面倒くさいのがこれです。

上記でホームページが安全なことを確認したら、そこを起点に開発者の名前や身元の情報を探します。

開発者や責任者・開発元会社の情報がなかったり、匿名情報だったりする場合は「グレー」だと考えたほうがいいと、自分では思ってます。

Contactのところとかに、写真付きで名前とプロフィールが載っていても、なりすましの可能性はゼロではないので、念のため、、その人の名前とかを使って地道に「エゴサーチ」をかけていきます。

しっかりかかわっている人だと、FacebookとかTwitterとかで話題にしてたり、あと、大学や企業に属している人だと、そちらの組織のほうの経歴欄で言及してたりとか。

そういう感じで双方向で一致していると、まあ、大丈夫だと判断してます。

正直、海外の人とかだとなかなか探しづらいってのはあります。。

英語ですらない場合もありますし。

でも、Google翻訳で頑張っていくしかない・・そういう作業です。 

 

まとめ

 

なんかグダグダしてますが・・(笑)

いちおう、経験をもとにまとめてみました。

基本、自分の備忘録みたいなもんですが、誰かのお役にたてば幸いです。

ではでは。