gitリポジトリ内の大きなパッケージが安全であることを確認するにはどうすればよいですか?


9

具体的には、次のプロパティを持つemacs helmを調べています。

  • 何千ものコミットがあります
  • それは主に一人のユーザーによって維持されています
  • メンテナは他のプロフィール(ソーシャルメディアなど)を持っていません。いくつかの検索で見つけることができました
  • 活発に維持されている(今日)

テキストエディタで使用するためにコンピュータに任意のコードをインストールしようとしているので、これがレビュープロセスを経ているかどうかを確認したいと思いました。私は「まあ、それはオープンソースだ」と言いたいのですが、私は自分ですべてのコードを監査するelisp機能からはほど遠いです。コミュニティの他の人がそれをレビューしたと思いますが、1つはおそらく誤りであり、2つは最新のコミットがあります。私が見逃している他の戦略はありますか?

記録に関しては、ベクトルは単純です。コントリビュータが使い捨てのアカウントで作業している場合、またはレビュープロセスがない場合、「オープンソース」はそれほど重要ではありません。


6
検証」は大きな言葉です。常識的に言えば、「しない(できない)」という答えだと思います。あなたは図書館の開発活動をたどることができ、デジタル署名などをチェックすることができますが、確かで確実なことは何もないと私は信じています。
2015

3
良い質問。FWIW、Emacsに付属するコードは(emacs-diffsメーリングリストを介して)レビューされますが、ある貢献者がセキュリティホールを追加したとしても、気付かれずにそれを実行できるはずです。もちろん、とにかくEmacsに大きな偶発的なセキュリティホールがまだたくさんないのであれば、私は驚かれるでしょう。したがって、より確かな答えを得るには、特定の単純な脅威に焦点を当てる必要があると思います(たとえば、コードが何らかの非表示の監視を実行しているかどうかを確認するのはかなり簡単でなければなりません)。
ステファン、

2
メンテナは長年にわたってemacs develで活動しており、検索で検証できるため、これはある程度の保証です。lists.gnu.org
Tom

1
@Stefan、私はスポットチェックだけを考えていました。私の視点からは、mapatoms一緒に「危険」のグループに入れることができstart-processevalそしてfuncall。もちろん、いくつかの誤検知がありますが、パッケージがこれらの関数のいずれも使用しない場合は、確実に無害とマークすることができます。
abo-abo 2015

1
あなたは、新しい追加する必要がありmake-process、同様にcall-processdbus-<foo>make-network-stream、、その後vc-do-commandvc-git-commandあなたが入れた場合、......とevalし、funcall「危険な」カテゴリには、最も/すべてのパッケージは危険です。
Stefan

回答:


7

簡単に言えば、自分でコードを読み通さない限り、信頼を得ることができます。上流のSCMから供給されたプロジェクトを信頼することは、たとえばEmacs Wikiから直接プルされたプロジェクトよりも少し安全であると述べました。ただし、基本的には、パッケージの作成者が悪魔にならず、Emacsセッションで任意のコードを実行する機能を悪用しないことを信頼しています。

あなたがより安全に感じるかもしれないいくつかの事柄があります:

  • 人気のパッケージにこだわる

人気のあるパッケージは自動的に詳細を取得しませんが、ユーザー数が多いという事実は、悪意のある動作が影響を受ける前に検出される可能性が高まることを意味します。

  • コードメトリックを確認する

github では、プロジェクトの貢献履歴をかなりよく見ることができます。主要な作者が幅広い作者を持つコミットの大部分を行ったとしても、コードの安定性と有効性に積極的な関心を持つ他の人々がいることを示しています。

  • HEADを追跡するリポジトリ(MELPA)または未審査の提出を許可するリポジトリ(Marmalade)よりもGNU ELPAおよびMELPA Stableを優先する

最先端に生きることは、最新の光沢のある機能を求めている人にとっては一定の魅力がありますが、それはあなたがあなたの環境への最新のコミットを最初に受け入れるかもしれないことを意味します。たとえ悪意がなくても、「公式」リリースはある種の大雑把なレビューを受けていたとしても、パッケージが流動的な状態になる可能性があります。たとえば、GNU ELPAパッケージは、コミット権限を持つemacs-develユーザーのみがコミットします。

最終的には、たとえそれが概念実証の実験にすぎない場合でも、パッケージシステムを介したセキュリティ違反がいつか発生することは間違いありません。これが、定期的なバックアップに依存する必要があるポイントとなるでしょう。


1
マーマレードは、「信頼」に関しては貧弱なアーカイブです。検証やレビューなしで、誰でも任意の名前で任意のパッケージをアップロードできます。そして、それは正確に十分に維持されていません(未解決の問題の数を見てください)。
lunaryorn

@lunaryorn:良い点、私は答えを修正します。
stsquad

@lunaryorn MELPAにはelmarmaladeリポジトリよりも多くの未解決の問題があるため、これが有効な指標であるとは思えません。
ワサマサ

@stsquad MELPA Stableがあなたに与える唯一のものは、とにかくMELPAで終了するであろうもののリリースのタグ付けです。そのため、Marmaladeを使用するより安全だとは思いません。
ワサマサ

1
@wasamasa申し訳ありませんが、私のコメントは不適切に語られました。確かにその数からは多くのことはわかりませんが、未解決の問題が示しています:新しい問題に対する反応はゼロであり、コメントはなく、ラベルや割り当てさえありません。マーマレードは事実上死んでいます。
lunaryorn
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.