SlideShare una empresa de Scribd logo
1 de 57
Descargar para leer sin conexión
Just another bughunt? 
Tools to improve your site without nuking it from orbit 
Ken Newquist (@knewquist) | Charles Fulton (@mackensen) #DPA11
Who we are 
Ken Newquist 
Director, Web Applications Development 
Lafayette College 
Charles Fulton 
Senior Web Applications Developer 
Lafayette College 
#DPA11
Rebuild or Fix? 
● Your website’s problems may seem 
intractable 
● The temptation to nuke the bugs and start 
fresh is strong 
● We’ve found tools that identify the problems 
so we can surgically eliminate them 
○ (and find a few issues we didn’t know about in the 
process) 
#DPA11
Tools #DPA11
Siteimprove 
● Crawls web presence 
● Reports broken links and common 
misspellings 
● Shows changes over time 
● Pretty graphs! 
#DPA11
Pretty graph! 
#DPA11
Splunk 
● Log aggregation 
● Real-time monitoring 
● Rich analysis 
● More pretty graphs! 
#DPA11
Another pretty graph! 
#DPA11
Nagios 
● Real-time monitoring 
● Defines a base-line of system performance 
● Does not detect presence of dinosaurs 
#DPA11
Dinosaurs! #DPA11
OSSEC 
● Log-based intrusion detection system 
● Define states of acceptable behavior 
● No pretty graphs 
#DPA11
Not a pretty graph :/ 
#DPA11
Discovering your web 
presence 
● Define expected 
behavior with OSSEC & 
Nagios 
● Test expectations with 
Siteimprove & Splunk 
● Here be monsters 
#DPA11
Investigations #DPA11
The Lost Thumbnails 
● Site: Moodle 
● Tools: Splunk, OSSEC 
● Outcome: Improved 
Apache configuration 
#DPA11
Sky falling! 
● Splunk reported ~400 500 internal server 
errors within a few minutes 
● Also showed concentrated bursts of 404 
errors when viewing resources 
● Concern within department that sky was 
falling 
#DPA11
Sky not falling! 
● System ran out of memory generating 
thumbnails from massive images; threw 
500s 
● Preview of missing images generated the 
404s 
#DPA11
Outcomes 
● Memory limits were not reasonable 
● Users do not report catastrophic errors 
#DPA11
Comments 
● Site: WordPress 
● Tools: Splunk, OSSEC 
● Outcome: WordPress 
core fixes 
#DPA11
What Lies Beneath 
● 500 errors are reserved for server issues 
● WordPress has notions of its own 
○ Double-submitted comment? 500 error 
○ Missing a required field? 500 error 
○ Blank comment? 500 error 
● OSSEC would ban all of these for bad 
behavior 
#DPA11
https://github.com/bigcompany/know-your-http 
#DPA11
Outcomes 
● Learned reasonable mistakes can yield 
unreasonable error codes 
● Hacked core to return 200s and 400s 
instead 
● Core is discussing what to do 
○ https://core.trac.wordpress.org/ticket/11286 
#DPA11
Revenge of the Base 
Theme 
● Site: WordPress 
● Tools: Siteimprove 
● Outcome: WordPress 
theme fix; Apache 
configuration change 
#DPA11
March 10: the day the links broke 
#DPA11
Nothing to see here … oh wait-- 
● Developer dismissed initial reports of login 
issues as user error 
● Then Siteimprove said we had 1,800 new 
broken links 
● A two-character change in RHEL defaults for 
httpd.conf broke WordPress 
#DPA11
Lessons 
● Small changes have vast consequences 
● Documentation is doubleplusgood 
#DPA11
The Incredible 
Shrinking Provost 
● Site: Drupal 
● Tools: Splunk 
● Outcome: Cleaned data in 
ERP system 
#DPA11
Who’s the fairest of them all? 
● The directory passes the search query via a 
GET parameter 
● Splunk told us our associate provost, “Jane 
Doe”, was most-searched by an order of 
magnitude 
#DPA11
...we searched for “Jane Doe”... 
...and the search returned... 
...NOTHING! 
#DPA11
Lessons 
● “Jane A. B. Doe !== Jane Doe” 
● Data lies 
#DPA11
Dumpster fire 
#DPA11
The Virtual Tour 
● Site: Custom app 
● Tools: Splunk 
● Outcome: Fixed PHP 
bugs 
#DPA11
Pretty graphs! 
● 238,908 errors...in three days 
● (We didn’t expect that) 
#DPA11
Fixed it! 
#DPA11
Outcomes 
● No one cares that we fixed the Virtual Tour 
○ (we feel better though) 
#DPA11
Mr. Foo and Mr. Bar 
● Site: WordPress 
● Tools: Splunk 
● Outcome: Disproved long-standing 
alleged bug 
#DPA11
I swear I wasn’t there! 
● Various reports over the years alleging that 
WordPress improperly reported another user 
was editing a post 
● Much speculation and theorizing in absence 
of facts 
#DPA11
Outcomes 
● People are wrong on 
the Internet 
#DPA11
The Cache That 
Wouldn’t Die 
● Site: WordPress 
● Tools: Nagios 
● Outcome: Database 
size reduced by two-thirds 
#DPA11
Doom at 11…. 
● Nagios had 
concerns 
● MySQL ran out of 
disk space 
● Size of WordPress 
DB tripled in two 
weeks 
#DPA11
SELECT option_name FROM wp_190_options WHERE option_name LIKE 
"displayed_gallery%"; 
... 
| displayed_gallery_rendering_ffffb5e48845fbb7b3347244f8aa06d4 | 
| displayed_gallery_rendering_ffffd6d9f2ab40195295c70f775b0ee8 | 
| displayed_gallery_rendering_ffffe1416b8d969e25ec7a6094282bbe | 
| displayed_gallery_rendering_ffffe8e4a0c399605f434bd51be2d9d7 | 
+--------------------------------------------------------------+ 
722141 rows in set (2.28 sec) 
Pretty terminal dumps? 
#DPA11
…Salvation at Noon 
● The Google Mini found something terrible 
lurking in club websites 
● NextGEN Gallery bug caused near-endless 
crawl by the mini 
● Code bug meant the cache never expired 
#DPA11
Outcomes 
● NextGEN Gallery has stability issues 
● Listen to Nagios 
● It’s turtles all the way down 
#DPA11
Attack of the Python 
Script 
● Site: WordPress 
● Tools: Nagios, Splunk 
● Outcome: Quickly 
identified source of 
massive load event 
#DPA11
Traffic Jam! 
● Load on a server 
spiked at 800% 
● Seemed bad 
● Nagios had more 
concerns 
#DPA11
Hello there! 
● Splunk real-time monitoring revealed top 
client IPs 
● We’re very popular with a misconfigured IIS 
Server in Oregon and its “Python-urllib/3.4” 
script 
#DPA11
Outcomes 
● Banned the IP on 
the proxy 
● Began developing 
rate-limiting rules 
for OSSEC 
#DPA11
Alternatives #DPA11
Bughunting on the cheap 
W3C Link Checker 
● Reports on broken links to a specified depth 
● http://validator.w3.org/checklink 
Google Webmaster Tools 
● Details on broken links and server errors 
● https://www.google.com/webmasters/tools/ 
#DPA11
More options 
● Bureau of Internet Accessibility 
○ Cheaper than Siteimprove 
○ Broken link and accessibility reports 
○ http://www.boia.org 
● Google Analytics 
○ Identify high-traffic broken pages 
○ http://google.com/analytics 
● vim | grep 
○ Eyeballing your logs can’t hurt 
#DPA11
Conclusions #DPA11
Did we really fix all those errors? 
Or is logging broken? 
#DPA11
Takeaways 
● Data are free 
● Bugs are hard to find 
● Reports are expensive 
● Good reports make finding bugs easy 
● You can improve your site without rebuilding 
it from scratch 
● You will find more bugs than you can fix 
#DPA11
#DPA11
Anatomy of a Redirect 
● Tool: Splunk 
● Forthcoming from 
Lafayette College 
● WordPress tries to be 
helpful! 
#DPA11
Join the discussion at https://core.trac.wordpress.org/ticket/16557! 
#DPA11
Questions? 
Ken Newquist 
● newquisk@lafayette.edu 
● @knewquist 
Charles Fulton 
● fultonc@lafayette.edu 
● @mackensen 
#DPA11

