File: ChangeLog

package info (click to toggle)
fapolicyd 1.4.3-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,328 kB
  • sloc: ansic: 15,255; makefile: 268; sh: 132; python: 26
file content (354 lines) | stat: -rw-r--r-- 13,755 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
1.4.3
- Fix missing allow decision in fapolicyd-cli --test-filter
- Update the trust-db filter rules to add and drop some things
- Add new magic detections and drop a lot of old rules
- Performance improvement looking up mime-types
- Various code cleanups, hardening, and performance optimizing
- Classify ELF files with an unknown interpreter as application/x-bad-elf
- Consolidate the fapolicyd-cli return codes
- Add integrity value to state report

1.4.2
- Correct identification of kworker threads
- Fix various threading, initialization, and function attribute issues
- Add support for SHA512, replace SHA256HASH with FILE_HASH
- Add --filter option to fapolicyd-cli --file
- Update bash completions for new options
- Add an early subject cache evictions counter to the state report
- Add CPU cores to the state report
- Move mounts update to it's own thread to prevent deadlocks with LUKS
- Add db_max_size = auto support so db size is managed by the daemon
- In rpm backend, drop any file from trustdb that doesn't verify size or hash

1.4.1
- Fix deadlock on reconfigure
- On reconfigure, update the trust list and reload the rpm filter

1.4
- Add ignore_mounts option to fapolicyd to not watch some mount points
- add --check-ignore_mounts option to fapolicyd-cli
- Fix overlay filesystem detection in fapolicyd-cli --check-watch_fs
- Fix fapolicyd-cli --check-path so that it properly detects symlinked dirs
- In fapolicyd-cli, add --verbose flag to --check-ignore_mounts
- Watch the /run partition
- Update some config items in SIGHUP
- Clarify warnings for fapolicyd-cli --check-trustdb
- All trust source backend checks/updates performance improvement
- Fix line too long error when last line of conf file had no newline

1.3.7
- Refactor queue to unify enqueue and dequeue and make it lockless
- Improve text/x-shellscript detection
- Fix bug in fapolicyd-cli --ftype detection which was introduced in 1.3.6
- Add watched mount points to state report - important since they can change
- Warn when object cache eviction ratios are high
- Use uthash for trust file backend duplication detection
- Update subject identity collection to gather all uid/gid components

1.3.6
- Increase the default subject cache size
- Move fapolicyd-rpm-loader to bin directory
- Suppress the subject cache eviction for scripts run by interpreters
- Fix decriptor leak in previous release - only leaks on rpminstall/delete
- Improve performance of filter code
- Drop 'device' keyword for subject part of a rule
- Add documentation to fapolicyd-filter.conf for better understanding
- Fix build flags for Debian to include libmd
- Add --test-filter to fapolicy-cli to help test filter rules
- Fix bug in the filter that was allowing unexpected files though the filter
- Drop 2 more kinds of files from the rpm filter: html and md

