Add Quark malware analysis report for Skygofree - #963
Merged
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #963 +/- ##
=======================================
Coverage 78.48% 78.48%
=======================================
Files 84 84
Lines 7692 7692
=======================================
Hits 6037 6037
Misses 1655 1655
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
pulorsok
force-pushed
the
docs/skygofree-report
branch
6 times, most recently
from
August 19, 2026 11:54
db27310 to
c8b7f8c
Compare
Skygofree is a multi-stage Android surveillance implant tracked by MITRE as S0327. Quark's rule classification flagged both samples as high-risk and surfaced four of the eight techniques MITRE documents for the family. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
pulorsok
force-pushed
the
docs/skygofree-report
branch
from
August 19, 2026 12:05
c8b7f8c to
deda28e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a Quark analysis report for the Skygofree malware family to
docs/source/malware_report.rst.Quark flagged 2 of 2 samples as high-risk (detection rate 100%) and surfaced 4 of the 8 MITRE techniques documented for S0327 Skygofree. Every representative method lives in attacker-authored code (
Lcom/sysmanager/,Lcore/syncsystem/) — no library mis-attribution.This run did not add a new rule. The auto-picked candidate (
getActiveNetworkInfo+isConnected) trained to -1.03, so it was dropped. Retrained weights for the existing pool go to quark-rules#87.Skygofree Malware Family Analysis Report
This report analyses the Skygofree malware family using Quark's rule classification. Skygofree is a multi-stage Android surveillance implant documented by Kaspersky in 2018 and attributed to an Italian IT company selling offensive software. It is delivered through fake mobile-operator pages and, once installed, records audio and video on command, steals files from messaging applications, and downloads further modules from its command and control server. This run did not generate a new rule for Skygofree: the family's surveillance primitives are already covered by Quark's existing rule set. Check here for the rule set details.
Quark's rule classification flagged 2 of 2 Skygofree samples as high-risk in this experiment (detection rate 100%). Benign-cohort false-positive rate was not measured here. See tested APKs below.
Identified Well-Known Threats
This section uses MITRE ATT&CK Mobile as its reference taxonomy, anchored to the S0327 Skygofree software entry. Of the 8 techniques documented for the family, Quark's static bytecode analysis surfaces the 4 listed below; see the coverage-gap notes at the end of this section for why the other 4 are not demonstrated here.
All behavior maps below were rendered from sample
e6aba7629608a525b020f4e76e4694d6d478dd9561d934813004b6903d66e44c.apk(packagecom.sysmanager) — chosen as the representative sample whose detected behaviors most fully cover the documented profile of Skygofree. The other family sample was used to compute the detection-rate figure above.Each section below corresponds to one technique from the table above. Within each section we first quote the MITRE definition, then show the Quark behavior map extracted from the representative sample's bytecode, then walk through the call sequence and list the underlying rules.
1. T1429 Audio Capture
T1429 Audio Capture — attack.mitre.org
startRecordingdirectly initializes the recorder and starts recording audio. This call enables the service to capture ambient sound from the device microphone.Behaviors detected by Quark:
2. T1409 Stored Application Data
T1409 Stored Application Data — attack.mitre.org
runcalls one helper to read files into streams, retrieve absolute paths, and package file data into JSON objects. Together, these calls enable the malware to access application data files and prepare them for upload.Behaviors detected by Quark:
3. T1407 Download New Code at Runtime
T1407 Download New Code at Runtime — attack.mitre.org
doInBackgroundcalls one helper to write HTTP input streams to disk and install APKs from those files. Together, these calls enable the malware to download and install additional applications at runtime.Behaviors detected by Quark:
4. T1512 Video Capture
T1512 Video Capture — attack.mitre.org
takePicdirectly configures camera parameters, sets the preview texture, and starts capturing preview frames to the screen. Together, these calls enable the malware to activate the camera and capture visual data.Behaviors detected by Quark:
Coverage-gap notes
The 4 MITRE techniques documented for Skygofree that this report does NOT demonstrate, grouped by the reason Quark could not confirm them on these samples:
The evidence Quark collected does not demonstrate the technique (2) — T1404 Exploitation for Privilege Escalation and T1644 Out of Band Data.
For T1404, sample
af848999…downloads a program from its server and runs it through a shell to gain root, inLcore/syncsystem/methods/Priv$2;run. Quark does reach that code and fires "Executes the specified string Linux command", becauseRuntime.execis an API it can match. The shell command itself, though, is assembled at runtime and handed toexecas a string argument —Runtime.exec(["/system/bin/sh", "-c", <command>])— and Quark's rules match API calls, not the strings passed to them. Quark therefore sees that a command ran but never which one, so running an exploit and listing a directory look identical to it.For T1644, Quark did cluster SMS handling in
Lcom/sysmanager/system/SmsReceiver;onReceive, but that cluster reads and filters incoming messages. T1644 requires receiving command and control instructions over binary SMS, which the collected primitives do not show.Both APIs are present, but no single method passes data between them (1) — T1430 Location Tracking. Quark's rules for this technique pair
Location.getLatitudewithLocation.getLongitude. Both APIs exist in the samples and Quark reaches stage 3, but no method calls both and passes a value from one to the other, so the match stops short of the data-flow stage that a confirmed detection requires.The behavior is real but not separable from a technique already shown (1) — T1437.001 Web Protocols. Skygofree's HTTP command and control traffic is genuine, and Quark confirms it inside
Lcom/sysmanager/network/classes such asGetCommandsandStartReverse. The primitives collected there — open a URL, set a request method, read the response stream — are the generic transport that T1407's download step already rests on, rather than evidence specific to command and control signalling, so no separate cluster was attributed to this technique.List of Tested APKs
The table below lists the APKs we tested.
🤖 Generated with Claude Code