Más contenido relacionado

La actualidad más candente

PHP Continuous Data Processing
PHP Continuous Data ProcessingPHP Continuous Data Processing
PHP Continuous Data Processing
Michael Peacock
 

La actualidad más candente (20)

Untangling the web week 2 - SEO
Untangling the web week 2 - SEOUntangling the web week 2 - SEO
Untangling the web week 2 - SEO
 
Untangling spring week12
Untangling spring week12Untangling spring week12
Untangling spring week12
 
Untangling spring week11
Untangling spring week11Untangling spring week11
Untangling spring week11
 
Panoramic view of web APIs
Panoramic view of web APIsPanoramic view of web APIs
Panoramic view of web APIs
 
PHP Continuous Data Processing
PHP Continuous Data ProcessingPHP Continuous Data Processing
PHP Continuous Data Processing
 
Untangling fall2017 week1
Untangling fall2017 week1Untangling fall2017 week1
Untangling fall2017 week1
 
Untangling7
Untangling7Untangling7
Untangling7
 
Untangling spring week2
Untangling spring week2Untangling spring week2
Untangling spring week2
 
Laravel Dusk
Laravel DuskLaravel Dusk
Laravel Dusk
 
Spring insight what just happened
Spring insight   what just happenedSpring insight   what just happened
Spring insight what just happened
 
