DEV Community

Raghava Chellu
Raghava Chellu

Posted on

Omni Security & Intelligence Python Library AI · MFT · GCS · CyberSecurity · Internet

OmniSec is a unified Python library that brings together five essential domains under one consistent API:

Module Description

This platform combines AI-driven intelligence, secure file transfer, cloud storage integration, and advanced security analysis into a unified enterprise solution. It leverages the Claude API for text analysis, classification, summarization, and automated threat reporting. Managed File Transfer (MFT) is supported over SFTP/FTPS with AES-256 encryption and detailed audit logging to ensure secure and compliant data exchange. Native integration with Google Cloud Storage enables uploads, downloads, signed URLs, and metadata management. The security engine provides hashing, AES/RSA encryption, password analysis, IoC extraction, and header scoring. Additionally, built-in network capabilities such as HTTP client operations, DNS analysis, port scanning, SSL inspection, and IP geolocation enable comprehensive monitoring and threat assessment.

Installation

Base install

pip install omnisec

Enter fullscreen mode Exit fullscreen mode

With specific extras

pip install omnisec[ai]        # Anthropic Claude support
pip install omnisec[mft]       # SFTP + AES encryption
pip install omnisec[gcs]       # Google Cloud Storage
pip install omnisec[security]  # Full cryptography suite
pip install omnisec[internet]  # HTTP + DNS support
pip install omnisec[all]       # Everything
Enter fullscreen mode Exit fullscreen mode

Quick Start

import omnisec

# ── AI Engine ──────────────────────────────────────────────────
engine = omnisec.AIEngine(api_key="your-anthropic-key")

summary = engine.summarize("Long document text...", max_sentences=3)
labels  = engine.classify("Suspicious email body", ["phishing", "spam", "legitimate"])
threat  = engine.analyze_security_log("Failed SSH from 10.0.0.5 - 50 attempts")

print(threat)
# {
#   "threat_level": "high",
#   "threat_type": "brute_force",
#   "indicators": ["10.0.0.5", "SSH port 22", "50 failed attempts"],
#   "recommendation": "Block IP 10.0.0.5 and enable fail2ban",
#   "summary": "Brute-force SSH attack detected from 10.0.0.5"
# }

Enter fullscreen mode Exit fullscreen mode

── MFT Client ──

with omnisec.MFTClient(
    host="sftp.example.com",
    username="user",
    key_path="~/.ssh/id_rsa",
    encrypt_transfers=True,
) as mft:
    record = mft.upload("report.pdf", "/remote/reports/report.pdf")
    print(f"SHA-256: {record.sha256}")
    mft.export_audit_csv("audit.csv")


# ── GCS Client ──

Enter fullscreen mode Exit fullscreen mode

gcs = omnisec.GCSClient(project="my-project", bucket="my-bucket")
gcs.upload("local/data.csv", "datasets/data.csv")
url = gcs.signed_url("datasets/data.csv", expiry_minutes=60)
objects = gcs.list_objects(prefix="datasets/")


# ── Security Toolkit ──

Enter fullscreen mode Exit fullscreen mode

sec = omnisec.SecurityToolkit()


# Hashing

Enter fullscreen mode Exit fullscreen mode

h = sec.hash("password123", "sha256")
file_hash = sec.hash_file("/var/log/syslog", "sha512")


# AES-256-GCM Encryption

Enter fullscreen mode Exit fullscreen mode

key, nonce, ct = sec.aes_encrypt(b"sensitive data")
plaintext = sec.aes_decrypt(key, nonce, ct)


# String encryption
Enter fullscreen mode Exit fullscreen mode

enc = sec.aes_encrypt_string("top secret message")
plain = sec.aes_decrypt_string(enc)

# Password tools
Enter fullscreen mode Exit fullscreen mode

pwd = sec.generate_password(length=20, use_symbols=True)
strength = sec.check_password_strength("P@ssw0rd!")
print(strength)


# {"score": 72, "strength": "good", "feedback": ["Add uppercase letters."]}

# IoC extraction
Enter fullscreen mode Exit fullscreen mode

iocs = sec.extract_iocs("Malware from 192.168.1.50 hit CVE-2023-1234 via evil.com")
print(iocs["cves"]) # ['CVE-2023-1234']
print(iocs["ipv4"]) # ['192.168.1.50']
print(iocs["domains"]) # ['evil.com']


# Security header analysis
Enter fullscreen mode Exit fullscreen mode

headers = {"Strict-Transport-Security": "max-age=31536000", "X-Frame-Options": "DENY"}
analysis = sec.analyze_headers(headers)
print(f"Score: {analysis['score']}/100 Grade: {analysis['grade']}")

# PBKDF2 password hashing
Enter fullscreen mode Exit fullscreen mode

h, salt = sec.pbkdf2_hash("mypassword")
assert sec.pbkdf2_verify("mypassword", h, salt)


