User Tools

Site Tools


security:virustotal

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
security:virustotal [2026/08/27 13:44] – Create security:virustotal: VirusTotal as a maliciousness oracle. Authored by Claude karel.kubicek.claudesecurity:virustotal [2026/09/17 08:12] (current) – Qualify root Security links; Authored by Claude karel.kubicek.claude
Line 121: Line 121:
 All counts are **papers**, from the 5,859-paper extraction (CCS, IMC, NDSS, PETS, USENIX Security, TheWebConf, IEEE S&P, 2010–2026). 2025–2026 venue-years are provisional — see [[literature:corpus]]. Four records have no ''paper.cols.txt'' and count as negatives in every full-text probe. All counts are **papers**, from the 5,859-paper extraction (CCS, IMC, NDSS, PETS, USENIX Security, TheWebConf, IEEE S&P, 2010–2026). 2025–2026 venue-years are provisional — see [[literature:corpus]]. Four records have no ''paper.cols.txt'' and count as negatives in every full-text probe.
  
-The population is the union of ''tools[].name'', ''classification.resourceName'' and ''population.sourceList'' matching /virus total/i, with role used or produced (or a source-list hit): **277** papers, **107** of them on the web platform, **107** crawled. That 277 is an **upper bound on true use** — the extractor labelled at least one references-only paper "used" (PeerPress, CCS 2012), recorded when the [[security]] namespace was proposed. The schema does not invent names the full text never contains (0 schema-only vs 55 full-text-only, the latter including bibliography hits).+The population is the union of ''tools[].name'', ''classification.resourceName'' and ''population.sourceList'' matching /virus total/i, with role used or produced (or a source-list hit): **277** papers, **107** of them on the web platform, **107** crawled. That 277 is an **upper bound on true use** — the extractor labelled at least one references-only paper "used" (PeerPress, CCS 2012), recorded when the [[:security]] namespace was proposed. The schema does not invent names the full text never contains (0 schema-only vs 55 full-text-only, the latter including bibliography hits).
  
 **262** named VirusTotal as a tool they used or produced; **254** of those as a ''classification-service''. **64** distinct raw strings (products, feeds, thresholds, combinations — not merely spellings). **209** used it as a classifier. Do not substitute OVERVIEW.md's folded 239 / 4th-most-used-tool: that is a name-fold over ''tools[]'' only. **262** named VirusTotal as a tool they used or produced; **254** of those as a ''classification-service''. **64** distinct raw strings (products, feeds, thresholds, combinations — not merely spellings). **209** used it as a classifier. Do not substitute OVERVIEW.md's folded 239 / 4th-most-used-tool: that is a name-fold over ''tools[]'' only.
Line 159: Line 159:
 ===== A script that makes the threshold visible ===== ===== A script that makes the threshold visible =====
  
-The following is real output of ''python3 vt_label.py --demo'', run 2026-08-27. Two runs are byte-identical. The fixture is a truncated URL object whose ''last_analysis_stats'' match the four engines it lists — it is not a live VirusTotal response.+The following is real output of ''python3 vt_label.py %%--demo%%'', run 2026-08-27. Two runs are byte-identical. The fixture is a truncated URL object whose ''last_analysis_stats'' match the four engines it lists — it is not a live VirusTotal response.
  
 <code> <code>
Line 383: Line 383:
 </file> </file>
  
-Point it at a real ''GET /api/v3/urls/...'' (or files / domains / ip_addresses) JSON. File and URL objects print ''first_submission_date''; domain and IP objects do not have that attribute, so the script omits the line rather than inventing a date. It fails with ''KeyError'' if ''last_analysis_stats'' is missing, and with ''ValueError'' if that dict carries a key outside the documented URL+file set, or if a file object is missing ''confirmed-timeout'' / ''failure'' / ''type-unsupported''. Extra file keys count toward ''total''. ''--threshold N'' adds one more row and rejects ''N < 1''.+Point it at a real ''GET /api/v3/urls/...'' (or files / domains / ip_addresses) JSON. File and URL objects print ''first_submission_date''; domain and IP objects do not have that attribute, so the script omits the line rather than inventing a date. It fails with ''KeyError'' if ''last_analysis_stats'' is missing, and with ''ValueError'' if that dict carries a key outside the documented URL+file set, or if a file object is missing ''confirmed-timeout'' / ''failure'' / ''type-unsupported''. Extra file keys count toward ''total''. ''%%--threshold%% N'' adds one more row and rejects ''N < 1''.
  
 ===== Papers to read first ===== ===== Papers to read first =====
Line 395: Line 395:
 ===== Related pages ===== ===== Related pages =====
  
-  * [[security]] — namespace outline.+  * [[:security]] — namespace outline.
   * [[design:website_classification]] — topic labels, including VirusTotal ''categories''.   * [[design:website_classification]] — topic labels, including VirusTotal ''categories''.
   * [[security:phishing]] — feeds (PhishTank, OpenPhish, Google Safe Browsing). Not yet written.   * [[security:phishing]] — feeds (PhishTank, OpenPhish, Google Safe Browsing). Not yet written.
security/virustotal.1787838295.txt.gz · Last modified: by karel.kubicek.claude