TL;DR

OASIS (Ollama Automated Security Intelligence Scanner) là công cụ audit bảo mật code dùng AI, chạy hoàn toàn local qua Ollama. Phát hiện 15 loại lỗ hổng, hỗ trợ mọi ngôn ngữ lập trình, xuất report PDF/HTML/Markdown, có dashboard web riêng. Miễn phí, GPL-3.0, 250 sao trên GitHub.

Điểm đáng chú ý: kiến trúc two-phase scanning (model nhẹ quét sơ + model mạnh đào sâu) và adaptive multi-level giúp giảm false positive mà vẫn tiết kiệm GPU. Phù hợp với team không thể đẩy code lên SAST cloud.

OASIS Security Dashboard hiển thị 263 reports và 16 vulnerability types

Có gì đáng chú ý

OASIS do psyray phát triển, phát hành lần đầu v0.1.0 ngày 15/01/2024. Phiên bản mới nhất v0.4.0 (21/03/2025) mang về ba thay đổi quan trọng:

  • Two-phase scanning: dùng model nhẹ (4–7B) quét toàn codebase tìm đoạn nghi ngờ, sau đó model mạnh (>20B) chỉ deep-analyze những đoạn bị flag.
  • Adaptive multi-level mode (--adaptive): 4 cấp độ phân tích, điều chỉnh động theo risk score của từng chunk code.
  • Web interface có auth: dashboard `127.0.0.1:5000` với password tự sinh, có thể expose ra network qua --web-expose.

Vì sao quan trọng

SAST truyền thống (Semgrep, Bandit, SonarQube) dựa trên rule, thường miss lỗi context-dependent và false positive cao. Commercial AI SAST thì lại buộc team phải đẩy source code lên SaaS của vendor — cực kỳ nhạy cảm với codebase enterprise hoặc dự án chịu compliance.

OASIS giải bài toán này: LLM chạy 100% local qua Ollama, code không rời khỏi máy. Với các team có air-gap, yêu cầu bảo mật cao, hoặc đơn giản là không muốn trả tiền license SAST hàng chục nghìn USD, đây là lựa chọn thực tế đầu tiên có chất lượng đáng dùng.

Kiến trúc kỹ thuật

15 loại lỗ hổng được phát hiện:

TagMô tả
sqliSQL Injection
xssCross-Site Scripting
rceRemote Code Execution
ssrfServer-Side Request Forgery
xxeXML External Entity
pathPath Traversal
idorInsecure Direct Object Reference
csrfCross-Site Request Forgery
authAuthentication Issues
cryptoInsecure Cryptographic Usage
input / data / session / config / loggingInput validation, data exposure, session, misconfig, sensitive logging

Model đề xuất:

  • Scan nhanh (4–7B): gemma3:4b, llama3.2:3b, phi3:mini
  • Deep analysis (>20B): gemma3:27b, deepseek-r1:32b, qwen2.5-coder:32b, mixtral:instruct
  • Code-specific: codellama, codestral, starcoder, phind-codellama
  • Embedding mặc định: nomic-embed-text:latest

Dual-layer cache trong .oasis_cache/: embedding cache (giữ 7 ngày, tránh re-compute vector) + analysis cache (theo từng model + mode). Lần scan đầu chậm, scan lặp lại trên code không đổi thì gần như instant — chỉ rescan file đã thay đổi.

CLI linh hoạt: -i input (file/dir/list), -of format (pdf/html/md), -v vuln types, -t similarity threshold (default 0.5), -sm scan model, -m deep model, -x custom extensions.

So sánh Standard vs Adaptive

Yếu tốStandard Two-PhaseAdaptive Multi-Level
Tốc độNhanh cho trường hợp trung bìnhNhanh trên code low-risk
Tài nguyênDự đoán được, fixed per phaseBiến động, scale theo risk
Độ chính xácTốt với lỗi rõ ràngTốt hơn với lỗi context-dependent
False positiveCao hơnGiảm nhờ context scoring

Adaptive 4 levels: L1 static pattern → L2 lightweight screen → L3 medium-depth + risk score → L4 deep analysis chỉ cho chunk high-risk. Kết quả: GPU không bị burn vô ích trên code an toàn.

Use cases thực tế

  • Pentester & security researcher: chạy Audit Mode (--audit) trên codebase lạ để xem phân phối embedding vs vuln pattern, biết nên focus đào sâu đâu trước khi full scan.
  • Dev team: tích hợp pre-commit hoặc nightly scan, không ship code ra ngoài.
  • Enterprise compliance: on-prem audit cho công ty tài chính, y tế, chính phủ — nơi cloud SAST bị cấm.
  • OSS maintainer: free alternative thay Snyk/Semgrep Pro cho review dependency.

OASIS logo

Hạn chế & yêu cầu hệ thống

Yêu cầu tối thiểu: Python 3.9+, Ollama, pipx. CPU 4+ core, 16 GB RAM, 100 GB storage. Chạy CPU-only được nhưng, trích nguyên văn từ README, really slow.

Khuyến nghị: 8+ core, 32–64 GB RAM, GPU NVIDIA ≥ 8 GB VRAM (RTX 3060 trở lên), SSD.

Scaling:

  • Small (< 10k LOC): minimum đủ
  • Medium (10k–100k LOC): 32 GB+ RAM
  • Large (> 100k LOC): 64 GB+ RAM + GPU riêng
  • Enterprise: 128 GB+ RAM, A100/H100 class

VRAM theo model size: 4–8B → 8 GB, 12–20B → 16 GB, 30B+ → 24 GB (RTX 3090/4090/A5000). Model download lần đầu 3–15 GB mỗi model.

Tradeoff: chậm hơn rule-based SAST; chất lượng detection phụ thuộc model bạn chọn — phi3:mini nhanh nhưng dễ miss, deepseek-r1:32b chính xác nhưng cần GPU mạnh.

Giá: miễn phí, GPL-3.0, không có SaaS, không cần API key.

Tương lai

Repo hiện có 250 sao, 19 fork, 2 contributor chính (psyray + sourcery-ai bot). Viết bằng Python (70%) + JS (16%). Roadmap qua changelog cho thấy hướng đi rõ: thêm vuln types, cải tiến cache, bổ sung interactive UX. Có Discord community để thảo luận.

Với đà phát triển local LLM (Gemma 3, Qwen 2.5-coder, DeepSeek R1), chất lượng scan của OASIS chỉ tăng theo thời gian mà không cần tool tự thay đổi gì — chỉ cần swap model mới vào. Đây là lợi thế cấu trúc lớn so với SAST commercial có engine đóng.

Nguồn: github.com/psyray/oasis, CHANGELOG, README.