Greenbone Vulnerability Manager  21.4.5
manage_sql_secinfo.h
1 /* Copyright (C) 2010-2021 Greenbone Networks GmbH
2  *
3  * SPDX-License-Identifier: AGPL-3.0-or-later
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU Affero General Public License as
7  * published by the Free Software Foundation, either version 3 of the
8  * License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU Affero General Public License for more details.
14  *
15  * You should have received a copy of the GNU Affero General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  */
18 
19 /*
20  * @file manage_sql_secinfo.h
21  * @brief Manager Manage library: SQL backend headers.
22  */
23 
24 #include <glib.h>
25 #ifndef _GVMD_MANAGE_SQL_SECINFO_H
26 #define _GVMD_MANAGE_SQL_SECINFO_H
27 
31 #define SECINFO_SQL_RESULT_HAS_CERT_BUNDS \
32  "(SELECT EXISTS (SELECT * FROM cert_bund_cves" \
33  " WHERE cve_name IN (SELECT ref_id" \
34  " FROM vt_refs" \
35  " WHERE vt_oid = results.nvt" \
36  " AND type = 'cve')))"
37 
41 #define SECINFO_SQL_RESULT_CERT_BUNDS \
42  "(ARRAY (SELECT name::text" \
43  " FROM cert_bund_advs" \
44  " WHERE id IN (SELECT adv_id FROM cert_bund_cves" \
45  " WHERE cve_name IN (SELECT ref_id" \
46  " FROM vt_refs" \
47  " WHERE vt_oid = results.nvt" \
48  " AND type = 'cve'))" \
49  " ORDER BY name DESC))"
50 
54 #define SECINFO_SQL_RESULT_HAS_DFN_CERTS \
55  "(SELECT EXISTS (SELECT * FROM dfn_cert_cves" \
56  " WHERE cve_name IN (SELECT ref_id" \
57  " FROM vt_refs" \
58  " WHERE vt_oid = results.nvt" \
59  " AND type = 'cve')))"
60 
64 #define SECINFO_SQL_RESULT_DFN_CERTS \
65  "(ARRAY (SELECT name::text" \
66  " FROM dfn_cert_advs" \
67  " WHERE id IN (SELECT adv_id FROM dfn_cert_cves" \
68  " WHERE cve_name IN (SELECT ref_id" \
69  " FROM vt_refs" \
70  " WHERE vt_oid = results.nvt" \
71  " AND type = 'cve'))" \
72  " ORDER BY name DESC))"
73 
77 #define CVE_INFO_ITERATOR_FILTER_COLUMNS \
78  { GET_ITERATOR_FILTER_COLUMNS, "cvss_vector", "products", \
79  "description", "published", "severity", NULL }
80 
84 #define CVE_INFO_ITERATOR_COLUMNS \
85  { \
86  GET_ITERATOR_COLUMNS_PREFIX (""), \
87  { "''", "_owner", KEYWORD_TYPE_STRING }, \
88  { "0", NULL, KEYWORD_TYPE_INTEGER }, \
89  { "cvss_vector", NULL, KEYWORD_TYPE_STRING }, \
90  { "products", NULL, KEYWORD_TYPE_STRING }, \
91  { "severity", NULL, KEYWORD_TYPE_DOUBLE }, \
92  { "description", NULL, KEYWORD_TYPE_STRING }, \
93  { "creation_time", "published", KEYWORD_TYPE_INTEGER }, \
94  { NULL, NULL, KEYWORD_TYPE_UNKNOWN } \
95  }
96 
100 #define CPE_INFO_ITERATOR_FILTER_COLUMNS \
101  { GET_ITERATOR_FILTER_COLUMNS, "title", "status", \
102  "deprecated_by_id", "severity", "cves", "nvd_id", \
103  NULL }
104 
108 #define CPE_INFO_ITERATOR_COLUMNS \
109  { \
110  GET_ITERATOR_COLUMNS_PREFIX (""), \
111  { "''", "_owner", KEYWORD_TYPE_STRING }, \
112  { "0", NULL, KEYWORD_TYPE_INTEGER }, \
113  { "title", NULL, KEYWORD_TYPE_STRING }, \
114  { "status", NULL, KEYWORD_TYPE_STRING }, \
115  { "deprecated_by_id", NULL, KEYWORD_TYPE_INTEGER }, \
116  { "severity", NULL, KEYWORD_TYPE_DOUBLE }, \
117  { "cve_refs", "cves", KEYWORD_TYPE_INTEGER }, \
118  { "nvd_id", NULL, KEYWORD_TYPE_INTEGER }, \
119  { NULL, NULL, KEYWORD_TYPE_UNKNOWN } \
120  }
121 
125 #define OVALDEF_INFO_ITERATOR_FILTER_COLUMNS \
126  { GET_ITERATOR_FILTER_COLUMNS, "version", "deprecated", \
127  "class", "title", "description", "file", \
128  "status", "cves", "severity", \
129  NULL }
130 
134 #define OVALDEF_INFO_ITERATOR_COLUMNS \
135  { \
136  GET_ITERATOR_COLUMNS_PREFIX (""), \
137  { "''", "_owner", KEYWORD_TYPE_STRING }, \
138  { "0", NULL, KEYWORD_TYPE_INTEGER }, \
139  { "version", NULL, KEYWORD_TYPE_INTEGER }, \
140  { "deprecated", NULL, KEYWORD_TYPE_INTEGER }, \
141  { "def_class", "class", KEYWORD_TYPE_STRING }, \
142  { "title", NULL, KEYWORD_TYPE_STRING }, \
143  { "description", NULL, KEYWORD_TYPE_STRING }, \
144  { "xml_file", "file", KEYWORD_TYPE_STRING }, \
145  { "status", NULL, KEYWORD_TYPE_STRING }, \
146  { "severity", NULL, KEYWORD_TYPE_DOUBLE }, \
147  { "cve_refs", "cves", KEYWORD_TYPE_INTEGER }, \
148  { NULL, NULL, KEYWORD_TYPE_UNKNOWN } \
149  }
150 
154 #define CERT_BUND_ADV_INFO_ITERATOR_FILTER_COLUMNS \
155  { GET_ITERATOR_FILTER_COLUMNS, "title", "summary", \
156  "cves", "severity", NULL }
157 
161 #define CERT_BUND_ADV_INFO_ITERATOR_COLUMNS \
162  { \
163  GET_ITERATOR_COLUMNS_PREFIX (""), \
164  { "''", "_owner", KEYWORD_TYPE_STRING }, \
165  { "0", NULL, KEYWORD_TYPE_INTEGER }, \
166  { "title", NULL, KEYWORD_TYPE_STRING }, \
167  { "summary", NULL, KEYWORD_TYPE_STRING }, \
168  { "cve_refs", "cves", KEYWORD_TYPE_INTEGER }, \
169  { "severity", NULL, KEYWORD_TYPE_DOUBLE }, \
170  { NULL, NULL, KEYWORD_TYPE_UNKNOWN } \
171  }
172 
176 #define DFN_CERT_ADV_INFO_ITERATOR_FILTER_COLUMNS \
177  { GET_ITERATOR_FILTER_COLUMNS, "title", "summary", \
178  "cves", "severity", NULL }
179 
183 #define DFN_CERT_ADV_INFO_ITERATOR_COLUMNS \
184  { \
185  GET_ITERATOR_COLUMNS_PREFIX (""), \
186  { "''", "_owner", KEYWORD_TYPE_STRING }, \
187  { "0", NULL, KEYWORD_TYPE_INTEGER }, \
188  { "title", NULL, KEYWORD_TYPE_STRING }, \
189  { "summary", NULL, KEYWORD_TYPE_STRING }, \
190  { "cve_refs", "cves", KEYWORD_TYPE_INTEGER }, \
191  { "severity", NULL, KEYWORD_TYPE_DOUBLE }, \
192  { NULL, NULL, KEYWORD_TYPE_UNKNOWN } \
193  }
194 
198 #define SECINFO_COMMIT_SIZE_DEFAULT 0
199 
200 int
202 
203 void
204 manage_sync_scap (sigset_t *);
205 
206 int
207 manage_rebuild_scap (GSList *, const db_conn_info_t *);
208 
209 void
210 manage_sync_cert (sigset_t *);
211 
212 int
214 
215 int
217 
218 int
219 get_secinfo_commit_size ();
220 
221 void
223 
224 #endif /* not _GVMD_MANAGE_SQL_SECINFO_H */
int check_cert_db_version()
Ensure CERT db is at the right version, and in the right mode.
Definition: manage_sql_secinfo.c:4201
void manage_sync_scap(sigset_t *sigmask_current)
Sync the SCAP DB.
Definition: manage_sql_secinfo.c:4910
void manage_sync_cert(sigset_t *sigmask_current)
Sync the CERT DB.
Definition: manage_sql_secinfo.c:4461
int secinfo_feed_version_status(const char *feed_type)
Gets the SCAP or CERT database version status.
Definition: manage_sql_secinfo.c:4143
int check_scap_db_version()
Ensure SCAP db is at the right version, and in the right mode.
Definition: manage_sql_secinfo.c:4477
Data structure for info used to connect to the database.
Definition: manage.h:47
int manage_rebuild_scap(GSList *log_config, const db_conn_info_t *database)
Rebuild part of the SCAP DB.
Definition: manage_sql_secinfo.c:4957
void set_secinfo_commit_size(int new_commit_size)
Set the SecInfo update commit size.
Definition: manage_sql_secinfo.c:4990