Re: ConnectionPoolMBean should not expose plain-text DB password

2012-10-08 Thread Mark H. Wood
On Fri, Oct 05, 2012 at 05:11:57PM -0400, Christopher Schultz wrote:
> On 10/5/12 1:51 PM, Te Li wrote:
> > I am not familiar with JIoEndpoint discussed in 
> > https://issues.apache.org/bugzilla/show_bug.cgi?id=53139.
> > 
> > The issue I'm facing is something different. Apparently, some
> > effort was made to hide the DB password, but the DB password is
> > still exposed via another getter (getDbProperties()). This seems to
> > be a bug to me.
> > 
> > DB passwords are highly sensitive information. JMX admins shouldn't
> > see those either. It's not a reasonable assumption that it's okay
> > for JMX admins to see exposed DB passwords (which should never be
> > exposed in plaintext or encrypted form). Those who work in a
> > company would probably concur with this point.
> 
> I think most of us work at companies, and I happen to disagree with you.
> 
> Tomcat passwords -- at least those in server.xml -- are in plain-text
> form. All requests to obfuscate them have been denied because it is
> simply not possible to properly secure them: the key always must be
> available to the administrator in order to read the obfuscated
> password and therefore any steps to "secure" the password are a charade.
> 
> There is a wealth of knowledge available via JMX, and it should only
> be exposed to administrators. Any JMX-enabled administrator will be
> able to deploy an arbitrary webapp to go and fetch the data you are
> trying to hide. You are wasting your time.

Well, I agree with both of you. :-)

The O.P. seems to want something like a military-style access control
system, in which it is possible to set up a structure where *no one*
has ultimate access; different roles have privileged access to
different aspects of the operation.  This is not an unreasonable
desire.  There are situations where it is advantageous (to the
organization) to operate in such a way that there are things a single
high-value captive cannot compromise.  Compare this to everyday
financial controls which require multiple signatures on a check or
several individuals with different keys to open a safe.  The highest
authorities can order things done, but cannot do them.  When wearing
my sysadmin hat, I work hard to make sure that I do not have to know
some of the secrets required to run our operation.

OTOH I agree that Tomcat is not set up to give you a heterarchial
access structure.  Very few products are.  I'm sure I never heard of
most of them and suppose that few of you all have either.

-- 
Mark H. Wood, Lead System Programmer   mw...@iupui.edu
Asking whether markets are efficient is like asking whether people are smart.


pgpJKCQyXtpu7.pgp
Description: PGP signature


Re: ConnectionPoolMBean should not expose plain-text DB password

2012-10-05 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Te,

On 10/5/12 1:51 PM, Te Li wrote:
> I am not familiar with JIoEndpoint discussed in 
> https://issues.apache.org/bugzilla/show_bug.cgi?id=53139.
> 
> The issue I'm facing is something different. Apparently, some
> effort was made to hide the DB password, but the DB password is
> still exposed via another getter (getDbProperties()). This seems to
> be a bug to me.
> 
> DB passwords are highly sensitive information. JMX admins shouldn't
> see those either. It's not a reasonable assumption that it's okay
> for JMX admins to see exposed DB passwords (which should never be
> exposed in plaintext or encrypted form). Those who work in a
> company would probably concur with this point.

I think most of us work at companies, and I happen to disagree with you.

Tomcat passwords -- at least those in server.xml -- are in plain-text
form. All requests to obfuscate them have been denied because it is
simply not possible to properly secure them: the key always must be
available to the administrator in order to read the obfuscated
password and therefore any steps to "secure" the password are a charade.

There is a wealth of knowledge available via JMX, and it should only
be exposed to administrators. Any JMX-enabled administrator will be
able to deploy an arbitrary webapp to go and fetch the data you are
trying to hide. You are wasting your time.

- -chris
-BEGIN PGP SIGNATURE-
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Mozilla - http://www.enigmail.net/

iEYEARECAAYFAlBvTR0ACgkQ9CaO5/Lv0PC+PACgrXslv6H5QX1f8aMmMjN+0iJn
hTAAnidDEXQWEk8HyPtWbTF36OVTQHoL
=8RVk
-END PGP SIGNATURE-

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: ConnectionPoolMBean should not expose plain-text DB password

2012-10-05 Thread Shanti Suresh
Hi Te,

Yes, it would be very nice if the DB passwords don't get exposed via JMX.
If we could have an additional role to get and set some of the sensitive
MBeans, that would be really nice.  More simply, if getDbProperties() can
also simply return some dummy warning information, that will work.

Thanks.
  -Shanti

On Fri, Oct 5, 2012 at 1:51 PM, Te Li  wrote:

> I am not familiar with JIoEndpoint discussed in
> https://issues.apache.org/bugzilla/show_bug.cgi?id=53139.
>
> The issue I'm facing is something different. Apparently, some effort was
> made to hide the DB password, but the DB password is still exposed via
> another getter (getDbProperties()). This seems to be a bug to me.
>
> DB passwords are highly sensitive information. JMX admins shouldn't see
> those either. It's not a reasonable assumption that it's okay for JMX
> admins to see exposed DB passwords (which should never be exposed in
> plaintext or encrypted form). Those who work in a company would probably
> concur with this point.
>
> Does that make sense to anyone?
>
> Thanks,
> Te
>
> On 10/5/12 6:51 AM, "Shanti Suresh"  wrote:
>
> >Hi Te,
> >
> >Will it be an option for you to create a JSP as was recently discussed in
> >this list, to expose just the particular MBeans that you need?
> >
> >Thanks.
> >  -Shanti
> >
> >On Thu, Oct 4, 2012 at 3:06 PM, Christopher Schultz <
> >ch...@christopherschultz.net> wrote:
> >
> >> -BEGIN PGP SIGNED MESSAGE-
> >> Hash: SHA1
> >>
> >> Te,
> >>
> >> On 10/4/12 1:56 PM, Te Li wrote:
> >> > DB password is secret information and should not be exposed via
> >> > JMX. The tomcat ConnectionPool class implements
> >> > ConnectionPoolMBean interface. This interface exposes connection
> >> > pool configuration and statistics. However, because this interface
> >> > extends PoolConfiguration which has "getDbProperties()" method that
> >> > exposes the "password" property in plain text.
> >> >
> >> > The getPassword() method in DataSourceProxy class (which
> >> > implements PoolConfiguration interface) correctly does not return
> >> > the password but just a dummy value "Password not available as
> >> > DataSource/JMX operation."  However, the password is still exposed
> >> > via getDbProperties() method, which is an unexpected behavior.
> >> >
> >> > Due to the exposure of plain-text password, we cannot use the
> >> > ConnectionPoolMBean class out of the box in our production
> >> > environment and have to define our own MBean interface to expose
> >> > the ConnectionPool bean. Please fix this.
> >>
> >> Sounds a lot like
> >>https://issues.apache.org/bugzilla/show_bug.cgi?id=53139
> >>
> >> Given the response to that enhancement request, I suspect yours will
> >> get the same treatment were you to actually file it in Bugzilla.
> >>
> >> - -chris
> >> -BEGIN PGP SIGNATURE-
> >> Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
> >> Comment: GPGTools - http://gpgtools.org
> >> Comment: Using GnuPG with Mozilla - http://www.enigmail.net/
> >>
> >> iEYEARECAAYFAlBt3jwACgkQ9CaO5/Lv0PDCngCfRyI8rG0cYaEh0hn8WhrPa3zj
> >> NicAoLU+IbFY3T0dw5DML2M4sssOh4gI
> >> =7BaH
> >> -END PGP SIGNATURE-
> >>
> >> -
> >> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> >> For additional commands, e-mail: users-h...@tomcat.apache.org
> >>
> >>
>
>
> -
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
>
>


Re: ConnectionPoolMBean should not expose plain-text DB password

2012-10-05 Thread Te Li
I am not familiar with JIoEndpoint discussed in
https://issues.apache.org/bugzilla/show_bug.cgi?id=53139.

The issue I'm facing is something different. Apparently, some effort was
made to hide the DB password, but the DB password is still exposed via
another getter (getDbProperties()). This seems to be a bug to me.

DB passwords are highly sensitive information. JMX admins shouldn't see
those either. It's not a reasonable assumption that it's okay for JMX
admins to see exposed DB passwords (which should never be exposed in
plaintext or encrypted form). Those who work in a company would probably
concur with this point.

Does that make sense to anyone?

Thanks,
Te

On 10/5/12 6:51 AM, "Shanti Suresh"  wrote:

>Hi Te,
>
>Will it be an option for you to create a JSP as was recently discussed in
>this list, to expose just the particular MBeans that you need?
>
>Thanks.
>  -Shanti
>
>On Thu, Oct 4, 2012 at 3:06 PM, Christopher Schultz <
>ch...@christopherschultz.net> wrote:
>
>> -BEGIN PGP SIGNED MESSAGE-
>> Hash: SHA1
>>
>> Te,
>>
>> On 10/4/12 1:56 PM, Te Li wrote:
>> > DB password is secret information and should not be exposed via
>> > JMX. The tomcat ConnectionPool class implements
>> > ConnectionPoolMBean interface. This interface exposes connection
>> > pool configuration and statistics. However, because this interface
>> > extends PoolConfiguration which has "getDbProperties()" method that
>> > exposes the "password" property in plain text.
>> >
>> > The getPassword() method in DataSourceProxy class (which
>> > implements PoolConfiguration interface) correctly does not return
>> > the password but just a dummy value "Password not available as
>> > DataSource/JMX operation."  However, the password is still exposed
>> > via getDbProperties() method, which is an unexpected behavior.
>> >
>> > Due to the exposure of plain-text password, we cannot use the
>> > ConnectionPoolMBean class out of the box in our production
>> > environment and have to define our own MBean interface to expose
>> > the ConnectionPool bean. Please fix this.
>>
>> Sounds a lot like
>>https://issues.apache.org/bugzilla/show_bug.cgi?id=53139
>>
>> Given the response to that enhancement request, I suspect yours will
>> get the same treatment were you to actually file it in Bugzilla.
>>
>> - -chris
>> -BEGIN PGP SIGNATURE-
>> Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
>> Comment: GPGTools - http://gpgtools.org
>> Comment: Using GnuPG with Mozilla - http://www.enigmail.net/
>>
>> iEYEARECAAYFAlBt3jwACgkQ9CaO5/Lv0PDCngCfRyI8rG0cYaEh0hn8WhrPa3zj
>> NicAoLU+IbFY3T0dw5DML2M4sssOh4gI
>> =7BaH
>> -END PGP SIGNATURE-
>>
>> -
>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>> For additional commands, e-mail: users-h...@tomcat.apache.org
>>
>>


