Before
- Trust the extension
- Flag unusual strings as malicious
- Install the package to inspect it
Module 4 of 17
Extract defensible facts from files and package metadata without executing the artifact.
Start here
Before
After
Static triage asks what can be learned from bytes and metadata without running the artifact. Begin with provenance, file size, cryptographic hashes, declared type, and the signature in the bytes. A filename or extension is a user-controlled label; compare it with a trusted parser and record discrepancies.
Triage is prioritization, not a verdict. A network-related import can appear in a legitimate updater. High entropy can come from compression, encryption, media, or generated data. A valid signature can show that bytes were signed by an identity under a policy, but it cannot guarantee the signer intended every behavior or that the signing environment was uncompromised.
Use at least two independent observations before raising a strong hypothesis, and keep an alternative explanation. The output should guide the next authorised defensive action: verify provenance, compare with a known release, request a sandboxed behavior trace, isolate an affected build, or close the lead.
The Portable Executable format is used for Windows executables and related object files. Static triage commonly examines the DOS and PE signatures, COFF header, optional header, section table, data directories, imports, exports, resources, debug information, and certificate table. These structures help an analyst describe how the file is organised and which operating-system services it may use.
Record parse errors and inconsistencies rather than forcing a result. Compare section names, permissions, raw and virtual sizes, entry-point location, declared subsystem, compilation metadata, imported libraries, and available symbols with a benign baseline built using the same toolchain. Timestamps and debug paths can be useful leads but may be missing, reproducible, altered, or inherited from the build environment.
This course uses metadata extracts and transparent source-built utilities only. It does not distribute unknown PE files or teach changes intended to hide structure, evade inspection, or bypass security controls.
The Executable and Linkable Format is common on Linux and other Unix-like systems. Start with the ELF identification bytes, class, byte order, machine architecture, object type, entry point, program-header table, and section-header table. Program headers describe the segments a loader uses; section headers organise linking and analysis information. They answer related but different questions.
Review requested interpreter, needed shared libraries, dynamic symbols, notes, build ID, relocation information, and segment permissions. Compare the artifact with a source-controlled, reproducible build when possible. A stripped binary has fewer symbols but is not inherently malicious; production binaries are often stripped for size or intellectual-property reasons.
As with PE, structure creates hypotheses. It does not establish operator intent. Document the parser, version, architecture assumptions, and any data the tool could not decode.
Scripts are readable, but readability is not the same as safety. Review interpreter selection, arguments, environment-variable use, filesystem scope, child-process creation, network destinations, privilege expectations, error handling, and cleanup. Follow data flow from inputs to sensitive operations. Do not run an unknown script merely because the source is visible.
Generated or minified scripts may require formatting to read. Preserve the original and record the formatter as a transformation. Treat encoded text as data until an authorised, non-executing decoder converts it into a new traceable derivative. The course uses short, harmless source fixtures and never includes persistence, credential access, propagation, command execution from remote input, destructive actions, or evasion behavior.
A package is more than its main source file. Review registry identity, namespace, publisher, version history, integrity value, signatures or attestations, license, dependency graph, archive contents, lifecycle hooks, requested permissions, generated files, and differences from the source repository or previous release. Never install an untrusted package to inspect it.
Use the ecosystem's download-without-install capability only inside an authorised, isolated workflow, or rely on instructor-provided inert manifests in this course. Compare the lockfile and build provenance with the deployed artifact. Look for unexpected ownership changes, newly introduced scripts, unusual binary blobs, dependency confusion opportunities, and large unexplained diffs, but report them as review leads rather than proof of compromise.
A practical report begins with artifact identity and provenance, then lists observations grouped by confidence. For each notable feature, record the exact evidence, a benign explanation, a security-relevant explanation, and the safest next authorised action. Include parser failures and blind spots.
Prioritize by likely business effect and exposure, not by how unusual a string looks. A package lifecycle hook in a production deployment path may deserve faster containment than several suspicious-looking strings in an unused test fixture. Close with a clear decision: no further action, verify with owner, compare against a trusted build, collect specific telemetry, or escalate through incident response.
The published duration includes active practice, not video playback alone. Complete each block with the course-owned evidence and retain the stated deliverable so another reviewer can reproduce your reasoning.
| Study block | Time | Required evidence |
|---|---|---|
| Guided lesson and primary-source review | 2h 6m | Annotated notes that separate observations, hypotheses, limits, and version-sensitive facts. |
| Worked evidence walkthroughs | 1h 45m | Reproduce the lesson's tables or decision flow and challenge at least two assumptions. |
| Independent practice rounds | 1h 45m | Apply the method to two alternate records in the sanitized evidence pack and compare the conclusions. |
| Required lab | 3 hours | A static-triage report covering identity, provenance, PE and ELF structure, script behavior review, package differences, alternative explanations, limitations, priority, and safe next actions. |
| Knowledge check and review | 1h 24m | Answer the evidence check, review the rubric, and record one production follow-up. |
Question: A harmless source-built utility has a high-entropy resource section and imports a networking library. Does static triage prove it is malicious?
No. Entropy and imports are leads, not proof of behavior or intent. Record the exact observations, compare them with the declared source and a trusted build, consider benign explanations such as compressed resources or a standard runtime, and choose the next authorised evidence needed.
Use these primary sources for the current standard or tool behavior. The course records framework versions so mappings can be reviewed when upstream guidance changes.
Real world
Production notes
Common mistakes
Security risks
Tradeoffs
Pros
Cons
Pros
Cons
Think like an engineer
Key terms
The Portable Executable family of formats used for Windows executables, libraries, and object files.
The Executable and Linkable Format used for executables, shared objects, relocatable objects, and core files on many Unix-like systems.
A reference to a function or symbol expected from another library or module.
A statistical measure of byte distribution that can suggest compression or encryption but does not establish intent.
A command an ecosystem can run at defined package installation, build, or publication stages.
Exercises
Triage inert PE, ELF, script, and package metadata and identify meaningful differences without executing or installing anything.
Expected evidence
A static-triage report covering identity, provenance, PE and ELF structure, script behavior review, package differences, alternative explanations, limitations, priority, and safe next actions.
Assessment criteria
Course-owned resources
Teardown
Recap
Related resources