You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ChangeLog.txt 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307
  1. 20200623 Engine 3.2.2 Removed saccades
  2. 20200623 latest CodeDweller - all MIT license now
  3. 20191104 Updated copyright notice
  4. 20160418 Bumped tiny revision for buffer allocation bug fix in
  5. CodeDweller configuration.cpp
  6. 20151223 Version Number Change.
  7. 20151223
  8. * Replaced White-Guard algorithm with Strangers algorightm.
  9. * Updated version number of SNFMulti.
  10. 20151216 Tightened up evaluator code to eliminate un-necessary
  11. attempts to match precise tokens.
  12. 20140610 Fixed the Black X-header so that it ignores above-band result
  13. codes. Incremented the very minor engine revision number.
  14. 20140512 Updated version number to go along with updates to the
  15. engine. There are no real changes with the SNFServer code, but this
  16. number update will remove confusion about whether the SNFServer engine
  17. is up to date with the fairly significant changes in the underlying
  18. engine.
  19. 20140507
  20. * Fixed warning where a Mutex passed to GBUdbRecordLockingShim() by
  21. value should have been passed by reference. (reference to stack
  22. allocated object)
  23. * Bumped minor revision on the engine -- now 3.1.2.
  24. 20140502
  25. * Implemented WhiteGuard
  26. * Updated engine revision number
  27. 20140212 Implemented AI based "saccades" engine to improve scanning
  28. efficiency. The Saccades engine borrows from vision systems research
  29. and allows SNF to learn important message structures and adapt it's
  30. scanning technique in real-time. Using this engine SNF can often avoid
  31. scanning large portions of each message without missing important
  32. content resulting in potentially 10 fold improvements in scanner
  33. efficiency.
  34. 20140124
  35. * Further optimized deep code in the scanning engine using a jump
  36. table to replace a collection of if/else logic.
  37. * Updated some of the related code using more modern and/or correct
  38. coding practices.
  39. 20140119 Improved time tracking / reporting.
  40. 20131203 Minor revision tick.
  41. 20131203 Bug Fix: Corrected Timestamp() formatting.
  42. 20131203 Bug Fix: Updated Timestamp() to use C++ stringstream and to
  43. handle possible null pointer from gmtime()
  44. 20131022
  45. * Remove dependency on config.h.
  46. * Hard-code version to 3.0.
  47. 20121121
  48. * Fixed a bug in scanMessageFile where the XHDRInjectOn flag was being
  49. interpreted before it had been set by the configuration This caused
  50. large messages to be rewritten shorter than they needed to be when
  51. header injection was turned on because the flag would appear to be
  52. off and the MessageFileSize would be recalculated downward. Later,
  53. after the flag was set, the headers would be injected into the
  54. shortened file.
  55. * Added a function to snf_RulebaseHandler that safely peeks at the
  56. current configuration to facilitate the above bug fix.
  57. * Bumped the minor revision number for the engine.
  58. 20121120
  59. * Improved code quality for logic that shrinks the message size when
  60. header injection is turned off.
  61. * Bumped minor revision number.
  62. 20121022 Corrected a bug where match records were not recorded in the
  63. ScanData. Updated engine minor version.
  64. 20121001 Fixed subtle bug where normal XCI responses did not end with
  65. \n. Updated engine version number to 3.0.20.
  66. 20120930 Changed boolean to bool at 986 and 987 - bool is the correct
  67. type specifier for C++ and this was causing errors on one of the
  68. labrat compilers. No idea why it worked perfectly on mingw!
  69. 20120928
  70. * snf_EngineHandler::scanMessageFile updated to read only up to the
  71. scan horizon of large files if possible (when header injection is
  72. turned off)
  73. * snfXCImgr now has 8 processing channels.
  74. * Engine Version number changed.
  75. 20120326 Changed minor revision number to reflect rebuilding the
  76. engine with new CodeDweller networking bug fixes.
  77. 20120326 Dropped E3.0.17 binary, added E3.0.18 binary.
  78. 20110505 Committing candidate SNFServer with refined SNFMulti code
  79. covering rule panic handling and pattern match voting.
  80. 20110505 Reworked rule voting code to clarify and bring the code
  81. closer to current standards. This was part of researching a potential
  82. problem involving the voting of panicked rules and this rebuild has
  83. verified that there is no problem --- panicked rules are indeed inert
  84. as intended.
  85. 20110219
  86. * Fixed bug where only one of multiple source header directives with
  87. the same source header definition would be recognized. The fix was
  88. to improve the comparator function for HeaderFinderPattern so that
  89. it included context. Prior to that only one source header definition
  90. would be recognized because the ordinal is always 0 for source
  91. headers. As a result, only the first context could be registered.
  92. * Refactored HeaderFinder::CheckContent() to improve the coding style
  93. and make use of a switch().
  94. * Corrected a bug in HeaderFinder::CheckContent that would allow a
  95. header forced source IP to be set multiple times. Now it will only
  96. be set when the first event where all of the conditions are
  97. satisfied. Bug was that the test that the source had already been
  98. set was looking at the source IP which is actually never set until
  99. the actual message scan begins (after header directives have already
  100. been evaluated).
  101. * Changed SNFMulti revision to 16.
  102. 20100614
  103. * Fixed bug in FilterChainBase64 where an extra character would be
  104. returned if the module ran out of data in SCANNING mode. Now if this
  105. occurs a flag is set and "No More Data" is thrown instead of
  106. returning the extra byte.
  107. * Adjusted DEFUNKER preamble in code to indicate spaces in front and
  108. back since newlines would be converted to spaces by the outer shell
  109. of FilterChainDefunker.
  110. * Adjusted engine update number to .15 - now at Version 3.0.15
  111. 20100531
  112. * Changed engine update number to .14 (now Version 3.0.14).
  113. * Modified FilterChainDefunker to avoid recursion when eating (X)HTML
  114. tags. Now there is a new mechanism that allows deeper states to
  115. return nothing (no conversion) by setting a boolean flag. The result
  116. is that the root state will skip that result and try again with the
  117. next available byte in a simple loop (no recursion). This eliminates
  118. a vulnerability where a message constructed with deeply embeded /
  119. chained (X)HTML tags could cause the system to run out of stack
  120. space under some conditions.
  121. 20100405
  122. * Fixed bug in scanMessageFile where a very short message file could
  123. cause the exception: ERROR_MSG_XHDRi: Begin vector::_M_range_check
  124. * Changed version to 3.0.13
  125. 20100318 Fixed bug in GBUdbIgnoreList reader to prevent reading
  126. outside of the line buffer.
  127. 20091103 Fixed bug in snfCFGmgr where OEM provided license ID was not
  128. always captured in the configuration data causing SYNC authentication
  129. problems. Updated version to 3.0.12.
  130. 20090821 Fixed memory leak when failing to authenticate a rulebase
  131. file.
  132. 20090730
  133. * Moved persistent state aux store() operations to RecordSyncEvent
  134. * Changed DiscLogger wait time to 1 second
  135. * New engine version number 3.0.10
  136. 20090724 Updated mingwm10.dll. New SNFServer build requires newest
  137. mingwm10.dll (see notes on version problems discovered when building
  138. snfmulti.dll project)
  139. 20090724 Changed engine revision to 3.0.9 after networking SIGPIPE bug fix.
  140. 20090707 SNFMulti engine now at 3.0.8 after several small bug fixes.
  141. 20090707 Fixed valgrind complaint about using uninitialized data when
  142. generating a OneTimePad. The algorithm uses unsigned char x as a
  143. register. Each next random byte in the pad is based on encrypting the
  144. last-- so a first byte is needed. Original code used an uninitialized
  145. x on purpose in order to get a supposedly unpredictable byte out of
  146. RAM. To make valgrind happy (and truly to make the algorithm better) x
  147. is now initialized by encrypting a 0 with the pad generator. This
  148. value is not directly exposed in the generated pad. The first byte in
  149. the one time pad is not the result of encrypting 0 but instead the
  150. result of encrypting the result of that operation. So, the first byte
  151. is based on the state of the pad generator just prior to making the
  152. OneTimePad. This is probably harder to predict than the state of the
  153. stack (where x would have come from) anyway.
  154. 20090707
  155. * Fixed persistent state data bug. Persistent state data is now saved
  156. once per second after updating status logs.
  157. * Improved snfLOGmgr d'tor so that final persistent state data is only
  158. saved (attempted) if snfLOGmgr has been Configured.
  159. 20090707
  160. * Fixed initialization of time trigger (typo) was 846... now
  161. 864... Supposed to be "once per day".
  162. * Fixed missing initialization of Configured(false).
  163. 20090707 Upgraded Engine to SNFMulti V3.0.8 (contains minor bug fixes).
  164. 20090704 Getting closer - new DLL, new features, a little polish.
  165. NOTE: Beginning with this update this ChangeLog will only list hilights.
  166. For more details check the logs at https://svn.microneil.com/websvn/
  167. * snfmulti.dll is now at version 3.0, engine 3.0.7
  168. * Used newer MinGW with improved optimizations
  169. * Using newest SNF engine with several minor bug fixes
  170. * Added startupSNFAuthenticated() so OEMs can protect SNF license info
  171. * Added getIPReputation() to aid in converting GBUdb stats to weights
  172. * Added C++ sample code
  173. * Reorganized SNFMulti code base.
  174. 20090317 Work in progess toward SDK release.
  175. * Included latest getRulebase.cmd and curl.exe
  176. * Included SNFClient_readme.txt and SNFServer_readme.txt
  177. * Included / updated SNFClient, and snf_engine.xml
  178. * Added ReadMe.html - includes API documentation
  179. * Added missing snf_ERROR_EXCEPTION to snfmultidll.h file
  180. * Removed redundant #define EXP __declspec(dllexport) from snfmultidll.cpp
  181. 20080723 Version 2.9r3 - Engine 3.0
  182. * Compiled DLL using new SNF engine V3.0.
  183. * Added snf_ERROR_EXCEPTION result (-3) to show when an exception occurred
  184. during a call that could not be expressed with one of the normal SNF result
  185. codes.
  186. * Wraped DLLMain() functions in a try/catch to eat any exceptions. If an
  187. exception occurs the function will return false;
  188. * Added pre-allocation to result cache buffers to minimize heap allocation
  189. during operations. The pre-allocated amount should be sufficient for all
  190. cases. If it is not then the string objects will allocate more as needed.
  191. * Changed snf_ERROR_UNKNOWN to snf_ERROR_EXCEPTION for startupSNF() and
  192. shutdownSNF().
  193. * Wrapped testIP() in try/catch - now returns snf_ERROR_EXCEPTION if an
  194. exception occurs.
  195. * Wrapped getScanXHeaders() in try/catch - now returns snf_ERROR_EXCEPTION
  196. if an exception occurs.
  197. * Wrapped getScanXMLLog() in try/catch - now returns snf_ERROR_EXCEPTION
  198. if an exception occurs.
  199. * Wrapped getScanClassicLog() in try/catch - now returns snf_ERROR_EXCEPTION
  200. if an exception occurs.
  201. * Wrapped closeScan() in try/catch - now returns snf_ERROR_EXCEPTION
  202. if an exception occurs.