1598 Commits

Author SHA1 Message Date
Michael Rash
33234183df [test stuie] fko-wrapper PKT_ID generation + send fuzzing packets back through fko_new_with_data() cycle 2014-05-08 07:46:13 -04:00
Michael Rash
0c544f2690 [server] add --test mode to enable broader fuzzing coverage 2014-05-08 07:35:42 -04:00
Michael Rash
64a4642c47 [server] minor fix to remove unnecessary opts.status check 2014-05-08 07:28:48 -04:00
Michael Rash
7d1ad9a4fa add new test suite conf files 2014-05-08 07:26:18 -04:00
Michael Rash
16b3911091 [test suite] Rijndael HMAC fuzzing support and a few minor test additions 2014-05-08 07:25:47 -04:00
Michael Rash
02ed5f5ad4 [server] add --exit-parse-config option, man page updates (minor formatting change) 2014-05-04 09:17:27 -04:00
Michael Rash
d7e9ae578b [test suite] add digest cache rewrite feature for test coverage, add config line and pcap filter validation tests 2014-05-04 09:16:39 -04:00
Michael Rash
24f9c582bb [test suite] add multi-port access request to python fuzzer 2014-05-04 09:15:44 -04:00
Michael Rash
5f24fc8c5f [server] add --dump-serv-err-codes for test coverage 2014-05-02 22:59:05 -04:00
Michael Rash
11f3e9b8d3 [server] add test coverage for tcp server when FUZZING_INTERFACES is defined 2014-05-02 22:29:03 -04:00
Michael Rash
fb21e3a575 [server] bug fix to handle SPA packets via http 2014-04-29 23:25:31 -04:00
Michael Rash
6dde30bc91 [test suite] significant test coverage update
This commit adds a lot of test coverage support as guided by gcov +
lcov.

Also added the --no-ipt-check-support option to fwknopd (this is only
useful in practice on older Linux distros where 'iptables -C' is not
available, but it helps with test coverage).
2014-04-29 20:54:01 -04:00
Michael Rash
40e14fc400 Merge branch 'spa_encoding_fuzzing' 2014-04-28 23:00:16 -04:00
Michael Rash
964f28efb4 changes since fwknop-2.6.1 2014-04-28 21:20:21 -04:00
Michael Rash
32ae2be9cc updated RPM Release tag to 1 2014-04-28 21:17:13 -04:00
Michael Rash
bd32e40529 changes since 2.6.1 2014-04-28 21:08:49 -04:00
Michael Rash
7442002a89 [libfko] bumped version to 2.0.2 2014-04-28 21:08:27 -04:00
Michael Rash
6dca446868 changes since 2.6.1 2014-04-28 20:43:18 -04:00
Michael Rash
d996c45141 minor 2.6.2 release date change 2014-04-28 20:26:05 -04:00
Michael Rash
000e02f039 changes since 2.6.1 2014-04-26 23:46:40 -04:00
Michael Rash
30f30a91ac bumped version to 2.6.2 2014-04-26 23:43:32 -04:00
Michael Rash
0c70c7db21 ChangeLog for 2.6.2 2014-04-26 23:42:17 -04:00
Michael Rash
add2c913ab [libfko] fix double free bug in SPA parser
This commit fixes a double free condition discovered through the new
python SPA payload fuzzer.  This bug could be triggered in fwknopd with
a malicious SPA payload but only when GnuPG is used.  When Rijndael is
used for SPA packet encryption, this bug cannot be triggered due to an
length/format check towards the end of _rijndael_decrypt().  It should
be noted that only a person in possession of the correct encryption and
authentication GnuPG keys could trigger this bug.
2014-04-26 23:26:36 -04:00
Michael Rash
9901d8a76a [libfko/test suite] add the FUZZING_INTERFACES macro
Add a new fko_set_encoded_data() function gated by #define
FUZZING_INTERFACES to allow encryption and authentication to be bypassed
for fuzzing purposes (and only fuzzing purposes).  The fko-wrapper code
has been extended to process data in the
test/fko-wrapper/fuzz_spa_payloads file, which is created by the new
python fuzzer.  Typical workflow is:

$ cd test/fko-wrapper
$ ../spa_fuzzer.py > fuzz_spa_payloads
$ make fuzzing

(as root):

./test-fwknop.pl  --enable-profile-coverage --enable-fuzzing-interfaces --enable-all --include wrapper

[+] Starting the fwknop test suite...

    args: --enable-profile-coverage --enable-fuzzing-interfaces --enable-all --include wrapper

    Saved results from previous run to: output.last/

    Valgrind mode enabled, will import previous coverage from:
        output.last/valgrind-coverage/

[+] Total test buckets to execute: 2

