FreqServer is based on freq.py and freq_server.py (originally created by Mark Baggett).
Thanks to Justin Henderson for all his work with the FreqServer docker image!
Mark Baggett’s (@MarkBaggett - GSE #15, SANS SEC573 Author) Awesome-Sauce tool for detecting randomness using NLP techniques rather than pure entropy calculations. Uses character pair frequency analysis to determine the likelihood of tested strings of characters occurring based upon the chosen frequency tables (some prebuilt English text freq tables provided). Extremely useful for detecting high entropy where it shouldn’t be. Especially powerful for discovering DNS based DGAs commonly used for malware C2 and exfiltration. Think bigger than DGAs though. Random file names, script names, process names, service names, workstation names, TLS certificate subjects and issuer subjects, etc.
Freq_server.py is a multithreaded web based API that will allow you to quickly query your frequency tables. The server isn’t intended to replace freq.py. Instead, after building a frequency table of normal strings in your environment with freq.py, you start a server up to allow services to measure various strings against that table. You can run multiple servers to provide access to different frequency tables.
For information how to modify configuration for FreqServer, consult the following:
FreqServer is disabled by default when running
You can enable it by doing the following:
sudo sed -i 's/FREQ_SERVER_ENABLED="no"/FREQ_SERVER_ENABLED="yes"/' /etc/nsm/securityonion.conf sudo so-elastic-start sudo so-logstash-restart
FreqServer’s logs can be found in
You can find FreqServer data on the Frequency Analysis dashboard.
DNS Frequency Analysis¶
HTTP Frequency Analysis¶