

現在の開発では、たとえわずか11行のコードでしかなく、些細な機能しか提供しない場合でも、開発段階で多くのパッケージを使用する傾向があります。これに新しいパッケージを公開する非常に自由なポリシーが組み合わさることで、開発者を標的にした悪意ある攻撃が増加しています。脅威アクターによるいくつかの異なるアプローチが存在します。
これらは、開発者が自らを危険にさらす手法のほんの一例です。PyPIやNPMなどのリポジトリにアップロードされるものを監視するプロセスが存在せず、過去のインシデントは全くの幸運によって発見されたという事実がこれを裏付けています。私たちの目標はこれを改善することです。
私たちは、大規模なソースコード(PyPIリポジトリ全体など)をスキャンし、異常や潜在的な悪意、脆弱性を探すために設計されたフレームワークを作成しました。このフレームワークは、開発者がパッケージをインストールするときや、任意のファイル/ディレクトリセットなど、オンデマンドでソースコードをスキャンするようにも設計されています。現在の実装はPython言語とPyPIを対象としていますが、他の言語(JavaScriptやNPMなど)を含めることができるように設計されています。
ユースケースのセットには以下が含まれますが、これらに限定されません。
これは高度に最適化されたハイブリッド分析エンジンによって実現されます。分析は、コードを実行せずに静的コード分析を使用して完全に安全な環境で実行されます。Auraコアエンジンは、ソースコードから解析されたASTツリーを分析し、動作分析とコード実行フローを実行します。エンジンはまた、定数伝播、畳み込み、静的評価などのルールセットを使用してASTツリーを書き換える機能をサポートしています。これらはコンパイラがコードを最適化するために使用する一連の技術です。これが、この分析アプローチが「ハイブリッド」である理由であり、完全に安全な部分評価によって静的解析を強化し、より単純な難読化メカニズムを打ち破ることができます。
以下に、Aura AST変換エンジンによって認識されるさまざまなソースコード「難読化」手法のショーケースを示します。

Auraの核心部分は、ソースコードの異常や潜在的な脆弱性を分析することです。Auraには、セットアップスクリプトでのevalの使用などの異常を探す組み込みのアナライザーがいくつかあります。他のアナライザーはファイルシステム構造(ソースコード以外)を調べ、例えば資格情報の漏洩、ハードコードされたAPIトークンなどを探します。これらのアナライザーはhitsと呼ばれるものを生成し、発見された異常を定義し、スキャンされたデータのセキュリティオーラを計算するために使用されるスコアを含めることもできます。提示された異常については、入力データの機能に基づいて合理的な判断を下すことをお勧めします。たとえば、requests ライブラリがネットワーク関連の呼び出しを含むのは完全に正常ですが、画像処理ライブラリがネットワーク経由でデータを送信することは期待されません。大規模なリポジトリスキャンや他の製品への統合に適したJSON形式でのデータ出力もサポートされています。他のコンポーネントの説明と使用法については、ドキュメント を参照してください。


##ドキュメント
このプロジェクトはGPLv3ライセンスの下でライセンスされています。詳細はLICENSE.txtファイルを参照してください。このフレームワークの一部には、r2c platform、libraries.ioなどの他の製品との(オプションの)統合が含まれており、これらはそれぞれのライセンスと利用条件に従います。