Superviz26-SQL: Cross-domain SQL Attack Detection Dataset
收藏资源简介:
Dataset description Superviz26-SQL is a cross-domain SQL attack detection benchmark designed to evaluate how well SQL intrusion detection systems generalise across different application domains. The benchmark extends the generation methodology of Superviz25-SQL to three distinct lexical domains and provides both leave-one-domain-out (cross-domain) and in-domain evaluation splits. The dataset was generated using gquetel/sqlia-dataset-generator. The repository also contains example of evaluation pipelines using these datasets.What follows below is the datasheet describing this data. Superviz26-SQL Datasheet By: Grégor Quétel, mail: gregor.quetel@telecom-paris.fr Pierre-François Gimenez, mail: pierre-francois.gimenez@inria.fr Thomas Robert, mail: thomas.robert@telecom-paris.fr Laurent Pautet, mail: laurent.pautet@telecom-paris.fr Organisations: PEPR Superviz, Télécom Paris, INRIA. Motivation For what purpose was the dataset created? Superviz26-SQL was created to provide the first cross-domain SQL attack detection benchmark. No publicly available dataset allowed the study of domain generalisation for SQL-based Intrusion Detection Systems. The benchmark enables controlled evaluation of feature extractors trained on one or more source domains and tested on an unseen target domain, which is the key setting for assessing domain generalisation. Who created this dataset and on behalf of which entity? The dataset was created by members of the PEPR SuperviZ project. Who funded the creation of the dataset? This work has been partially supported by the French National Research Agency under the France 2030 label (Superviz ANR-22-PECY-0008). Any other comments? None. Composition What do the instances that comprise the dataset represent? The instances represent SQL queries executed against a MySQL database. There are two types of instances: synthetic benign SQL queries and malicious queries containing SQL attack payloads generated using sqlmap (both injection attacks and insider attacks). The benchmark covers four application domains: Domain A — OurAirports: an airport database. Domain B — Sakila: a video rental shop database proposed by Oracle. Domain C — AdventureWorks: a bicycle manufacturing company database proposed by Microsoft. Domain D — Oracle Human Resources: a small HR department database proposed by Oracle. How many instances are there in total? The benchmark is distributed as eight CSV files: four in-domain files and four cross-domain (leave-one-domain-out) files. Each file contains 1,100,000 instances: Training set: 100,000 benign queries only (unsupervised detection setting). Test set: 1,000,000 instances, approximately 90% benign and 10% malicious. Exact test set counts per file: File Setting Test benign Test attack a-a.csv In-domain 899,842 100,158 b-b.csv In-domain 899,399 100,601 c-c.csv In-domain 899,310 100,690 d-d.csv In-domain 899,308 100,692 bcd-a.csv Cross-domain 899,842 100,158 acd-b.csv Cross-domain 899,399 100,601 abd-c.csv Cross-domain 899,310 100,690 abc-d.csv Cross-domain 899,308 100,692 The file naming convention is {train_domains}-{test_domain}.csv. For cross-domain files the training set is drawn equally from the three source domains (~33,333 samples each). For in-domain files the training set is drawn entirely from the single domain. Does the dataset contain all possible instances or is it a sample? This dataset is a synthetic sample. The space of possible SQL queries is virtually unlimited. Each domain is built from: A specific real-world database schema (OurAirports, Sakila, AdventureWorks, Oracle HR). Manually written SQL query templates derived from online documentation and SQL training exercises. Wordlists extracted from database checkpoints. Attack campaigns generated by sqlmap targeting a subset of query templates. The benign workload targets a realistic statement type distribution: 70% SELECT, 10% UPDATE, 10% INSERT, 9% DELETE, 1% administrative statements. What data does each instance consist of? Each instance is a row with the following columns, identical in structure to Superviz25-SQL: full_query: The full SQL statement. label: 0 for normal samples, 1 for attacks. user_inputs: The user-provided input without the surrounding query template. attack_stage: Empty for normal samples; either "recon" or "exploit" for attacks. tamper_method: Empty for normal samples; for attacks, the sqlmap tamper script applied to this sample. attack_status: Empty for normal samples; for attacks, whether the sqlmap campaign succeeded ("success") or not ("failure"). statement_type: One of "select", "delete", "execute", "modify", "admin" or "internal". query_template_id: The query template identifier associated with this sample. attack_id: Empty for normal samples; otherwise the attack campaign identifier. attack_technique: Empty for normal samples; otherwise the sqlmap technique used: "boolean", "error", "inline", "stacked", "time", "union" or "insider". split: Proposed split: either "train" or "test". Is there a label or target associated with each instance? Yes. Each instance has a binary label: 0 = benign, 1 = malicious. Malicious instances additionally carry fine-grained labels identifying the specific attack technique (boolean-based, error-based, time-based, union-based, stacked queries, inline queries, or insider queries). Is any information missing from individual instances? No. Are relationships between individual instances made explicit? Instances can be related by the SQL query template they originate from (query_template_id) or the attack campaign they belong to (attack_id). Are there recommended data splits? Yes. A training and testing split is provided via the split column. The test set of 1,000,000 samples targets a 10% attack ratio, yielding approximately 900,000 benign and 100,000 malicious queries. The training set of 100,000 samples contains benign queries only, reflecting an unsupervised detection scenario. For cross-domain files, the training samples are drawn equally from the three source domains. Are there any errors, sources of noise, or redundancies? As with Superviz25-SQL, sqlmap occasionally sends queries without actual malicious payloads. Contradictory instances (i.e. instances with the same full_query value but different label values) were removed to minimise labelling errors. Redundancies in SQL queries are expected and intentional, as they reflect realistic workload patterns. Is the dataset self-contained? Yes. Does the dataset contain confidential data? No. Does the dataset contain offensive content? No. Any other comments? None. Collection Process How was the data associated with each instance acquired? Every instance was synthetically generated. What mechanisms or procedures were used to collect the data? Instances were generated using the publicly available dataset generator (https://github.com/gquetel/sqlia-dataset-generator), extended from Superviz25-SQL to support multiple domains. Normal samples were syntactically validated by submitting them to a MySQL server. No validation was performed on the instances generated by sqlmap. Who was involved in the data collection process? The authors designed and ran the generator. They were compensated through their employment at their respective institutions. Over what timeframe was the data collected? The dataset generation roughly took 10 hours. Were any ethical review processes conducted? No. Any other comments? None. Preprocessing / Cleaning / Labeling Was any preprocessing/cleaning/labeling of the data done? Yes. Contradictory instances (same full_query with differing label values, originating from sqlmap probing queries) were removed. The generator code implementing this step is publicly available. Was the raw data saved? No. Is the preprocessing software available? Yes, it is available in the generator repository (https://github.com/gquetel/sqlia-dataset-generator). Any other comments? None. Uses Has the dataset been used for any tasks already? Yes. The benchmark was used to evaluate fourteen SQL attack detection feature extractors under cross-domain and in-domain conditions in the associated paper. Is there a repository linking to papers or systems that use the dataset? No. What other tasks could the dataset be used for? Beyond unsupervised detection, the labelled test set allows supervised SQL Injection detection with appropriate preprocessing. The cross-domain structure also makes the benchmark suitable for studying domain adaptation, few-shot learning, and transfer learning for IDS. The per-domain diversity metrics (vocabulary size, unique parse trees, semantic dispersion) reported in the associated paper can also support studies of dataset characterisation methodologies. Are there tasks for which the dataset should not be used? No. Any other comments? None. Distribution Will the dataset be distributed to third parties? Yes. The dataset is available under the MIT License. How will the dataset be distributed? The dataset is distributed in CSV format on the Zenodo platform (https://zenodo.org/records/XXXXXXX). The generation code is available at https://github.com/gquetel/sqlia-dataset-generator. When will the dataset be distributed? Under what license is the dataset distributed? MIT License. Have any third parties imposed IP-based restrictions on the data? No. Do any export controls or regulatory restrictions apply? No. Any other comments? None. Maintenance Who is supporting/hosting/maintaining the dataset? Grégor Quétel is maintaining the dataset. The dataset is hosted on the Zenodo platform. How can the owner/curator/manager of the dataset be contacted? E-mail addresses are at the top of this document. Is there an erratum? Currently, no. As errors are encountered, future versions of the dataset may be released (but will be versioned) at the same Zenodo location. Will the dataset be updated? Same as previous answer. Will older versions continue to be supported? Yes; all versions are retained on Zenodo. Is there a mechanism for others to extend/augment/contribute to the dataset? No. Any other comments? None.