[Rijndael] [fko-wrapper] multiple libfko calls (with valgrind)......pass (1)
[Rijndael] [fko-wrapper] multiple libfko calls......................pass (2)
[profile coverage] gcov profile coverage............................pass (3)
[valgrind output] [flagged functions] ..............................pass (4)

    Run time: 5.85 minutes

[+] 0/0/0 OpenSSL tests passed/failed/executed
[+] 0/0/0 OpenSSL HMAC tests passed/failed/executed
[+] 4/0/4 test buckets passed/failed/executed
2014-04-26 23:04:44 -04:00
Michael Rash
e1dde1733a [test suite] python fuzzer - more field length variations to hit MAX_SPA_MESSAGE_SIZE 2014-04-26 23:01:47 -04:00
Michael Rash
91a60b8d91 [test suite] libfko wrapper is already called in Rijndael tests 2014-04-26 22:35:57 -04:00
Michael Rash
367424ece5 [test suite] python fuzzer - account for base64 strings that have stripped '=' chars 2014-04-26 22:03:32 -04:00
Michael Rash
e00add778e [test suite] python fuzzer - add fuzzing fields to original fields (interim commit) 2014-04-26 17:03:47 -04:00
Michael Rash
1deccfd005 [test suite] python fuzzer - break out fuzzing sections into dedicated functions 2014-04-24 22:11:04 -04:00
Michael Rash
4b11232249 [test suite] add command mode SPA payload and splicing tests to python fuzzer 2014-04-23 23:31:37 -04:00
Michael Rash
b9e2a42c5c [test suite] support multiple initial SPA payloads in the python fuzzer 2014-04-22 23:48:13 -04:00
Michael Rash
cd8a2493a7 [test suite] python fuzzer additional tests 2014-04-22 23:20:06 -04:00
Michael Rash
b28b8b5de1 [libfko] fix double free bug in SPA parser
This commit fixes a double free condition discovered through the new
python SPA payload fuzzer.  This bug could be triggered in fwknopd with
a malicious SPA payload but only when GnuPG is used.  When Rijndael is
used for SPA packet encryption, this bug cannot be triggered due to an
length/format check towards the end of _rijndael_decrypt().  It should
be noted that only a person in possession of the correct encryption and
authentication GnuPG keys could trigger this bug.
2014-04-22 21:58:09 -04:00
Michael Rash
beb8df4643 [test suite] add python SPA packet payload fuzzer 2014-04-22 21:00:16 -04:00
Michael Rash
63a59bf48b [test suite] add --enable-fuzzing-interfaces, fix profile coverage file handling 2014-04-22 20:58:03 -04:00
Michael Rash
f4a8c0fda8 [libfko] for fuzzing purposes, added fko_set_encoded_data() to bypass encryption and authentication for SPA payloads 2014-04-18 21:39:54 -04:00
Michael Rash
4d167cd7df credit Blair and Tim with MacPorts and Homebrew maintainer status 2014-04-13 21:39:50 -04:00
Michael Rash
f47ceefd1f changes since 2.6.0 2014-04-12 15:25:03 -04:00
Michael Rash
67dd1d5bdd [server] bug fix to allow IP-formatted masks for SOURCE lines in access.conf 2014-04-12 15:21:00 -04:00
Michael Rash
55965dd1a4 minor typo fix 2014-04-12 15:20:31 -04:00
Michael Rash
b243bb4bb7 [client] fix minor memory leak before exit() in parsing invalid time offsets 2014-04-11 22:45:27 -04:00
Michael Rash
2cafdad968 bump version to 2.6.1 2014-04-11 22:41:00 -04:00
Michael Rash
b97484734e [client] fix memory leak introduced in 0ff210099 2014-04-10 23:18:44 -04:00
Michael Rash
b422f1b9a7 [test suite] implement new fwknopd access/fwknopd.conf file writing feature similar to client rc file writing/testing 2014-04-10 23:10:11 -04:00
Michael Rash
c75cbdddef [test suite] add compounded tests for fko-wrapper 2014-04-10 23:08:51 -04:00
Michael Rash
fdb8c890e9 [server] make parse_access_file() exit if there is a variable formatting problem 2014-04-10 23:08:19 -04:00
Michael Rash
4b86edbbe2 [client] ensure to call fko_destroy() on the correct context if encryption mode could not be determined 2014-04-10 23:07:39 -04:00
Michael Rash
f539afc750 [client] make is_rc_param() error condition fatal 2014-04-10 20:48:05 -04:00
Michael Rash
55d1ee3fd9 [test suite] --key-* arg validation with --fd 0 2014-04-09 23:56:50 -04:00
Michael Rash
ac6ffe2ec7 [server] Validate GPG sigs with libfko fko_gpg_signature_id_match() function 2014-04-09 23:56:03 -04:00