2011-06-17 16 views
-2

Perl看起來很簡單,很小。如果我不知道Perl語言,我該如何檢查Perl代碼是否安全?

一位朋友希望我運行一個簡單的perl代碼,我不明白perl腳本是否會做比應該做的更多的事情。

Perl腳本能像後門一樣工作嗎?可能是,然後......

非程序員如果看不到perl腳本沒有捕獲顯示信息,記錄擊鍵和其他東西,該怎麼看?

謝謝

+1

是否有一些代碼可以訪問,如果打開文件安全可以粘貼代碼? –

+0

我無法粘貼代碼,因爲谷歌可能會存儲它,然後我的朋友會注意到我不相信他的代碼。 :) – lkl

+4

如果你不信任它,不明白它,不要運行它。我不明白爲什麼你不能在這裏發佈代碼,你的解釋不是很有說服力,所有這些對我來說似乎都有些幼稚。對不起..但你覺得我們可以幫你嗎? –

回答

8

如果你不明白的腳本,那麼你有沒有比你跑了純二進制可執行更多的保障。這就是說:你沒有任何保證。

顯然,不運行程序作爲根(:

如果你真的需要運行腳本,你不信任你的朋友,你可以嘗試運行它一個「沙箱」內,如一個虛擬的OS,一個chroot「ED環境或jail。 這裏是沿着這些線路one more link

+0

謝謝,我會做。雖然這很好,但我想唯一的方法是我需要學習如何編程,而且沒有快速的方法來做到這一點。 :( – lkl

4

既然你懷疑的腳本是惡意你應該不運行它。如果可能的話,因爲已經表明,粘貼你的代碼,以便我們可以看看。

+0

我不能粘貼代碼,他可能會在谷歌上搜索它,他會注意到我不信任它。 – lkl

+0

如果你的朋友得知你重視你的安全,爲什麼它不好呢?直接和你的朋友說,你告訴她不信任她的代碼,因爲您重視您的安全,您不會運行未經驗證的代碼。 –

0

真的不可能知道腳本是否是惡意的(即使圖片文件可能包含惡意代碼!),但是如果您想運行它,請嘗試在虛擬機,沙箱或甚至在只要告訴作者你是否可以破解它,所以他可以修復它,或者說那是什麼author says)。

+0

圖像含有惡意代碼? – lkl

+0

有已知漏洞利用經過調整的圖像文件發生 –

+0

@lkl:這是假設您打開它與一個錯誤的圖像瀏覽器。當然,幾乎所有東西都是越野車... – jwd

0

你爲什麼不讓他解釋它是如何工作的,一行一行?如果他真的是你的朋友,我無法想象他爲什麼希望你運行惡意代碼。

+0

這是人性的,很難知道一個人是否真的是朋友 – lkl

+2

如果你不知道一個人足夠好,可以稱他們爲朋友,你不相信他們,那麼不要運行它 –

1

除了一些值得注意的例外,我們可以製作一份清單,以減輕一些恐懼。

  1. 登錄點擊這裏或調查使用的模塊(use Some::Module)大部分模塊,將存在於CPAN,Perl模塊的公共倉庫。雖然這將是一個開放式搜索,但這會幫助您查看是否正在使用記錄器或網絡連接(use strict; use warnings;無問題)。
  2. 在這裏發佈或者記下所有的open命令,因爲這些命令可以讀取/寫入文件或進行其他系統連接。
  3. 在這裏發佈或者調查所有system命令,甚至反引號「`」,因爲Perl使用它們來在您的計算機上運行程序。
  4. Perl也有隱藏這種活動的機制。例如,tie命令可讓這些操作隱藏在變量中,use overload雜注可讓它們隱藏在函數或操作符中。 (其中很多需要在package環境中完成(因爲沒有更好的詞),所以請記下這些)。最後,eval/e/e/ee正則表達式標誌用於評估(讀取:執行)以某種其他形式存在的代碼,可能存儲在變量中,或者實時創建,隱藏代碼可能通過此機制「生效」。
  5. glob操作符「*」允許在Perl中重命名幾乎任何東西,所以如果有人看到例如*something = \*STDOUT,則可以繼續。請注意,這與簡單乘法運算符的符號相同。

再一次有很多更多的方式在Perl中進行惡意的事情,而上述所有的事情都不自然,甚至不常見,也許這會給你一個開始的地方。

+0

有趣的是,謝謝你 – lkl

+2

你特別錯過了'eval'和'/// ee'其中的任何一個都可以用來執行本可以很好隱藏的代碼。 –

+0

@ Ven'Tatsu,夠了,加上 –

相關問題