# ── Internet Toolkit ──
Enter fullscreen mode Exit fullscreen mode

net = omnisec.InternetToolkit(timeout=10, retries=3)

# HTTP
Enter fullscreen mode Exit fullscreen mode

resp = net.get("https://api.ipify.org?format=json")
print(resp["json"]["ip"])

# Port scanning
Enter fullscreen mode Exit fullscreen mode

result = net.port_scan("192.168.1.1", ports=[22, 80, 443, 3306])
for p in result["open_ports"]:
print(f" {p['port']}/TCP {p['service']}")


# SSL inspection
Enter fullscreen mode Exit fullscreen mode

cert = net.ssl_info("google.com")
print(f"Expires in {cert['days_remaining']} days")
print(f"Issuer: {cert['issuer'].get('organizationName')}")

# DNS
Enter fullscreen mode Exit fullscreen mode

records = net.dns_resolve("example.com", "A")
hostname = net.reverse_dns("8.8.8.8")

# IP intelligence
Enter fullscreen mode Exit fullscreen mode

info = net.ip_info("8.8.8.8")
print(f"{info['org']} — {info['city']}, {info['country']}")

# URL monitoring
Enter fullscreen mode Exit fullscreen mode

statuses = net.monitor_urls(["https://google.com", "https://github.com"])
for s in statuses:
status = "YES" if s["ok"] else "NO"
print(f"{status} {s['url']} {s['elapsed_ms']}ms")
CLI Usage


# Hash a string

Enter fullscreen mode Exit fullscreen mode

omnisec hash sha256 "hello world"


# Generate a secure password
Enter fullscreen mode Exit fullscreen mode

omnisec password generate --length 24


# Check password strength
Enter fullscreen mode Exit fullscreen mode

omnisec password check "P@ssword123!"

# Port scan
Enter fullscreen mode Exit fullscreen mode

omnisec port-scan 192.168.1.1 --ports 22 80 443 3306 5432

# SSL certificate info
Enter fullscreen mode Exit fullscreen mode

omnisec ssl-info google.com

# IP geolocation
Enter fullscreen mode Exit fullscreen mode

omnisec ip-info 8.8.8.8

# DNS lookup
Enter fullscreen mode Exit fullscreen mode

omnisec dns google.com --type MX

# URL availability check
Enter fullscreen mode Exit fullscreen mode

omnisec ping https://example.com

# Extract IoCs from text
Enter fullscreen mode Exit fullscreen mode

omnisec extract-iocs "Attack from 10.0.0.1 via CVE-2024-1234"
Configuration
from omnisec import OmniConfig

# Programmatic configuration
Enter fullscreen mode Exit fullscreen mode

cfg = OmniConfig(
ai_model="claude-sonnet-4-6",
gcs_bucket="my-bucket",
mft_host="sftp.example.com",
net_timeout=15,
)
cfg.save("omnisec.json")

# Reload from file
Enter fullscreen mode Exit fullscreen mode

cfg = OmniConfig.load("omnisec.json")

# Environment variables (auto-detected)
# ANTHROPIC_API_KEY, GOOGLE_CLOUD_PROJECT, OMNISEC_GCS_BUCKET,
# OMNISEC_MFT_HOST, OMNISEC_NET_TIMEOUT, etc.
Enter fullscreen mode Exit fullscreen mode

Project Structure
omnisec/
├── omnisec/
│ ├── init.py # Top-level exports
│ ├── cli.py # CLI entry point
│ ├── core/
│ │ ├── config.py # Centralised OmniConfig
│ │ └── logger.py # Structured colour logger
│ ├── ai/
│ │ └── init.py # AIEngine (Claude API)
│ ├── mft/
│ │ └── init.py # MFTClient (SFTP/FTPS + AES)
│ ├── gcs/
│ │ └── init.py # GCSClient (Google Cloud Storage)
│ ├── security/
│ │ └── init.py # SecurityToolkit (crypto + threat intel)
│ └── internet/
│ └── init.py # InternetToolkit (HTTP + DNS + scanning)
├── tests/
│ ├── test_security.py
│ ├── test_internet.py
│ └── test_mft.py
├── examples/
│ ├── ai_demo.py
│ ├── mft_demo.py
│ ├── gcs_demo.py
│ ├── security_demo.py
│ └── internet_demo.py
├── setup.py
├── pyproject.toml
└── README.md


Running Tests
Enter fullscreen mode Exit fullscreen mode

pip install omnisec[all] pytest
pytest tests/ -v

# License

Enter fullscreen mode Exit fullscreen mode

MIT License

Copyright (c) 2026 Raghava Chellu

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Contributing
Pull requests are welcome. For major changes, open an issue first. Please ensure all tests pass and new features include docstrings and examples.


Enter fullscreen mode Exit fullscreen mode

Top comments (0)