Giter Site home page Giter Site logo

c2siorg / scan8 Goto Github PK

View Code? Open in Web Editor NEW
18.0 6.0 19.0 387 KB

Scan8 is a Kubernetes-based rapid URL/File scan system that allows to submit a list of URLs/files and take out the scan results.

Home Page: https://web-telescope.github.io/Scan8/

License: Apache License 2.0

CSS 1.21% HTML 24.61% Python 37.08% Shell 5.60% Dockerfile 5.71% JavaScript 21.24% SCSS 4.55%
gsoc-2022 python gsoc hacktoberfest-2021 hacktoberfest-accepted hacktoberfest hacktoberfest2022

scan8's Introduction

Scan8 (Open for GSoC and Hacktoberfest)

Scan8 is a distributed scanning system for detecting trojans, viruses, malware, and other malicious threats embedded in files. The system will allow one to submit a list of URLs or files and get the scan results in return.

The project is divided into various modules namely Dashboard, Coordinator Node, Worker Node, and Testing.
The Dashboard provides a responsive web interface for uploading files for new scans and tracking the status of all the submitted scans.
The Coordinator Node listens to updates for new scans, subsequently creating and adding scan jobs to the Redis Queue.
The Worker Node listens to updates for new jobs in Redis Queue and executes them.
The Testing module helps in maintaining the application and facilitating the CI/CD process for the same.

Application Architecture

Scan8 application architecture

Dependencies

  • Language: Python 3.8.10
  • Database: MongoDB
  • Tools: redis-server clamav clamav-daemon

Specific dependencies for the Dashboard, Coordinator and Worker can be found in the respective directories in requirements.txt file.

Local Setup Guide

  1. Clone the current repository to your local machine using git clone.
  2. Install the dependencies as specified in Dependencies section.
  3. Make sure the mongod and clamav-daemon services are running in the background.
  4. Check the .env file to have the appropriate MongoDB and Redis host and port (variables are set to defaults).
  5. Access the terminal and move to the Dashboard directory.
  6. Run the flask application using export FLASK_APP=app.py followed by flask run.
  7. Access another terminal and move to the Coordinator directory.
  8. Run the coordinator node application using python3 app.py.
  9. Access another terminal and move to the Worker directory.
  10. Run the worker node application using python3 app.py.
  11. Create Uploads and Results directories in the project directory.

Usage

  1. After following the Local setup guide, use any web browser to access the IP address mentioned in the terminal after running flask run (by default it is http://127.0.0.1:5000/).
  2. Submit new scans using the New Scan button and track their progress on the dashboard.
  3. The results for the submitted scans can be found in the Results directory as <scan id>_<file_name>.json.

Testing

The application comes with a test suite to help users ensure correct installation and help developers verify any updates.

  1. Ensure the Results and Uploads directories are empty.
  2. Ensure the MongoDB collections are empty.
  3. Ensure the scan8 application is up and running.
  4. Access a terminal and move to the Testing directory.
  5. Run the test suite using python3 app.py -v.
  6. Run a single scan using the Scan8 dashboard and wait till completion.
  7. Run the test suite again using python3 app.py -v.

Demo videos

scan8's People

Contributors

aju100 avatar atharva-karambe avatar charithccmc avatar maanas-talwar avatar prerakmathur20 avatar sarthaksingh18 avatar shelly011s avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

scan8's Issues

Devops pipeline in the project, test suite for python apps

In this, I will be providing a blog in which I will discuss technologies required that will be used in the DevOps pipeline and which service is good among Travis CI, Circle CI and others.
I will also write test suites for the python files so that only high-quality code can be a part of the pipeline.

Multi stage docker builds, Integration of docker linter

In this micro-task, I will be looking into the multi-stage docker build which significantly reduces the image size and looking into docker linter for creating best practice docker images.
I will also include linter into (one of the tests in CI) CI/CD in further tasks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.