php[world] 2015 Training - Laravel from the Ground Up
php[world] 2015 Training - Laravel from the Ground Upphp[world] 2015 Training - Laravel from the Ground Up
php[world] 2015 Training - Laravel from the Ground Up
 
Jean Paul Ladage Managing Enterprise Content With Plone
Jean Paul Ladage   Managing Enterprise Content With PloneJean Paul Ladage   Managing Enterprise Content With Plone
Jean Paul Ladage Managing Enterprise Content With Plone
 
Untangling - fall2017 - week 8
Untangling - fall2017 - week 8Untangling - fall2017 - week 8
Untangling - fall2017 - week 8
 
Naked and afraid Offline Mobile
Naked and afraid Offline MobileNaked and afraid Offline Mobile
Naked and afraid Offline Mobile
 
Dev112 let's calendar that
Dev112   let's calendar thatDev112   let's calendar that
Dev112 let's calendar that
 
php[world] 2015 Laravel 5.1: From Homestead to the Cloud
php[world] 2015 Laravel 5.1: From Homestead to the Cloudphp[world] 2015 Laravel 5.1: From Homestead to the Cloud
php[world] 2015 Laravel 5.1: From Homestead to the Cloud
 
Pipe your script to slack
Pipe your script to slackPipe your script to slack
Pipe your script to slack
 
WordPress - Whats going on in the server?
WordPress - Whats going on in the server? WordPress - Whats going on in the server?
WordPress - Whats going on in the server?
 
A Personal Journey
A Personal JourneyA Personal Journey
A Personal Journey
 
Project 1
Project 1Project 1
Project 1
 

Destacado

Destacado (13)

Using big data tools to analyze log files, event logs and performance metrics
Using big data tools to analyze log files, event logs and performance metricsUsing big data tools to analyze log files, event logs and performance metrics
Using big data tools to analyze log files, event logs and performance metrics
 
CNC Engraving Machine
CNC Engraving MachineCNC Engraving Machine
CNC Engraving Machine
 
hal
halhal
hal
 
HAL Report
HAL ReportHAL Report
HAL Report
 
Summer internship report at hal lucknow (accessories division)
Summer internship report at hal lucknow (accessories division)Summer internship report at hal lucknow (accessories division)
Summer internship report at hal lucknow (accessories division)
 
SUMMER TRAINING REPORT - HAL, LUCKNOW
SUMMER TRAINING REPORT - HAL, LUCKNOWSUMMER TRAINING REPORT - HAL, LUCKNOW
SUMMER TRAINING REPORT - HAL, LUCKNOW
 
INDUSTRIAL TRAINING AT HINDUSTAN AERONAUTICS LIMITED, LUCKNOW
INDUSTRIAL TRAINING AT HINDUSTAN AERONAUTICS LIMITED, LUCKNOWINDUSTRIAL TRAINING AT HINDUSTAN AERONAUTICS LIMITED, LUCKNOW
INDUSTRIAL TRAINING AT HINDUSTAN AERONAUTICS LIMITED, LUCKNOW
 
