diff options
| author | jvoisin | 2016-07-08 19:58:30 +0200 |
|---|---|---|
| committer | jvoisin | 2016-07-08 19:58:30 +0200 |
| commit | a8a09469f5c7b62431ba5c205ec108d6a341e530 (patch) | |
| tree | 1727960fc6cd352ae9db7cc982ae2411be22e865 /README.md | |
| parent | 2417f4477ae56a856a154c056e95b737ad7c28f4 (diff) | |
Explain why PMF rocks in the README
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 15 |
1 files changed, 15 insertions, 0 deletions
| @@ -51,6 +51,11 @@ Detection is performed by crawling the filesystem and testing files against a | |||
| 51 | [set](https://github.com/nbs-system/php-malware-finder/blob/master/php-malware-finder/php.yar) | 51 | [set](https://github.com/nbs-system/php-malware-finder/blob/master/php-malware-finder/php.yar) |
| 52 | of [YARA](https://plusvic.github.io/yara/) rules. Yes, it's that simple! | 52 | of [YARA](https://plusvic.github.io/yara/) rules. Yes, it's that simple! |
| 53 | 53 | ||
| 54 | Instead of using an *hash-based* approach, | ||
| 55 | PMF tries as much as possible to use semantic patterns, to detect things like | ||
| 56 | "a `$_GET` variable is decoded two times, unziped, | ||
| 57 | and then passed to some dangerous function like `system`". | ||
| 58 | |||
| 54 | 59 | ||
| 55 | ## How to use it? | 60 | ## How to use it? |
| 56 | 61 | ||
| @@ -86,6 +91,16 @@ Check the [whitelist.yar](https://github.com/nbs-system/php-malware-finder/blob/ | |||
| 86 | If you're lazy, you can generate whitelists for entire folders with the | 91 | If you're lazy, you can generate whitelists for entire folders with the |
| 87 | [generate_whitelist.py](https://github.com/nbs-system/php-malware-finder/blob/master/php-malware-finder/generate_whitelist.py) script. | 92 | [generate_whitelist.py](https://github.com/nbs-system/php-malware-finder/blob/master/php-malware-finder/generate_whitelist.py) script. |
| 88 | 93 | ||
| 94 | ## Why should I use it instead of something else? | ||
| 95 | Because: | ||
| 96 | - It doesn't use [a single rule per sample]( | ||
| 97 | https://github.com/Neo23x0/signature-base/blob/e264d66a8ea3be93db8482ab3d639a2ed3e9c949/yara/thor-webshells.yar | ||
| 98 | ), since it only cares about finding malicious patterns, not specific webshells | ||
| 99 | - Its whitelist system doesn't rely on filenames | ||
| 100 | - It doesn't rely on (slow) entropy calculation | ||
| 101 | - It uses a ghetto-style static analysis, instead of relying on file hashes | ||
| 102 | - Thanks to the aforementioned pseudo-static analysis, it works on obfuscated files too | ||
| 103 | |||
| 89 | ## Licensing | 104 | ## Licensing |
| 90 | 105 | ||
| 91 | PHP-malware-finder is [licensed](https://github.com/nbs-system/php-malware-finder/blob/master/php-malware-finder/LICENSE) under the GNU General Public License v3. | 106 | PHP-malware-finder is [licensed](https://github.com/nbs-system/php-malware-finder/blob/master/php-malware-finder/LICENSE) under the GNU General Public License v3. |
