dorothy2 1.2.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +8 -8
  2. data/CHANGELOG +39 -14
  3. data/README.md +80 -62
  4. data/UPDATE +6 -14
  5. data/bin/dorothy2 +472 -0
  6. data/dorothy2.gemspec +22 -16
  7. data/etc/ddl/dorothive.ddl +619 -373
  8. data/etc/sources.yml.example +27 -2
  9. data/lib/doroGUI.rb +232 -0
  10. data/lib/doroParser.rb +34 -78
  11. data/lib/dorothy2.rb +288 -248
  12. data/lib/dorothy2/BFM.rb +114 -61
  13. data/lib/dorothy2/DEM.rb +3 -1
  14. data/lib/dorothy2/NAM.rb +2 -2
  15. data/lib/dorothy2/Settings.rb +2 -1
  16. data/lib/dorothy2/VSM.rb +2 -1
  17. data/lib/dorothy2/deep_symbolize.rb +2 -7
  18. data/lib/dorothy2/do-init.rb +286 -19
  19. data/lib/dorothy2/do-logger.rb +1 -1
  20. data/lib/dorothy2/do-utils.rb +382 -33
  21. data/lib/dorothy2/version.rb +1 -1
  22. data/lib/dorothy2/vtotal.rb +30 -20
  23. data/lib/mu/xtractr.rb +11 -11
  24. data/lib/mu/xtractr/stream.rb +1 -1
  25. data/lib/www/public/reset.css +153 -0
  26. data/lib/www/public/style.css +65 -0
  27. data/lib/www/views/analyses.erb +28 -0
  28. data/lib/www/views/email.erb +63 -0
  29. data/lib/www/views/flows.erb +30 -0
  30. data/lib/www/views/layout.erb +27 -0
  31. data/lib/www/views/profile.erb +49 -0
  32. data/lib/www/views/queue.erb +28 -0
  33. data/lib/www/views/resume.erb +135 -0
  34. data/lib/www/views/resume.erb~ +88 -0
  35. data/lib/www/views/samples.erb +20 -0
  36. data/lib/www/views/upload.erb +154 -0
  37. data/share/img/The_big_picture.pdf +0 -0
  38. data/test/tc_dorothy_full.rb +3 -0
  39. metadata +169 -70
  40. data/TODO +0 -27
  41. data/bin/dorothy_start +0 -225
  42. data/bin/dorothy_stop +0 -28
  43. data/bin/dparser_start +0 -94
  44. data/bin/dparser_stop +0 -31
  45. data/etc/dorothy copy.yml.example +0 -39
  46. data/etc/extensions.yml +0 -41
  47. data/share/update-dorothive.sql +0 -19
@@ -16,22 +16,28 @@ Gem::Specification.new do |gem|
16
16
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
17
17
  gem.extra_rdoc_files = ["README.md"]
18
18
  gem.require_paths = ["lib"]
19
- gem.required_ruby_version = '>= 1.9.3'
20
- gem.add_dependency(%q<net-scp>, [">= 1.0.4"])
21
- gem.add_dependency(%q<net-ssh>, [">= 2.2.1"])
22
- gem.add_dependency(%q<trollop>, [">= 1.16.2"])
23
- gem.add_dependency(%q<rest-client>, [">= 1.6.1"])
24
- gem.add_dependency(%q<mime-types>, [">= 1.16"])
19
+ gem.required_ruby_version = '~> 1.9.3'
20
+ gem.add_dependency(%q<net-scp>, ["~> 1.1.2"])
21
+ gem.add_dependency(%q<net-ssh>, ["~> 2.7.0"])
22
+ gem.add_dependency(%q<trollop>, ["~> 2.0"])
23
+ gem.add_dependency(%q<rest-client>, ["~> 1.6.7"])
24
+ gem.add_dependency(%q<mail>, ["~> 2.5.4"])
25
25
  gem.add_dependency(%q<colored>, [">= 1.2"])
26
- gem.add_dependency(%q<ruby-pg>, [">= 0.7.9.2008.01.28"])
27
- gem.add_dependency(%q<virustotal>, [">= 2.0.0"])
28
- gem.add_dependency(%q<nokogiri>, ["~> 1.5.10"])
29
- gem.add_dependency(%q<rbvmomi>, [">= 1.3.0"])
30
- gem.add_dependency(%q<ruby-filemagic>, [">= 0.4.2"])
26
+ gem.add_dependency(%q<pg>, [">= 0.8.0"])
27
+ gem.add_dependency(%q<nokogiri>, ["~> 1.5.11"])
28
+ gem.add_dependency(%q<uirusu>, ["~> 0.0.6"])
29
+ gem.add_dependency(%q<rbvmomi>, ["~> 1.6.0"])
30
+ gem.add_dependency(%q<ruby-filemagic>, ["~> 0.5.0"])
31
+ gem.add_dependency(%q<activesupport>, ["~> 4.1.6"])
32
+ gem.add_dependency(%q<activemodel>, ["~> 4.1.6"])
33
+ gem.add_dependency(%q<activerecord>, ["~> 4.1.0.beta1"])
34
+ gem.add_dependency(%q<sinatra>, ["~> 1.4.4"])
35
+ gem.add_dependency(%q<sinatra-activerecord>, ["~> 1.3.0"])
36
+ gem.add_dependency(%q<sinatra-contrib>, ["~> 1.4.2"])
37
+ gem.add_dependency(%q<namespace>, ["~> 1.2"])
31
38
  #for dparser
32
- gem.add_dependency(%q<net-dns>, [">= 0.8.0"])
33
- gem.add_dependency(%q<geoip>, [">= 1.2.1"])
34
- gem.add_dependency(%q<tmail>, [">= 1.2.7.1"])
35
- gem.post_install_message = '\n WARING: If you are upgrating from a previous version, read the UPDATE file!\n'
39
+ gem.add_dependency(%q<net-dns>, ["~> 0.8.0"])
40
+ gem.add_dependency(%q<geoip>, ["~> 1.3.5"])
41
+ gem.add_dependency(%q<whois>, ["~> 3.5.3"])
42
+ gem.post_install_message = '\n\n\n \t\t WARING: If you are upgrating from a previous version, read the UPDATE file! \t\t\n\n\n'
36
43
  end
37
-
@@ -2,33 +2,12 @@
2
2
  -- PostgreSQL database dump
3
3
  --
4
4
 
5
- DROP DATABASE dorothive;
6
-
7
-
8
5
  SET statement_timeout = 0;
6
+ SET lock_timeout = 0;
9
7
  SET client_encoding = 'UTF8';
10
- SET standard_conforming_strings = off;
8
+ SET standard_conforming_strings = on;
11
9
  SET check_function_bodies = false;
12
10
  SET client_min_messages = warning;
13
- SET escape_string_warning = off;
14
-
15
- --
16
- -- Name: dorothive; Type: DATABASE; Schema: -; Owner: postgres
17
- --
18
-
19
- CREATE DATABASE dorothive WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'C' LC_CTYPE = 'C';
20
-
21
-
22
- ALTER DATABASE dorothive OWNER TO postgres;
23
-
24
- \connect dorothive
25
-
26
- SET statement_timeout = 0;
27
- SET client_encoding = 'UTF8';
28
- SET standard_conforming_strings = off;
29
- SET check_function_bodies = false;
30
- SET client_min_messages = warning;
31
- SET escape_string_warning = off;
32
11
 
33
12
  --
34
13
  -- Name: dorothy; Type: SCHEMA; Schema: -; Owner: postgres
@@ -47,13 +26,18 @@ COMMENT ON SCHEMA dorothy IS 'standard public schema';
47
26
 
48
27
 
49
28
  --
50
- -- Name: plpgsql; Type: PROCEDURAL LANGUAGE; Schema: -; Owner: postgres
29
+ -- Name: plpgsql; Type: EXTENSION; Schema: -; Owner:
51
30
  --
52
31
 
53
- CREATE OR REPLACE PROCEDURAL LANGUAGE plpgsql;
32
+ CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
54
33
 
55
34
 
56
- ALTER PROCEDURAL LANGUAGE plpgsql OWNER TO postgres;
35
+ --
36
+ -- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner:
37
+ --
38
+
39
+ COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
40
+
57
41
 
58
42
  SET search_path = dorothy, pg_catalog;
59
43
 
