DATARAZER
DATARAZER is a lightning-fast NIST 800-88r1 compliant data erasure tool designed for the Electronics Recycling Industry, Medical Industry, and Education Institutions
Features:
- Pseudorandom and Single Character Overwrite
- Erase Hidden Areas (HPAs/DCO)
- Erasure Certificate (PDF/TXT/SQL)
- HDD Hot Swapping
- HDD Grading (via HDSentinel)
- Synchronized Write Verification
- HDD Fingerprinting
- SATA, SAS, NVME & IDE Support
- MySQL Database (TLS Supported)
- Resumed Erasure (Keep progress if a drive becomes disconnected from the host)
- Live-Boot Environment (USB/PXE/CD)
- SSH Compatible
- Multi-Language (English/Russian by default)
- Plugin Support (CXX SDK - Example Language Plugin)
Overwrite Methods:
- NIST CLEAR One Pass Random
- NIST CLEAR One Pass Zeros
- NIST CLEAR Three Pass Random
- DOD 5220.22-M Three Pass (0x00|0x01|RAND)
- Three Pass Hybrid (0xFF|RAND|0x00)
Short Video (In-depth guide coming soon):
Images:
The main window, everything you need to know at a glance with easy to remember controls
Pull only the data you need for your reports with your favorite DB Application, no more irrelevant information (See ‘Sample Cert Data’ section below)
Beautiful, easy to navigate menus make configuration a breeze
Impossible to miss warning messages, reducing the chance of operator error
Pricing:
To request a demo or an invoice for commericial licensing, please contact: sales@thetadyn.com
Demo License:
- Timed 30-day trial
- Free, upon request
Enterprise License:
- Subscription based
- $99.99/Month
- $549.99/6 Months
- $999.99/Year
- Unlimited processes
- No drive limits
- Free updates
- Free email support
On-Site Support/Install:
- Contact Us for Quote
NIST 800-88r1 CLEAR:
- Forced
10%
Minimum Verification Quota - Forced Host Protected Area Reset
- HIPPA[1][2] & FERPA[1, pg. 2-3] Compliant
- See: NIST 800-88r1 Publication - Sections A-5,6,8 pg. 31
Either single character or psuedorandom data, depending on selected method, is written over every sector of the disk at the configured size/increment. Typically this is block_size=4MB
and total_size=(total_sectors / block_size)
. Verification is forced and is done synchronously along with the writer. If the user’s verification setting is set to below 10%
, the engine will adjust it to the minimum. If HPAs are detected, they will be cleared during overwrite initialization; after which, the total_sector
count will be adjusted. If the HPA reset fails, the drive will be rejected and the erasure aborted
DOD 5220.22-M Three Pass & Three Pass Hybrid:
A pattern of both single characater and psuedorandom blocks is written to all user addressable areas of the disk. This processes is then repeated three times for each method. User addressable areas do not include HPAs or the DCO. Both methods are essentialy the same but provide different write patterns. DOD 5220.22-M uses 0x00|0x01|RAND
where as Three Pass Hybrid uses 0xFF|RAND|0x00
Overwrite Engine Breakdown:
- Receive start instruction
- Run Resumed Erasure init logic, if enabled
- Main initialization
- Clear HPAs, if enabled
- Reset DCO, if enabled
- Start overwrite pass loop
- Run post-start Resumed Erase logic, if enabled and this is the first pass
- Initialize I/O stream
- Start disk iteration loop
- Wait if paused
- Check error allowance
- Write buffer to I/O stream
- Run verification logic, if enabled
- Check if we’ve reached the end of the disk
- Run Resumed Erasure checkpoint logic
- Repeat until the end of the disk, or until the error allowance is reached
- Force flush and close the I/O stream
- Repeat until pass threshold is met, or until the error allowance is reached
- Gather erasure statistics
- Apply fingerprint, if enabled and erasure was successful
- Store erasure results
- Loop back to the very beginning, and await instruction
Fingerprint Breakdown:
The first 512
bytes of the disk is used to store data about the drive for identification and “resumed erasure mode”. Data is displayed inside the application as well as it is bootable for quick identification without access to the datarazer application. When resumed erasure mode is active, data is written here at the configured step size and can be seen live updating in the main window of the application.
Fingerprint data:
Key | Description |
---|---|
OFST: | Current write offset |
PASS: | Current write pass |
DURATION: | Wipe duration |
END: | End time |
START: | Start time |
RESULT: | Wipe result |
ERRCT: | Current error count |
METHOD: | Overwrite method used |
H: | Fingerprint header |
BLKSZ: | Block size used by the overwrite engine |
TSZ: | Total blocks based on BLKSZ: in the disk |
BVER: | Total number of blocks verified |
RSM: | The last block marked as a resume checkpoint |
Flag data:
Bit Index | DB Name | Description |
---|---|---|
0 | fp_in_progress |
Set when erasure in progress; Used for resumed erasure mode |
1 | fp_resume_used |
Set if the erasure was resumed |
2 | fp_hpa_at_start |
Set if hidden HPA (Host Protected Area) sectors were detected at the start of erasure |
3 | fp_hpa_cleared |
Set if HPAs were detected and successfully reset |
4 | fp_dco_reset |
Set if the DCO (Disk Configuration Overlay) was successfully reset |
5 | null |
Unused |
6 | null |
Unused |
7 | null |
Unused |
Example of a wipe in progress/incomplete erasure:
00000000: 33D2 8EDA BE28 7CFC AD8B D8AD 8BC8 B800 3....(|.........
00000010: 138E C28B EECD 1033 C0CD 16CD 1900 0000 .......3........
00000020: 0000 0000 0000 0000 0200 CB00 BBAA 01AA ................
00000030: BBBB AA61 3A62 AABB BBAA 424C 4B53 5A3A ...a:b....BLKSZ:
00000040: 3030 3430 3030 3030 AABB BBAA 4256 4552 00400000....BVER
00000050: 3A30 3030 3034 4533 44AA BBBB AA44 5552 :00004E3D....DUR
00000060: 4154 494F 4E3A 3135 3636 AABB BBAA 4552 ATION:1566....ER
00000070: 5243 543A 30AA BBBB AA48 3A44 4154 4152 RCT:0....H:DATAR
00000080: 415A 4552 2049 4E43 4F4D 504C 4554 4520 AZER INCOMPLETE
00000090: 5749 5045 AABB BBAA 4D45 5448 4F44 3A4E WIPE....METHOD:N
000000a0: 4953 5420 434C 4541 5220 4F6E 6520 5061 IST CLEAR One Pa
000000b0: 7373 2052 616E 646F 6DAA BBBB AA4F 4653 ss Random....OFS
000000c0: 543A 3030 3031 3837 3243 AABB BBAA 5041 T:0001872C....PA
000000d0: 5353 3A30 3030 31AA BBBB AA52 534D 3A30 SS:0001....RSM:0
000000e0: 3030 3032 3731 46AA BBBB AA53 5441 5254 000271F....START
000000f0: 3A31 3637 3433 3038 3238 30AA BBBB AA54 :1674308280....T
00000100: 535A 3A30 3030 3144 3143 33AA BB00 0000 SZ:0001D1C3.....
00000110: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000120: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000130: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000140: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000150: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000160: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000170: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000180: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000190: 0000 0000 0000 0000 0000 0000 0000 0000 ................
000001a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
000001b0: 0000 0000 0000 0000 43A8 F662 0000 0000 ........C..b....
000001c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
000001d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
000001e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
000001f0: 0000 0000 0000 0000 0000 0000 0000 55AA ..............U.
Example of a complete wipe:
00000000: 33D2 8EDA BE28 7CFC AD8B D8AD 8BC8 B800 3....(|.........
00000010: 138E C28B EECD 1033 C0CD 16CD 1900 0000 .......3........
00000020: 0000 0000 0000 0000 0200 CB00 BBAA 00AA ................
00000030: BBBB AA61 3A62 AABB BBAA 424C 4B53 5A3A ...a:b....BLKSZ:
00000040: 3030 3430 3030 3030 AABB BBAA 4256 4552 00400000....BVER
00000050: 3A30 3030 3035 4432 37AA BBBB AA44 5552 :00005D27....DUR
00000060: 4154 494F 4E3A 3138 3836 AABB BBAA 454E ATION:1886....EN
00000070: 443A 3136 3734 3331 3431 3135 AABB BBAA D:1674314115....
00000080: 4552 5243 543A 30AA BBBB AA48 3A50 524F ERRCT:0....H:PRO
00000090: 4345 5353 4544 2057 4954 4820 4441 5441 CESSED WITH DATA
000000a0: 5241 5A45 52AA BBBB AA4D 4554 484F 443A RAZER....METHOD:
000000b0: 4E49 5354 2043 4C45 4152 204F 6E65 2050 NIST CLEAR One P
000000c0: 6173 7320 5261 6E64 6F6D AABB BBAA 4F46 ass Random....OF
000000d0: 5354 3A30 3030 3144 3143 33AA BBBB AA50 ST:0001D1C3....P
000000e0: 4153 533A 3030 3031 AABB BBAA 5245 5355 ASS:0001....RESU
000000f0: 4C54 3A53 5543 4345 5353 AABB BBAA 5253 LT:SUCCESS....RS
00000100: 4D3A 3030 3030 3245 3934 AABB BBAA 5354 M:00002E94....ST
00000110: 4152 543A 3136 3734 3331 3232 3239 AABB ART:1674312229..
00000120: BBAA 5453 5A3A 3030 3031 4431 4333 AABB ..TSZ:0001D1C3..
00000130: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000140: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000150: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000160: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000170: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000180: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000190: 0000 0000 0000 0000 0000 0000 0000 0000 ................
000001a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
000001b0: 0000 0000 0000 0000 43A8 F662 0000 0000 ........C..b....
000001c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
000001d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
000001e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
000001f0: 0000 0000 0000 0000 0000 0000 0000 55AA ..............U.
Sample Certificate Data:
# Database/internal data
id: 1
timestamp: 2023-07-14 20:24:38
app_version: 0.0+git20230713.5c26c03
# Info on the disk
disk_dev_path: /dev/sdc
disk_model_name: VBOX_HARDDISK
disk_serial_number: VB13125bc8-a46ac9a5
disk_capacity_gib: 8.00
disk_capacity_gb: 8.59
disk_hdsent_health: 100
disk_hdsent_grade: A
disk_hdsent_power_on_hours: 22
disk_sector_size: 512
disk_total_sectors: 16777216
disk_hpa_info_read: 0
disk_hpa_detected_at_start: 0
disk_drive_type: UNKNOWN
disk_rotation_rate: 0
disk_total_sectors_with_hpa: 16777216
disk_hdp_cmd_output: Disabled
# Info on what wipe method was used
ov_title: NIST CLEAR One Pass Random
ov_desc: One pass of random data in 4MB increments. Minimum 10% verification.
# Erasure engine relavant data
bw_is_fp_enabled: 1
bw_is_verify_enabled: 1
bw_is_resume_enabled: 1
bw_wipe_status: 1
bw_hpa_reset_enabled: 0
bw_dco_reset_enabled: 0
bw_was_hpa_at_start: 0
bw_was_hpa_reset: 0
bw_was_dco_reset: 0
bw_block_size_mult: 8192.00
bw_verify_percent: 0.20
bw_resume_percent: 0.10
bw_err_allowance: 10
bw_last_ofst: 2048
bw_current_errct: 0
bw_current_pass: 1
bw_block_size: 4194304
bw_start_time: 2023-07-14 18:55:49
bw_end_time: 2023-07-14 20:24:38
bw_duration: 5329
bw_job_number: NO JOB# SET
bw_asset_number: SOME_UNIQUE_ID
bw_was_resume_used: 1
bw_total_blocks: 2048
bw_blocks_verified: 4
bw_blocks_marked_resume: 2
bw_passes_required: 1
# Data collected from DMI firmware
sys_dmi_bios_vendor: inotek GmbH
sys_dmi_bios_version: VirtualBox
sys_dmi_bios_release_date: 12/01/2006
sys_dmi_bios_revision: NO_DATA
sys_dmi_firmware_revision: NO_DATA
sys_dmi_system_manufacturer: inotek GmbH
sys_dmi_system_product_name: VirtualBox
sys_dmi_system_version: 1.2
sys_dmi_system_serial_number: 0
sys_dmi_system_uuid: 2899e394-57e8-ad4b-a43d-edabb1d46be3
sys_dmi_system_sku_number: Not Specified
sys_dmi_system_family: Virtual Machie
sys_dmi_baseboard_manufacturer: Oracle Corporatio
sys_dmi_baseboard_product_name: VirtualBox
sys_dmi_baseboard_version: 1.2
sys_dmi_baseboard_serial_number: 0
sys_dmi_baseboard_asset_tag: Not Specified
sys_dmi_chassis_manufacturer: Oracle Corporatio
sys_dmi_chassis_type: Other
sys_dmi_chassis_version: Not Specified
sys_dmi_chassis_serial_number: Not Specified
sys_dmi_chassis_asset_tag: Not Specified
sys_dmi_processor_family: NO_DATA
sys_dmi_processor_manufacturer: NO_DATA
sys_dmi_processor_version: NO_DATA
sys_dmi_processor_frequency: NO_DATA
Grading Scale:
Grading requires the hdsentinel
dependency to be installed to $PATH
Grade | Min Health (%) | Max Health (%) |
---|---|---|
A | 98 | 100 |
B | 90 | 97 |
C | 80 | 89 |
D | 65 | 79 |
F | 50 | 64 |
S | 0 | 49 |
User Settings:
NOTE: Settings are stored at /etc/datarazer/settings
Erasure Settings
Setting | Type | Settings File Key | Description |
---|---|---|---|
Job# | String | erasure.job_number |
Unique identifier per batch, this setting will be applied to all drives not currently wiping |
Asset# | String | erasure.asset_number |
Unique identifer per unit, this setting will be applied to all drives not currently wiping |
Use Fingerprint | Bool | erasure.use_fingerprint |
Whether or not to use Drive Fingerprinting |
Use Verification | Bool | erasure.use_verification |
Whether or not to use Write Verification |
Verification Quota | Int | erasure.verification_percent |
Percentage value between 1-100 % of blocks to verify during the erasure process |
Error Allowance | Int | erasure.error_allowance |
Number of errors needed to cause the erasure to abort |
Block Size Multiplier | Int | erasure.block_size_multiplier |
Multiplier for the size of the block written to the disk each iteration. block_size = 512 * block_size_mult . Lower values may make the program unstable; the maximum value is 8192 |
Resumed Erasure Enabled | Bool | erasure.resumed_erase_enabled |
Whether or not to use Resumed Erasure mode. This mode will write a fingerprint containing all the data needed to resume. If this fingerprint is present at start, this option is enabled, and the wipe method is the same; the drive will start its erasure off at the last ofst marker written to the disk. There are several factors that must all be true for the resume to be used. If any of these are off, the erasure will be treated as a non-resumed erasure |
Resumed Erasure Step Size | Int | erasure.resumed_erase_step_percentage |
Percentage value between 1-100 % of blocks to mark for resume during erasure |
Clear HPAs | Bool | erasure.clear_hpa |
Whether or not to clear Host Protected Areas from the drive at erasure start. This value will be set to false for the disk’s erasure if no HPAs are detected.Note: Erasure will be aborted if this task fails Warning: This option can potentially brick the HDD |
Reset DCO | Bool | erasure.reset_dco |
Whether or not to reset the Disk Configuration Overlay on erasure start. Having this option will reset the DCO regardless of if the erasure is resumed or not.Note: Erasure will be aborted if this task fails Warning: This option can potentially brick the HDD |
Database Settings
Setting | Type | Settings File Key | Description |
---|---|---|---|
Username | String | mysql.username |
Username needed to connect to the MySQL database |
Password | String | mysql.secret |
Password needed to connect to the MySQL database |
Address | String | mysql.addr |
Address/Hostname and Protocol of the MySQL database e.g. 192.168.1.1 or demo-db1.thetadyn.com |
Port | Int | mysql.port |
Port# of the MySQL database |
Schema | String | mysql.schema_name |
Name of the MySQL Schema/database to use |
Supress Lost Connection Warnings | Bool | mysql.supress_lost_conn_warnings |
If enabled, you will only receive one warning upon disconect instead of having the log console flooded |
Use SSL | Bool | mysql.use_ssl |
Enable TLS/SSL (Must be setup correctly on the server’s end) |
SSL Cert Path | String | mysql.ssl_client_cert_path |
Path to your signed client certificate; in .pem format |
SSL Key Path | String | mysql.ssl_client_key_path |
Path to your client private key belonging to the certificate; in .pem format |
Auto Login | Bool | mysql.auto_login |
If enabled, attempt to connect to database on application start |
Other Settings
Setting | Type | Settings File Key | Description |
---|---|---|---|
Disk Update | Bool | dc.update |
This option should always be set to true . Setting this to false will turn off drive mapping |
Save Cert to PDF | Bool | cert.save_pdf |
If enabled, save a nicely formated PDF to the configured location. |
Dump Cert SQL | Bool | cert.dump_sql |
If enabled, dump SQL INSERT statement to text file on erasure completion. |
Dump Cert TXT | Bool | cert.dump_txt |
If enabled, dump cert data to text file with similar format to INI |
PDF Save Path | String | cert.pdf_save_path |
Path to save PDF files to, leading directories will be created. Supports templated file naming* |
SQL Dump Path | String | cert.dump_sql_path |
Path to dump SQL files to, leading directories will be created. Supports templated file naming* |
TXT Dump Path | String | cert.dump_txt_path |
Path to dump TXT files to, leading directories will be created. Supports templated file naming* |
Overwrite Confirm | Bool | bw.saftey |
Enable confirmation pop-up before an overwrite starts |
Overwrite Confirm Phrase | String | bw.saftey_code |
The phrase that needs to be entered by a user to start an overwrite if confirm is enabled |
Skip Mounted Drive Mapping | Bool | dc.skip_mounted_drives |
Will skip over mapping any drive mounted by the system |
Plugin Directory | String | api.plugin_dir |
Directory to load plugins from |
License Key | String | app.license_key |
License key provided by us to utalize the Enterprise edition |
Language | String | app.language_locale |
What language to display the program in. English/Russing are available by default with en_US and ru respectively |
NOTE: on Templated File Naming; This allows you to enter a template phrase when choosing where to save a file to that in turn will substitute any matching certificate value.
As an example:
PDF Save to => /home/datarazer/{{bw_job_number}}-{{disk_model_name}}-{{disk_serial_number}}-{{bw_wipe_result}}.pdf
Controls:
Key(s) | Window(s) | Description |
---|---|---|
Up/Down | Main Window | Scroll drive table |
Left/Right | Main Window | Tab pages Forward/Back in the drive table |
Enter/Return | Main Window | Start Erasure of selected disk |
M | Main Window | Enter menu system |
Up/Down | Menus | Navigation |
Enter | Menus | Select item |
ESC | Dialogs | Cancel dialog |
Enter | Dialogs | Submit dialog |
PgUp/PgDown | All | Scroll log viewer |
Home/End | All | Resize log viewer |
NOTICE:
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Special Thanks:
- @ArthurSonzogni for FTXUI, DATARAZER’s rendering engine
- @andrew-hardin for cmake-git-version-tracking, the very nice looking build info in the top corner of the application window
- @HDSentinel for their absolutley free linux version
- @keygen-sh for their easy-to-use licensing platform
Links:
NIST SP 800-88r1 Publication - See sections A-5,6,8 pg. 31
DOD 5220.22-M Publication