How about augmenting on loadtime?

mobile bilingual spell checker used
Op 14 apr. 2014 07:06 schreef "Mandar Barve" <mandar.ba...@sungardas.com>:

> This solution for which I have posted a pilot patch has following potential
> drawbacks:
>
> 1. For a sensitive API we need to load all "Param/Parameter" annotations
> iteratively. This can be time consuming.
> 2. We also have to iterate multiple times in the cleanString utility
> function ensuring every identified sensitive keyword is stripped.
> 3. This adds multiple iterations in the code path for stripping sensitive
> data.
>
> Other potential solution to think about could be:
> 1. Augment the list of "hard coded" keywords with what we know as the
> additional sensitive keywords (by carefully going through various response
> key words, which will be required either ways). Hopefully this won't come
> out to be too big a list.
> 2. Device a scheme of tagging sensitive API request/response parameters
> with a well known prefix or a suffix. The filter REGEX can be augmented
> further to look for such sub strings. This can remove the need for
> iterative code.
>
> Thanks,
> Mandar
>
>
> On Tue, Apr 8, 2014 at 1:32 PM, Mandar Barve <mandar.ba...@sungard.com
> >wrote:
>
> >
> > -----------------------------------------------------------
> > This is an automatically generated e-mail. To reply, visit:
> > https://reviews.apache.org/r/20117/
> > -----------------------------------------------------------
> >
> > Review request for cloudstack and Alena Prokharchyk.
> >
> >
> > Repository: cloudstack-git
> >
> >
> > Description
> > -------
> >
> > Hi Alena,
> >     I am attaching a pilot patch for the problem we are trying to solve.
> > Please let me know your thoughts, comments, suggestions on the approach
> and
> > code. We can make widespread code changes after agreeing on the approach
> > and any other details.
> >
> > Problem: When stripping sensitive parameters from the response log
> string,
> > the strip logic should be generic. Current cleanString code strips few
> > hardcoded keywords from the response string.
> >
> > Approach: As discussed in the context of CS JIRA 4406 I have modified
> > @Parameter annotation applied to fields of command classes and @Param
> > annotation applied to fields of response classes.
> >
> > 1. Annotations modified to add a new flag that conveys sensitivity of the
> > parameter for log, default set to false.
> > 2. cleanString utility function is modified to process an array of
> strings
> > passed to it so it can strip all.
> > 3. To keep this backward compatible (and also don't know the code change
> > implications at other places at this time) made sure old cleanString code
> > will continue to strip hardcoded keywords when zero sized filter array is
> > passed. This can change if we think so and when we think so. This change
> I
> > am putting is minimal focussed to solve current problem.
> > 4. In ApiServer code where we are loading APICommand annotation to check
> > if the command response carried sensitive data, additional code is added
> to
> > load response class signature Param and SerializedName annotations to get
> > the name of the field that is flagged to carry sensitive information
> > 5. A list of such names is built and passed to cleanString to strip
> > 6. All code areas that got affected by cleanString signature change are
> > modified to pass zero sized filter arrays to cleanString
> > 7. pom.xml is modified for server project to include gson dependency
> > 8.StringUtil unit test code modified to use new signature for
> cleanString.
> > (New tests will need to be added in the final patch for testing the new
> > functions of cleanString)
> >
> > On final note this addresses handling the audit logging of response
> > strings alone. I haven't looked into audit logging of request strings and
> > what will need to be done there.
> >
> > This pilot patch is tested for listUsers command response. The code
> strips
> > apikey, secretkey and additional parameter userid (only meant for
> testing)
> > as they are tagged to be sensitive.
> >
> > Thanks,
> > Mandar
> >
> >
> > Diffs
> > -----
> >
> >   api/src/com/cloud/serializer/Param.java 3e6f852
> >   api/src/org/apache/cloudstack/api/Parameter.java 7ee6897
> >
> > api/src/org/apache/cloudstack/api/command/user/vm/ResetVMPasswordCmd.java
> > d15ea47
> >   api/src/org/apache/cloudstack/api/response/UserResponse.java 40e1561
> >   core/src/com/cloud/agent/transport/Request.java b5890d9
> >
> >
> plugins/hypervisors/hyperv/src/com/cloud/hypervisor/hyperv/resource/HypervDirectConnectResource.java
> > 12fc39d
> >
> >
> plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackImageStoreLifeCycleImpl.java
> > 7675e94
> >   server/pom.xml 6e60fc4
> >   server/src/com/cloud/api/ApiServer.java 42ac8b7
> >   server/src/com/cloud/api/ApiServlet.java e78bf38
> >   server/src/com/cloud/api/query/dao/ImageStoreJoinDaoImpl.java f1f873c
> >   server/src/com/cloud/api/query/dao/StoragePoolJoinDaoImpl.java 1d89b19
> >   utils/src/com/cloud/utils/StringUtils.java 1600488
> >   utils/test/com/cloud/utils/StringUtilsTest.java 5a90300
> >
> > Diff: https://reviews.apache.org/r/20117/diff/
> >
> >
> > Testing
> > -------
> >
> > Tested the strip logic in the pilot patch for listUsers command response.
> >
> >
> > Thanks,
> >
> > Mandar Barve
> >
> >
>

Reply via email to