FAME turns malware triage into a pipeline instead of a queue
FAME Automates Malware Evaluation
At a glance
- What is it?
- FAME, from Cert Societe Generale, is a Python framework that takes a submitted sample and pushes it through modules to extract configuration and indicators, backed by Flask, Celery and MongoDB. It suits incident response teams that want repeatable triage, and it is the wrong choice for anyone wanting a single file parser.
- Who is it for?
- Adopt FAME if your response team handles a steady stream of samples and wants triage results written to MongoDB behind a web interface, and do not adopt it expecting a desktop tool, a single binary detector or a supported product.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 17 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Editorial analysis
FAME is a framework, and the framework is the point
FAME expands to FAME Automates Malware Evaluation, and the README is explicit that it should be seen as a framework for malware analysis development. That framing matters. FAME is not a scanner with a database of signatures, and it is not a sandbox. It is an application that takes a file, hands it to a series of analysis modules, and collects whatever those modules can extract, with the aim of determining the malware family and pulling out configuration and IOCs.
The intended workflow is worth taking at face value. An analyst drops a sample, waits a few minutes, and FAME is expected to determine the malware family and extract its configuration and IOCs. For a team drowning in samples during an incident, that shift from per sample manual work to per sample automated work is the entire value proposition.
The topics attached to the repository list framework, incident-response, infosec, malware, malware-analysis and malware-research, and the description says FAME Automates Malware Evaluation. The intended users are therefore analysts and incident responders with a Python environment, rather than a general security operations centre looking for a dashboard.
One caveat on the promise: the best case scenario is described as best case, which means the framework's output is bounded by the modules you have installed and configured. With no modules present, an analyst gets a web application and a sample store, not intelligence.
Flask, Celery and MongoDB decide what FAME can do
The technical specification section names three technologies, and they map cleanly onto the three things FAME does. Flask provides the web framework, so the analyst interface, the sample submission surface and the results pages are ordinary Python web endpoints. Celery handles background tasks, which is the mechanism that makes the drop a sample and wait a few minutes workflow possible at all, since analysis is queued and executed outside the request. MongoDB, accessed through pymongo, is the database, so samples, task results and extracted configuration end up as documents you can query later.
The top level of the repository makes that architecture visible. There is a web directory, an agent directory, a fame package, a utils directory, a docker directory, a docs directory, and the entry points celeryconfig.py, webserver.py and worker.py. The worker and the webserver as separate files is the Celery model written out: one process serves the interface, another consumes the queue.
The presence of an agent directory is the most interesting structural detail. An agent implies work can be executed somewhere other than the central server, which is how you would keep a Linux analysis box on a restricted network segment connected to a central database. The repository does not document the agent protocol in the README, so how it is deployed and what it can reach is something you will have to read in the documentation or the docker directory.
Getting FAME running: the README stops at the documentation
There is no install command in the README. The installation section is a single sentence pointing at the installation page in the FAME documentation, and the community page is where contribution and usage questions go. That is the honest starting point: the setup contract lives at fame.readthedocs.io, and the README gives you the dependency list instead.
The dependency manifest is where the real shape of the install shows. The file pins a floor rather than an exact version for every entry, which is common for an application rather than a library:
Flask>=3.1.3
Werkzeug>=3.1.8
Flask-Classful>=0.16.0
flask-paginate>=2024.4.12
celery>=5.6.3
pymongo>=4.17.0
python-magic>=0.4.27
requests>=2.34.2Several of those are worth reading as signals rather than noise. python-magic means the pipeline can identify file types from content, which is how a renamed or packed sample gets triaged. ldap3 means there is an authentication path that can talk to a directory server, and Flask-Login is present alongside it for sessions. gunicorn indicates the web tier is expected to run under a production server, and celery plus pymongo confirm the queue and database pairing. zxcvbn is there for password strength checking, and GitPython suggests the framework can work with git repositories as a source of content. virtualenv and setuptools in the list confirm the project expects a Python environment you manage yourself.
The docker directory is the other route. A container layout alongside worker.py, webserver.py and celeryconfig.py is the shape of a deployable stack, and a first real use should mean bringing up that stack, pointing it at a MongoDB instance, then submitting a sample and waiting for the analysis modules to report back with a family name, configuration and IOCs.
What breaks when you run this in anger
Three practical failure modes stand out. The first is the dependency floor. Because requirements.txt uses >= constraints across the board, including major upgrades of Flask, celery and pymongo, an install performed months after this manifest was written can resolve to versions whose behaviour differs from what the code expects. Nothing in the repository pins an environment, so a reproducible deployment is something you construct, not something you inherit.
The second is the queue. Celery needs a broker, and the requirements list does not include a broker client library, which means the broker choice is left open and unstated in the manifest. If your organisation runs RabbitMQ or Redis, that is a decision you make, and the celeryconfig.py file is the place where it has to be wired up.
The third is the analysis side, and it is the one that matters most. FAME works by running modules, and running malware analysis modules means executing code against hostile files on a machine you control. The README does not document sandboxing, isolation boundaries, timeouts or resource limits, and it does not say what happens to a module that hangs or crashes. The framework gives you a very good reason to have a dedicated analysis host, and it does not tell you how to build that host for you.
Why the web interface and the database matter more than the modules
There is a design choice here that is easy to underrate. Flask plus flask-paginate plus a Bootstrap theme and a MongoDB store means FAME is built for browsing a corpus, not for running a single file. The interface shows detailed results and observables as screens, and pagination is a first class dependency rather than something bolted on. For a team that keeps a growing sample collection, that means the extracted configuration and indicators accumulate into a searchable history, and you can ask what else in your corpus shares a configuration field.
That is the real alternative to FAME, and it is not another framework. The alternative is a linear analysis chain that you script yourself: one tool to unpack, one to extract strings, one to pivot on hashes, with results written to flat files and the knowledge living in the analyst's head. The difference in approach is state. FAME keeps samples, tasks and outputs in a database behind a web application, so triage becomes a record you can revisit and share across a team, where a script chain produces a fresh answer per invocation and forgets everything afterwards.
The cost of that choice is the web tier. You now operate a web server, an authentication story and a database in addition to the analysis, and LDAP in the dependency list implies the authentication is meant to be centralised rather than local. For a small team, that is more moving parts than the alternative needs.
Licence, maintenance and what the release history tells you
The licence is GPL-3.0, which is the one constraint here that has consequences beyond paperwork. If you run FAME internally as a service for your organisation, the copyleft terms of the licence attach to derivative works of the software itself. What that means for your deployment depends on how you distribute and whether you modify the code, and this is a question for your legal team rather than for this article.
On maintenance, the repository is not archived and the last push was on 2026-10-06, so the code is being worked on. There are no GitHub releases, however, so there is no versioned artefact to pin and no changelog to diff. Upgrading means moving the master branch, which for a dependency set with open ended version floors is a real compatibility question rather than a formality. The documentation directory and the Sphinx dependencies in requirements.txt suggest the project treats its documentation as part of the deliverable, and the credits section notes that the web theme comes from Creative Tim.
One more detail worth carrying into a purchase decision: the project is community oriented, with a community page for developers and users, and a homepage that holds screenshots of the detailed results and observables views. The framework positions itself as something you extend, so the real cost of ownership is the module work you are expected to take on.
Editorial conclusion
Adopt FAME if your response team handles a steady stream of samples and wants triage results written to MongoDB behind a web interface, and do not adopt it expecting a desktop tool, a single binary detector or a supported product. There are no GitHub releases to pin, so before you deploy it verify that the docker directory matches your environment, confirm your MongoDB and Celery broker assumptions hold for your network, and read the installation page in the FAME documentation because the README does not give setup steps. The last push was on 2026-10-06 and the repository is not archived, so the master branch is the thing you track.
Frequently asked questions
What is FAME and what does it automate?
FAME stands for FAME Automates Malware Evaluation. It is a Python framework for analysis of malicious files that aims to determine the malware family and extract configuration and IOCs from a submitted sample.
What technology stack does FAME use?
The project lists flask for the web framework, celery for background tasks and MongoDB with pymongo for the database. The requirements file also includes gunicorn, python-magic, Flask-Login and ldap3.
How do I install FAME?
The README does not give installation commands and instead points to the installation page in the FAME documentation. The repository supplies a requirements.txt with version floors and a docker directory for container based deployment.
Does FAME have official releases or version tags to install?
The repository has no GitHub releases. The last push was on 2026-10-06 and the repository is not archived, so the master branch is the reference point for what is current.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/certsocietegenerale-fame)