私はPythonで書かれたアプリケーションを持っています。私はeggファイルを使用するアプリケーション用のプラグインシステムを作成しました。 EggファイルにはコンパイルされたPythonファイルが含まれており、容易に逆コンパイルしてアプリケーションをハックすることができます。このシステムを保護する方法はありますか?私はこのためにデジタル署名を使用したいと思います - これらの卵ファイルに署名し、そのような卵ファイルをロードする前に署名を確認してください。 Pythonからプログラムでこれを行う方法はありますか?たぶんwinapiを使用して?Pythonアプリケーションのセキュアなプラグインシステム
答えて
http://chandlerproject.org/Projects/MeTooCryptoのような暗号ライブラリは、アドホックなソリューションを構築するのに役立ちます。使用例:http://tdilshod.livejournal.com/38040.html
このシステムを保護する方法はありますか?
答えは「それに依存する」です。
質問する必要がある2つの質問は、「人は何ができると思われますか」と「人は何かできますか(特定の実装について)」です。後者が前者のサブセットである実装が存在する場合、システムを保護することができる。
私の友人の一人は、プログラミング競争裁判官に取り組んでいます。プログラムでは、いくつかのテストデータでユーザーが提出したプログラムを実行し、その出力を参照出力と比較します。あなたは他の人々のコードを実行したいが、それらを実行させたくない場合は、をコードにすることができます。あなたのシナリオはやや似ていますか?それから、答えは "それは難しい"です。
信頼できないコードをウェブからダウンロードして、マシンにホースを装着しないという保証が必要なのですか?次に、さまざまなWeb言語を見てください。 1つの解決策は、システムコール(JavaScript)へのアクセスを提供しないか、潜在的に危険な呼び出し(JavaのSecurityManager)へのアクセスを制限することです。それらのどれも私が知っている限り、Pythonで行うことはできませんが、あなたはいつもインタープリタをハックし、いくつかのホワイトリストにない外部モジュールの読み込みを禁止することができます。おそらくエラーが起こりやすいでしょう。
ユーザーがプラグインを作成して、アプリケーションのコード本体が何をしているのかわからないようにしますか?ユーザーが.pycファイルを逆コンパイルして変更できるとします。あなたのコードを実行している人がいつもそれを修正し、WoWのための金農場のボットを考えていると仮定してください。
サンドボックス化されたWeb-ishモデルと同様に、Linux専用のソリューションの1つは、AppArmorを使用することです。AppArmorは、アプリケーションがアクセスできるファイルとシステムコールができるファイルを制限します。これは実現可能な解決策かもしれませんが、それについてはあまりよく分かりませんので、 "調査する"以外のアドバイスはできません。
あなたが気になるのは、邪悪な人たちが橋渡しの途中でコードを修正していることです。標準的な暗号ソリューションが存在します(SSL)。あなたが署名したプラグインのみをロードしたいのであれば(ユーザーの操作を制御したいので)、署名コードは正しい解決策のように聞こえるでしょう(ただし、.pycファイルを編集し、署名付きチェック)。
- 1. シンプルなPythonプラグインシステム
- 2. java warアプリケーションのセキュアなデプロイ
- 3. Delphiアプリケーション用のプラグインシステム - bpl対dll?
- 4. iOSアプリケーションのセキュアなクライアント側のデータストレージ?
- 5. Python3プラグインシステム
- 6. セキュア・アプリケーション・ロールとSQL * Loader
- 7. Laravel 4プラグインシステム
- 8. リモートライブアップデートプロセス(Sonarrのような)/プラグインシステムASP.NET 5
- 9. Webpackを使用してコンパイルされたアプリケーション用のプラグインシステム
- 10. セキュアなPHPのメールスクリプト
- 11. セキュアな通信
- 12. セキュアなJARファイル
- 13. セキュアなAPI
- 14. セキュアなタイスクリプトモデル
- 15. セキュアなString.to_intなど
- 16. Java - 私自身のプラグインシステム
- 17. Rails 3:内部プラグインシステムでアプリケーションを作成する
- 18. WebAPI 2セキュアなルーティングパラメータ
- 19. セキュアなGrizzly HttpServer(HTTPS)
- 20. セキュアなサブドメインは3
- 21. RFC /アドバイス:セキュア/セキュアでないrpc /イベントストリームプロトコルの設計
- 22. AndroidのセキュアなHTTP通信
- 23. プロダクションJVMのセキュアなデバッグ
- 24. セキュアなNifiクラスタの設定
- 25. セキュアなクライアント側のSQLクエリー?
- 26. セキュアと非セキュアでの認証共有
- 27. Apache Kafka sparkでセキュアで非セキュアな接続1.6.3
- 28. セキュアなキャンバスURLを使用しないFBアプリケーションの作成方法
- 29. PHPログインスクリプト、PHPセキュアなログインセッション
- 30. セキュアなEJB3.1-Webservice(JBoss Wildfly 8.2)
「アプリケーションをハッキングする」とはどういう意味ですか?あなたは「悪意のある」ユーザーを心配していますか?ダウンロードし、インストールしてから、何人かのユースケースを提供してください。 - ダウンロードしたアプリケーションを壊す?このシナリオをより詳しく説明してください。 –