Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
packj — 静的および動的分析ツール。オープンソースパッケージの悪意のある、脆弱性のある、リスクのある属性を監査し、サプライチェーン攻撃を防ぐためにサンドボックス化されたインストールを備えています。 | Kitploit
ツール/GitHubGitHub/ossillate-inc/packj
静的分析脆弱性スキャナー動的分析 (サンドボックス)マルウェア分析DevSecOpsサプライチェーンセキュリティ
GitHubossillate-inc/packj

packj

静的および動的分析ツール。オープンソースパッケージの悪意のある、脆弱性のある、リスクのある属性を監査し、サプライチェーン攻撃を防ぐためにサンドボックス化されたインストールを備えています。

リポジトリを見る
691373113日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
ウェブサイト
共有

  Packj は悪意のある/リスクのあるオープンソースパッケージを検出します

Packj(パッケージと発音)は、ソフトウェアサプライチェーン攻撃を軽減するためのツールです。NPM、RubyGems、PyPIなどの人気のあるオープンソースパッケージレジストリから、悪意のあるもの、脆弱なもの、放棄されたもの、タイポスクワッティング、その他の「リスクのある」パッケージを検出できます。簡単にカスタマイズしてノイズを最小限に抑えることができます。Packjは博士研究プロジェクトとして始まり、現在はさまざまな政府助成金のもとで開発されています。

GitHub Stars PRs Welcome Github Commit Activity Discord License: AGPL v3 Docker

注記 セルフホスト型のPackjウェブサーバーと複数の統合機能が今月中にリリース予定です 👊 このリポジトリをウォッチして最新情報を入手してください。

デモビデオ

目次

  • はじめに - Dockerイメージ、GitHub Action、パッケージとして利用可能
  • 機能 - 深い静的/動的コード解析とサンドボックス化
  • 対応エコシステム - NPM、PyPI、Rubygems、PHP、Rust
  • 私たちのストーリー - 博士研究プロジェクトとして始まり、政府助成金に支えられています
  • Packjを選ぶ理由 - 既存のCVEスキャナーはコードが良性であると想定し、その動作を分析しません
  • カスタマイズ - 脅威モデルに応じてアラートをオフにし、ノイズを低減
  • 発見されたマルウェア - 70以上の悪意のあるPyPIおよびRubyGemsパッケージを報告
  • トークとビデオ - PyCon、OpenSourceSummit、BlackHATでのプレゼンテーション
  • プロジェクトロードマップ - 新機能の表示や提案; Discordチャンネルに参加
  • チームとコラボレーション - 学界/産業界のサイバーセキュリティ研究者が主導
  • FAQ - 対応パッケージマネージャー、手法に関するよくある質問など

はじめに

複数のデプロイモデルをサポートしています:

1. GitHubランナー

Packjを使用してプルリクエスト内の依存関係を監査します。```yaml

  • name: Packj Security Audit uses: ossillate-inc/packj-[email protected] with:

    TODO: replace with your dependency files in the repo

    DEPENDENCY_FILES: pypi:requirements.txt,npm:package.json,rubygems:Gemfile REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GitHub [marketplace](https://github.com/marketplace/actions/packj-security-audit) で見る。例: [PR run](https://github.com/ossillate-inc/packj-github-action-demo/pull/3#issuecomment-1274797138).

### 2. Dockerイメージ(推奨)

Packjを試す/テストする最も早い方法はDockerを使用することです。Podmanもコンテナ化(隔離)実行のためにサポートされています。```
docker run -v /tmp:/tmp/packj -it ossillate/packj:latest --help

3. ソースリポジトリ

このリポジトリをクローンしてください、``` git clone https://github.com/ossillate-inc/packj.git && cd packj

依存関係のインストール```
bundle install && pip3 install -r requirements.txt

