These forums are read-only!
PCI-DSS on slicehost?
  • Has anyone else gotten PCI-DSS certification on a slicehost deployment? It looks like it should be possible, but I'm not sure -- and if no one else has done it, I'd rather not be the first. :p

    Cheers,

    Tyler
  • Looking at the requirements "here":http://en.wikipedia.org/wiki/PCI_DSS, I don't think there would be a problem.
  • I would like to follow up on this question now that I am looking at PCI compliance issues myself.

    PCI compliance involves a chain of providers, so according to my understanding, in order to be PCI-compliant on Slicehost, Slicehost itself must be PCI-compliant as a "service provider." (Slicehost must be PCI-compliant as a "merchant" as well in order accept credit cards from its customers. But from the perspective of a Slicehost customer wanting to be compliant, the "service provider" classification is what is relevant.) For service providers, there are some specific provisions pertaining to web hosts ("PCI DSS Applicability to Hosting Providers"). There are also requirements related to the data center such as the requirement that "cameras monitor sensitive areas" and "data from video cameras be stored for at least three months."

    So, question #1 is: Is Slicehost a PCI DSS-compliant web host? And if so, how does one acquire documentation from Slicehost certifying this to be the case.

    In addition, it is unclear if there is a distinction to be made between dedicated servers and virtual servers. Does anybody know?

    And then there's the requirement that "only one primary function is implemented per server (for example, web servers and database servers are implemented on separate servers)." Which seems to imply that it is impossible to be PCI-compliant if you run your entire application stack on a single server (or slice).

    This whole PCI DSS thing seems to get more complicated every time I look at it. For example, it looks to me like any provider of e-commerce-related services falls under the "SAQ D" heading, which requires the completion of the most complicated self-assessment questionnaire (37 pages and over 200 questions!)

    I would love to hear from anybody who has gone through the PCI compliance process with hints, tips and answers to the above questions.
  • I once worked at a credit card payment gateway, and at one point we got VISA CISP certified. CISP has since been superseded by PCI-DSS. I do remember that it was difficult to get certified because our systems didn't comply to the exact architecture that the CISP creators had in mind. For instance, CISP expected an external (e.g. Cisco) firewall in front of your servers, not a software firewall with iptables. CISP expected frequent password rotation, with no provisions for things like passwordless public key ssh logins. Oh, and it required that anti-virus software be installed on your servers!

    So hopefully things have improved with PCI-DSS. Though looking at the page Matt linked to, perhaps not. I also wouldn't be at all surprised if PCI-DSS has no provisions whatsoever for virtual servers.
  • PCI-DSS does require anti-virus software be installed...
  • You can't be too careful about all those Linux-based credit-card-number-stealing viruses.
  • Would still like to hear from Matt re: my questions about PCI compliance on Slicehost (see above). Thanks.
  • This is also a concern for me as I need to implement a host that processes credit card information. The requirements do seem to indicate that the physical access to the server be controlled, and this would be something Slicehost would need to certify. Can someone from Slicehost comment on that?

    For general discussion, I am also not sure how to meet the "anti-virus" requirement. Any experience with this on *nix servers of any sort?

    -Paul
  • Just out of curiosity, why not offload the PCI-DSS compliance to a gateway, e.g. Authorize.net?
  • Yes I would like to get an answer for this aswell, since I am in the process for PCI-DSS compliance. I for example am from Iceland and can't use Authorize.net and the service's here in Iceland don't support subscription service in their payment "gateway's"......
  • @joek & depill:

    My understanding: If you accept credit card info on your own server -- even if you don't store it and are just passing it to a gateway -- you have to be compliant. The only way to process payments and avoid dealing with PCI is to outsource your payment needs to a company with a fully hosted option (like PayPal etc.) so that no card info ever hits your server.
  • "even if you don't store it and are just passing it to a gateway -- you have to be compliant"

    Can anyone verify this?

    I guess my question is, is there a certification for this? Or do you just implement these Requirements:

    http://en.wikipedia.org/wiki/PCI_DSS#Requirements

    and say you're "PCI-DSS compliant"?
  • Visa sets a service provider limit of 300,000 transactions per year (not $ volume). Level 1 > 300k, Level 2 < 300k. Here's the link:

    http://usa.visa.com/merchants/risk_management/cisp_service_providers.html

    So for a service provider to be compliant, you must do a quarterly scan with Level 1 requiring validation by a 3rd party and Level 2 only requiring a self-assessment.

    The AV software is required of merchants, not necessarily service providers, the way I read it.

    Joe
  • I too am just starting to look at PCI-DSS compliance. Our company sells a software product via web download. All the e-commerce is on a Slicehost running Ubuntu, Drupal, and Ubercart with Authorize.net as the gateway. A few things I have learned so far:

    Lots of pointers above to the wikipedia PCI DSS requirements. Ignore this in that it is just a watered down list of the most general requirements. The real source is PCI itself at https://www.pcisecuritystandards.org/. The full PCI DSS, which stands for Payment Card Industry Data Security Standard, can be found at https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml. This is the real document which breaks down the 12 requirements into hundreds (yes hundreds) of small requirements. Lots of work.

    Using a payment gateway like Authorize.net does not relieve the merchant of PCI DSS compliance. If the credit card number touches the server there are some requirements to be met.

    Much easier to meet the requirements if you do not keep the credit card number around. Not sure how much easier.

    If any one has experience going through this I would love to hear about it.

    Looking at the DSS requirements I have lots of questions. Here are some examples -

    The Slicehost servers run software firewalls. The requirements talk about hardware firewalls. Are software firewalls close enough to count?
    How much smaller are the requirement if you do not keep credit card numbers on the site?
    I suspect the Slicehost staff has access to the servers through some administrative means. How do we account for security for that?
    The DSS requires strict review of changes in software. How does this work with open source software?
    When accessing cardholder data remotely, one needs to prohibit the copying r moving the data to the local hard drive. How do you do that?
  • I'd also like to learn more about this. It would probably be best if we heard from someone that has actually gone through the process of signing up with a payment gateway provider such as authorize.net, trustcommerce or braintree
  • I have started my process with my gateway provider Valitor ( Visa Iceland, which also processes for MasterCard ), and will have to both outgo the Icelandic commerce outtake of the whole web site and PCI-DSS. I will let you know what problems ( if any ) I will run into.
  • I'm working through this PCI DSS compliance thing as well, and can confirm that, even if you aren't doing the payment processing and aren't storing any credit card data, if the payment information lands on your server before you pass it on to Authorize.net / Beanstream, you need to be PCI compliant. Makes sense, as (for example) if you don't use an encrypted connection on your server, customers will be sending their credit card information in the clear to your server, even if it travels encrypted to the payment gateway.

    However, to me, PCI compliance should be fairly straightforward for someone who simply passes payment information on to the payment gateway and doesn't store credit card data (this makes you a "Level 4" merchant, if I'm right). For some reason, the Self-Assessment Questionnaire for Level 4 goes on and on about not storing credit card data unencrypted, protecting access to credit card information, having antivirus software installed to protect against credit-card-stealing viruses... Hey! Didn't you hear?? I'm NOT STORING CREDIT CARD INFORMATION.

    Maybe I'll return and post a follow-up when this is all said and done.
  • bq. ??Northwest?? The Slicehost servers run software firewalls. The requirements talk about hardware firewalls. Are software firewalls close enough to count?

    I have no experience with dealing with credit card transactions, but I found the above interesting. Realisticly, a "hardware firewall" is just a piece of hardware dedicated to running firewall software. Therefore, at minimum, could you not reasonably "emulate" a hardware firewall by configuring your main web/database server slice to use only an internal IP address, then creating a separate slice that did nothing but act as a firewall between the Net and the web/db server slice?
  • ilikepi -- You and I both know the software firewall used by Slicehost is just as effective as a hardware firewall. Unfortunately I suspect the similarities are lost on the PCI DSS people. The requirements says hardware fire wall. Software firewall is not a hardware firewall so not good enough. End of story.

    Having spent more time reading through the DSS spec, I see it is very focused on a particular model - a large company with an IT department which host its own server. The servers are on site controlled by the IT departement. Much of the document is about protecting the servers from the Internet and isolating from the rest of the company internal network. Anything outside this model is hard for companies which do audits to understand. My merchant account providers directed me to securitymetrics.com. They asked me I the server doing the processing was on site. I said no. They immediately said it was a third party processor. I tired to explain while the server was not on site it was still controlled by my company. They did not really understand. The guy thought I then belonged in the lowest category of SAQ-A evalutation. I think that is more for people who use something like Yahoo or PayPal for processing. More research required.

    danielshorten - Levels 1 -4 are based on the number of transaction. A level 1 is Amazon with 6 million transactions per year. Level 2 is one to six million per year. Level three is 20,000 to one million transactions per year. Level 4 is less than 20,000 Visa or MasterCard e-commerce tranactions per year or less than 1 million tranactions total (e-commerce and brick and mortar). The storage of account numbers is independent of the level. Not storing number is suppose to make is much easier to get certification. I cannot figure out exactly what rules apply where. For example Requirement 1 talked about "The cardholder data environment" but does not help us out by defining. Specific example: Requirement 1.2.1.a states:

    "Verify that inbound and outbound traffic is limited to that which is necessary for the cardholder data environment, and that the restrictions are documented."

    Does this only apply if you keep account numbers? I have no idea.

    wcoolnet - Our company has gone though the process of signing up a gateway (authorize.net) and a merchant account (First Data). We have been up and running for about 5 months. Got a letter from first data a couple of weeks ago about rate increases and changes in our plan. In there was a notice about PCI compliance. So it is further down the road that the problem arises (at least for us).

    Anyone had any luck with finding an "approved scan vendor"? Any experiences to share?

    Thanks for any help!
  • danielshorten - I did some more research. There are levels 1 -4 (explained above). There are also "types" of merchants. A "type 1" merchant is one that only handles transaction ID and nothing else. That is, the server calls another companies server which gathers the credit card info, processes the transaction, and just returns a tranasction ID with the credit card number never touching the merchants server. These are much, much easier to certify. The other type of e-commerce merchant is a "type 5" merchant. While our site does not store the credit card number, it does touch it. The number is gather from the user, encrypted and sent off to the processing gateway. That little bit of processing is enough to kick us into the "type 5" category and bring tons more of the DSS requirements into play (firewalls, auditing, camera, etc).

    Does anyone know of good companies which will do the type 1 processing? I know Yahoo does some of this but they want something like 10% of sales.

    Some details can be found in this webinar: http://register.webcastgroup.com/event/?wid=0801106084334
  • How is it that a ecommerce framework like Magento has an option to store CC info out of the box?
  • This is interesting - from the authorize.net Developer FAQ (http://developer.authorize.net/faqs/):

    Does my solution have to be Payment Card Industry (PCI) Data Security Standard certified?

    The card associations do not currently require payment applications to be PCI certified. However, Visa does provide many useful guidelines and best practices for payment applications that help to provide strengthened security for merchants. Visit Visa’s Cardholder Information Security Program (CISP) for more information.

    Authorize.Net is fully PCI certified, and dedicates many resources to maintaining our certification with Visa.

    I wonder if this is up to date and it only applies to those providing ecommerce apps, e.g. a shopping cart?

    Joe
  • That FAQ is incorrect. Payment applications are subject to the PA-DSS which is, if anything, even more stringent than PCI-DSS.
  • Hey, all of you who have been investigating and implementing these security standards on your slices, could you please start a wiki page with your findings?

    I think it would be a great resource to have, a page dedicated to standards compliance. Plus eventually, once findings have been finalized and a person or two manages to achieve certification, an article (for articles.slicehost.com) could be constructed.

    Thanks for all of the information posted so far!
  • http://www.magentocommerce.com/knowledge-base/entry/how-can-i-capture-credit-card-information-without-a-payment-gateway1

    Strange that that is even close to legal?
  • Magento can do anything they like in their app. Ultimately, it is the party that hosts and uses the app to do so in a PCI-DSS-compliant manner. Achieving PCI-DSS compliance for that feature (saving the credit card info in the database) is enormously difficult and expensive. It would likely cost on the order of 6 figures per year to maintain compliance for that.

    This is why we have started to see payment processing vendors sprouting up who will do this for you. They will collect and save the credit card information on their servers and return a token for your application's use in processing transactions against their gateway. The cost and burden of maintaining PCI-DSS and PA-DSS compliance then rests with them.
  • Artagesw,

    Your posts contradict themselves - you said:

    That FAQ is incorrect. Payment applications are subject to the PA-DSS which is, if anything, even more stringent than PCI-DSS.

    Then you said:

    This is why we have started to see payment processing vendors sprouting up who will do this for you. They will collect and save the credit card information on their servers and return a token for your application's use in processing transactions against their gateway. The cost and burden of maintaining PCI-DSS and PA-DSS compliance then rests with them.

    Is the difference that those payment gateways host the page?
  • >> Is the difference that those payment gateways host the page?

    Exactly. In order to avoid the whole PCI compliance mess, credit card data must never touch your server. The payment gateway or merchant provider then becomes the "payment application" and they shoulder responsibility for compliance. SImilar to PayPal in that respect.
  • @artagesw: Sorry, you can't scare people with that for people which have to store CC info they can expect bills for up to 6 figures ( I guess you are talking about US dollars ). I am going trought exactly this process, I will sadly probally have to leave Slicehost, since the agent which does the exam's for me want's me to be able to proof that my servers are in a secure environment so I am going to colo a server which I have at the local biggest local TelCo ( I will probally run VMware on it, so I don't have to rent a lot more rack space ( this way only 1U ) )

    The whole process will cost me, SSL certificate $29 dollars, startup cost for CoLo 35.000 ISK, monthly cost for CoLo 20.000 ISK, outtake of credit card web ( more extensive than PCI-DSS ( it's basicly 4 man-hour labor cost, you pay extra if it need's more extensive exams, exam's are both for the hosting environment and the software it self) ) 25.000 ISK yearly, then I pay my processing partner a yearly fee of 3.000 ISK for the credit card processing account, which includes the fee for "Boðgreiðslur" ( 1.99% transaction fee ) via Web API. It's basicly an API thought out for monthly payment's but not single transaction.

    So my total cost is
    USD: $29 dollar yearly ( SSL )
    ISK: 268.000 ISK yearly ( biggest part of the cost I will be able to share with multiple web sites ( CoLO cost ) ). At the current very weak Króna it is about $2233. At "normal" rate it is about $3350 yearly total cost.

    I write the software my self ( I am a developer ) so I don't calculate the software cost....

    So for storing CC's is no where near 6 figures.... But @ least for me here in Iceland with an Icelandic partner doing the PCI-DSS exam I seem to be not able to use Slicehost, since I don't control the physical server. And if I would go with an dedicated server some where else I would have to get a written statement from the hosting partner that they fufill all the requirements. ( My local TelCo fufills all the requirements. And it's much easier because it's an local company )
  • After investigating PCI-DSS for our very simple ecommerce site, I had to conclude the following: (1) If your server ever sees (not stores, just SEES) a credit card number, you fall into the highest category of requirements. (2) The standards are way behind the reality of how apps are built nowadays. As far as I can tell, no one has any idea how virtual servers work in this scheme. (3) The standards used to be enforced very weakly on small merchants, but that is about to change, and the penalties look pretty harsh. So it doesn't seem safe to ignore the requirements like all the "how to accept credit cards" tutorials on the web do.

    The easy way to solve the problem is to use a 3rd-party provider where you redirect to their site to collect the payment information (PayPal, Authorize.NET, etc.). However, all these sites are hideous and we really didn't want to leave our carefully-designed UI and drop into yuckiness just at the moment the customer is giving us money.

    I was near despair, but I was able to find one provider that seems to have a reasonable approach, called Braintree Payment Solutions. They are a 3rd-party site, but they work through a POST/redirect protocol that means you provide the UI on your own site. They also have a secure "vault" that lets you store CC info for repeat purchases or subscriptions, but refer to it with a code. Because your server never touches the CC number, you are in the easy 6-question PCI-DSS category.

    We haven't gone into production yet so I can't honestly give them a recommendation based on real-world performance, but their service certainly seems like what we need, and we're going to start using it soon.

    URL: http://braintreepaymentsolutions.com
  • Authorize.net also provides a "vault" to store customer CC's. And their sign-up costs aren't nearly as high as Braintree's.
  • gose: Yes, but as I mentioned we want to maintain control of the UI with a SAQ-1 (all functions outsourced) solution. The only SAQ-1 method I found on Authorize.net uses their (ugly) payment form. It is "customizable" in the sense of changing colors and adding some text, but it can't be fully integrated into our site UI. With Braintree's "transparent redirect" the form is entirely defined by our site.
  • @depill: Not trying to scare anyone. I should clarify. If someone is going to use Magento (for example) to offer a hosted ecommerce service **to other merchants**, that use case classifies as a service provider/payment application. Getting and maintaining certification for a payment application (PA-DSS) is what I was referring to when I mentioned 6 figures. And it is not an exaggeration. You must have your source code constantly audited by a 3rd party, you must have a qualified assessor do regular **on-site** checks of your server infrastructure, etc. It is **very** expensive.

    On the other hand, if you are a simple merchant and you only process credit cards on your own behalf, then you must comply with the PCI-DSS. The specific compliance requirements and associated costs will depend on what level of merchant you are (how many transactions you process per month), whether or not you store credit card data on your own servers, etc. Complying with PCI-DSS is typically less expensive than complying with PA-DSS.

    As others have mentioned, the way to avoid most of this is to find a merchant processor or gateway provider that provides these services for you. For example, the Braintree solution (which I am not familiar with) sounds like a typical example of a hosted payment application. Braintree is shouldering the burden of complying with the PCI-DSS and PA-DSS requirements, and their business model will be structured to recover the associated costs from their customers.
  • what kind of money does braintree cost? can u bring an existing merch account?
  • the braintree's transparent redirect is so stupid simple i wonder why all the gateways don't offer it. Is there some technical difference between receiving a CURLed POST as opposed to a browser POST? Seems like it would be the same data.

    I'm a little concerned with what braintree's pricing might be (supposed to meet with a rep tomorrow (4/20). I saw a good review online but in the comments someone mentioned needing to do at least $100k of biz per month to meet minimums.

    So in an effort to figure out a way to avoid POSTing the CC info to my slice and then CURL posting that on to authorize.net and consequently mimic Braintree's functionality, i setup a test page on my SSL site that POSTed in Authorize.net's SIM payment page in an iframe. The thought being that i could wrap whatever I needed around it.

    I thought this would bomb out and a get a browser warning, but neither FF3 nor IE7 seemed to care at all. Both displayed the locks with no warnings and click on the security info just showed the data for my site.

    Seems a little shaky - can anyone comment on it?

    Joe
  • I've found a PCI-compliant gateway that will provides the same type functionality as Braintree - Dow Commerce. They offer an api that can post via the merchant's web site (like authorize.net) or browser redirect method that works like braintree's. They're pricing is quite reasonable, as well. Looks like a pretty good option.

    Joe
  • Anyone hear of http://chargify.com/? Or can someone recommend a similar service?
  • BrainTree offers an object oriented SDK in nearly every language imaginable. PayPal has 80 million users and probably does billions in transactions (private company so speculation is all I have), and BrainTree has only processed 263 million this year, and somehow they manage to provide a simple interface, transparent pricing, and less fees than PayPal? I'll be using them for all of my application billing until the cows come home (whatever that means). They charge 2.29% (contrast to PayPal's 2.9%) and .3 per transaction (same as PayPal). If you want to use Authorize.net and you process millions of dollars per month, you'll save a few thousand dollars per month of BrainTree, but if you've integrated with PayPal, or Authorize.net before, you'll know why it's worth paying the extra 0.01% for BrainTree. It's a no-brainer, hehe.
  • Thanks for the Braintree recommendations! We'd love to talk to any dev using Slicehost. Much like Slicehost is server hosting "Built for Developers", we're a payment gateway that is built for developers. We make PCI compliance and integration as nice and easy as possible. Check out http://bit.ly/braintree-api and keep in mind when selecting a payments provider that not all providers will give your data back to you if you want to leave. We created a credit card data portability standard to start a movement to address this http://bit.ly/a2uEvm .