Cyber Lens is a Threat Intelligence & IOC Analysis Platform built as part of a month-long open-source contribution event by the Cyber Security Wing.
The project focuses on collecting, analyzing, and correlating Indicators of Compromise (IOCs) such as IPs, domains, URLs, and hashes using multiple threat intelligence providers — all wrapped in a clean full-stack architecture.
Cyber Lens allows users to:
- Submit an IOC (IP, domain, URL, hash, etc.)
- Query multiple threat intelligence providers in parallel
- Aggregate results into a single score & verdict
- View historical lookups
- Read security news with extracted IOCs
- Visualize analytics and threat trends
This repository is intentionally partially implemented to encourage learning through contributions.
- React + TypeScript
- Bun
- ESLint
- Tailwind CSS
- Chart.js / Recharts (for analytics)
- Bun (runtime & package manager)
- TypeScript
- Express.js
- PostgreSQL
- External Threat Intelligence APIs
Cyber-Lens/
│
├── client/
│ └── cyber_lens/
│ ├── public/
│ ├── src/
│ │ ├── pages/
│ │ │ ├── Home.tsx
│ │ │ ├── History.tsx
│ │ │ └── News.tsx
│ │ ├── components/
│ │ ├── App.tsx
│ │ └── main.tsx
│ │
│ ├── index.html
│ ├── vite.config.ts
│ ├── eslint.config.js
│ ├── tsconfig.json
│ ├── tsconfig.app.json
│ ├── tsconfig.node.json
│ ├── package.json
│ └── bun.lock
│
├── server/
│ ├── src/
│ │ ├── config/
│ │ │ └── db.ts
│ │ ├── models/
│ │ ├── providers/
│ │ ├── services/
│ │ ├── routes/
│ │ └── index.ts
│ │
│ ├── .env.example
│ ├── tsconfig.json
│ ├── package.json
│ └── bun.lock
│
├── contributors/
│
├── LICENSE
├── .gitignore
└── README.md
- Fork this repository
- Clone your fork locally
- Pick an issue from the Issues tab
- Create a new branch
- Implement your solution
- Open a Pull Request
All contributions are tracked through GitHub Issues. Each issue has:
- Difficulty level
- Point value
- Contribution tag
- Frontend routing & layout setup
- Backend Express & MongoDB initialization
- Provider integrations (VirusTotal, OTX, AbuseIPDB)
- IOC scoring & verdict engine
- News scraping & IOC extraction
- Analytics dashboard
- Batch lookup & alerting system
⚠️ Please read issue descriptions carefully before starting.
- Follow the existing folder structure
- Do not introduce unnecessary dependencies
- Write clean, readable code
- Handle errors properly
- Respect API rate limits
- One issue per PR (unless stated otherwise)
- Each merged PR earns points based on issue difficulty
- Competitive issues reward higher points
- Top contributors will be recognized at the end of the event
By the end of the event, Cyber Lens should support:
- End-to-end IOC lookup
- Parallel provider execution
- Accurate scoring & verdicts
- Persistent history
- News ingestion with IOC extraction
- Analytics dashboard
- Clean and stable UI
Maintained by the Cyber Security Wing
For queries, check the Issues section or reach out to the maintainers.