diff options
| author | Sebastien Blot | 2017-09-20 10:11:01 +0200 |
|---|---|---|
| committer | Sebastien Blot | 2017-09-20 10:11:01 +0200 |
| commit | 868f96c759b6650d88ff9f4fbc5c048302134248 (patch) | |
| tree | c0de0af318bf77a8959164ef11aeeeb2b7bab294 /doc/source/faq.rst | |
Initial import
Diffstat (limited to 'doc/source/faq.rst')
| -rw-r--r-- | doc/source/faq.rst | 196 |
1 files changed, 196 insertions, 0 deletions
diff --git a/doc/source/faq.rst b/doc/source/faq.rst new file mode 100644 index 0000000..07aba33 --- /dev/null +++ b/doc/source/faq.rst | |||
| @@ -0,0 +1,196 @@ | |||
| 1 | FAQ | ||
| 2 | === | ||
| 3 | |||
| 4 | General | ||
| 5 | ------- | ||
| 6 | |||
| 7 | What is Snuffleupagus? | ||
| 8 | """""""""""""""""""""" | ||
| 9 | |||
| 10 | Snuffleupagus is a `PHP7+ <http://php.net/manual/en/migration70.php>`_ | ||
| 11 | module designed to drastically raising the cost of attacks against website, | ||
| 12 | by killing entire bug classes, and also providing a powerful virtual-patching system, | ||
| 13 | allowing administrator to fix specific vulnerabilities without having to touch the PHP code. | ||
| 14 | |||
| 15 | |||
| 16 | Where does the name *Snuffeupagus* comes from? | ||
| 17 | """""""""""""""""""""""""""""""""""""""""""""" | ||
| 18 | |||
| 19 | Aloysius Snuffleupagus, more commonly known as Mr. Snuffleupagus, Snuffleupagus | ||
| 20 | or Snuffy for short, is one of the characters on Sesame Street, | ||
| 21 | the educational television program for young children. | ||
| 22 | |||
| 23 | He was created as a woolly mammoth, without tusks or (visible) ears, | ||
| 24 | and has a long thick pointed tail, similar in shape to that of a dinosaur | ||
| 25 | or other reptile. He has long thick brown hair and a trunk, or "snuffle", | ||
| 26 | that drags along the ground. He is Big Bird's best friend and | ||
| 27 | has a baby sister named Alice. He also attends "Snufflegarten". | ||
| 28 | |||
| 29 | --- `Wikipedia <https://en.wikipedia.org/wiki/Mr._Snuffleupagus>`_ | ||
| 30 | |||
| 31 | |||
| 32 | Why is Snuffleupagus called Snuffleupagus? | ||
| 33 | """""""""""""""""""""""""""""""""""""""""" | ||
| 34 | |||
| 35 | Like PHP's `ElePHPant <https://secure.php.net/elephpant.php>`_, | ||
| 36 | we thought that using an elephant as a mascot would be a great idea. | ||
| 37 | |||
| 38 | |||
| 39 | Why did you write Snuffleupagus? | ||
| 40 | """""""""""""""""""""""""""""""" | ||
| 41 | |||
| 42 | We're working for `NBS System <https://nbs-system.com/en/>`__, | ||
| 43 | a web hosting company (meaning that we're dealing with PHP code all day long), | ||
| 44 | with a strong focus on security. We do have hardening | ||
| 45 | (kernel, `WAF <https://naxsi.org>`_, `IDS <https://en.wikipedia.org/wiki/Intrusion_detection_system>`_, …) | ||
| 46 | below the web stack, but most of the time, when a website is compromised, | ||
| 47 | it's either to send ads, spam, deface it, steal data, … | ||
| 48 | This is why we need to harden the website itself too, but we can't touch its | ||
| 49 | source code. | ||
| 50 | |||
| 51 | Why not Suhosin? | ||
| 52 | """""""""""""""" | ||
| 53 | |||
| 54 | We're huge fans of `Suhosin <https://suhosin.org>`_, unfortunately: | ||
| 55 | |||
| 56 | - it doesn't work very well on PHP 7 | ||
| 57 | - it has some oudated features and misses new ones | ||
| 58 | - it doesn't cope very well with our various industrialization needs | ||
| 59 | - it has some shortcomings by design | ||
| 60 | |||
| 61 | We're using the `disable_function <https://secure.php.net/manual/en/ini.core.php#ini.disable-functions>`_ | ||
| 62 | directive, but unfortunately, it doesn't provide enough usable granularity (guess how many CMS are using | ||
| 63 | ``system`` to do various mandatory maintenance tasks…). | ||
| 64 | |||
| 65 | This is why we decided to write our own hardening module, in the spirit of Suhosin, | ||
| 66 | via virtual-patching support, and other cool new features. | ||
| 67 | |||
| 68 | What license is Snuffleupagus under and why? | ||
| 69 | """""""""""""""""""""""""""""""""""""""""""" | ||
| 70 | |||
| 71 | Snuffleupagus is licensed under the `LGPL <https://www.gnu.org/copyleft/lesser.html>`_, | ||
| 72 | and is developed by the fine people from `NBS System <https://nbs-system.com/>`__. | ||
| 73 | |||
| 74 | We chose the LGPL because we don't care that much how you're using Snuffleupagus, | ||
| 75 | but we'd like to force people to make their improvements/contributions | ||
| 76 | available to everyone. | ||
| 77 | |||
| 78 | Should I use Snuffleupagus? | ||
| 79 | """"""""""""""""""""""""""" | ||
| 80 | |||
| 81 | Yes. | ||
| 82 | |||
| 83 | Even if you're not using the virtual-patching capabilities, Snuffleupagus comes | ||
| 84 | with various passive features that won't break your website while killing numerous vulnerabilities. | ||
| 85 | |||
| 86 | Please keep in mind that you are not only protecting yourself and your users/customers, | ||
| 87 | but also other people on the internet that might be attacked by your server if | ||
| 88 | it becomes compromised. | ||
| 89 | |||
| 90 | How mature is this project? | ||
| 91 | """"""""""""""""""""""""""" | ||
| 92 | |||
| 93 | This project was floating around since early 2016, and we did the first commit | ||
| 94 | the 28ᵗʰ of December of the same year. We're currently in a private alpha phase, | ||
| 95 | finding and fixing as much bugs as possible with the help of friends. | ||
| 96 | |||
| 97 | Are you saying that PHP isn't secure? | ||
| 98 | """"""""""""""""""""""""""""""""""""" | ||
| 99 | |||
| 100 | We don't like PHP's approach of security; namely (sometimes) adding warnings | ||
| 101 | in the documentation and trusting the developer to not do any mistake, | ||
| 102 | instead of focusing on the root cause, and killing the | ||
| 103 | bug class one for all. | ||
| 104 | |||
| 105 | Moreover, it seems that the current attitude toward security in the PHP world | ||
| 106 | is to `blame the user <https://externals.io/message/100147>`_ instead of acknowledging | ||
| 107 | issues, as stated in their `documentation <https://wiki.php.net/security#not_a_security_issue>`_. | ||
| 108 | We do think that an security issue that "requires the use of code or settings known to be insecure" | ||
| 109 | is still a security issue, and should be treated as such. | ||
| 110 | |||
| 111 | Installation and configuration | ||
| 112 | ------------------------------ | ||
| 113 | |||
| 114 | Can snuffleupagus break my application? | ||
| 115 | """"""""""""""""""""""""""""""""""""""" | ||
| 116 | Yes. | ||
| 117 | |||
| 118 | Some options won't break anything, like ``harden_rand``, but some like ``global_strict`` | ||
| 119 | or overly-restrictives virtual-patching rules might pretty well break your website. | ||
| 120 | It's up to you to configure Snuffleupaggus accordingly to your needs. | ||
| 121 | |||
| 122 | You can also enable the ``simulation`` mode on features that you're not sure about, | ||
| 123 | to see what would snuffleupagus do to your application, before activating them for good. | ||
| 124 | |||
| 125 | How can I find out the problem when my application breaks? | ||
| 126 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""" | ||
| 127 | |||
| 128 | By checking the logs; Snuffleupagus systematically prefix them with ``[snuffleupagus]``. | ||
| 129 | |||
| 130 | |||
| 131 | Does Snuffleupagus run on Windows? | ||
| 132 | """""""""""""""""""""""""""""""""" | ||
| 133 | No idea. | ||
| 134 | |||
| 135 | |||
| 136 | Will Snuffleupagus run on my old PHP 5? | ||
| 137 | """"""""""""""""""""""""""""""""""""""" | ||
| 138 | No. | ||
| 139 | |||
| 140 | Since PHP5 `will be deprecated at the end of 2018 <http://php.net/supported-versions.php>`_, | ||
| 141 | you should think about moving to PHP7 anyway. You can (and should) use | ||
| 142 | `Suhosin <https://suhosin.org>`_ in the meantime. | ||
| 143 | |||
| 144 | Help and support | ||
| 145 | ---------------- | ||
| 146 | |||
| 147 | I found a security issue | ||
| 148 | """""""""""""""""""""""" | ||
| 149 | If you believe you have found a security issue affecting Snuffleupagus, | ||
| 150 | then we would be more than happy to hear from you! | ||
| 151 | |||
| 152 | We promise to treat any reported issue seriously and, | ||
| 153 | if the investigation confirms it affects Snuffleupagus, | ||
| 154 | to patch it within a reasonable time, | ||
| 155 | release a public announcement that describes the issue, | ||
| 156 | discuss potential impact of the vulnerability, | ||
| 157 | reference applicable patches or workarounds, | ||
| 158 | and credit the discoverer. | ||
| 159 | |||
| 160 | Please send it us a mail to the ``snuffleupagus`` user, | ||
| 161 | on ``nbs-system.com``. | ||
| 162 | |||
| 163 | I found a bug. How can I report it? | ||
| 164 | """"""""""""""""""""""""""""""""""" | ||
| 165 | We do have an issue tracker on `Github <https://github.com/nbs-system/snuffleupagus/issues>`_. | ||
| 166 | Please make sure to include as much information as possible when reporting your issue, | ||
| 167 | such as your operating system, your version of PHP 7, your version of snuffleupagus, | ||
| 168 | your logs, the problematic php code, the request, a brief description, … long story short, | ||
| 169 | give us everything that you can. | ||
| 170 | |||
| 171 | Where can I find even more help? | ||
| 172 | """""""""""""""""""""""""""""""" | ||
| 173 | The :doc:`configuration page <config>` might be what you're looking for. | ||
| 174 | If you're adventurous, you can also check the `issue tracker <https://github.com/nbs-system/snuffleupagus/issues/?q=is%3Aissue>`_ | ||
| 175 | (make sure to check the closed issues too). | ||
| 176 | |||
| 177 | I need professional support for my company. | ||
| 178 | """"""""""""""""""""""""""""""""""""""""""" | ||
| 179 | Contact `NBS System <https://nbs-system.com>`_. | ||
| 180 | |||
| 181 | Unimplemented mitigations and abandoned ideas | ||
| 182 | --------------------------------------------- | ||
| 183 | |||
| 184 | Contant time comparisons | ||
| 185 | """""""""""""""""""""""" | ||
| 186 | We didn't manage to perform time-based side-channel attacks on strings | ||
| 187 | against real world PHP application, and the results that we gathered on | ||
| 188 | tailored test cases weren't concluding: for simplicity's sake, we chose | ||
| 189 | to not implement a mitigation against this class of attacks. | ||
| 190 | |||
| 191 | We would be happy to be proven wrong, and reconsider implementing this feature, | ||
| 192 | if someone can manage to get better results than us. | ||
| 193 | |||
| 194 | The possibility of having this natively in PHP has | ||
| 195 | `been discussed <https://marc.info/?l=php-internals&m=141692988212413&w=2>`_, | ||
| 196 | but as 2017, nothing has been merged yet. | ||
