Professional Documents
Culture Documents
Wordpress Web Security Standardi WordPress Bezbednost PDF
Wordpress Web Security Standardi WordPress Bezbednost PDF
Wordpress Web Security Standardi WordPress Bezbednost PDF
standardi
Igor Hrček, CTO
page
03
mint
blog
https://mint.rs/blog
• WordPress terminologija za početnike
• WordPress razvoj za početnike – prvi koraci (uskoro)
• Kako popraviti hakovan WordPress (uskoro)
page
04
agenda
prezentacije
page
05
HTTPS
page
06
evolucija
bezbednosti
transport
layer
browser server
page
07
security
headers
page
08
CSP
content injections
jednostavan primer
<body>
<textarea>
</textarea><script src=“//nsa.gov.us/i-am-not-evil-script.js”></script><textarea>
</textarea>
</body>
page
09
šta je
CSP
HTTP odgovor
content-encoding: br
content-security-policy: [CSP direktive]
date: Fri, 13 Apr 2018 17:25:36 GMT
server: nginx
status: 200
strict-transport-security: max-age=15768000
CSP direktive
child-src, connect-src, default-src, font-src, frame-src
img-src, media-src, object-src, script-src, style-src
page
010
CSP
implementacija
page
011
CSP
mixed content
page
012
CSP
mixed content
<img src=http://nekiurl.rs/slika.jpg>
block-all-mixed-content
<img src=https://nekiurl.rs/slika.jpg>
upgrade-insecure-requests
page
013
CSP
testiranje
page
014
Strict-Transport-Security
HSTS OFF
GET http://facebook.com
301 https://facebook.com
GET https://facebook.com
page
015
Strict-Transport-Security
HSTS
page
016
šta je
HSTS
HTTP odgovor
content-encoding: br
date: Fri, 13 Apr 2018 17:25:36 GMT
server: nginx
status: 200
strict-transport-security: max-age=15768000
Podešavanje
max-age
includeSubDomains
preload
page
017
Strict-Transport-Security
HSTS ON
GET http://facebook.com
GET https://facebook.com
page
018
Public Key Pinning
page
019
šta je
HPKP
HTTP odgovor
content-encoding: br
date: Fri, 13 Apr 2018 17:25:36 GMT
server: nginx
status: 200
public-key-pins: [polisa]
pin-sha256="cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs=";
pin-sha256="M8HztCzM3elUxkcjR2S5P4hhyBNf6lHkmjAHKhpGPWE=";
max-age=5184000;
includeSubDomains;
report-uri="https://mint.rs/hpkp-report"
Generisanje hash-a
openssl rsa -in my-rsa-key-file.key -outform der -pubout | openssl dgst -sha256 -binary | openssl enc -base64
page
020
integritet
spoljnih resursa
Primer
<script src="https://jquery.com/jquery.3.10.min.js" integrity="sha384-
oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC"
crossorigin="anonymous"></script>
Ručno generisanje
cat FILENAME.js | openssl dgst -sha384 -binary | openssl enc -base64 -A
page
021
pauza za kafu
pitanja & odgovori
WordPress
bezbednost
burek
diskusija
page
024
priča o
bezbednosti
• Ma ko će mene da dira?
• Jedna mera nije adekvatna za sve
• Kako proceniti efektivnu snagu bezbednosnih mera?
• Bezbednost je lanac sastavljen od pojedinačnih karika
• OWASP 10
ü A1 Injection / 42%
ü A2 Broken Authentication and Session Management
ü A3 Cross-Site Scripting (XSS) / 37%
ü A4 Insecure Direct Object References
ü A5 Security Misconfiguration
ü A6 Sensitive Data Exposure / 3%
ü A7 Missing Function Level Access Control
ü A8 Cross-Site Request Forgery (CSRF) / 4%
ü A9 Using Components with Known Vulnerabilities
ü A10 Unvalidated Redirects and Forwards
page
025
wordpress
lanac bezbednosti
dodaci
web hosting na šta obratiti pažnju kod dodataka?
kako odabrati dobar hosting?
page
026
web
hosting
page
027
WordPress
core
page
028
WordPress
dodaci
page
029
WordPress
teme
page
030
security dodaci
su loše rešenje
page
031
security dodaci
su loše rešenje
page
032
iThemes
security primer
Sakrivanje wp-login
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^skrivenilogin/?$ /wp-login.php?[vas-tajni-salt] [R,L]
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$
RewriteRule ^skriveniwpadmin/?$ /wp-login.php?[vas-tajni-salt]&redirect_to=/wp-admin/ [R,L]
RewriteRule ^skriveniwpadmin/?$ /wp-admin/?[vas-tajni-salt] [R,L]
RewriteRule ^registracija/?$ /wp-login.php?[vas-tajni-salt]&action=register [R,L]
page
033
iThemes
security primer
Protect System Files
find /path/to/your/wordpress/install/ -type d -exec chmod 755 {} \;
find /path/to/your/wordpress/install/ -type f -exec chmod 644 {} \;
page
034
iThemes
security primer
Disable PHP in uploads
<Files ~ "\.ph(?:p[345]?|t|tml)$">
deny from all
</Files>
page
035
iThemes
security primer
Disable File Editing
define('DISALLOW_FILE_EDIT', true);
page
036
iThemes
security primer
404 detection
function uradi_nesto_sa_404(){
if( is_404() ){
// uradi nesto?
}
} 7
add_action( 'template_redirect’, ‘uradi_nesto_sa_404' );
page
037
iThemes
security primer
Change WordPress Salts
https://api.wordpress.org/secret-key/1.1/salt/
page
038
iThemes
security primer
Disable XML-RPC
# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
allow from 123.123.123.123
</Files>
add_filter('xmlrpc_enabled', '__return_false');
page
039
iThemes
security primer
Monitor File Change
function hashDirectory($directory)
{
if (! is_dir($directory)) return false;
$files = array();
$dir = dir($directory);
page
041
predlozi za
bolju bezbednost
Tips & tricks
• Isključite File Editor u administraciji
• Prilikom odabira hosting provajdera, saznajte više o sigurnosnim praksama i istorijatu
• Odaberite hosting uslugu u skladu sa potrebama sajta
• Osigurajte se da na serveru postoji Application Firewall poput ModSecurity
• Vršite konstantan monitoring vašeg sajta
• Nemojte instalirati sve i svašta od dodataka
• Uvek pazite na reputaciju, poslednje ažuriranje, kompatibilnost i istorijat propusta dodatka
• Uvek pazite na reputaciju, poslednje ažuriranje, kompatibilnost i istorijat propusta teme
• Prilikom razvoja obratite pažnju na OWASP 10 listu propusta i unapred planirajte metode za mitigaciju
https://www.owasp.org/index.php/PHP_Security_Cheat_Sheet
page
042
to je to, nema više
pitanja & odgovori
hvala J