1.3.5
- Raise default value for db_max_size
- Increase buffer size for reading process groups
- Pid read buffer size is defined using define rather than const
- Allow override of mounts file
- Fix leak and problematic memory managament
- Fix creation of RUN_DIR because it breaks rpm verify
- Add Microsoft Windows PE MIME magic definition
- Microsoft Windows PE rules
- Optimize path allocation
- Revert change to report interval logic (#325)
- Ensure fagenrules handles incomplete lines
- Describe how to handle nss-user-lookup correctly
- Fix normal pattern handling
- Improve AVL test
- Install gawk in test workflows
- Cleanup and document filesystem code
- Add AGENTS.md
- Revert "Fix for rpmdb with SQLite3 backend"
- Fix rpmdb locking issues by loading via separate process
- Fix an infinite loop (#345)
- Use memfd instead of pipe (#346)
- fapolicyd-cli --check-path  doesn't exit
- Fix null argv when spawning fapolicyd-rpm-loader (#343)
- Fix some concurrency issues
- Update comments in lru_evict header
- Update fd_fgets code
- On exit due to poll error, try to stop and save the database
- Improve update thread synchronization in fapolicyd
- Modify rpm_load_list for stop checks
- Fix a TODO that notes NULL should be returned
- Add some error cleanup in filter_load_file
- Increase buffer size when reading the PT_INTERP string in gather_elf()
- Add debug logs for STATE_LD_SO decisions
- Remove volatile qualifier from atomic types
- Add MEM_MMAP_FILE storage type for fd_fgets
- Fix segfault when writing to readonly memory
- Switch rpm-backend to mmap based list parsing
- Add memory statistics report
- To allow sealing, need to create with MFD_ALLOW_SEALING
- Ease SHA strings allocated on each iteration
- Skip to add non regular files to trustdb (#333)
- Fix segfault when socket is inside of the directory (#355)
- Subject cache eviction warning
- No eviction warnings on shutdown

1.3.4
- Fix race on fanotify fd on termination
- Improve efficiency loading the rpm database into trust db
- Fix issue where lock from rpmdb(Sqlite3 backend) is dropped when it shouldn't

1.3.3
- Improve dpkg support (Stephen Tridgell)
- Fix issue when no initial mount points (wjhunter3)
- Add RuntimeDirectory to the systemd service file
- Update code to limit the number group id's logged
- Improve mount point detection code
- Double the amount of groups a user could have (32)
- Small performance improvement by not double rewinding descriptor
- Improve logging: make stderr output more colourful; add timestamps (Kangie)
- Identify ruleset being loaded by a sha hash of the rule file (John Wass)
- Add 22-buildroot.rules to use if the machine builds software
- Add --with-asan for configure

1.3.2
- Remove LimitNOFILE and instead setrlimit more carefully
- Sync q_size to the documentation
- Fix multiple memory leaks

1.3.1
- Fix not complete patch for filter file renaming

1.3
- Be consistent in updating and removing file system marks
- Add escaping to /proc/mount entries
- Revise escaping of trust files
- Add LimitNOFILE to the service file
- Add dpkg support (Stephen Tridgell)
- Add support for runtime reloading of rules

1.2
- On shutdown when running reports, if trust db empty warn (Nobuhiro Iwamatsu)
- Extend state machine to skip opens after exec until dyn linker found
- Control filtering of unwanted files in rpm backend with config file
- Add support for logging rule number of decision in the audit event

1.1.7
- Re-add dropped FAN_MARK_MOUNT for monitoring events (Steven Brzozowski)
- Make some updates to allow running without an rpm back successful

1.1.6
- Correct the optional inclusion of code based on HAVE_DECL_FAN_MARK_FILESYSTEM

1.1.5
- If in debug mode, do not write audit events to audit system
- Update filesystems we dont care about
- Add --check-path to fapolicyd-cli to locate missed files
- Detect trusted static apps running programs by ld.so
- Add support for using FAN_MARK_FILESYSTEM to see bind mounted accesses

1.1.4
- Fix descriptor leak on enqueue failure (Steven Brzozowski)
- Switch SHA256 hashing to openssl
- Add --check-status to fapolicyd-cli
- If fapolicyd is already running, exit
- Do trust db size check on all fapolicyd updates
- Add bash completions

1.1.3
- Replace snprintf integer to char conversion with uitoa function
- Update the locking between the main and decision threads
- Speedup sha256 hashing by mmap'ing the object
- Add OOMScoreAdjust to fapolicyd.service

1.1.2
- Release the update lock if starting trust db read operations errors
- CVE-2022-1117 fapolicyd incorrectly detects the run time linker
- Add the btrfs to the watch_fs config option
- Fix a problem tracking trusted static apps that launch other apps

1.1.1
- Reorder patterns and loopholes in rule.d
- Add support for subject ppid rule matching
- Add support for reloading the trust database from SIGHUP

1.1
- Add support for a rules.d directory
- Add --check-config, --check-watch_fs, and --check-trustdb to fapolicyd-cli
- Add libgcrypt initialization
- Break up all the rules so they can be installed in rules.d
- Add text/x-nftables magic
- Add interpreter for s390x, ppc64le

1.0.4
- Tighten up ELF detection
- Add support for multiple trust files in a trust.d directory
- Add troubleshooting info for when the trust db is full
- In permissive mode, allow audit events when rules say to log it
- Add new rpm_sha256_only config option to the daemon
- Escape whitespaces in file names put into the file trust database

1.0.3
- Add startup and shutdown syslog message
- fapolicyd-cli open trustdb without locking to prevent daemon hang
- If db migration fails due to unlinking problem, fail startup
- Do not exit on fanotify_event read failure
- Add application/javascript to Language macro

1.0.2
- Add Group ID support for rules
- Add test cases for avl library
- Update support for multiple copies of a trusted executable
- Add support for dynamic trust updating

1.0.1
- If trust db is empty when fapolicyd-cli dumps it, say its empty
- Make fapolicyd-cli buffer bigger for rule listing
- Fix ignored db errors from check_trust_database
- Adjust ELF x-object detection
- Do device mime-type detection in-house instead of libmagic
- Allow arbitrarily large group statements
- Fix logging of object trust
- Correct denial accounting
- Add new form of LD_PRELOAD pattern detection
- Fix mount reading routine to get it all
- Update languages kept from /usr/share

1.0
- Add file size, IMA, and sha256 based integrity checking
- Add ability to send decision results to syslog
- Add ability to define the format of the syslog event
- Add support for sets in rules
- Add support for dumping the trustdb by fapolicyd-cli
- Print a warning if rpm backend doesn't have a sha256 hash
- In rpm backend, add back javascript from /usr/share

0.9.4
- Fix pattern detection in light of EXEC_PERM events
- Conserve memory by dropping unneeded lists after startup
- Do full reset of subject credentials when execve finishes 
- Drop files in /usr/share, /usr/src, and /usr/include to reduce memory use
- Add error checking of the trust database
- Fixed threading issue during rpm update
- Add option to delete the trust database to cli, --delete-db
- Add option to cli to add/delete/update the file trust database

0.9.3
- In fapolicyd-cli, add a --list option to list rules
- Change lmdb to use writable mmap for startup performance improvment
- Change the database to support duplicate keys
- Provide a magic override file and use it during file inspection
- Update rules to match new magic overrides
- Add --ftype command to fapolicyd-cli
- Add database statistics to usage report

0.9.2
- Split codebase into daemon, library and cli
- Add Admin defined trust database
- Make use of librpm optional
- Updated the man pages
- Setting boost, queue, user, and group on the command line are deprecated

0.9.1
- Make watched filesystems configurable
- Improve ELF file classification
- Expose file type in debug output
- Update rules for ansible and dracut
- Skip config files in database check
- Expand definition of doc files
- Create new rule format exposing Subj and Obj trust
- Redesign the rules for trust based rules

0.9
- Convert hashes to lowercase like sha256sum outputs
- Use FAN_OPEN_EXEC_PERM for subject cache management
- Add static pattern detection
- Performance improvements
- Switch from static mounts to hotplug configuration of mount points
- Dont collect documentation in trust database
- When path is longer than lmdb can store, use a sha512 hash (Attila Lakatos)
- Cache subject trustworthiness information after lookup (Radovan Sroka)

0.8.10
- Fix segfault for rules whose subject is number oriented
- When database problem is found on startup, rebuild database
- Don't flush empty caches on database rebuild
- Revise default settings for better performance

0.8.9
- Systemd usage updates
- File permission adjustments based on selinux policy review
- Fix unterminated reads of auid & sessionid values
- Deprecate ld_preload pattern until new method exists

0.8.8
- Add FAN_OPEN_EXEC_PERM Support (Matthew Bobrowski)
- Man page updates
- Add dnf plugin to sync database when rpms install

0.8.7
- If the path has a top level symlinked dir, retry db lookup without /usr
- Fix parsing of command line options (Matthew Bobrowski)
- Add more validation of mount types (Matthew Bobrowski)
- Elf parser updates (Matthew Bobrowski)

0.8.6
- Update object hash calculation to better determine uniqueness
- Override rpm's signal handling
- Use private database as trust store
- Update the rules for python 3.6 and remove systemd exclusion
- Rename exec_dir rule option unpackaged to untrusted
- Remove unneeded rpm code
- Add support for daemon config file
- Allow database size to be configurable
- Add permissive setting, q_size, and q_depth to usage report

0.8.5
- Update spec file and license info

0.8.4
- Mask signals from deadman's switch
- Reinstate strong umask before writing report
- Use pw_gid to set the group when changing gid
- Allow the use of account names for auid & uid in rules
- Support group option on command line

0.8.3
- Add audit support for the linux-4.15 kernel
- Don't close report descriptor in report
- Fix busy loop to use poll as originally intended
- Relax timing on deadman's switch

0.8.2
- Add seccomp filter support
- Fix leaked descriptor in exe_type processing
- Add LRU cache for subject and objects
- Create fapolicyd user on install
- Update systemd service file to run as user fapolicyd
- Adjust inter-thread queue default size
- Write statistics on shutdown
- Change attribute access to hash table
- Deny access to stale pid's or fd's
- Add new pattern subject detection
- Add executable report on shutdown
- Add --no-details  to suppress file/exe names on shutdown report

0.8.1
- Documentation updates
- Update rules
- Output how many rules are loaded in debug mode
- Add user commandline option

0.8
- Initial public release