Hal ppt
Hal pptHal ppt
Hal ppt
 
Introduction to cnc machines (1)
Introduction to cnc machines (1)Introduction to cnc machines (1)
Introduction to cnc machines (1)
 
CNC MACHINE
CNC MACHINECNC MACHINE
CNC MACHINE
 
NC, CNC & DNC Machine
NC, CNC & DNC Machine NC, CNC & DNC Machine
NC, CNC & DNC Machine
 
REPORT WRITING:TYPES, FORMAT, STRUCTURE AND RELEVANCE
REPORT WRITING:TYPES, FORMAT, STRUCTURE AND RELEVANCEREPORT WRITING:TYPES, FORMAT, STRUCTURE AND RELEVANCE
REPORT WRITING:TYPES, FORMAT, STRUCTURE AND RELEVANCE
 
CNC Machines
CNC MachinesCNC Machines
CNC Machines
 

Similar a Just another bughunt

Hong kong drupal user group nov 8th - drupal 7.32 security vulnerability
Hong kong drupal user group   nov 8th - drupal 7.32 security vulnerabilityHong kong drupal user group   nov 8th - drupal 7.32 security vulnerability
Hong kong drupal user group nov 8th - drupal 7.32 security vulnerability
Ann Lam
 
Beyond unit tests: Deployment and testing for Hadoop/Spark workflows
Beyond unit tests: Deployment and testing for Hadoop/Spark workflowsBeyond unit tests: Deployment and testing for Hadoop/Spark workflows
Beyond unit tests: Deployment and testing for Hadoop/Spark workflows
DataWorks Summit
 

Similar a Just another bughunt (20)

Single Page Applications in Drupal
Single Page Applications in DrupalSingle Page Applications in Drupal
Single Page Applications in Drupal
 
Montée en version de 300 bases de données vers Oracle 12c en 300 jours. Quel...
Montée en version de 300 bases de données vers Oracle 12c en 300 jours.  Quel...Montée en version de 300 bases de données vers Oracle 12c en 300 jours.  Quel...
Montée en version de 300 bases de données vers Oracle 12c en 300 jours. Quel...
 
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
 
Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...
Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...
Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...
 
Tools and libraries for common problems (Early Draft)
Tools and libraries for common problems (Early Draft)Tools and libraries for common problems (Early Draft)
Tools and libraries for common problems (Early Draft)
 
Web Exploitation
Web ExploitationWeb Exploitation
Web Exploitation
 
Snowflake Automated Deployments / CI/CD Pipelines
Snowflake Automated Deployments / CI/CD PipelinesSnowflake Automated Deployments / CI/CD Pipelines
Snowflake Automated Deployments / CI/CD Pipelines
 
Hong kong drupal user group nov 8th - drupal 7.32 security vulnerability
Hong kong drupal user group   nov 8th - drupal 7.32 security vulnerabilityHong kong drupal user group   nov 8th - drupal 7.32 security vulnerability
Hong kong drupal user group nov 8th - drupal 7.32 security vulnerability
 
Hong Kong Drupal User Group - Nov 8th
Hong Kong Drupal User Group - Nov 8thHong Kong Drupal User Group - Nov 8th
Hong Kong Drupal User Group - Nov 8th
 
Hong kong drupal user group nov 8th - drupal 7.32 security vulnerability
Hong kong drupal user group   nov 8th - drupal 7.32 security vulnerabilityHong kong drupal user group   nov 8th - drupal 7.32 security vulnerability
Hong kong drupal user group nov 8th - drupal 7.32 security vulnerability
 
Workflow Engines + Luigi
Workflow Engines + LuigiWorkflow Engines + Luigi
Workflow Engines + Luigi
 
An EyeWitness View into your Network
An EyeWitness View into your NetworkAn EyeWitness View into your Network
An EyeWitness View into your Network
 
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Berlin 2017
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Berlin 2017Monitoring Big Data Systems Done "The Simple Way" - Codemotion Berlin 2017
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Berlin 2017
 
20 tips for website performance
20 tips for website performance20 tips for website performance
20 tips for website performance
 
