summaryrefslogtreecommitdiff
path: root/doc/source/faq.rst
diff options
context:
space:
mode:
Diffstat (limited to 'doc/source/faq.rst')
-rw-r--r--doc/source/faq.rst112
1 files changed, 59 insertions, 53 deletions
diff --git a/doc/source/faq.rst b/doc/source/faq.rst
index d8ca973..3c09409 100644
--- a/doc/source/faq.rst
+++ b/doc/source/faq.rst
@@ -41,20 +41,20 @@ Who are you and why did you write Snuffleupagus?
41 41
42We're working for `NBS System <https://nbs-system.com/en/>`__, 42We're working for `NBS System <https://nbs-system.com/en/>`__,
43a web hosting company (meaning that we're dealing with PHP code all day long), 43a web hosting company (meaning that we're dealing with PHP code all day long),
44with a strong focus on security. We do have hardening 44with a strong focus on security. We do have several layers of hardening
45(`kernel <https://grsecurity.net/>`_, `WAF <https://naxsi.org>`_, 45(`kernel <https://grsecurity.net/>`_, `WAF <https://naxsi.org>`_,
46`IDS <https://en.wikipedia.org/wiki/Intrusion_detection_system>`_, etc) 46`IDS <https://en.wikipedia.org/wiki/Intrusion_detection_system>`_, etc),
47below the web stack, but most of the time, when a website is compromised, 47but we had nothing for PHP7.
48it can be to send ads, spam, deface it, steal data etc. 48
49This is why we need to harden the website itself too, but we can't touch its 49Nowadays, Snuffleupagus is maintained by Julien (jvoisin) Voisin.
50source code. 50
51 51
52Why not Suhosin? 52Why not Suhosin?
53"""""""""""""""" 53""""""""""""""""
54 54
55We're huge fans of `Suhosin <https://suhosin.org>`_, unfortunately: 55We're huge fans of `Suhosin <https://suhosin.org>`_, unfortunately:
56 56
57- it doesn't work very well on PHP 7 57- it doesn't work very well on PHP7
58- it has some oudated features and misses new ones 58- it has some oudated features and misses new ones
59- it doesn't cope very well with our various industrialization needs 59- it doesn't cope very well with our various industrialization needs
60- it has some shortcomings by design 60- it has some shortcomings by design
@@ -65,18 +65,32 @@ the `system <https://secure.php.net/manual/en/function.system.php#refsect1-funct
65function to perform various mandatory maintenance tasks). 65function to perform various mandatory maintenance tasks).
66 66
67This is why we decided to write our own hardening module, in the spirit of Suhosin, 67This is why we decided to write our own hardening module, in the spirit of Suhosin,
68via virtual-patching support, and other cool new features. 68with virtual-patching support, as well as other cool new features.
69 69
70What license is Snuffleupagus under and why? 70
71"""""""""""""""""""""""""""""""""""""""""""" 71What license is Snuffleupagus released under and why?
72"""""""""""""""""""""""""""""""""""""""""""""""""""""
72 73
73Snuffleupagus is licensed under the `LGPL <https://www.gnu.org/copyleft/lesser.html>`_ 74Snuffleupagus is licensed under the `LGPL <https://www.gnu.org/copyleft/lesser.html>`_
74and is developed by the fine people from `NBS System <https://nbs-system.com/>`__. 75was developed by the fine people from `NBS System <https://nbs-system.com/>`__,
76and is maintained by Julien (jvoisin) Voisin.
75 77
76We chose the LGPL because we don't care that much how you're using Snuffleupagus, 78We chose the LGPL because we don't care that much how you're using Snuffleupagus,
77but we'd like to force people to make their improvements/contributions 79but we'd like to force people to make their improvements/contributions
78available to everyone. 80available to everyone.
79 81
82
83What is the different between SNuffleupaugs and a (WAF) like ModSecurity?
84"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
85
86`ModSecurity <https://modsecurity.org/>`__ and the other `Web Application
87Firewall (WAF) <https://en.wikipedia.org/wiki/Web_application_firewall>`__ are
88working by inspecting the http traffic. Snuffleupagus being a PHP module, is
89operating directly inside your website's code, with a lesser overhead, as well
90as a better understanding of what is currently happening inside your
91application.
92
93
80Should I use Snuffleupagus? 94Should I use Snuffleupagus?
81""""""""""""""""""""""""""" 95"""""""""""""""""""""""""""
82 96
@@ -113,6 +127,18 @@ is still a security issue, and should be treated as such.
113We don't have the pretension to state that Snuffleupagus will magically solve 127We don't have the pretension to state that Snuffleupagus will magically solve
114all your security issues, but we believe that it might definitely help. 128all your security issues, but we believe that it might definitely help.
115 129
130
131Sounds great, but is it working?
132""""""""""""""""""""""""""""""""
133
134We've been using it in production since a couple of years, and it thwarted
135numerous known and unknown attacks. If you want some evidences, one of the
136developer published in June 2019 a `blogpost
137<https://dustri.org/b/snuffleupagus-versus-recent-high-profile-vulnerabilities.html>`__
138showcasing how efficient Snuffleupagus was versus *major* web
139vulnerabilities from 2018/2019.
140
141
116Why should I send you bugs, security issues and patches? 142Why should I send you bugs, security issues and patches?
117""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 143"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
118Snuffleupagus is an open-source security software, by reporting (or fixing) 144Snuffleupagus is an open-source security software, by reporting (or fixing)
@@ -148,7 +174,7 @@ By checking the logs; Snuffleupagus systematically prefix them with ``[snuffleup
148 174
149Does Snuffleupagus run on Windows? 175Does Snuffleupagus run on Windows?
150"""""""""""""""""""""""""""""""""" 176""""""""""""""""""""""""""""""""""
151No idea, feel free to `try <https://github.com/nbs-system/snuffleupagus/issues/2>`_. 177No idea, feel free to `try <https://github.com/jvoisin/snuffleupagus/issues/2>`_.
152 178
153 179
154Does Snuggleupagus run on `HHVM <http://hhvm.com/>`_? 180Does Snuggleupagus run on `HHVM <http://hhvm.com/>`_?
@@ -181,46 +207,13 @@ discuss potential impact of the vulnerability,
181reference applicable patches or workarounds, 207reference applicable patches or workarounds,
182and credit the discoverer. 208and credit the discoverer.
183 209
184Please send it us a mail to the ``security`` user, 210Please do send a mail to [Julien (jvoisin) Voisin](https://dustri.org) should
185on ``nbs-system.com``, using the gpg key 211you find a security issue.
186``498C46FF087EDC36E7EAF9D445414A82A9B22D78``:
187
188::
189
190 -----BEGIN PGP PUBLIC KEY BLOCK-----
191 212
192 mQENBFnKHhoBCADaOa0MKEqRy0h2ohIzczblzkMQCbU9oD1HwJ1VkYnn7TGW2iKi
193 NISxisExIXpy2Bn/pA27GiV0V/Do3NL6D9r0oOCrGR27muGM0N/dk9UMv7MWw8zv
194 K8cO+Sa28s0cAv7r2ogUJj5YOo8D4wHEpE8424TE89V9+Qg/SaFCxKoELFP0c7wu
195 mtsm0PnL65piZ1EB7lQo2gxg+8AV45MD1Y2rREMKUoZE23X+nXKsmEh9BFEPaU5M
196 7WQp0NasqeMNoGhwfw9ttVAeLhkEkaTjW1PkNRIb7vrtV9KVb5uKucflfbOnDlzu
197 tQ9U3tYto0mcSCRchAClfEmoSi/0mKyb5N6ZABEBAAG0NVNlY3VyaXR5IHRlYW0g
198 b2YgTkJTIFN5c3RlbSA8c2VjdXJpdHlAbmJzLXN5c3RlbS5jb20+iQE3BBMBCAAh
199 BQJZyh4aAhsDBQsJCAcCBhUICQoLAgQWAgMBAh4BAheAAAoJEEVBSoKpsi14jy0H
200 /1/XB9THhvmG0ow81sld2Zx8qhnNed8VvYDS6mEjpDWNVPxENwDbnakEjisq1Hrb
201 2UQPYCyQ5dekPNFVwQHIGXkX0eb1Ank+4esBJuEpQ2985tgNhJy5ZX+Imb5C8nZC
202 90uYSN1UUg559nUsFeElOXSEH6tIXK/TvjsvMYoi2Ukl6lb7PbIU2fjLY9Iqv3QY
203 32p8/Bl1fVKWbXOk0HDgJ6zA3Kr56QhZOLBkxjOa2XAnnIE76jZxUJ9qPCwWd1vW
204 GFxtx1Y+eZriqHiC9CPe6aBWcIHaTXSu1WBbXrFu8/eCWw243Rxm8l9wgA/a7VWq
205 WBfO45IhJUwh95naRpw8/4a5AQ0EWcoeGgEIAJtzSyyzfn2RX+BsyoRFANUpIgrV
206 /9eohYQVNqK3AFthmq7Kjmt4+hszF5+0wCFmWwYqGnqk1/dsWmqpkXsJldEn6oPJ
207 Bng+Dc67Yki2dR3TroAf95UmI08fhyM7TMXp8m46BPRRMzPNwalEeEm49Oclmfxb
208 JsWWCChWVLWGz2xgPEAv3fPHqus7Rwz/WIl53l/qy1Wf0ewmjRpVEfnEMKBExtBK
209 4kRxQ40LzUZ1SfpyGc3nMbswhevT7/klqrdJdCnlu67Y/IfRGxGZuNj1n1Dib3Hx
210 zTBHo3Y2R3BB93Ix8dkbLaxLqFbOYVdijCgJklqUWhx7btpQ2xnZyzyCMuUAEQEA
211 AYkBHwQYAQgACQUCWcoeGgIbDAAKCRBFQUqCqbIteFRvB/9u3Mae8n8ELrJKOn+P
212 PEbWjutObIuTplvY4QcbnNb9dsgsKryamp4CFJsA5XuitPpC31GDMXBZO5/LLOuH
213 HoMaXFJdic0NToL/3REhu+aZkNIU6S/iaPRNVhkSV4lwQsvncz+nBaiDUJjyfJm2
214 kEjVcRTM8yqzcNo/9Gn0ts+XCUqRj7+S1M4Bj3NySoO/w2n+7OLbIAj+wQZcj3Gf
215 5QhBYaY4YaFxrJE0IZxyXGHw8xhKR6AN+u4TO7LRCW+cWV/sHWir1MXieJoEG8+R
216 W/BhrB0Rz5uxOXMoGCCD2TUiHq7zpuHGnYFVmAnHQZaaQxXve4VrcmznxgpV8lpW
217 mZug
218 =+eIv
219 -----END PGP PUBLIC KEY BLOCK-----
220 213
221I found a bug. How can I report it? 214I found a bug. How can I report it?
222""""""""""""""""""""""""""""""""""" 215"""""""""""""""""""""""""""""""""""
223We do have an issue tracker on `Github <https://github.com/nbs-system/snuffleupagus/issues>`_. 216We do have an issue tracker on `Github <https://github.com/jvoisin/snuffleupagus/issues>`_.
224Please make sure to include as much information as possible when reporting your issue, 217Please make sure to include as much information as possible when reporting your issue,
225such as your operating system, your version of PHP 7, your version of Snuffleupagus, 218such as your operating system, your version of PHP 7, your version of Snuffleupagus,
226your logs, the problematic php code, the request, a brief description, … long story short, 219your logs, the problematic php code, the request, a brief description, … long story short,
@@ -232,12 +225,9 @@ it's not that hard.
232Where can I find even more help? 225Where can I find even more help?
233"""""""""""""""""""""""""""""""" 226""""""""""""""""""""""""""""""""
234The :doc:`configuration page <config>` might be what you're looking for. 227The :doc:`configuration page <config>` might be what you're looking for.
235If you're adventurous, you can also check the `issue tracker <https://github.com/nbs-system/snuffleupagus/issues/?q=is%3Aissue>`_ 228If you're adventurous, you can also check the `issue tracker <https://github.com/jvoisin/snuffleupagus/issues/?q=is%3Aissue>`_
236(make sure to check the `closed issues <https://github.com/nbs-system/snuffleupagus/issues?q=is%3Aissue+is%3Aclosed>`_ too). 229(make sure to check the `closed issues <https://github.com/jvoisin/snuffleupagus/issues?q=is%3Aissue+is%3Aclosed>`_ too).
237 230
238I need professional support for my company.
239"""""""""""""""""""""""""""""""""""""""""""
240Contact `NBS System <https://nbs-system.com>`_.
241 231
242Unimplemented mitigations and abandoned ideas 232Unimplemented mitigations and abandoned ideas
243--------------------------------------------- 233---------------------------------------------
@@ -255,3 +245,19 @@ if someone can manage to get better results than us.
255The possibility of having this natively in PHP has 245The possibility of having this natively in PHP has
256`been discussed <https://marc.info/?l=php-internals&m=141692988212413&w=2>`_, 246`been discussed <https://marc.info/?l=php-internals&m=141692988212413&w=2>`_,
257but as 2017, nothing has been merged yet. 247but as 2017, nothing has been merged yet.
248
249Nop'ing function execution
250""""""""""""""""""""""""""
251
252Snuffleupagus can be configured to either *allow* or *drop* the execution of
253particular functions and optionally *log* and *dump* them, but it doesn't
254provide any mechanism to *nop* their execution.
255
256We thought about adding this, but didn't for several reasons:
257
258- What should the return value of a *nop'ed* function be?
259- It would add confusion between ``drop``, ``nop`` and ``log``.
260- Usually, when a specific function is called, either it's a dangerous one
261 and you want to stop the execution immediately, or you want to let it
262 continue and log it. There isn't really any middle-ground, or at least we
263 failed to find any.