ヘルプから始める:``` python3 main.py --help

# サポートされているエコシステム #

Packj は、NPM、PyPI、Rust、PHP、および Rubygems パッケージレジストリから公開されたパッケージを精査できます。Rust と PHP のサポートは作業中です。現在、レジストリのサポートを積極的に追加しています。
また、ローカル(未公開)の NPM および PyPI パッケージの精査もサポートしています。

| レジストリ | エコシステム | サポート状況          |
| ---------- | ------------ | ------------------ |
| NPM       | JavaScript   | :white_check_mark: |
| PyPI      | Python       | :white_check_mark: |
| Cargo     | Rust         | :white_check_mark: |
| Rubygems  | Ruby         | :white_check_mark: |
| Packagist | PHP          | :white_check_mark: |
| Docker    | Docker       | :x: |
| Nuget     | .NET         | :white_check_mark: |
| Maven     | Java         | :white_check_mark: |
| Cocoapods | Swift        | :x: |

# 機能 #

Packj は以下のツールを提供します:

* [監査](#auditing-a-package) - パッケージの「リスクのある」属性を精査します。
* [サンドボックス](#sandboxed-package-installation) - パッケージの安全なインストールを行います。

## パッケージの監査 ##

Packj は、オープンソースソフトウェアパッケージを、サプライチェーン攻撃に対して脆弱にする「リスクのある」属性について監査します。例えば、有効期限切れのメールドメイン(2FA がない)、長いリリース時間のギャップ、機密性の高い API やアクセス権限などを持つパッケージはリスクありとフラグが立てられます。

以下の監査がサポートされています:

- 複数パッケージ:`python3 main.py audit -p pypi:requests rubygems:overcommit`
- 依存関係ファイル:`python3 main.py audit -f npm:package.json pypi:requirements.txt`

デフォルトでは、`audit` はリスクのあるコードを検出するために静的コード解析のみを実行します。動的コード解析も実行するには `-t` または `--trace` フラグを渡すことができます。これにより、要求されたすべてのパッケージを strace 下でインストールし、パッケージのインストール時動作を監視します。以下の出力例を参照してください。

<details>
    <summary><h4>実行例/出力を表示</h4></summary>

    $ docker run -v /tmp:/tmp/packj -it ossillate/packj:latest audit --trace -p npm:browserify

    [+] Fetching 'browserify' from npm..........PASS [ver 17.0.0]
    [+]    Checking package description.........PASS [browser-side require() the node way]
    [+]    Checking release history.............PASS [484 version(s)]
    [+] Checking version........................RISK [702 days old]
    [+]    Checking release time gap............PASS [68 days since last release]
    [+] Checking author.........................PASS [[email protected]]
    [+]    Checking email/domain validity.......RISK [expired author email domain]
    [+] Checking readme.........................PASS [26838 bytes]
    [+] Checking homepage.......................PASS [https://github.com/browserify/browserify#readme]
    [+] Checking downloads......................PASS [2M weekly]
    [+] Checking repo URL.......................PASS [https://github.com/browserify/browserify]
    [+]    Checking repo data...................PASS [stars: 14189, forks: 1244]
    [+]    Checking if repo is a forked copy....PASS [original, not forked]
    [+]    Checking repo description............PASS [browser-side require() the node.js way]
    [+]    Checking repo activity...............PASS [commits: 2290, contributors: 207, tags: 413]
    [+] Checking for CVEs.......................PASS [none found]
    [+] Checking dependencies...................RISK [48 found]
    [+] Downloading package from npm............PASS [163.83 KB]
    [+] Analyzing code..........................RISK [needs 3 perm(s): decode,codegen,file]
    [+] Checking files/funcs....................PASS [429 files (383 .js), 744 funcs, LoC: 9.7K]
    [+] Installing package and tracing code.....PASS [found 5 process,1130 files,22 network syscalls]
    =============================================
    [+] 5 risk(s) found, package is undesirable!
    => Complete report: /tmp/packj_54rbjhgm/report_npm-browserify-17.0.0_hlr1rhcz.json
    {
        "undesirable": [
            "old package: 702 days old",
            "invalid or no author email: expired author email domain",
            "generates new code at runtime",
            "reads files and dirs",
            "forks or exits OS processes",
        ]
    }
</details>

> 警告:パッケージはインストール中に悪意のあるコードを実行する可能性があるため、`-t` または `--trace` は Docker コンテナまたは仮想マシン内でのみ使用することを推奨します。

監査は Docker/Podman コンテナ内でも実行できます。リスクのある属性と使用方法の詳細は [Audit README](https://github.com/ossillate-inc/packj/blob/main/packj/audit/README.md) をご覧ください。

## サンドボックス化されたパッケージインストール ##

Packj は、パッケージの「安全なインストール」のための軽量サンドボックス化を提供します。具体的には、悪意のあるパッケージが機密データを外部に送信したり、機密ファイル(例:SSH キー)にアクセスしたり、マルウェアを永続化したりするのを防止します。

インストール時スクリプト(ネイティブコンパイルを含む)をサンドボックス化します。**strace** を使用します(つまり、**VM/コンテナは不要** です)。

サンドボックス化の仕組みと使用方法の詳細は [Sandbox README](https://github.com/ossillate-inc/packj/blob/main/packj/sandbox/README.md) をご覧ください。

<details>
    <summary><h4>実行例/出力を表示</h4></summary>
ツールをダウンロード