In order to answer your question we have to qualify it. What is your definition within OFBiz of a deserialization attack. Perhaps give an example within this context of exactly what happens and how notsoserial prevents it. Which classes are you worried about as a vulnerability?
On Thursday, 8 September 2016, Jacques Le Roux <[email protected]> wrote: > It's no only about RMI, deserialization driven attacks can be done on > vulnerable classes. > > I think by exposing notsoserial (ie by creating the deserialize-trace.txt > and is-deserialized.txt files in tools\security\notsoserial) we offer a > good chance to users to we warned about the possible risks of > deserialization driven attacks. > > It's else difficult for inexperienced users in the security domain to > understand they are at risk and how to cope with it. This is actually the > purpose of the tools\security\notsoserial folder and its content. > > I ask you the same question than I asked to Jacopo: "How do you expect to > warn users about deserialization driven attacks?" > > Jacques > > > Le 08/09/2016 à 12:12, Taher Alkhateeb a écrit : > >> I have a question. How many "naive" users will default to using RMI with >> OFBiz? >> >> I think it was agreed long ago that RMI is a bad idea, and things like >> DCOM, CORBA and others died for a good reason. If someone is introducing >> RMI, they should handle the serialization vulnerabilities according to >> their own implementation, it's a choice. I really don't see a big need for >> this to be integrated into OFBiz OOTB. Even if you expose notsoserial, >> people still need to understand how it works and what to put into the >> configured text files. In fact, the knowledge needed to execute >> notsoserial >> correctly is rather high because you need to know which Java files are >> serializable and then which one of those are exposed in your >> implementation. >> >> So I recommend making this just an optional feature with good >> documentation >> in the Wiki where people can use it if they choose to adopt RMI, and we >> get >> this Jar out of the framework. >> >> On Thu, Sep 8, 2016 at 1:04 PM, Jacques Le Roux < >> [email protected]> wrote: >> >> Jacopo, >>> >>> I agree about releasing more often. Then we need to prepare things >>> better. >>> Just few words, I have no ideas how to yet. >>> >>> You suggest "to implement the best solution". As I said below I see only >>> 2. I don't expect Kantega will take the burden of pushing their jar to >>> jcenter, even less on each modification, even if I now expect very few, >>> if >>> any. They even did not care to answer me! >>> >>> I don't like much the idea of maintaining a fork, who would do it? I >>> prefer to automate it, and Gradle with JitPackIt can. My last proposition >>> (answer to Taher) resolves the notsoserial problem. >>> >>> If we remove the jar and all the rest, I fear the notsoserial effort will >>> be definitely thrown away, exposing our "naive" users at the risk of >>> using >>> RMI or a vulnerable external classes. >>> >>> BTW, when you say "We could always bundle it in another release soon" do >>> you expect to freeze and release R16 very soon? >>> >>> Jacques >>> >>> >>> >>> Le 08/09/2016 à 08:47, Jacopo Cappellato a écrit : >>> >>> I would feel more comfortable in releasing without it, and then work on >>>> the >>>> proposed solutions with more time in order to implement the best >>>> solution. >>>> We could always bundle it in another release soon: in fact with all the >>>> activity in the project, we should consider releasing more often. >>>> >>>> Jacopo >>>> >>>> >>>> >>>> On Thu, Sep 8, 2016 at 8:23 AM, Jacques Le Roux < >>>> [email protected]> wrote: >>>> >>>> OK wait! I think we skipped a step: access the jar from an accessible >>>> >>>>> repo. >>>>> >>>>> I see 2 solutions: >>>>> >>>>> 1. Push ourselves the notsoserial jar in jcenter => updating a fork now >>>>> and then, though notsoserial will not need much changes now >>>>> 2. Use https://jitpack.io/ >>>>> >>>>> I prefer 2, though I have still to >>>>> >>>>> * resolve the notsoserial.jar path in my hasty proposition below >>>>> * use|master-SNAPSHOT| instead of last hash (to not break on >>>>> changes) >>>>> which may need to refresh dependencies (did not investigate yet: >>>>> https://jitpack.io/docs/#snapshots) >>>>> >>>>> Index: build.gradle >>>>> =================================================================== >>>>> --- build.gradle (revision 1759557) >>>>> +++ build.gradle (working copy) >>>>> @@ -32,7 +32,7 @@ >>>>> >>>>> // java settings >>>>> def jvmArguments = ['-Xms128M', '-Xmx1024M', >>>>> - "-javaagent:${rootDir}/tools/security/notsoserial/notsoseria >>>>> l-1.0-SNAPSHOT.jar", >>>>> + "-javaagent:C:/Users/Jacques/.gradle/caches/modules-2/files- >>>>> 2.1/com.github.kantega/notsoserial/f2baaaa/3646e12f5ce4713f9 >>>>> ad2aa027e3fec81097fcd93/notsoserial-f2baaaa.jar", >>>>> "-Dnotsoserial.whitelist=${rootDir}/tools/security/notsoseri >>>>> al/empty.txt", >>>>> "-Dnotsoserial.dryrun=${rootDir}/tools/security/notsoserial/ >>>>> is-deserialized.txt", >>>>> "-Dnotsoserial.trace=${rootDir}/tools/security/notsoserial/ >>>>> deserialize-trace.txt"] >>>>> @@ -52,6 +52,7 @@ >>>>> allprojects { >>>>> repositories{ >>>>> jcenter() >>>>> + maven { url "https://jitpack.io" } >>>>> } >>>>> } >>>>> >>>>> @@ -119,6 +120,7 @@ >>>>> compile 'org.zapodot:jackson-databind-java-optional:2.4.2' >>>>> compile 'oro:oro:2.0.8' >>>>> compile 'wsdl4j:wsdl4j:1.6.2' >>>>> + compile 'com.github.kantega:notsoserial:f2baaaa' >>>>> >>>>> // general framework runtime libs >>>>> runtime 'de.odysseus.juel:juel-spi:2.2.7' >>>>> >>>>> I think you get the idea, it works w/o any other modifications, what to >>>>> you think? >>>>> >>>>> Jacques >>>>> >>>>> >>>>> >>>>> Le 07/09/2016 à 22:37, Jacques Le Roux a écrit : >>>>> >>>>> OK, since we have no issues OOTB that can be done. >>>>> >>>>>> But IMO documenting the whole thing in our nososerial readme.txt is >>>>>> not >>>>>> enough. We need to make that more prominent. Not sure how yet... >>>>>> >>>>>> Jacques >>>>>> >>>>>> >>>>>> Le 07/09/2016 à 20:09, Taher Alkhateeb a écrit : >>>>>> >>>>>> Scratch that, actually only the -D arguments are ignored, we must >>>>>> remove >>>>>> >>>>>>> the -javaagent argument because it's not a classpath argument and >>>>>>> would >>>>>>> crash the VM >>>>>>> >>>>>>> But for consistency's sake, let's remove them all for now. So simply >>>>>>> we >>>>>>> apply: >>>>>>> >>>>>>> Index: build.gradle >>>>>>> =================================================================== >>>>>>> --- build.gradle (revision 1759596) >>>>>>> +++ build.gradle (working copy) >>>>>>> @@ -31,11 +31,7 @@ >>>>>>> ext.os = System.getProperty('os.name').toLowerCase() >>>>>>> >>>>>>> // java settings >>>>>>> -def jvmArguments = ['-Xms128M', '-Xmx1024M', >>>>>>> - >>>>>>> "-javaagent:${rootDir}/tools/security/notsoserial/notsoseria >>>>>>> l-1.0-SNAPSHOT.jar", >>>>>>> - >>>>>>> "-Dnotsoserial.whitelist=${rootDir}/tools/security/notsoseri >>>>>>> al/empty.txt", >>>>>>> - >>>>>>> "-Dnotsoserial.dryrun=${rootDir}/tools/security/notsoserial/ >>>>>>> is-deserialized.txt", >>>>>>> - >>>>>>> "-Dnotsoserial.trace=${rootDir}/tools/security/notsoserial/ >>>>>>> deserialize-trace.txt"] >>>>>>> +def jvmArguments = ['-Xms128M', '-Xmx1024M'] >>>>>>> ext.ofbizMainClass = 'org.apache.ofbiz.base.start.Start' >>>>>>> javadoc.failOnError = false >>>>>>> sourceCompatibility = '1.8' >>>>>>> >>>>>>> On Wed, Sep 7, 2016 at 9:04 PM, Jacques Le Roux < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>> OK Cool, if the JVM arguments are simply ignored, then I will proceed >>>>>>> >>>>>>> with >>>>>>>> an addition in the readme and remove the jar, simple >>>>>>>> >>>>>>>> Jacques >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> Le 07/09/2016 à 17:16, Jacopo Cappellato a écrit : >>>>>>>> >>>>>>>> Thank you Jacques and Taher. >>>>>>>> >>>>>>>> So it seems we can move on and temporarily remove the jar. >>>>>>>>> >>>>>>>>> Jacopo >>>>>>>>> >>>>>>>>> >>>>>>>>> On Wed, Sep 7, 2016 at 5:11 PM, Taher Alkhateeb < >>>>>>>>> [email protected]> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>> Hi Jacques, >>>>>>>>> >>>>>>>>> First of all the ofbizSecure task is gone instead everything calls >>>>>>>>> >>>>>>>>>> the >>>>>>>>>> correct jvm arguments by default to fetch notsoserial. >>>>>>>>>> >>>>>>>>>> The work to remove notsoserial is almost nothing. You just to >>>>>>>>>> remove a >>>>>>>>>> few >>>>>>>>>> jvm args and that's it. Even if you don't remove the jvm args >>>>>>>>>> nothing >>>>>>>>>> happens because it will just ignore it as missing from the >>>>>>>>>> classpath. >>>>>>>>>> >>>>>>>>>> Taher Alkhateeb >>>>>>>>>> >>>>>>>>>> On Sep 7, 2016 5:48 PM, "Jacques Le Roux" < >>>>>>>>>> [email protected]> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> Huho, I was too fast on this. Currently the Gradle "ofbizSecure" >>>>>>>>>> tasks >>>>>>>>>> >>>>>>>>>> depends on the notsoserial-1.0-SNAPSHOT.jar >>>>>>>>>> >>>>>>>>>>> So this would need more work and w/o answers from them I suspect >>>>>>>>>>> they >>>>>>>>>>> >>>>>>>>>>> will >>>>>>>>>>> >>>>>>>>>>> not publish the jar. >>>>>>>>>> >>>>>>>>>> Now it's a serious security but not OOTB. So I see 2 >>>>>>>>>>> possibilities. >>>>>>>>>>> >>>>>>>>>>> 1. Ask the ASF for a derogation (after all it's a Java issue not >>>>>>>>>>> an >>>>>>>>>>> OFBiz >>>>>>>>>>> one) >>>>>>>>>>> 2. Do what I said before AND change the Gradle "ofbizSecure" >>>>>>>>>>> tasks >>>>>>>>>>> >>>>>>>>>>> Opinions? >>>>>>>>>>> >>>>>>>>>>> Jacques >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Le 07/09/2016 à 14:01, Jacques Le Roux a écrit : >>>>>>>>>>> >>>>>>>>>>> Yes I see no problems with that. I just need to add directions >>>>>>>>>>> for >>>>>>>>>>> users >>>>>>>>>>> >>>>>>>>>>> before. I'll then remove the jars... very soon... >>>>>>>>>>> >>>>>>>>>>>> Jacques >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Le 07/09/2016 à 13:09, Jacopo Cappellato a écrit : >>>>>>>>>>>> >>>>>>>>>>>> Jacques, any news from notsoserial? >>>>>>>>>>>> >>>>>>>>>>>> If not, I think we can proceed by (temporarily) removing the >>>>>>>>>>>> jars >>>>>>>>>>>> >>>>>>>>>>>>> until >>>>>>>>>>>>> they will publish the jar. >>>>>>>>>>>>> >>>>>>>>>>>>> Regards, >>>>>>>>>>>>> >>>>>>>>>>>>> Jacopo >>>>>>>>>>>>> >>>>>>>>>>>>> On Sat, Aug 20, 2016 at 11:12 AM, Jacques Le Roux < >>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> Yes that's what I proposed also, I will try that before the >>>>>>>>>>>>> worse >>>>>>>>>>>>> >>>>>>>>>>>>> solution >>>>>>>>>>>>> >>>>>>>>>>>>> as Taher called them, would you help? >>>>>>>>>>>>>> >>>>>>>>>>>>>> Jacques >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> Le 20/08/2016 à 08:32, Pierre Smits a écrit : >>>>>>>>>>>>>> >>>>>>>>>>>>>> Hi Jacques, >>>>>>>>>>>>>> >>>>>>>>>>>>>> Why not try to convince the people behind notsoserial to have >>>>>>>>>>>>>> them >>>>>>>>>>>>>> >>>>>>>>>>>>>> push >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> the >>>>>>>>>>>>>> >>>>>>>>>>>>> library to maven central and/or jpublish? In stead of this >>>>>>>>>>>> community >>>>>>>>>>>> >>>>>>>>>>>> doing >>>>>>>>>>>>> >>>>>>>>>>>>>> the work? >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Best regards, >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Pierre Smits >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> ORRTIZ.COM <http://www.orrtiz.com> >>>>>>>>>>>>>>> OFBiz based solutions & services >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> OFBiz Extensions Marketplace >>>>>>>>>>>>>>> http://oem.ofbizci.net/oci-2/ >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >
