From: Chas. Owens
> On Mon, Mar 23, 2009 at 14:16, Amit Saxena <learn.tech...@gmail.com>
wrote:
>> Is it possible to implement this without using any external modules
from
>> CPAN ?
> 
> The FAQ covers this quite nicely (see below).  In general you should
> use File::Tail[1].  And on UNIX systems, of course, you can always
> cheat:
> 
> There are generally five reasons for not wanting to install modules:
> 
>     5. the target machine is totally locked down (i.e. you login
>        to rbash and have to provide code to a third party for
>        inclusion on the box)
> 
> Of the five, only the fifth is truly difficult to work around, but it
> is possible using the same techniques as the fourth with an added
> argument to the third party that they are willing to install other
> binary programs.

If I may, I would like to wrap this case in a real world context. We are
a certified credit card processor, commonly known as a PCI-DSS(*) level
1 Service Provider. There are specific rules about what we can and can't
do on the production servers, which periodically have to pass detailed
audits in order to renew our certification. In addition, there are other
audits (PA-DSS) required for credit card applications we distribute to
be installed on clients' computers.

First of all, as a developer I am not allowed any access to the
production servers, either ours or the clients'. I may not log in to
them in any form. The system admins work in another department and they
are only allowed to install tested and certified packages.

Once the servers have passed the initial audit and are certified, every
modification or addition must pass through a specific sequence of
checks. First, they must undergo a thorough code review. Second, they
must be packaged in an approved format for automatic installation,
currently the Red Hat RPM packaging. Then that package must be installed
and tested on a separate QA system. Once the QA team has approved the
update, it is placed in a repository where an administrator, either here
or at a client site, can check it out and install it.

There are a number of reasons for this Chinese Wall between development
and production, but the biggest is accountability. If I can't directly
access the production servers, there is little chance that I can fiddle
with the data on those servers without someone else at least detecting
the intent to fiddle. Since there is real money involved, the discovery
of an intent to fiddle would at least cost me my job, and could put me
in prison.

These rules are in place to protect the credit card issuers and are very
thoroughly enforced. They also provide some liability protection for my
employer, although there are additional safeguards in place for that. In
the past few years there have been some highly publicized breakdowns of
these rules, resulting in more scrutiny and tighter enforcement for
every one else in the industry.

As a result, installing a new module on the production server is very
expensive. It must go through our code review and QA testing as well as
being repackaged in the correct format for deployment. It is difficult
to justify this expense. It would require even more effort to justify
installing directly from CPAN, since none of the modules there have been
through our code review nor been examined by either our QA staff or the
PCI auditors.

So don't talk to me about working around the limitations. The auditors
will almost certainly complain about that. Tell me how to install a new
module within these rules?

Bob McConnell

(*) PCI-DSS: Payment Card Industry - Data Security Standards

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to