我总是告诉我的学生,如果他们将在那里做任何类型的Web应用程序渗透测试,他们应该要先考虑的是运行自己的网络服务器。为了能够运行,我疯狂地选择了WordPress。我之所以这样说,是因为我意识到,我冒着曝光的高风险运行着WordPress。我会写未来有关此方面的文章,主要是因为我仍然积极地进行着SANS642和SAN542的教学。
从安全的角度来看,精神体操必须通过服务器运行之后才会完美,此Web服务器证明了这一点。实用主义也是有其代价的。有些成本也包括了CSP,或者应该称之为内容安全策略更好。实话说,如果你不愿意实现对接,CSP就是对接实现一个巨大的痛苦。你可以用它来回报你自己,但当你在这个岗位上,它并不会表现得很完美。
我目前使用的流行的工具有:NGINX,WordPress,新的文物,谷歌Analytics(分析),谷歌广告词,Gravatar,脸谱等。CSP必须将这些都考虑在内。
CSP目前的头文件
如果你认为这头文件已经交付给你了,我在这里透露的就是秘密。
让我们通过其中的一些来看看,并考虑一下威胁模型。默认的SRC指令让我们知道如何利用JavaScript的默认来源。在这里,我们自己只是'白名单'。
default-src 'self';
接下来是脚本SRC指令,是在告诉浏览器正在加载JavaScript是安全的。它能保护我们免受攻击,这真的很神奇。下面是白名单的新遗物,其中一个例子包括了nr-data.com来源的。更可怕的是*.wp.com,*.gravatar.com和一些网站可能不会控制主机用户的数据但其子域却经常变化。
script-src 'self' 'unsafe-inline' 'unsafe-eval' https://js-agent.newrelic.com https://*.nr-data.net https://*.wp.com https://*.gravatar.com https://*.wp.com https://pagead2.googlesyndication.com https://ssl.google-analytics.com https://connect.facebook.net https://www.google-analytics.com https://cdnjs.cloudflare.com https://ajax.cloudflare.com;
接下来的指令是“IMG-SRC”,这是在告诉浏览器加载的图片是安全的。出于某种原因,WordPress使用*.w.org和*.wp.com的链接的时间缩短了。
img-src 'self' data: https://wordpress.org https://*.w.org https://*.gravatar.com https://*.wp.com https://ssl.google-analytics.com https://s-static.ak.facebook.com https://www.google-analytics.com;
Style-src是我们的样式表,这里要注意些东西。
style-src 'self' 'unsafe-inline' https://*.wp.com https://*.gravatar.com https://fonts.googleapis.com;
字体来源是我们在这个网站上的网页字体,你有时还可以在这里发现adobe。
font-src 'self' data: https://fonts.gstatic.com https://themes.googleusercontent.com;
SRC的框架让我们知道它是安全的负荷框架,虽然网站只有Facebook,双击和*.wp.com被使用。
frame-src 'self' https://*.wp.com https://*.doubleclick.net https://www.facebook.com https://s-static.ak.facebook.com;
Object-src是针对对象的,但在这里没有提到对象。
object-src 'none'";
CSP的挑战
是的,你可能会发现更大的挑战是:你可能会发现,你的经验和你的用户的经验可能是完全不同的。因为你所发现的错误,如果要让用户看到,可能是相当困难的。那些部分推特网安全团队的人,他们非常善良友好,他们在推特网上联系了我(@ NDM)。我不太确定,自从他为推特工作,他是否会担心自己的三封信推特处理,因为他在推特的工作,但他非常友好,他写信联系我,并且给了我一些链接。
现在的作品正在Git Hub上更新。
他提到,他用两个工具,一个谷歌浏览器插件CASPR和Report-URI.io。我认为这两个工具是令人惊讶的。 Report-URI.io让您发送错误事件,以便以后系统进行特定的分析。
report-uri https://report-uri.io/report/<key>;
为什么这个有价值?似乎每一天我都在寻找我需要的白名单,我没有考虑到系统的新领域。
Github的要点已被更新,Twitter也已经被更新,其中包括Twitter的短代码。
需要注意的链接:
这里有提供许多的帮助的人和一些有用的链接。
https://blog.twitter.com/2013/csp-to-the-rescue-leveraging-the-browser-for-security
https://dev.twitter.com/web/overview/widgets-webpage-properties
https://developer.mozilla.org/en-US/docs/Web/Security/CSP
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy