GithubHelp home page GithubHelp logo

dmknght / rkcheck Goto Github PK

View Code? Open in Web Editor NEW
13.0 2.0 1.0 689 KB

A malware scanner with Yara and ClamAV binding

Makefile 0.33% YARA 21.74% Nim 77.24% C 0.69%
antivirus clamav-antivirus yara-scanner

rkcheck's Introduction

What is this

This tool is a combination of Yara and ClamAV to do malware scanning on Linux system. It was made as the idea that rkhunter and chkrootkit need better replacement since both tools check absolute paths exist only.

More info about this tool

Wiki is at https://github.com/dmknght/rkcheck/wiki

Roadmaps

  • Update the tool with latest ClamAV and Yara engine. Support static build
  • Research eBPF so this project can have proper way to detect kernel-land and user-land rootkits

License, copyright

  • Reused Yara engine under BSD-3-Clause.
  • Reused ClamAV engine under GPL-2.0
  • Reused some Yara rules from Tenable under BSD-3-Clause
  • Some rules are having no custom licenses from Lacework Labs, Trend Micro
  • Special thank to Nim lang community, ClamAV community, malware researcher Itay Cohen and everbody helped me this project

rkcheck's People

Contributors

dmknght avatar

Stargazers

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

Watchers

 avatar  avatar

Forkers

gnusec

rkcheck's Issues

New workflow design for better perfomance and accuracy

The ClamAV scan is slower than Yara when scan ELF files. Also, the Yara's modules are more effective than ClamAV getting metadata of PE, ELF file. Create a proper file / process scanner that gives the Yara's higher scan priority

  • If file is PE, ELF, ... -> Scan with Yara
  • If the file is clean, call ClamAV scan (at this point, the Yara callback shouldn't be called)
  • Handle other file formats with both engines. Set Yara as pre-scan will increase performance

Improve memory Linux's scan

Current tool failed to detect some basic tests
Source code

#include <stdio.h>

int main() {
  char buf[64];
  printf("HelloWorld\n");
  gets(buf);
  return 0;
}

-> Compile and execute
Yara rule

private rule elf_magic {
  strings:
    $magic = {7f 45 4c 46 [12] (00 | 01 | 02 | 03 | 04 )}
  condition:
    $magic and not defined uint8(@magic[1] - 1)
}


rule Hello {
  strings:
    $ = "HelloWorld"
  condition:
    elf_magic and any of them
}

ClamAV logical signature

Hello;Target:6;0;48656c6c6f576f726c64

When scan with original Yara, the Yara rule detected

yara rule.yara 3507070                
Hello 3507070

When try with rkcheck, it failed to detect either using Yara or ClamAV
-> Must rewrite the memory scan to improve scan progress

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.