psyray/oasis

Ollama Automated Security Intelligence Scanner

OASIS – Open Automated Security Intelligence Scanner

무엇인가요 – OASIS는 로컬에서 실행되는 대규모 언어 모델(LLM)을 사용하여 소스 코드의 보안 문제를 감사하는 Python 기반 명령줄 도구입니다. Ollama 모델이나 OpenAI 호환 서버(vLLM, LM Studio, LocalAI 등)와 호환되며, 기계가 읽을 수 있는 JSON 보고서와 함께 선택적 HTML, PDF, Markdown 렌더링도 생성합니다.

작동 방식 – 이 도구는 LangGraph로 조율되는 파이프라인을 따릅니다:

  1. 발견 – 제공된 파일/디렉터리를 탐색하고 코드를 파일 단위 또는 실험적으로 함수 단위로 청크화합니다.
  2. 빠른 스캔 – 가벼운 모델(--scan-model로 구성 가능)을 실행하여 잠재적 문제를 표시합니다.
  3. 심층 분석 – 표시된 스니펫을 하나 이상의 큰 모델(--models)에 전달하여 상세한 취약점 설명, 심각도, 이용 가능성 판단, 그리고 선택적 PoC 힌트를 제공합니다.
  4. 검출 검증 – 스캔 중 결정론적이고 코드 기반의 검증기가 실행되어 각 검출 결과에 신뢰도 가중치가 부여된 평가를 첨부합니다.
  5. 보고서 생성 – 각 검출 결과는 표준 JSON 객체로 기록되며, 도구는 HTML 대시보드, PDF/Markdown 요약, CI 통합을 위한 SARIF 파일도 생성합니다.

주요 기능

  • 다중 모델 지원 – 빠른 "스캔" 모델과 강력한 "심층 분석" 모델을 결합하거나, 여러 심층 모델을 병렬로 실행하고 출력을 병합(--report-model)할 수 있습니다.
  • 로컬 전용 운영 – 모든 LLM 호출은 로컬에 호스팅된 Ollama 인스턴스 또는 자체 호스팅된 OpenAI 호환 서버에만 이루어져 코드와 데이터의 기밀성이 보장됩니다.
  • 인터랙티브 웹 UIoasis --web로 비밀번호 보호된 대시보드를 시작할 수 있으며, 검출 결과를 탐색하거나 특정 문제에 대해 재조사 요청, RAG 강화된 설명을 볼 수 있습니다.
  • 캐싱 – 임베딩과 분석 결과는 디스크에 캐시되며, --clear-cache-embeddings, --cache-days로 지울 수 있거나 만료시킬 수 있습니다.
  • CI/CD 친화적 – 심각도 기준으로 종료 코드를 강제(--fail-on)할 수 있으며, GitHub Actions 예제도 제공됩니다.
  • 억제 및 차이 비교 – 억제된 지문의 JSON 레지스트리를 유지할 수 있으며, 새로운 실행을 베이스라인과 비교(--diff-against)할 수 있습니다.
  • 확장 가능한 프롬프트 – LLM 프롬프트에 사용자 정의 지침 텍스트를 추가할 수 있습니다(--custom-instructions).

일반적인 워크플로우

# pipx를 통해 설치(편집 가능)
pipx install -e .

# 작은 모델과 큰 모델을 사용하여 프로젝트를 두 단계 스캔
oasis -i my_project/ -sm gemma3:4b -m llama3:latest

# 결과를 로컬에서 인터랙티브 리뷰하기 위해 제공
oasis -i my_project/ -sm gemma3:4b -m llama3:latest --web

보고서는 security_reports/<project-slug>/ 아래에 생성되며, 브라우저에서 직접 열거나 다른 도구에서 사용할 수 있습니다.

누구를 위한가요 – 기업의 기밀 코드를 외부 서비스에 전송하지 않고도 AI 지원 정적 분석을 코드 리뷰 파이프라인에 추가하고 싶은 개발자, 보안 엔지니어, DevSecOps 팀.


TL;DR – OASIS는 오픈소스이며 로컬에서 실행되는 AI 보안 스캐너로, 여러 LLM을 오케스트레이션하여 코드 취약점을 탐지, 검증, 보고하며, 웹 대시보드와 CI 통합을 제공합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트