Beyond unit tests: Deployment and testing for Hadoop/Spark workflows
Beyond unit tests: Deployment and testing for Hadoop/Spark workflowsBeyond unit tests: Deployment and testing for Hadoop/Spark workflows
Beyond unit tests: Deployment and testing for Hadoop/Spark workflows
 
Website Speed :: Fox Valley Computing Professionals, September 2014
Website Speed :: Fox Valley Computing Professionals, September 2014Website Speed :: Fox Valley Computing Professionals, September 2014
Website Speed :: Fox Valley Computing Professionals, September 2014
 
Django Girls Tutorial
Django Girls TutorialDjango Girls Tutorial
Django Girls Tutorial
 
Open Day July 2019
Open Day July 2019Open Day July 2019
Open Day July 2019
 
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
 
Scaling Magento
Scaling MagentoScaling Magento
Scaling Magento
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 

Just another bughunt

  • 1. Just another bughunt? Tools to improve your site without nuking it from orbit Ken Newquist (@knewquist) | Charles Fulton (@mackensen) #DPA11
  • 2. Who we are Ken Newquist Director, Web Applications Development Lafayette College Charles Fulton Senior Web Applications Developer Lafayette College #DPA11
  • 3. Rebuild or Fix? ● Your website’s problems may seem intractable ● The temptation to nuke the bugs and start fresh is strong ● We’ve found tools that identify the problems so we can surgically eliminate them ○ (and find a few issues we didn’t know about in the process) #DPA11
  • 5. Siteimprove ● Crawls web presence ● Reports broken links and common misspellings ● Shows changes over time ● Pretty graphs! #DPA11
  • 7. Splunk ● Log aggregation ● Real-time monitoring ● Rich analysis ● More pretty graphs! #DPA11
  • 9. Nagios ● Real-time monitoring ● Defines a base-line of system performance ● Does not detect presence of dinosaurs #DPA11
  • 11. OSSEC ● Log-based intrusion detection system ● Define states of acceptable behavior ● No pretty graphs #DPA11
  • 12. Not a pretty graph :/ #DPA11
  • 13. Discovering your web presence ● Define expected behavior with OSSEC & Nagios ● Test expectations with Siteimprove & Splunk ● Here be monsters #DPA11
  • 15. The Lost Thumbnails ● Site: Moodle ● Tools: Splunk, OSSEC ● Outcome: Improved Apache configuration #DPA11
  • 16. Sky falling! ● Splunk reported ~400 500 internal server errors within a few minutes ● Also showed concentrated bursts of 404 errors when viewing resources ● Concern within department that sky was falling #DPA11
  • 17. Sky not falling! ● System ran out of memory generating thumbnails from massive images; threw 500s ● Preview of missing images generated the 404s #DPA11
  • 18. Outcomes ● Memory limits were not reasonable ● Users do not report catastrophic errors #DPA11
  • 19. Comments ● Site: WordPress ● Tools: Splunk, OSSEC ● Outcome: WordPress core fixes #DPA11
  • 20. What Lies Beneath ● 500 errors are reserved for server issues ● WordPress has notions of its own ○ Double-submitted comment? 500 error ○ Missing a required field? 500 error ○ Blank comment? 500 error ● OSSEC would ban all of these for bad behavior #DPA11
  • 22. Outcomes ● Learned reasonable mistakes can yield unreasonable error codes ● Hacked core to return 200s and 400s instead ● Core is discussing what to do ○ https://core.trac.wordpress.org/ticket/11286 #DPA11
  • 23. Revenge of the Base Theme ● Site: WordPress ● Tools: Siteimprove ● Outcome: WordPress theme fix; Apache configuration change #DPA11
  • 24. March 10: the day the links broke #DPA11
  • 25. Nothing to see here … oh wait-- ● Developer dismissed initial reports of login issues as user error ● Then Siteimprove said we had 1,800 new broken links ● A two-character change in RHEL defaults for httpd.conf broke WordPress #DPA11
  • 26. Lessons ● Small changes have vast consequences ● Documentation is doubleplusgood #DPA11
  • 27. The Incredible Shrinking Provost ● Site: Drupal ● Tools: Splunk ● Outcome: Cleaned data in ERP system #DPA11
  • 28. Who’s the fairest of them all? ● The directory passes the search query via a GET parameter ● Splunk told us our associate provost, “Jane Doe”, was most-searched by an order of magnitude #DPA11
  • 29. ...we searched for “Jane Doe”... ...and the search returned... ...NOTHING! #DPA11
  • 30. Lessons ● “Jane A. B. Doe !== Jane Doe” ● Data lies #DPA11
  • 32. The Virtual Tour ● Site: Custom app ● Tools: Splunk ● Outcome: Fixed PHP bugs #DPA11
  • 33. Pretty graphs! ● 238,908 errors...in three days ● (We didn’t expect that) #DPA11
  • 35. Outcomes ● No one cares that we fixed the Virtual Tour ○ (we feel better though) #DPA11
  • 36. Mr. Foo and Mr. Bar ● Site: WordPress ● Tools: Splunk ● Outcome: Disproved long-standing alleged bug #DPA11
  • 37. I swear I wasn’t there! ● Various reports over the years alleging that WordPress improperly reported another user was editing a post ● Much speculation and theorizing in absence of facts #DPA11
  • 38. Outcomes ● People are wrong on the Internet #DPA11
  • 39. The Cache That Wouldn’t Die ● Site: WordPress ● Tools: Nagios ● Outcome: Database size reduced by two-thirds #DPA11
  • 40. Doom at 11…. ● Nagios had concerns ● MySQL ran out of disk space ● Size of WordPress DB tripled in two weeks #DPA11
  • 41. SELECT option_name FROM wp_190_options WHERE option_name LIKE "displayed_gallery%"; ... | displayed_gallery_rendering_ffffb5e48845fbb7b3347244f8aa06d4 | | displayed_gallery_rendering_ffffd6d9f2ab40195295c70f775b0ee8 | | displayed_gallery_rendering_ffffe1416b8d969e25ec7a6094282bbe | | displayed_gallery_rendering_ffffe8e4a0c399605f434bd51be2d9d7 | +--------------------------------------------------------------+ 722141 rows in set (2.28 sec) Pretty terminal dumps? #DPA11
  • 42. …Salvation at Noon ● The Google Mini found something terrible lurking in club websites ● NextGEN Gallery bug caused near-endless crawl by the mini ● Code bug meant the cache never expired #DPA11
  • 43. Outcomes ● NextGEN Gallery has stability issues ● Listen to Nagios ● It’s turtles all the way down #DPA11
  • 44. Attack of the Python Script ● Site: WordPress ● Tools: Nagios, Splunk ● Outcome: Quickly identified source of massive load event #DPA11
  • 45. Traffic Jam! ● Load on a server spiked at 800% ● Seemed bad ● Nagios had more concerns #DPA11
  • 46. Hello there! ● Splunk real-time monitoring revealed top client IPs ● We’re very popular with a misconfigured IIS Server in Oregon and its “Python-urllib/3.4” script #DPA11
  • 47. Outcomes ● Banned the IP on the proxy ● Began developing rate-limiting rules for OSSEC #DPA11
  • 49. Bughunting on the cheap W3C Link Checker ● Reports on broken links to a specified depth ● http://validator.w3.org/checklink Google Webmaster Tools ● Details on broken links and server errors ● https://www.google.com/webmasters/tools/ #DPA11
  • 50. More options ● Bureau of Internet Accessibility ○ Cheaper than Siteimprove ○ Broken link and accessibility reports ○ http://www.boia.org ● Google Analytics ○ Identify high-traffic broken pages ○ http://google.com/analytics ● vim | grep ○ Eyeballing your logs can’t hurt #DPA11
  • 52. Did we really fix all those errors? Or is logging broken? #DPA11
  • 53. Takeaways ● Data are free ● Bugs are hard to find ● Reports are expensive ● Good reports make finding bugs easy ● You can improve your site without rebuilding it from scratch ● You will find more bugs than you can fix #DPA11
  • 55. Anatomy of a Redirect ● Tool: Splunk ● Forthcoming from Lafayette College ● WordPress tries to be helpful! #DPA11
  • 56. Join the discussion at https://core.trac.wordpress.org/ticket/16557! #DPA11
  • 57. Questions? Ken Newquist ● newquisk@lafayette.edu ● @knewquist Charles Fulton ● fultonc@lafayette.edu ● @mackensen #DPA11