-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: ConnectionPoolMBean should not expose plain-text DB password

2012-10-05 Thread Shanti Suresh
Hi Te,

Will it be an option for you to create a JSP as was recently discussed in
this list, to expose just the particular MBeans that you need?

Thanks.
  -Shanti

On Thu, Oct 4, 2012 at 3:06 PM, Christopher Schultz <
ch...@christopherschultz.net> wrote:

> -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA1
>
> Te,
>
> On 10/4/12 1:56 PM, Te Li wrote:
> > DB password is secret information and should not be exposed via
> > JMX. The tomcat ConnectionPool class implements
> > ConnectionPoolMBean interface. This interface exposes connection
> > pool configuration and statistics. However, because this interface
> > extends PoolConfiguration which has "getDbProperties()" method that
> > exposes the "password" property in plain text.
> >
> > The getPassword() method in DataSourceProxy class (which
> > implements PoolConfiguration interface) correctly does not return
> > the password but just a dummy value "Password not available as
> > DataSource/JMX operation."  However, the password is still exposed
> > via getDbProperties() method, which is an unexpected behavior.
> >
> > Due to the exposure of plain-text password, we cannot use the
> > ConnectionPoolMBean class out of the box in our production
> > environment and have to define our own MBean interface to expose
> > the ConnectionPool bean. Please fix this.
>
> Sounds a lot like https://issues.apache.org/bugzilla/show_bug.cgi?id=53139
>
> Given the response to that enhancement request, I suspect yours will
> get the same treatment were you to actually file it in Bugzilla.
>
> - -chris
> -BEGIN PGP SIGNATURE-
> Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
> Comment: GPGTools - http://gpgtools.org
> Comment: Using GnuPG with Mozilla - http://www.enigmail.net/
>
> iEYEARECAAYFAlBt3jwACgkQ9CaO5/Lv0PDCngCfRyI8rG0cYaEh0hn8WhrPa3zj
> NicAoLU+IbFY3T0dw5DML2M4sssOh4gI
> =7BaH
> -END PGP SIGNATURE-
>
> -
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
>
>


Re: ConnectionPoolMBean should not expose plain-text DB password

2012-10-04 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Te,

On 10/4/12 1:56 PM, Te Li wrote:
> DB password is secret information and should not be exposed via
> JMX. The tomcat ConnectionPool class implements
> ConnectionPoolMBean interface. This interface exposes connection
> pool configuration and statistics. However, because this interface
> extends PoolConfiguration which has "getDbProperties()" method that
> exposes the "password" property in plain text.
> 
> The getPassword() method in DataSourceProxy class (which
> implements PoolConfiguration interface) correctly does not return
> the password but just a dummy value "Password not available as
> DataSource/JMX operation."  However, the password is still exposed
> via getDbProperties() method, which is an unexpected behavior.
> 
> Due to the exposure of plain-text password, we cannot use the 
> ConnectionPoolMBean class out of the box in our production 
> environment and have to define our own MBean interface to expose
> the ConnectionPool bean. Please fix this.

Sounds a lot like https://issues.apache.org/bugzilla/show_bug.cgi?id=53139

Given the response to that enhancement request, I suspect yours will
get the same treatment were you to actually file it in Bugzilla.

- -chris
-BEGIN PGP SIGNATURE-
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Mozilla - http://www.enigmail.net/

iEYEARECAAYFAlBt3jwACgkQ9CaO5/Lv0PDCngCfRyI8rG0cYaEh0hn8WhrPa3zj
NicAoLU+IbFY3T0dw5DML2M4sssOh4gI
=7BaH
-END PGP SIGNATURE-

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



ConnectionPoolMBean should not expose plain-text DB password

2012-10-04 Thread Te Li
Hello,

DB password is secret information and should not be exposed via JMX. The tomcat 
ConnectionPool class implements ConnectionPoolMBean interface. This interface 
exposes connection pool configuration and statistics. However, because this 
interface extends PoolConfiguration which has "getDbProperties()" method that 
exposes the "password" property in plain text.

The getPassword() method in DataSourceProxy class (which implements 
PoolConfiguration interface) correctly does not return the password but just a 
dummy value "Password not available as DataSource/JMX operation."  However, the 
password is still exposed via getDbProperties() method, which is an unexpected 
behavior.

Due to the exposure of plain-text password, we cannot use the 
ConnectionPoolMBean class out of the box in our production environment and have 
to define our own MBean interface to expose the ConnectionPool bean. Please fix 
this.

Thanks,
Te


-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org