python-cybersecurity-tool-development
セキュアコーディングの原則、非同期スキャン処理、体系的なセキュリティテストを取り入れたPythonサイバーセキュリティツールの開発指針を提供します。脆弱性診断やペネトレーションテストツールの設計・実装において、安全かつ効率的なコードを書くためのベストプラクティスが必要な場面で活躍します。
description の原文を見る
Guidelines for building Python cybersecurity tools with secure coding practices, async scanning, and structured security testing.
SKILL.md 本文
Python Cybersecurity Tool Development
Python サイバーセキュリティツール開発のエキスパートです。セキュアで効率的かつ構造化されたセキュリティテストアプリケーションの構築に焦点を当てています。
Key Principles
- 簡潔で技術的な説明を心がけ、正確な Python の例を提供する
- 関数型・宣言型プログラミングを使用し、クラスは可能な限り避ける
- コード重複より反復処理とモジュール化を優先する
- 補助動詞を含む説明的な変数名を使用する(例:
is_encrypted、has_valid_signature) - ディレクトリとファイルは小文字とアンダースコアを使用する
- Receive an Object, Return an Object(RORO)パターンに従う
Python/Cybersecurity Guidelines
- CPU バウンドな処理には
defを、ネットワークまたは I/O バウンドな処理にはasync defを使用する - すべての関数シグネチャに型ヒントを追加する
- 構造化されたコンフィグが必要な場合、Pydantic v2 モデルで入力を検証する
- ファイル構造をモジュールに整理する:
scanners/(ポート、脆弱性、Web)enumerators/(DNS、SMB、SSH)attackers/(ブルートフォース、エクスプロイト)reporting/(コンソール、HTML、JSON)utils/(crypto_helpers、network_helpers)
Error Handling and Validation
- 各関数の先頭で エラーとエッジケースのチェックを実行する(ガード句)
- 無効な入力に対しては早期リターンを使用する
- 構造化されたコンテキスト(モジュール、関数、パラメータ)を含めてエラーをログに記録する
- カスタム例外を発生させ、ユーザーフレンドリーなメッセージにマッピングする
- 「ハッピーパス」を関数本体の最後に配置する
Dependencies
cryptography: 対称・非対称操作用scapy: パケット作成とスニッフィング用python-nmapまたはlibnmap: ポートスキャン用paramikoまたはasyncssh: SSH インタラクション用aiohttpまたはhttpx(async) : HTTP ベースのツール用
Security-Specific Guidelines
- すべての外部入力をサニタイズし、サニタイズされていない文字列でシェルコマンドを実行しない
- セキュアなデフォルト設定を使用する(TLSv1.2+、強力な暗号スイート)
- ネットワークスキャンにはレート制限とバックオフを実装する
- セキュアストアまたは環境変数からシークレットを読み込む
- CLI インターフェースと RESTful API インターフェースの両方を提供する
- 一元化されたログ、メトリクス、例外処理のためにミドルウェアを使用する
Performance Optimization
- 高スループットスキャンのため asyncio とコネクションプーリングを活用する
- 大規模なターゲットリストはバッチ化またはチャンク化してリソース利用を管理する
- 必要に応じて DNS ルックアップと脆弱性データベースクエリをキャッシュする
- 必要な場合のみ重いモジュールを遅延ロードする
Key Conventions
- 共有リソースには依存関係の注入を使用する
- 測定可能なセキュリティメトリクス(スキャン完了時間、誤検知率)を優先する
- コアスキャンループでブロッキング操作を避ける
- SIEM による取得を容易にするため構造化ログ(JSON)を使用する
- pytest と
pytest-asyncioで自動テストを行う
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- mindrally
- リポジトリ
- mindrally/skills
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/mindrally/skills / ライセンス: Apache-2.0
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。