@@ -128,6 +112,21 @@ CREATE TYPE layer7_protocols AS ENUM (
128
112
 
129
113
  ALTER TYPE dorothy.layer7_protocols OWNER TO postgres;
130
114
 
115
+ --
116
+ -- Name: queue_status; Type: TYPE; Schema: dorothy; Owner: postgres
117
+ --
118
+
119
+ CREATE TYPE queue_status AS ENUM (
120
+ 'cancelled',
121
+ 'pending',
122
+ 'analysed',
123
+ 'processing',
124
+ 'error'
125
+ );
126
+
127
+
128
+ ALTER TYPE dorothy.queue_status OWNER TO postgres;
129
+
131
130
  --
132
131
  -- Name: sanbox_type; Type: TYPE; Schema: dorothy; Owner: postgres
133
132
  --
@@ -143,34 +142,6 @@ CREATE TYPE sanbox_type AS ENUM (
143
142
 
144
143
  ALTER TYPE dorothy.sanbox_type OWNER TO postgres;
145
144
 
146
- --
147
- -- Name: sensor_type; Type: TYPE; Schema: dorothy; Owner: postgres
148
- --
149
-
150
- CREATE TYPE sensor_type AS ENUM (
151
- 'low_honey',
152
- 'high_honey',
153
- 'mwcollect'
154
- );
155
-
156
-
157
- ALTER TYPE dorothy.sensor_type OWNER TO postgres;
158
-
159
- --
160
- -- Name: sensor_type2; Type: TYPE; Schema: dorothy; Owner: postgres
161
- --
162
-
163
- CREATE TYPE sensor_type2 AS ENUM (
164
- 'lowint-honeypot',
165
- 'highint-honeypot',
166
- 'unknow',
167
- 'client-honeypot',
168
- 'external-source'
169
- );
170
-
171
-
172
- ALTER TYPE dorothy.sensor_type2 OWNER TO postgres;
173
-
174
145
  SET default_tablespace = '';
175
146
 
176
147
  SET default_with_oids = false;
@@ -184,7 +155,8 @@ CREATE TABLE analyses (
184
155
  sample character(64) NOT NULL,
185
156
  sandbox integer NOT NULL,
186
157
  traffic_dump character(64) NOT NULL,
187
- date timestamp without time zone
158
+ date timestamp without time zone,
159
+ queue_id bigint NOT NULL
188
160
  );
189
161
 
190
162
 
@@ -212,87 +184,38 @@ ALTER SEQUENCE analyses_id_seq OWNED BY analyses.id;
212
184
 
213
185
 
214
186
  --
215
- -- Name: analyses_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
216
- --
217
-
218
- SELECT pg_catalog.setval('analyses_id_seq', 1, true);
219
-
220
-
221
- --
222
- -- Name: samples; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
187
+ -- Name: queue_id_seq; Type: SEQUENCE; Schema: dorothy; Owner: postgres
223
188
  --
224
189
 
225
- CREATE TABLE samples (
226
- sha256 character(64) NOT NULL,
227
- size integer NOT NULL,
228
- path character(256),
229
- filename character(256),
230
- md5 character(64),
231
- long_type character varying,
232
- CONSTRAINT size_notneg CHECK ((size >= 0))
233
- );
234
-
235
-
236
- ALTER TABLE dorothy.samples OWNER TO postgres;
237
-
238
- --
239
- -- Name: TABLE samples; Type: COMMENT; Schema: dorothy; Owner: postgres
240
- --
241
-
242
- COMMENT ON TABLE samples IS 'Acquired samples';
243
-
244
-
245
- --
246
- -- Name: COLUMN samples.hash; Type: COMMENT; Schema: dorothy; Owner: postgres
247
- --
248
-
249
- COMMENT ON COLUMN samples.sha256 IS 'SHA256 checksum hash';
250
-
251
-
252
- --
253
- -- Name: COLUMN samples.size; Type: COMMENT; Schema: dorothy; Owner: postgres
254
- --
255
-
256
- COMMENT ON COLUMN samples.size IS 'Sample size';
257
-
258
- --
259
- -- Name: CONSTRAINT size_notneg ON samples; Type: COMMENT; Schema: dorothy; Owner: postgres
260
- --
190
+ CREATE SEQUENCE queue_id_seq
191
+ START WITH 1
192
+ INCREMENT BY 1
193
+ NO MINVALUE
194
+ NO MAXVALUE
195
+ CACHE 1;
261
196
 
262
- COMMENT ON CONSTRAINT size_notneg ON samples IS 'Sample size must not be negative';
263
197
 
198
+ ALTER TABLE dorothy.queue_id_seq OWNER TO postgres;
264
199
 
265
200
  --
266
- -- Name: traffic_dumps; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
201
+ -- Name: analysis_queue; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
267
202
  --
268
203
 
269
- CREATE TABLE traffic_dumps (
270
- sha256 character(64) NOT NULL,
271
- size integer NOT NULL,
272
- pcapr_id character(32),
273
- "binary" character varying,
274
- parsed boolean
204
+ CREATE TABLE analysis_queue (
205
+ id bigint DEFAULT nextval('queue_id_seq'::regclass) NOT NULL,
206
+ date timestamp without time zone NOT NULL,
207
+ "binary" character(64),
208
+ priority integer DEFAULT 0 NOT NULL,
209
+ profile character varying DEFAULT 'default'::character varying NOT NULL,
210
+ source character varying,
211
+ "user" character varying,
212
+ filename character varying NOT NULL,
213
+ status queue_status,
214
+ sighting bigint
275
215
  );
276
216
 
277
217
 
278
- ALTER TABLE dorothy.traffic_dumps OWNER TO postgres;
279
-
280
- --
281
- -- Name: COLUMN traffic_dumps.hash; Type: COMMENT; Schema: dorothy; Owner: postgres
282
- --
283
-
284
- COMMENT ON COLUMN traffic_dumps.sha256 IS 'SHA256 checksum hash';
285
-
286
-
287
- --
288
- -- Name: analysis_resume_view; Type: VIEW; Schema: dorothy; Owner: postgres
289
- --
290
-
291
- CREATE VIEW analysis_resume_view AS
292
- SELECT analyses.id, samples.filename, samples.md5, samples.long_type, analyses.date, traffic_dumps.parsed FROM traffic_dumps, samples, analyses WHERE ((analyses.sample = samples.sha256) AND (analyses.traffic_dump = traffic_dumps.sha256)) ORDER BY analyses.id DESC;
293
-
294
-
295
- ALTER TABLE dorothy.analysis_resume_view OWNER TO postgres;
218
+ ALTER TABLE dorothy.analysis_queue OWNER TO postgres;
296
219
 
297
220
  --
298
221
  -- Name: appdata_id_seq; Type: SEQUENCE; Schema: dorothy; Owner: postgres
@@ -308,13 +231,6 @@ CREATE SEQUENCE appdata_id_seq
308
231
 
309
232
  ALTER TABLE dorothy.appdata_id_seq OWNER TO postgres;
310
233
 
311
- --
312
- -- Name: appdata_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
313
- --
314
-
315
- SELECT pg_catalog.setval('appdata_id_seq', 1, true);
316
-
317
-
318
234
  --
319
235
  -- Name: asns; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
320
236
  --
@@ -359,17 +275,25 @@ ALTER SEQUENCE asns_id_seq OWNED BY asns.id;
359
275
 
360
276
 
361
277
  --
362
- -- Name: asns_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
278
+ -- Name: av_signs; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
363
279
  --
364
280
 
365
- SELECT pg_catalog.setval('asns_id_seq', 1, false);
281
+ CREATE TABLE av_signs (
282
+ id bigint NOT NULL,
283
+ av_name character varying NOT NULL,
284
+ signature character varying NOT NULL,
285
+ version character varying NOT NULL,
286
+ updated character varying
287
+ );
366
288
 
367
289
 
290
+ ALTER TABLE dorothy.av_signs OWNER TO postgres;
291
+
368
292
  --
369
- -- Name: dns_id_seq; Type: SEQUENCE; Schema: dorothy; Owner: postgres
293
+ -- Name: cfg_chk_id_seq; Type: SEQUENCE; Schema: dorothy; Owner: postgres
370
294
  --
371
295
 
372
- CREATE SEQUENCE dns_id_seq
296
+ CREATE SEQUENCE cfg_chk_id_seq
373
297
  START WITH 1
374
298
  INCREMENT BY 1
375
299
  NO MINVALUE
@@ -377,48 +301,22 @@ CREATE SEQUENCE dns_id_seq
377
301
  CACHE 1;
378
302
 
379
303
 
380
- ALTER TABLE dorothy.dns_id_seq OWNER TO postgres;
304
+ ALTER TABLE dorothy.cfg_chk_id_seq OWNER TO postgres;
381
305
 
382
306
  --
383
- -- Name: dns_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
307
+ -- Name: cfg_chk; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
384
308
  --
385
309
 
386
- SELECT pg_catalog.setval('dns_id_seq', 1, true);
387
-
388
-
389
- --
390
- -- Name: dns_data; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
391
- --
392
-
393
- CREATE TABLE dns_data (
394
- id integer DEFAULT nextval('dns_id_seq'::regclass) NOT NULL,
395
- name character varying(255),
396
- class integer,
397
- qry boolean NOT NULL,
398
- ttl integer,
399
- flow integer NOT NULL,
400
- address inet,
401
- data character varying(255),
402
- type integer,
403
- is_sinkholed boolean
310
+ CREATE TABLE cfg_chk (
311
+ id bigint DEFAULT nextval('cfg_chk_id_seq'::regclass) NOT NULL,
312
+ conf_file character varying,
313
+ md5_chksum character(32) NOT NULL,
314
+ added timestamp without time zone,
315
+ last_modified timestamp without time zone
404
316
  );
405
317
 
406
318
 
407
- ALTER TABLE dorothy.dns_data OWNER TO postgres;
408
-
409
- --
410
- -- Name: COLUMN dns_data.address; Type: COMMENT; Schema: dorothy; Owner: postgres
411
- --
412
-
413
- COMMENT ON COLUMN dns_data.address IS 'type A answer data ';
414
-
415
-
416
- --
417
- -- Name: COLUMN dns_data.data; Type: COMMENT; Schema: dorothy; Owner: postgres
418
- --
419
-
420
- COMMENT ON COLUMN dns_data.data IS 'in the case it is an answer different from TYPE A ';
421
-
319
+ ALTER TABLE dorothy.cfg_chk OWNER TO postgres;
422
320
 
423
321
  --
424
322
  -- Name: flows; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
@@ -481,101 +379,72 @@ COMMENT ON COLUMN flows."time" IS 'Relative time (from the beginning) of the flo
481
379
 
482
380
 
483
381
  --
484
- -- Name: host_ips; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
382
+ -- Name: connections_id_seq; Type: SEQUENCE; Schema: dorothy; Owner: postgres
485
383
  --
486
384
 
487
- CREATE TABLE host_ips (
488
- ip inet NOT NULL,
489
- geoinfo integer,
490
- sbl integer,
491
- uptime time without time zone,
492
- is_online boolean,
493
- whois integer,
494
- zone text,
495
- last_update timestamp without time zone,
496
- id integer NOT NULL,
497
- dns_name integer,
498
- migrated_from integer
499
- );
385
+ CREATE SEQUENCE connections_id_seq
386
+ START WITH 1
387
+ INCREMENT BY 1
388
+ NO MINVALUE
389
+ NO MAXVALUE
390
+ CACHE 1;
500
391
 
501
392
 
502
- ALTER TABLE dorothy.host_ips OWNER TO postgres;
393
+ ALTER TABLE dorothy.connections_id_seq OWNER TO postgres;
503
394
 
504
395
  --
505
- -- Name: host_roles; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
396
+ -- Name: connections_id_seq; Type: SEQUENCE OWNED BY; Schema: dorothy; Owner: postgres
506
397
  --
507
398
 
508
- CREATE TABLE host_roles (
509
- role integer NOT NULL,
510
- host_ip inet NOT NULL
511
- );
512
-
399
+ ALTER SEQUENCE connections_id_seq OWNED BY flows.id;
513
400
 
514
- ALTER TABLE dorothy.host_roles OWNER TO postgres;
515
401
 
516
402
  --
517
- -- Name: irc_data; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
403
+ -- Name: dns_id_seq; Type: SEQUENCE; Schema: dorothy; Owner: postgres
518
404
  --
519
405
 
520
- CREATE TABLE irc_data (
521
- id integer NOT NULL,
522
- flow integer NOT NULL,
523
- data bytea,
524
- incoming boolean NOT NULL
525
- );
406
+ CREATE SEQUENCE dns_id_seq
407
+ START WITH 1
408
+ INCREMENT BY 1
409
+ NO MINVALUE
410
+ NO MAXVALUE
411
+ CACHE 1;
526
412
 
527
413
 
528
- ALTER TABLE dorothy.irc_data OWNER TO postgres;
414
+ ALTER TABLE dorothy.dns_id_seq OWNER TO postgres;
529
415
 
530
416
  --
531
- -- Name: roles; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
417
+ -- Name: dns_data; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
532
418
  --
533
419
 
534
- CREATE TABLE roles (
535
- id integer NOT NULL,
536
- type character varying(10),
537
- comment character varying
420
+ CREATE TABLE dns_data (
421
+ id integer DEFAULT nextval('dns_id_seq'::regclass) NOT NULL,
422
+ name character varying(255),
423
+ class integer,
424
+ qry boolean NOT NULL,
425
+ ttl integer,
426
+ flow integer NOT NULL,
427
+ address inet,
428
+ data character varying(255),
429
+ type integer,
430
+ is_sinkholed boolean
538
431
  );
539
432
 
540
433
 
541
- ALTER TABLE dorothy.roles OWNER TO postgres;
542
-
543
- --
544
- -- Name: ccprofile_view3; Type: VIEW; Schema: dorothy; Owner: postgres
545
- --
546
-
547
- CREATE VIEW ccprofile_view3 AS
548
- SELECT DISTINCT host_ips.id AS hostid, host_ips.ip, flows.dstport, traffic_dumps.sha256, irc_data.id, roles.type, dns_data.name, irc_data.data FROM roles, host_roles, host_ips, dns_data, flows, irc_data, traffic_dumps WHERE (((((((((roles.id = host_roles.role) AND (host_roles.host_ip = host_ips.ip)) AND (dns_data.id = host_ips.dns_name)) AND (flows.dest = host_ips.ip)) AND (flows.traffic_dump = traffic_dumps.sha256)) AND (irc_data.flow = flows.id)) AND (irc_data.incoming = false)) AND (host_ips.is_online = true)) AND ((roles.type)::text = 'cc-irc'::text)) ORDER BY irc_data.id, host_ips.id, host_ips.ip, flows.dstport, traffic_dumps.sha256, roles.type, dns_data.name, irc_data.data;
549
-
550
-
551
- ALTER TABLE dorothy.ccprofile_view3 OWNER TO postgres;
552
-
553
- --
554
- -- Name: connections_id_seq; Type: SEQUENCE; Schema: dorothy; Owner: postgres
555
- --
556
-
557
- CREATE SEQUENCE connections_id_seq
558
- START WITH 1
559
- INCREMENT BY 1
560
- NO MINVALUE
561
- NO MAXVALUE
562
- CACHE 1;
563
-
564
-
565
- ALTER TABLE dorothy.connections_id_seq OWNER TO postgres;
434
+ ALTER TABLE dorothy.dns_data OWNER TO postgres;
566
435
 
567
436
  --
568
- -- Name: connections_id_seq; Type: SEQUENCE OWNED BY; Schema: dorothy; Owner: postgres
437
+ -- Name: COLUMN dns_data.address; Type: COMMENT; Schema: dorothy; Owner: postgres
569
438
  --
570
439
 
571
- ALTER SEQUENCE connections_id_seq OWNED BY flows.id;
440
+ COMMENT ON COLUMN dns_data.address IS 'type A answer data ';
572
441
 
573
442
 
574
443
  --
575
- -- Name: connections_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
444
+ -- Name: COLUMN dns_data.data; Type: COMMENT; Schema: dorothy; Owner: postgres
576
445
  --
577
446
 
578
- SELECT pg_catalog.setval('connections_id_seq', 1, true);
447
+ COMMENT ON COLUMN dns_data.data IS 'in the case it is an answer different from TYPE A ';
579
448
 
580
449
 
581
450
  --
@@ -599,21 +468,39 @@ ALTER TABLE dorothy.downloads OWNER TO postgres;
599
468
  COMMENT ON TABLE downloads IS 'Downloaded sample sighting';
600
469
 
601
470
 
471
+ --
472
+ -- Name: email_receivers; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
473
+ --
474
+
475
+ CREATE TABLE email_receivers (
476
+ address character varying NOT NULL,
477
+ email_id bigint NOT NULL,
478
+ mail_field character(5) NOT NULL
479
+ );
480
+
481
+
482
+ ALTER TABLE dorothy.email_receivers OWNER TO postgres;
483
+
602
484
  --
603
485
  -- Name: emails; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
604
486
  --
605
487
 
606
488
  CREATE TABLE emails (
607
- "from" character(64),
608
- "to" character(64),
609
- subject character(128),
489
+ "from" character varying(64),
490
+ subject character varying(128),
610
491
  data bytea,
611
492
  id integer NOT NULL,
612
- flow bigint NOT NULL,
493
+ flow bigint,
613
494
  hcmd character varying,
614
495
  hcont character varying,
615
496
  rcode interval,
616
- rcont character varying
497
+ rcont character varying,
498
+ date timestamp without time zone,
499
+ message_id character varying,
500
+ has_attachment boolean,
501
+ charset character varying,
502
+ body_sha256 character(64),
503
+ forwarded_by bigint
617
504
  );
618
505
 
619
506
 
@@ -640,13 +527,6 @@ ALTER TABLE dorothy.emails_id_seq OWNER TO postgres;
640
527
  ALTER SEQUENCE emails_id_seq OWNED BY emails.id;
641
528
 
642
529
 
643
- --
644
- -- Name: emails_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
645
- --
646
-
647
- SELECT pg_catalog.setval('emails_id_seq', 1, true);
648
-
649
-
650
530
  --
651
531
  -- Name: ftp_data; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
652
532
  --
@@ -710,11 +590,25 @@ ALTER SEQUENCE geoinfo_id_seq OWNED BY geoinfo.id;
710
590
 
711
591
 
712
592
  --
713
- -- Name: geoinfo_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
593
+ -- Name: host_ips; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
714
594
  --
715
595
 
716
- SELECT pg_catalog.setval('geoinfo_id_seq', 1, true);
596
+ CREATE TABLE host_ips (
597
+ ip inet NOT NULL,
598
+ geoinfo integer,
599
+ sbl integer,
600
+ uptime time without time zone,
601
+ is_online boolean,
602
+ whois integer,
603
+ zone text,
604
+ last_update timestamp without time zone,
605
+ id integer NOT NULL,
606
+ dns_name integer,
607
+ migrated_from integer
608
+ );
609
+
717
610
 
611
+ ALTER TABLE dorothy.host_ips OWNER TO postgres;
718
612
 
719
613
  --
720
614
  -- Name: host_ips_id_seq; Type: SEQUENCE; Schema: dorothy; Owner: postgres
@@ -738,12 +632,17 @@ ALTER SEQUENCE host_ips_id_seq OWNED BY host_ips.id;
738
632
 
739
633
 
740
634
  --
741
- -- Name: host_ips_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
635
+ -- Name: host_roles; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
742
636
  --
743
637
 
744
- SELECT pg_catalog.setval('host_ips_id_seq', 1, true);
638
+ CREATE TABLE host_roles (
639
+ role integer NOT NULL,
640
+ host_ip inet NOT NULL
641
+ );
745
642
 
746
643
 
644
+ ALTER TABLE dorothy.host_roles OWNER TO postgres;
645
+
747
646
  --
748
647
  -- Name: http_data; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
749
648
  --
@@ -774,6 +673,20 @@ CREATE TABLE http_headers (
774
673
 
775
674
  ALTER TABLE dorothy.http_headers OWNER TO postgres;
776
675
 
676
+ --
677
+ -- Name: irc_data; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
678
+ --
679
+
680
+ CREATE TABLE irc_data (
681
+ id integer NOT NULL,
682
+ flow integer NOT NULL,
683
+ data bytea,
684
+ incoming boolean NOT NULL
685
+ );
686
+
687
+
688
+ ALTER TABLE dorothy.irc_data OWNER TO postgres;
689
+
777
690
  --
778
691
  -- Name: irc_data_connection_seq; Type: SEQUENCE; Schema: dorothy; Owner: postgres
779
692
  --
@@ -796,11 +709,18 @@ ALTER SEQUENCE irc_data_connection_seq OWNED BY irc_data.flow;
796
709
 
797
710
 
798
711
  --
799
- -- Name: irc_data_connection_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
712
+ -- Name: malwares_id_seq; Type: SEQUENCE; Schema: dorothy; Owner: postgres
800
713
  --
801
714
 
802
- SELECT pg_catalog.setval('irc_data_connection_seq', 1, true);
715
+ CREATE SEQUENCE malwares_id_seq
716
+ START WITH 0
717
+ INCREMENT BY 1
718
+ MINVALUE 0
719
+ NO MAXVALUE
720
+ CACHE 1;
721
+
803
722
 
723
+ ALTER TABLE dorothy.malwares_id_seq OWNER TO postgres;
804
724
 
805
725
  --
806
726
  -- Name: malwares; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
@@ -808,12 +728,11 @@ SELECT pg_catalog.setval('irc_data_connection_seq', 1, true);
808
728
 
809
729
  CREATE TABLE malwares (
810
730
  bin character(64) NOT NULL,
811
- family character(64) NOT NULL,
812
- vendor character(64),
813
- version character(16),
814
731
  rate character(8),
815
- update integer,
816
- detected boolean NOT NULL
732
+ detected boolean NOT NULL,
733
+ date timestamp without time zone,
734
+ link character varying,
735
+ id bigint DEFAULT nextval('malwares_id_seq'::regclass) NOT NULL
817
736
  );
818
737
 
819
738
 
@@ -855,12 +774,18 @@ ALTER SEQUENCE reports_id_seq OWNED BY reports.id;
855
774
 
856
775
 
857
776
  --
858
- -- Name: reports_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
777
+ -- Name: roles; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
859
778
  --
860
779
 
861
- SELECT pg_catalog.setval('reports_id_seq', 1, false);
780
+ CREATE TABLE roles (
781
+ id integer NOT NULL,
782
+ type character varying(10),
783
+ comment character varying
784
+ );
862
785
 
863
786
 
787
+ ALTER TABLE dorothy.roles OWNER TO postgres;
788
+
864
789
  --
865
790
  -- Name: roles_id_seq; Type: SEQUENCE; Schema: dorothy; Owner: postgres
866
791
  --
@@ -883,10 +808,48 @@ ALTER SEQUENCE roles_id_seq OWNED BY roles.id;
883
808
 
884
809
 
885
810
  --
886
- -- Name: roles_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
811
+ -- Name: samples; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
887
812
  --
888
813
 
889
- SELECT pg_catalog.setval('roles_id_seq', 1, false);
814
+ CREATE TABLE samples (
815
+ sha256 character(64) NOT NULL,
816
+ size integer NOT NULL,
817
+ path character varying(256),
818
+ filename character varying(256),
819
+ md5 character(32),
820
+ long_type character varying,
821
+ CONSTRAINT size_notneg CHECK ((size >= 0))
822
+ );
823
+
824
+
825
+ ALTER TABLE dorothy.samples OWNER TO postgres;
826
+
827
+ --
828
+ -- Name: TABLE samples; Type: COMMENT; Schema: dorothy; Owner: postgres
829
+ --
830
+
831
+ COMMENT ON TABLE samples IS 'Acquired samples';
832
+
833
+
834
+ --
835
+ -- Name: COLUMN samples.sha256; Type: COMMENT; Schema: dorothy; Owner: postgres
836
+ --
837
+
838
+ COMMENT ON COLUMN samples.sha256 IS 'SHA256 checksum hash';
839
+
840
+
841
+ --
842
+ -- Name: COLUMN samples.size; Type: COMMENT; Schema: dorothy; Owner: postgres
843
+ --
844
+
845
+ COMMENT ON COLUMN samples.size IS 'Sample size';
846
+
847
+
848
+ --
849
+ -- Name: CONSTRAINT size_notneg ON samples; Type: COMMENT; Schema: dorothy; Owner: postgres
850
+ --
851
+
852
+ COMMENT ON CONSTRAINT size_notneg ON samples IS 'Sample size must not be negative';
890
853
 
891
854
 
892
855
  --
@@ -896,8 +859,8 @@ SELECT pg_catalog.setval('roles_id_seq', 1, false);
896
859
  CREATE TABLE sandboxes (
897
860
  id integer NOT NULL,
898
861
  hostname character varying(30) NOT NULL,
899
- type sanbox_type NOT NULL,
900
- "OS" character varying NOT NULL,
862
+ sandbox_type sanbox_type NOT NULL,
863
+ os character varying NOT NULL,
901
864
  version character varying,
902
865
  os_lang character(4),
903
866
  ipaddress inet,
@@ -931,95 +894,127 @@ ALTER SEQUENCE sandboxes_id_seq OWNED BY sandboxes.id;
931
894
 
932
895
 
933
896
  --
934
- -- Name: sandboxes_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
897
+ -- Name: sightings_id_seq; Type: SEQUENCE; Schema: dorothy; Owner: postgres
935
898
  --
936
899
 
937
- SELECT pg_catalog.setval('sandboxes_id_seq', 1, true);
900
+ CREATE SEQUENCE sightings_id_seq
901
+ START WITH 1
902
+ INCREMENT BY 1
903
+ NO MINVALUE
904
+ NO MAXVALUE
905
+ CACHE 1;
906
+
938
907
 
908
+ ALTER TABLE dorothy.sightings_id_seq OWNER TO postgres;
939
909
 
940
910
  --
941
- -- Name: sensors; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
911
+ -- Name: sightings; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
942
912
  --
943
913
 
944
- CREATE TABLE sensors (
945
- id integer NOT NULL,
946
- name character varying(40) NOT NULL,
947
- host integer NOT NULL,
948
- type sensor_type2 NOT NULL
914
+ CREATE TABLE sightings (
915
+ sample character(64) NOT NULL,
916
+ sensor integer NOT NULL,
917
+ date timestamp without time zone NOT NULL,
918
+ id bigint DEFAULT nextval('sightings_id_seq'::regclass) NOT NULL,
919
+ src_email bigint
949
920
  );
950
921
 
951
922
 
952
- ALTER TABLE dorothy.sensors OWNER TO postgres;
923
+ ALTER TABLE dorothy.sightings OWNER TO postgres;
953
924
 
954
925
  --
955
- -- Name: TABLE sensors; Type: COMMENT; Schema: dorothy; Owner: postgres
926
+ -- Name: TABLE sightings; Type: COMMENT; Schema: dorothy; Owner: postgres
956
927
  --
957
928
 
958
- COMMENT ON TABLE sensors IS 'Malware sensors';
929
+ COMMENT ON TABLE sightings IS 'Malware sample sightings on sources';
959
930
 
960
931
 
961
932
  --
962
- -- Name: sensors_id_seq; Type: SEQUENCE; Schema: dorothy; Owner: postgres
933
+ -- Name: COLUMN sightings.sample; Type: COMMENT; Schema: dorothy; Owner: postgres
963
934
  --
964
935
 
965
- CREATE SEQUENCE sensors_id_seq
966
- START WITH 1
967
- INCREMENT BY 1
968
- NO MINVALUE
969
- NO MAXVALUE
970
- CACHE 1;
971
-
936
+ COMMENT ON COLUMN sightings.sample IS 'Sample hash';
972
937
 
973
- ALTER TABLE dorothy.sensors_id_seq OWNER TO postgres;
974
938
 
975
939
  --
976
- -- Name: sensors_id_seq; Type: SEQUENCE OWNED BY; Schema: dorothy; Owner: postgres
940
+ -- Name: COLUMN sightings.sensor; Type: COMMENT; Schema: dorothy; Owner: postgres
977
941
  --
978
942
 
979
- ALTER SEQUENCE sensors_id_seq OWNED BY sensors.id;
943
+ COMMENT ON COLUMN sightings.sensor IS '
944
+ ';
980
945
 
981
946
 
982
947
  --
983
- -- Name: sensors_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
948
+ -- Name: sources_id_seq; Type: SEQUENCE; Schema: dorothy; Owner: postgres
984
949
  --
985
950
 
986
- SELECT pg_catalog.setval('sensors_id_seq', 1, false);
951
+ CREATE SEQUENCE sources_id_seq
952
+ START WITH 1
953
+ INCREMENT BY 1
954
+ NO MINVALUE
955
+ NO MAXVALUE
956
+ CACHE 1;
957
+
987
958
 
959
+ ALTER TABLE dorothy.sources_id_seq OWNER TO postgres;
988
960
 
989
961
  --
990
- -- Name: sightings; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
962
+ -- Name: sources; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
991
963
  --
992
964
 
993
- CREATE TABLE sightings (
994
- sample character(64) NOT NULL,
995
- sensor integer NOT NULL,
996
- date timestamp without time zone NOT NULL,
997
- traffic_dump character(64)
965
+ CREATE TABLE sources (
966
+ id integer DEFAULT nextval('sources_id_seq'::regclass) NOT NULL,
967
+ sname character varying NOT NULL,
968
+ stype character varying NOT NULL,
969
+ disabled boolean DEFAULT false,
970
+ host character varying,
971
+ geo integer,
972
+ added timestamp without time zone,
973
+ last_modified timestamp without time zone,
974
+ localdir character varying
998
975
  );
999
976
 
1000
977
 
1001
- ALTER TABLE dorothy.sightings OWNER TO postgres;
978
+ ALTER TABLE dorothy.sources OWNER TO postgres;
1002
979
 
1003
980
  --
1004
- -- Name: TABLE sightings; Type: COMMENT; Schema: dorothy; Owner: postgres
981
+ -- Name: sys_procs; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
1005
982
  --
1006
983
 
1007
- COMMENT ON TABLE sightings IS 'Malware sample sightings on sensors';
984
+ CREATE TABLE sys_procs (
985
+ analysis_id integer NOT NULL,
986
+ pid integer NOT NULL,
987
+ name character varying,
988
+ owner character varying,
989
+ "cmdLine" character varying,
990
+ "startTime" timestamp without time zone,
991
+ "endTime" timestamp without time zone,
992
+ "exitCode" integer
993
+ );
1008
994
 
1009
995
 
996
+ ALTER TABLE dorothy.sys_procs OWNER TO postgres;
997
+
1010
998
  --
1011
- -- Name: COLUMN sightings.sample; Type: COMMENT; Schema: dorothy; Owner: postgres
999
+ -- Name: traffic_dumps; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
1012
1000
  --
1013
1001
 
1014
- COMMENT ON COLUMN sightings.sample IS 'Sample hash';
1002
+ CREATE TABLE traffic_dumps (
1003
+ sha256 character(64) NOT NULL,
1004
+ size integer NOT NULL,
1005
+ pcapr_id character(32),
1006
+ "binary" character varying,
1007
+ parsed boolean
1008
+ );
1015
1009
 
1016
1010
 
1011
+ ALTER TABLE dorothy.traffic_dumps OWNER TO postgres;
1012
+
1017
1013
  --
1018
- -- Name: COLUMN sightings.sensor; Type: COMMENT; Schema: dorothy; Owner: postgres
1014
+ -- Name: COLUMN traffic_dumps.sha256; Type: COMMENT; Schema: dorothy; Owner: postgres
1019
1015
  --
1020
1016
 
1021
- COMMENT ON COLUMN sightings.sensor IS '
1022
- ';
1017
+ COMMENT ON COLUMN traffic_dumps.sha256 IS 'SHA256 checksum hash';
1023
1018
 
1024
1019
 
1025
1020
  --
@@ -1056,42 +1051,14 @@ CREATE SEQUENCE whois_id_seq
1056
1051
  CACHE 1;
1057
1052
 
1058
1053
 
1059
- ALTER TABLE dorothy.whois_id_seq OWNER TO postgres;
1060
-
1061
- --
1062
- -- Name: whois_id_seq; Type: SEQUENCE OWNED BY; Schema: dorothy; Owner: postgres
1063
- --
1064
-
1065
- ALTER SEQUENCE whois_id_seq OWNED BY whois.id;
1066
-
1067
-
1068
- --
1069
- -- Name: whois_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
1070
- --
1071
-
1072
- SELECT pg_catalog.setval('whois_id_seq', 1, false);
1073
-
1074
-
1075
-
1076
-
1077
-
1078
- --
1079
- -- Name: sys_procs; Type: TABLE; Schema: dorothy; Owner: postgres; Tablespace:
1080
- --
1081
-
1082
- CREATE TABLE sys_procs (
1083
- analysis_id integer NOT NULL,
1084
- pid integer NOT NULL,
1085
- name character varying,
1086
- owner character varying,
1087
- "cmdLine" character varying,
1088
- "startTime" timestamp without time zone,
1089
- "endTime" timestamp without time zone,
1090
- "exitCode" integer
1091
- );
1092
-
1093
-
1094
- ALTER TABLE dorothy.sys_procs OWNER TO postgres;
1054
+ ALTER TABLE dorothy.whois_id_seq OWNER TO postgres;
1055
+
1056
+ --
1057
+ -- Name: whois_id_seq; Type: SEQUENCE OWNED BY; Schema: dorothy; Owner: postgres
1058
+ --
1059
+
1060
+ ALTER SEQUENCE whois_id_seq OWNED BY whois.id;
1061
+
1095
1062
 
1096
1063
  --
1097
1064
  -- Name: id; Type: DEFAULT; Schema: dorothy; Owner: postgres
@@ -1167,24 +1134,39 @@ ALTER TABLE ONLY sandboxes ALTER COLUMN id SET DEFAULT nextval('sandboxes_id_seq
1167
1134
  -- Name: id; Type: DEFAULT; Schema: dorothy; Owner: postgres
1168
1135
  --
1169
1136
 
1170
- ALTER TABLE ONLY sensors ALTER COLUMN id SET DEFAULT nextval('sensors_id_seq'::regclass);
1137
+ ALTER TABLE ONLY whois ALTER COLUMN id SET DEFAULT nextval('whois_id_seq'::regclass);
1171
1138
 
1172
1139
 
1173
1140
  --
1174
- -- Name: id; Type: DEFAULT; Schema: dorothy; Owner: postgres
1141
+ -- Data for Name: analyses; Type: TABLE DATA; Schema: dorothy; Owner: postgres
1175
1142
  --
1176
1143
 
1177
- ALTER TABLE ONLY whois ALTER COLUMN id SET DEFAULT nextval('whois_id_seq'::regclass);
1144
+ COPY analyses (id, sample, sandbox, traffic_dump, date, queue_id) FROM stdin;
1145
+ \.
1178
1146
 
1179
1147
 
1180
1148
  --
1181
- -- Data for Name: analyses; Type: TABLE DATA; Schema: dorothy; Owner: postgres
1149
+ -- Name: analyses_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
1182
1150
  --
1183
1151
 
1184
- COPY analyses (id, sample, sandbox, traffic_dump, date) FROM stdin;
1152
+ SELECT pg_catalog.setval('analyses_id_seq', 1, false);
1153
+
1154
+
1155
+ --
1156
+ -- Data for Name: analysis_queue; Type: TABLE DATA; Schema: dorothy; Owner: postgres
1157
+ --
1158
+
1159
+ COPY analysis_queue (id, date, "binary", priority, profile, source, "user", filename, status, sighting) FROM stdin;
1185
1160
  \.
1186
1161
 
1187
1162
 
1163
+ --
1164
+ -- Name: appdata_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
1165
+ --
1166
+
1167
+ SELECT pg_catalog.setval('appdata_id_seq', 1, false);
1168
+
1169
+
1188
1170
  --
1189
1171
  -- Data for Name: asns; Type: TABLE DATA; Schema: dorothy; Owner: postgres
1190
1172
  --
@@ -1193,6 +1175,43 @@ COPY asns (handle, owner, country, confidence, id) FROM stdin;
1193
1175
  \.
1194
1176
 
1195
1177
 
1178
+ --
1179
+ -- Name: asns_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
1180
+ --
1181
+
1182
+ SELECT pg_catalog.setval('asns_id_seq', 1, false);
1183
+
1184
+
1185
+ --
1186
+ -- Data for Name: av_signs; Type: TABLE DATA; Schema: dorothy; Owner: postgres
1187
+ --
1188
+
1189
+ COPY av_signs (id, av_name, signature, version, updated) FROM stdin;
1190
+ \.
1191
+
1192
+
1193
+ --
1194
+ -- Data for Name: cfg_chk; Type: TABLE DATA; Schema: dorothy; Owner: postgres
1195
+ --
1196
+
1197
+ COPY cfg_chk (id, conf_file, md5_chksum, added, last_modified) FROM stdin;
1198
+ \.
1199
+
1200
+
1201
+ --
1202
+ -- Name: cfg_chk_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
1203
+ --
1204
+
1205
+ SELECT pg_catalog.setval('cfg_chk_id_seq', 1, false);
1206
+
1207
+
1208
+ --
1209
+ -- Name: connections_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
1210
+ --
1211
+
1212
+ SELECT pg_catalog.setval('connections_id_seq', 1, false);
1213
+
1214
+
1196
1215
  --
1197
1216
  -- Data for Name: dns_data; Type: TABLE DATA; Schema: dorothy; Owner: postgres
1198
1217
  --
@@ -1201,6 +1220,13 @@ COPY dns_data (id, name, class, qry, ttl, flow, address, data, type, is_sinkhole
1201
1220
  \.
1202
1221
 
1203
1222
 
1223
+ --
1224
+ -- Name: dns_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
1225
+ --
1226
+
1227
+ SELECT pg_catalog.setval('dns_id_seq', 1, false);
1228
+
1229
+
1204
1230
  --
1205
1231
  -- Data for Name: downloads; Type: TABLE DATA; Schema: dorothy; Owner: postgres
1206
1232
  --
@@ -1209,14 +1235,29 @@ COPY downloads (sample, flow, path, filename) FROM stdin;
1209
1235
  \.
1210
1236
 
1211
1237
 
1238
+ --
1239
+ -- Data for Name: email_receivers; Type: TABLE DATA; Schema: dorothy; Owner: postgres
1240
+ --
1241
+
1242
+ COPY email_receivers (address, email_id, mail_field) FROM stdin;
1243
+ \.
1244
+
1245
+
1212
1246
  --
1213
1247
  -- Data for Name: emails; Type: TABLE DATA; Schema: dorothy; Owner: postgres
1214
1248
  --
1215
1249
 
1216
- COPY emails ("from", "to", subject, data, id, flow, hcmd, hcont, rcode, rcont) FROM stdin;
1250
+ COPY emails ("from", subject, data, id, flow, hcmd, hcont, rcode, rcont, date, message_id, has_attachment, charset, body_sha256, forwarded_by) FROM stdin;
1217
1251
  \.
1218
1252
 
1219
1253
 
1254
+ --
1255
+ -- Name: emails_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
1256
+ --
1257
+
1258
+ SELECT pg_catalog.setval('emails_id_seq', 1, false);
1259
+
1260
+
1220
1261
  --
1221
1262
  -- Data for Name: flows; Type: TABLE DATA; Schema: dorothy; Owner: postgres
1222
1263
  --
@@ -1241,6 +1282,13 @@ COPY geoinfo (id, longlat, country, city, "last-update", asn) FROM stdin;
1241
1282
  \.
1242
1283
 
1243
1284
 
1285
+ --
1286
+ -- Name: geoinfo_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
1287
+ --
1288
+
1289
+ SELECT pg_catalog.setval('geoinfo_id_seq', 1, false);
1290
+
1291
+
1244
1292
  --
1245
1293
  -- Data for Name: host_ips; Type: TABLE DATA; Schema: dorothy; Owner: postgres
1246
1294
  --
@@ -1249,6 +1297,13 @@ COPY host_ips (ip, geoinfo, sbl, uptime, is_online, whois, zone, last_update, id
1249
1297
  \.
1250
1298
 
1251
1299
 
1300
+ --
1301
+ -- Name: host_ips_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
1302
+ --
1303
+
1304
+ SELECT pg_catalog.setval('host_ips_id_seq', 1, false);
1305
+
1306
+
1252
1307
  --
1253
1308
  -- Data for Name: host_roles; Type: TABLE DATA; Schema: dorothy; Owner: postgres
1254
1309
  --
@@ -1281,14 +1336,35 @@ COPY irc_data (id, flow, data, incoming) FROM stdin;
1281
1336
  \.
1282
1337
 
1283
1338
 
1339
+ --
1340
+ -- Name: irc_data_connection_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
1341
+ --
1342
+
1343
+ SELECT pg_catalog.setval('irc_data_connection_seq', 1, false);
1344
+
1345
+
1284
1346
  --
1285
1347
  -- Data for Name: malwares; Type: TABLE DATA; Schema: dorothy; Owner: postgres
1286
1348
  --
1287
1349
 
1288
- COPY malwares (bin, family, vendor, version, rate, update, detected) FROM stdin;
1350
+ COPY malwares (bin, rate, detected, date, link, id) FROM stdin;
1289
1351
  \.
1290
1352
 
1291
1353
 
1354
+ --
1355
+ -- Name: malwares_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
1356
+ --
1357
+
1358
+ SELECT pg_catalog.setval('malwares_id_seq', 0, false);
1359
+
1360
+
1361
+ --
1362
+ -- Name: queue_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
1363
+ --
1364
+
1365
+ SELECT pg_catalog.setval('queue_id_seq', 1, false);
1366
+
1367
+
1292
1368
  --
1293
1369
  -- Data for Name: reports; Type: TABLE DATA; Schema: dorothy; Owner: postgres
1294
1370
  --
@@ -1297,6 +1373,13 @@ COPY reports (id, sandbox, sample, data) FROM stdin;
1297
1373
  \.
1298
1374
 
1299
1375
 
1376
+ --
1377
+ -- Name: reports_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
1378
+ --
1379
+
1380
+ SELECT pg_catalog.setval('reports_id_seq', 1, false);
1381
+
1382
+
1300
1383
  --
1301
1384
  -- Data for Name: roles; Type: TABLE DATA; Schema: dorothy; Owner: postgres
1302
1385
  --
@@ -1306,11 +1389,19 @@ COPY roles (id, type, comment) FROM stdin;
1306
1389
  1 cc-irc \N
1307
1390
  2 SPAM \N
1308
1391
  3 cc-drop \N
1309
- 5 cc-support \N
1310
1392
  4 unknown \N
1393
+ 5 cc-support \N
1394
+ 6 phishing \N
1311
1395
  \.
1312
1396
 
1313
1397
 
1398
+ --
1399
+ -- Name: roles_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
1400
+ --
1401
+
1402
+ SELECT pg_catalog.setval('roles_id_seq', 1, false);
1403
+
1404
+
1314
1405
  --
1315
1406
  -- Data for Name: samples; Type: TABLE DATA; Schema: dorothy; Owner: postgres
1316
1407
  --
@@ -1323,26 +1414,52 @@ COPY samples (sha256, size, path, filename, md5, long_type) FROM stdin;
1323
1414
  -- Data for Name: sandboxes; Type: TABLE DATA; Schema: dorothy; Owner: postgres
1324
1415
  --
1325
1416
 
1326
- COPY sandboxes (id, hostname, type, "OS", version, os_lang, ipaddress, username, password, is_available) FROM stdin;
1417
+ COPY sandboxes (id, hostname, sandbox_type, os, version, os_lang, ipaddress, username, password, is_available) FROM stdin;
1327
1418
  \.
1328
1419
 
1329
1420
 
1330
1421
  --
1331
- -- Data for Name: sensors; Type: TABLE DATA; Schema: dorothy; Owner: postgres
1422
+ -- Name: sandboxes_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
1423
+ --
1424
+
1425
+ SELECT pg_catalog.setval('sandboxes_id_seq', 1, false);
1426
+
1427
+
1428
+ --
1429
+ -- Data for Name: sightings; Type: TABLE DATA; Schema: dorothy; Owner: postgres
1332
1430
  --
1333
1431
 
1334
- COPY sensors (id, name, host, type) FROM stdin;
1335
- 0 hp1-dionaea 0 lowint-honeypot
1336
- 2 userinput 0 unknow
1337
- 1 ztracker 0 external-source
1432
+ COPY sightings (sample, sensor, date, id, src_email) FROM stdin;
1338
1433
  \.
1339
1434
 
1340
1435
 
1341
1436
  --
1342
- -- Data for Name: sightings; Type: TABLE DATA; Schema: dorothy; Owner: postgres
1437
+ -- Name: sightings_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
1438
+ --
1439
+
1440
+ SELECT pg_catalog.setval('sightings_id_seq', 1, false);
1441
+
1442
+
1443
+ --
1444
+ -- Data for Name: sources; Type: TABLE DATA; Schema: dorothy; Owner: postgres
1445
+ --
1446
+
1447
+ COPY sources (id, sname, stype, disabled, host, geo, added, last_modified, localdir) FROM stdin;
1448
+ \.
1449
+
1450
+
1451
+ --
1452
+ -- Name: sources_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
1453
+ --
1454
+
1455
+ SELECT pg_catalog.setval('sources_id_seq', 1, false);
1456
+
1457
+
1458
+ --
1459
+ -- Data for Name: sys_procs; Type: TABLE DATA; Schema: dorothy; Owner: postgres
1343
1460
  --
1344
1461
 
1345
- COPY sightings (sample, sensor, date, traffic_dump) FROM stdin;
1462
+ COPY sys_procs (analysis_id, pid, name, owner, "cmdLine", "startTime", "endTime", "exitCode") FROM stdin;
1346
1463
  \.
1347
1464
 
1348
1465
 
@@ -1351,7 +1468,7 @@ COPY sightings (sample, sensor, date, traffic_dump) FROM stdin;
1351
1468
  --
1352
1469
 
1353
1470
  COPY traffic_dumps (sha256, size, pcapr_id, "binary", parsed) FROM stdin;
1354
- EMPTYPCAP 0 ffff ffff true
1471
+ EMPTYPCAP 0 fffffff ffff t
1355
1472
  \.
1356
1473
 
1357
1474
 
@@ -1363,6 +1480,13 @@ COPY whois (id, query, data, abuse, "last-update") FROM stdin;
1363
1480
  \.
1364
1481
 
1365
1482
 
1483
+ --
1484
+ -- Name: whois_id_seq; Type: SEQUENCE SET; Schema: dorothy; Owner: postgres
1485
+ --
1486
+
1487
+ SELECT pg_catalog.setval('whois_id_seq', 1, false);
1488
+
1489
+
1366
1490
  --
1367
1491
  -- Name: asns_handle_uq; Type: CONSTRAINT; Schema: dorothy; Owner: postgres; Tablespace:
1368
1492
  --
@@ -1386,6 +1510,22 @@ ALTER TABLE ONLY asns
1386
1510
  ADD CONSTRAINT asns_pk PRIMARY KEY (id);
1387
1511
 
1388
1512
 
1513
+ --
1514
+ -- Name: av_signs_pk; Type: CONSTRAINT; Schema: dorothy; Owner: postgres; Tablespace:
1515
+ --
1516
+
1517
+ ALTER TABLE ONLY av_signs
1518
+ ADD CONSTRAINT av_signs_pk PRIMARY KEY (id, av_name);
1519
+
1520
+
1521
+ --
1522
+ -- Name: cfg_chk_pk_id; Type: CONSTRAINT; Schema: dorothy; Owner: postgres; Tablespace:
1523
+ --
1524
+
1525
+ ALTER TABLE ONLY cfg_chk
1526
+ ADD CONSTRAINT cfg_chk_pk_id PRIMARY KEY (id);
1527
+
1528
+
1389
1529
  --
1390
1530
  -- Name: dns_data_pkey; Type: CONSTRAINT; Schema: dorothy; Owner: postgres; Tablespace:
1391
1531
  --
@@ -1394,6 +1534,14 @@ ALTER TABLE ONLY dns_data
1394
1534
  ADD CONSTRAINT dns_data_pkey PRIMARY KEY (id);
1395
1535
 
1396
1536
 
1537
+ --
1538
+ -- Name: email_rcv_pk; Type: CONSTRAINT; Schema: dorothy; Owner: postgres; Tablespace:
1539
+ --
1540
+
1541
+ ALTER TABLE ONLY email_receivers
1542
+ ADD CONSTRAINT email_rcv_pk PRIMARY KEY (address, email_id, mail_field);
1543
+
1544
+
1397
1545
  --
1398
1546
  -- Name: ftp_data_pkey; Type: CONSTRAINT; Schema: dorothy; Owner: postgres; Tablespace:
1399
1547
  --
@@ -1410,14 +1558,6 @@ ALTER TABLE ONLY geoinfo
1410
1558
  ADD CONSTRAINT geoinfo_pkey PRIMARY KEY (id);
1411
1559
 
1412
1560
 
1413
- --
1414
- -- Name: hash; Type: CONSTRAINT; Schema: dorothy; Owner: postgres; Tablespace:
1415
- --
1416
-
1417
- ALTER TABLE ONLY samples
1418
- ADD CONSTRAINT sha256 PRIMARY KEY (sha256);
1419
-
1420
-
1421
1561
  --
1422
1562
  -- Name: http_data_pkey; Type: CONSTRAINT; Schema: dorothy; Owner: postgres; Tablespace:
1423
1563
  --
@@ -1458,6 +1598,14 @@ ALTER TABLE ONLY host_ips
1458
1598
  ADD CONSTRAINT ip_uniq UNIQUE (ip);
1459
1599
 
1460
1600
 
1601
+ --
1602
+ -- Name: malwares_pk; Type: CONSTRAINT; Schema: dorothy; Owner: postgres; Tablespace:
1603
+ --
1604
+
1605
+ ALTER TABLE ONLY malwares
1606
+ ADD CONSTRAINT malwares_pk PRIMARY KEY (id);
1607
+
1608
+
1461
1609
  --
1462
1610
  -- Name: pk_connection; Type: CONSTRAINT; Schema: dorothy; Owner: postgres; Tablespace:
1463
1611
  --
@@ -1481,13 +1629,23 @@ ALTER TABLE ONLY host_ips
1481
1629
  ALTER TABLE ONLY irc_data
1482
1630
  ADD CONSTRAINT pk_irc PRIMARY KEY (id);
1483
1631
 
1632
+
1484
1633
  --
1485
- -- Name: procs-pk; Type: CONSTRAINT; Schema: dorothy; Owner: postgres; Tablespace:
1634
+ -- Name: procs-pk; Type: CONSTRAINT; Schema: dorothy; Owner: postgres; Tablespace:
1486
1635
  --
1487
1636
 
1488
1637
  ALTER TABLE ONLY sys_procs
1489
1638
  ADD CONSTRAINT "procs-pk" PRIMARY KEY (analysis_id, pid);
1490
1639
 
1640
+
1641
+ --
1642
+ -- Name: queue_id_pk; Type: CONSTRAINT; Schema: dorothy; Owner: postgres; Tablespace:
1643
+ --
1644
+
1645
+ ALTER TABLE ONLY analysis_queue
1646
+ ADD CONSTRAINT queue_id_pk PRIMARY KEY (id);
1647
+
1648
+
1491
1649
  --
1492
1650
  -- Name: reports_pkey; Type: CONSTRAINT; Schema: dorothy; Owner: postgres; Tablespace:
1493
1651
  --
@@ -1513,11 +1671,28 @@ ALTER TABLE ONLY sandboxes
1513
1671
 
1514
1672
 
1515
1673
  --
1516
- -- Name: sensors_pkey; Type: CONSTRAINT; Schema: dorothy; Owner: postgres; Tablespace:
1674
+ -- Name: sha256; Type: CONSTRAINT; Schema: dorothy; Owner: postgres; Tablespace:
1675
+ --
1676
+
1677
+ ALTER TABLE ONLY samples
1678
+ ADD CONSTRAINT sha256 PRIMARY KEY (sha256);
1679
+
1680
+
1681
+ --
1682
+ -- Name: sightings_pk_id; Type: CONSTRAINT; Schema: dorothy; Owner: postgres; Tablespace:
1517
1683
  --
1518
1684
 
1519
- ALTER TABLE ONLY sensors
1520
- ADD CONSTRAINT sensors_pkey PRIMARY KEY (id);
1685
+ ALTER TABLE ONLY sightings
1686
+ ADD CONSTRAINT sightings_pk_id PRIMARY KEY (id);
1687
+
1688
+
1689
+ --
1690
+ -- Name: sources_id_pk; Type: CONSTRAINT; Schema: dorothy; Owner: postgres; Tablespace:
1691
+ --
1692
+
1693
+ ALTER TABLE ONLY sources
1694
+ ADD CONSTRAINT sources_id_pk PRIMARY KEY (id);
1695
+
1521
1696
 
1522
1697
  --
1523
1698
  -- Name: traffic_dumps_pkey; Type: CONSTRAINT; Schema: dorothy; Owner: postgres; Tablespace:
@@ -1543,6 +1718,13 @@ ALTER TABLE ONLY whois
1543
1718
  ADD CONSTRAINT whois_pkey PRIMARY KEY (id);
1544
1719
 
1545
1720
 
1721
+ --
1722
+ -- Name: fki_analysis_queue_fk_sighting_id; Type: INDEX; Schema: dorothy; Owner: postgres; Tablespace:
1723
+ --
1724
+
1725
+ CREATE INDEX fki_analysis_queue_fk_sighting_id ON analysis_queue USING btree (sighting);
1726
+
1727
+
1546
1728
  --
1547
1729
  -- Name: fki_bin; Type: INDEX; Schema: dorothy; Owner: postgres; Tablespace:
1548
1730
  --
@@ -1585,6 +1767,13 @@ CREATE INDEX fki_dumps ON flows USING btree (traffic_dump);
1585
1767
  CREATE INDEX fki_email ON emails USING btree (flow);
1586
1768
 
1587
1769
 
1770
+ --
1771
+ -- Name: fki_email_rcv_fk_emails_id; Type: INDEX; Schema: dorothy; Owner: postgres; Tablespace:
1772
+ --
1773
+
1774
+ CREATE INDEX fki_email_rcv_fk_emails_id ON email_receivers USING btree (email_id);
1775
+
1776
+
1588
1777
  --
1589
1778
  -- Name: fki_flow; Type: INDEX; Schema: dorothy; Owner: postgres; Tablespace:
1590
1779
  --
@@ -1613,6 +1802,13 @@ CREATE INDEX fki_host ON host_roles USING btree (host_ip);
1613
1802
  CREATE INDEX fki_irc ON irc_data USING btree (flow);
1614
1803
 
1615
1804
 
1805
+ --
1806
+ -- Name: fki_queue_id_fk; Type: INDEX; Schema: dorothy; Owner: postgres; Tablespace:
1807
+ --
1808
+
1809
+ CREATE INDEX fki_queue_id_fk ON analyses USING btree (queue_id);
1810
+
1811
+
1616
1812
  --
1617
1813
  -- Name: fki_sample; Type: INDEX; Schema: dorothy; Owner: postgres; Tablespace:
1618
1814
  --
@@ -1640,6 +1836,7 @@ CREATE INDEX fki_shash ON reports USING btree (sample);
1640
1836
 
1641
1837
  CREATE INDEX fki_tdumps ON analyses USING btree (traffic_dump);
1642
1838
 
1839
+
1643
1840
  --
1644
1841
  -- Name: anal_id-fk; Type: FK CONSTRAINT; Schema: dorothy; Owner: postgres
1645
1842
  --
@@ -1647,6 +1844,23 @@ CREATE INDEX fki_tdumps ON analyses USING btree (traffic_dump);
1647
1844
  ALTER TABLE ONLY sys_procs
1648
1845
  ADD CONSTRAINT "anal_id-fk" FOREIGN KEY (analysis_id) REFERENCES analyses(id);
1649
1846
 
1847
+
1848
+ --
1849
+ -- Name: analysis_queue_fk_sighting_id; Type: FK CONSTRAINT; Schema: dorothy; Owner: postgres
1850
+ --
1851
+
1852
+ ALTER TABLE ONLY analysis_queue
1853
+ ADD CONSTRAINT analysis_queue_fk_sighting_id FOREIGN KEY (sighting) REFERENCES sightings(id);
1854
+
1855
+
1856
+ --
1857
+ -- Name: av_signs_fk; Type: FK CONSTRAINT; Schema: dorothy; Owner: postgres
1858
+ --
1859
+
1860
+ ALTER TABLE ONLY av_signs
1861
+ ADD CONSTRAINT av_signs_fk FOREIGN KEY (id) REFERENCES malwares(id);
1862
+
1863
+
1650
1864
  --
1651
1865
  -- Name: dest_ip; Type: FK CONSTRAINT; Schema: dorothy; Owner: postgres
1652
1866
  --
@@ -1671,6 +1885,14 @@ ALTER TABLE ONLY flows
1671
1885
  ADD CONSTRAINT dumps FOREIGN KEY (traffic_dump) REFERENCES traffic_dumps(sha256);
1672
1886
 
1673
1887
 
1888
+ --
1889
+ -- Name: email_rcv_fk_emails_id; Type: FK CONSTRAINT; Schema: dorothy; Owner: postgres
1890
+ --
1891
+
1892
+ ALTER TABLE ONLY email_receivers
1893
+ ADD CONSTRAINT email_rcv_fk_emails_id FOREIGN KEY (email_id) REFERENCES emails(id);
1894
+
1895
+
1674
1896
  --
1675
1897
  -- Name: fk_bin; Type: FK CONSTRAINT; Schema: dorothy; Owner: postgres
1676
1898
  --
@@ -1735,6 +1957,14 @@ ALTER TABLE ONLY host_roles
1735
1957
  ADD CONSTRAINT host FOREIGN KEY (host_ip) REFERENCES host_ips(ip);
1736
1958
 
1737
1959
 
1960
+ --
1961
+ -- Name: queue_id_fk; Type: FK CONSTRAINT; Schema: dorothy; Owner: postgres
1962
+ --
1963
+
1964
+ ALTER TABLE ONLY analyses
1965
+ ADD CONSTRAINT queue_id_fk FOREIGN KEY (queue_id) REFERENCES analysis_queue(id);
1966
+
1967
+
1738
1968
  --
1739
1969
  -- Name: role_fkey; Type: FK CONSTRAINT; Schema: dorothy; Owner: postgres
1740
1970
  --
@@ -1743,6 +1973,14 @@ ALTER TABLE ONLY host_roles
1743
1973
  ADD CONSTRAINT role_fkey FOREIGN KEY (role) REFERENCES roles(id);
1744
1974
 
1745
1975
 
1976
+ --
1977
+ -- Name: sample_fk; Type: FK CONSTRAINT; Schema: dorothy; Owner: postgres
1978
+ --
1979
+
1980
+ ALTER TABLE ONLY analysis_queue
1981
+ ADD CONSTRAINT sample_fk FOREIGN KEY ("binary") REFERENCES samples(sha256);
1982
+
1983
+
1746
1984
  --
1747
1985
  -- Name: samples; Type: FK CONSTRAINT; Schema: dorothy; Owner: postgres
1748
1986
  --
@@ -1760,19 +1998,27 @@ ALTER TABLE ONLY sightings
1760
1998
 
1761
1999
 
1762
2000
  --
1763
- -- Name: sensor_fkey; Type: FK CONSTRAINT; Schema: dorothy; Owner: postgres
2001
+ -- Name: shash; Type: FK CONSTRAINT; Schema: dorothy; Owner: postgres
2002
+ --
2003
+
2004
+ ALTER TABLE ONLY reports
2005
+ ADD CONSTRAINT shash FOREIGN KEY (sample) REFERENCES samples(sha256);
2006
+
2007
+
2008
+ --
2009
+ -- Name: sightings_fk_emails; Type: FK CONSTRAINT; Schema: dorothy; Owner: postgres
1764
2010
  --
1765
2011
 
1766
2012
  ALTER TABLE ONLY sightings
1767
- ADD CONSTRAINT sensor_fkey FOREIGN KEY (sensor) REFERENCES sensors(id);
2013
+ ADD CONSTRAINT sightings_fk_emails FOREIGN KEY (src_email) REFERENCES emails(id);
1768
2014
 
1769
2015
 
1770
2016
  --
1771
- -- Name: shash; Type: FK CONSTRAINT; Schema: dorothy; Owner: postgres
2017
+ -- Name: sightings_fk_sources_id; Type: FK CONSTRAINT; Schema: dorothy; Owner: postgres
1772
2018
  --
1773
2019
 
1774
- ALTER TABLE ONLY reports
1775
- ADD CONSTRAINT shash FOREIGN KEY (sample) REFERENCES samples(sha256);
2020
+ ALTER TABLE ONLY sightings
2021
+ ADD CONSTRAINT sightings_fk_sources_id FOREIGN KEY (sensor) REFERENCES sources(id);
1776
2022
 
1777
2023
 
1778
2024
  --
@@ -1800,7 +2046,7 @@ REVOKE ALL ON SCHEMA dorothy FROM postgres;
1800
2046
  GRANT ALL ON SCHEMA dorothy TO postgres;
1801
2047
  GRANT ALL ON SCHEMA dorothy TO PUBLIC;
1802
2048
 
1803
-
1804
2049
  --
1805
2050
  -- PostgreSQL database dump complete
1806
2051
  --
2052
+