Minecraft-Malware-Prevention-Alliance / concoction

Dynamic Shared Malware Scanner
MIT License
29 stars 0 forks source link

Dynamic scan match model capabilities #6

Open Col-E opened 1 year ago

Col-E commented 1 year ago

Definitions

Basic parameter inspections

When calling any method, upon the VM entering that method we should be able to inspect parameter values and check for some conditions based on the variable types. Parameters can be matched by index.

Types:

Example cases:

Scoped method calls

Given the following:

static void one() {
    two();
}
static void two() {
    three();
}
static void three() {
    // ...
}

Scoped calls would allow for making a match for one -> two -> three, effectively saying "match three, if called by two, which must be called by one".

Adjacent method calls

Given the following:

Runtime.getRuntime()
    .exec(new String(Base64.getDecoder().decode("ZXhhbXBsZQ==")));

Adjacent method calls would allow for making a match for decode --> exec, effectively saying "match exec if decode was used prior to calling in the same method". In this example such a match could be titled "using b64 to hide Runtime.exec calls"

Action items