2011-06-17 8 views
-2

Perlは非常に簡単で小さく見えます。perlの言語を知らないとPerlコードが安全であるかどうかを確認するにはどうすればよいですか?

友人は単純なperlコードを実行したいと思っています。そのperlスクリプトが何をするよりも多くのことをするかどうか分かりません。

perlスクリプトはバックドアのように動作しますか?おそらくそうです。

perlスクリプトが表示情報のキャプチャやキーストロークなどの記録をしていないのはどうでしょうか?

は、スクリプトを理解していない場合、あなたはプレーンバイナリ実行可能ファイルを実行した場合よりも多くの保証を持っていないあなたに

+1

アクセスできるコードはありますか?ファイルを開いても安全な場合は、コードを貼り付けることができますか? –

+0

私はコードを貼り付けることはできません。なぜなら、Googleはおそらくそれを保存していて、その後私の友人は私が彼のコードを信頼していないことに気付くからです。 :) – lkl

+4

あなたはそれを信用せず、それを理解していないなら、それを実行しないでください。なぜここにコードを投稿できないのかわかりません。あなたの説明はあまり説得力がないので、これはすべて私にとって幼稚なものです。申し訳ありません..しかし、あなたはどうやって私たちがあなたを助けることができると思いますか? –

答えて

8

ありがとうございます。つまり、あなたは本当に何の保証もありません。明らかに

、ルート(などのプログラムを実行しないでください:など、あなたが本当にスクリプトを実行する必要があり、あなたがあなたの友人を信頼していない場合は、「サンドボックス」内でそれを実行してみてください可能性が

仮想OS、chroot「ED環境やjail。 ここでは、これらの線に沿ってone more linkです。

+0

ありがとう、私はそれを行います。それは知っているのは良いことですが、唯一の方法は、プログラムの方法を学ぶ必要があり、それを行うための速い方法がないということです。 : – lkl

4

スクリプトが悪質であることを疑うので、あなたはおそらくそれを実行するべきではありません。可能であれば、提案されているように、ペーストあなたのコードを見てみましょう。

+0

コードを貼り付けることができず、Googleで検索するかもしれないが、彼はそれを信用しないことに気付くだろう。 – lkl

+0

あなたの友人があなたのセキュリティを大切にしていることを知ったら、どうして悪いのですか?あなたのセキュリティを大切にしているため、未確認のコードを実行しないでください。 –

0

スクリプトが悪意のあるかどうかを知ることは本当に不可能です(ピクチャファイルにも悪意のあるコードが含まれることがあります)。しかし、実行する場合は、仮想マシン、サンドボックス、またはhttp://codepad.orgあなたがそれを修正することができますので、それを壊すことができるかどうか、またはそれが何であるかを著者に教えてください。それはauthor saysです)。

+0

悪意のあるコードの画像 – lkl

+0

調整された画像ファイルで発生する既知の悪用があります。 –

+0

@lkl:これはあなたが開いていると仮定していますそれはバグのある画像ビューアを持っています。もちろん、すべてがバグです。 – jwd

0

どのように動作するかを説明するようにしてください。彼が実際にあなたの友人であるなら、私はなぜあなたが悪意のあるコードを実行するのか想像できません。

+0

それは人間の本質で、人が本当に友人であるかどうかを知るのは難しいです。 – lkl

+2

あなたがそれらを信用していない、それを実行しないでください –

1

いくつかの注目すべき例外を除いて、いくつかの恐れを緩和するチェックリストを作成することができます。

  1. ここに掲載または使用されるモジュールを調査(use Some::Module)これらのモジュールのほとんどは、CPANにPerlモジュールの公開リポジトリに存在します。これはオープンエンド検索ですが、これはロガーまたはネットワーク接続が使用されているかどうかを確認するのに役立ちます(use strict; use warnings;はOKです)。
  2. すべてのopenコマンドは、ファイルへの読み書きや他のシステム接続を行うことができるため、ここに投稿するか、メモしてください。
  3. ここに投稿するか、すべてsystemコマンドやバッククォート「 `」を調べてください。Perlはこれらを使用してコンピュータ上でプログラムを実行しています。
  4. Perlには、この種の活動を隠すメカニズムもあります。たとえば、tieコマンドを使用すると、これらのアクションを変数で非表示にできます。use overloadプラグマを使用すると、関数や演算子でそのアクションを非表示にすることができます。 (これらの多くは、より良い言葉のためにpackageの環境の中で行う必要がありますので、これらのことに注意してください)。最後にeval/eまたは/ee regexフラグは、変数に格納されているか、オンザフライで作成された、他の形式のコードを評価するために使用されます(隠されたコードはこのメカニズムによって生き残ることができます)。
  5. グロブ演算子 "*"はPerlのほとんどすべての名前の変更を許可します。したがって、たとえば*something = \*STDOUTと表示されている場合は、それに従うかもしれません。これは単純な乗算演算子と同じシンボルであることに注意してください。

また、Perlで悪意のあるものを実行する方法はまだまだたくさんありますが、上記のものはどれも不自然で、珍しいものではありません。

+0

興味深い、ありがとうございます。 – lkl

+2

あなたは明らかに 'eval'と '/// ee'のいずれかを使用して、隠れている可能性のあるコードを実行することができます。 –

+0

@ Ven'Tatsu、本当に十分です。 –

関連する問題