PostgreSQL continuous backup and PITR with BarmanEDB
How can I achieve an RPO of 5 minutes for the backups of my PostgreSQL databases? And what about RPO=0 for zero data loss backups? This talk will give you answers to those questions, by guiding you through an overview of Disaster Recovery of PostgreSQL databases with Barman, covering its key concepts and providing useful patterns and tips.
Understanding blue store, Ceph's new storage backend - Tim Serong, SUSEOpenStack
Audience Level
Intermediate
Synopsis
Ceph – the most popular storage solution for OpenStack – stores all data as a collection of objects. This object store was originally implemented on top of a POSIX filesystem, an approach that turned out to have a number of problems, notably with performance and complexity.
BlueStore, a new storage backend for Ceph, was created to solve these issues; the Ceph Jewel release included an early prototype. The code and on-disk format were declared stable (but experimental) for Ceph Kraken, and now in the upcoming Ceph Luminous release, BlueStore will be the recommended default storage backend.
With a 2-3x performance boost, you’ll want to look at migrating your Ceph clusters to BlueStore. This talk goes into detail about what BlueStore does, the problems it solves, and what you need to do to use it.
Speaker Bio:
Tim works for SUSE, hacking on Ceph and related technologies. He has spoken often about distributed storage and high availability at conferences such as linux.conf.au. In his spare time he wrangles pigs, chickens, sheep and ducks, and was declared by one colleague “teammate most likely to survive the zombie apocalypse”.
Note: When you view the the slide deck via web browser, the screenshots may be blurred. You can download and view them offline (Screenshots are clear).
In this talk Jiří Pírko discusses the design and evolution of the VLAN implementation in Linux, the challenges and pitfalls as well as hardware acceleration and alternative implementations.
Jiří Pírko is a major contributor to kernel networking and the creator of libteam for link aggregation.
Staying Ahead of the Curve with Spring and Cassandra 4VMware Tanzu
SpringOne 2020
Staying Ahead of the Curve with Spring and Cassandra 4
Mark Paluch, Spring Data Project Lead at VMware
Alexandre Dutra, Technical Manager at DataStax
PostgreSQL continuous backup and PITR with BarmanEDB
How can I achieve an RPO of 5 minutes for the backups of my PostgreSQL databases? And what about RPO=0 for zero data loss backups? This talk will give you answers to those questions, by guiding you through an overview of Disaster Recovery of PostgreSQL databases with Barman, covering its key concepts and providing useful patterns and tips.
Understanding blue store, Ceph's new storage backend - Tim Serong, SUSEOpenStack
Audience Level
Intermediate
Synopsis
Ceph – the most popular storage solution for OpenStack – stores all data as a collection of objects. This object store was originally implemented on top of a POSIX filesystem, an approach that turned out to have a number of problems, notably with performance and complexity.
BlueStore, a new storage backend for Ceph, was created to solve these issues; the Ceph Jewel release included an early prototype. The code and on-disk format were declared stable (but experimental) for Ceph Kraken, and now in the upcoming Ceph Luminous release, BlueStore will be the recommended default storage backend.
With a 2-3x performance boost, you’ll want to look at migrating your Ceph clusters to BlueStore. This talk goes into detail about what BlueStore does, the problems it solves, and what you need to do to use it.
Speaker Bio:
Tim works for SUSE, hacking on Ceph and related technologies. He has spoken often about distributed storage and high availability at conferences such as linux.conf.au. In his spare time he wrangles pigs, chickens, sheep and ducks, and was declared by one colleague “teammate most likely to survive the zombie apocalypse”.
Note: When you view the the slide deck via web browser, the screenshots may be blurred. You can download and view them offline (Screenshots are clear).
In this talk Jiří Pírko discusses the design and evolution of the VLAN implementation in Linux, the challenges and pitfalls as well as hardware acceleration and alternative implementations.
Jiří Pírko is a major contributor to kernel networking and the creator of libteam for link aggregation.
Staying Ahead of the Curve with Spring and Cassandra 4VMware Tanzu
SpringOne 2020
Staying Ahead of the Curve with Spring and Cassandra 4
Mark Paluch, Spring Data Project Lead at VMware
Alexandre Dutra, Technical Manager at DataStax
Доклад рассказывает об устройстве и опыте применения инструментов динамического тестирования C/C++ программ — AddressSanitizer, ThreadSanitizer и MemorySanitizer. Инструменты находят такие ошибки, как использование памяти после освобождения, обращения за границы массивов и объектов, гонки в многопоточных программах и использования неинициализированной памяти.
Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of FacebookThe Hive
This presentation describes the reasons why Facebook decided to build yet another key-value store, the vision and architecture of RocksDB and how it differs from other open source key-value stores. Dhruba describes some of the salient features in RocksDB that are needed for supporting embedded-storage deployments. He explains typical workloads that could be the primary use-cases for RocksDB. He also lays out the roadmap to make RocksDB the key-value store of choice for highly-multi-core processors and RAM-speed storage devices.
Receive side scaling (RSS) with eBPF in QEMU and virtio-netYan Vugenfirer
eBPF is a revolutionary technology that can run sandboxed programs in the Linux kernel without changing kernel source code or loading a kernel module. Receive side scaling (RSS) is the mechanism of packet steering for multi-queue NICs optimizing multiple CPU utilization. The first usage of eBPF in QEMU is the optimization of the RSS packet steering in virtio-net. During this session, Yan will provide the motives for the RSS optimization using eBPF, review the technical solution, describe integration with libvirt, and discuss future development and additional usages of eBPF in QEMU.
Talk by Brendan Gregg for USENIX LISA 2019: Linux Systems Performance. Abstract: "
Systems performance is an effective discipline for performance analysis and tuning, and can help you find performance wins for your applications and the kernel. However, most of us are not performance or kernel engineers, and have limited time to study this topic. This talk summarizes the topic for everyone, touring six important areas of Linux systems performance: observability tools, methodologies, benchmarking, profiling, tracing, and tuning. Included are recipes for Linux performance analysis and tuning (using vmstat, mpstat, iostat, etc), overviews of complex areas including profiling (perf_events) and tracing (Ftrace, bcc/BPF, and bpftrace/BPF), and much advice about what is and isn't important to learn. This talk is aimed at everyone: developers, operations, sysadmins, etc, and in any environment running Linux, bare metal or the cloud."
Video: https://www.youtube.com/watch?v=FJW8nGV4jxY and https://www.youtube.com/watch?v=zrr2nUln9Kk . Tutorial slides for O'Reilly Velocity SC 2015, by Brendan Gregg.
There are many performance tools nowadays for Linux, but how do they all fit together, and when do we use them? This tutorial explains methodologies for using these tools, and provides a tour of four tool types: observability, benchmarking, tuning, and static tuning. Many tools will be discussed, including top, iostat, tcpdump, sar, perf_events, ftrace, SystemTap, sysdig, and others, as well observability frameworks in the Linux kernel: PMCs, tracepoints, kprobes, and uprobes.
This tutorial is updated and extended on an earlier talk that summarizes the Linux performance tool landscape. The value of this tutorial is not just learning that these tools exist and what they do, but hearing when and how they are used by a performance engineer to solve real world problems — important context that is typically not included in the standard documentation.
Note: When you view the the slide deck via web browser, the screenshots may be blurred. You can download and view them offline (Screenshots are clear).
Galera cluster for MySQL - Introduction SlidesSeveralnines
This set of slides gives you an overview of Galera, configuration basics and deployment best practices.
The following topics are covered:
- Concepts
- Node provisioning
- Network partitioning
- Configuration example
- Benchmarks
- Deployment best practices
- Galera monitoring and management
OSv Unikernel — Optimizing Guest OS to Run Stateless and Serverless Apps in t...ScyllaDB
Unikernels have been demonstrated to deliver excellent performance in terms of throughput and latency, while providing high isolation. However they have also been shown to underperform in some types of workloads when compared to a generic OS like Linux. In this presentation, we demonstrate that certain types of workloads - web servers, microservices, and other stateless and/or serverless apps - can greatly benefit from OSv optimized networking stack and other features. We describe number of experiments where OSv outperforms Linux guest: most notably we note 1.6 throughput (req/s) and 0.6 latency improvement (at p99 percentile) when running nginx and 1.7 throughput (req/s) and 0.6 latency improvement (at p99 percentile) when running simple microservice implemented in Golang.
We also show that OSv' small kernel, low boot time and memory consumption allow for very high density when running server-less workloads. The experiment described in this presentation shows we can boot 1,800 OSv microVMs per second on AWS c5n.metal machine with 72 CPUs (25 boots/sec on single CPU) with guest boot time recorded as low as 8.98ms at p50 and 31.49ms at p99 percentile respectively.
Lastly we also demonstrate how to automate the build process of the OSv kernel tailored exactly to the specific app and/or VMM so that only the code and symbols needed are part of the kernel and nothing more. OSv is an open source project and can be found at https://github.com/cloudius-systems/osv.
Securing Network Access with Open Source solutionsNick Owen
My presentation from Atlanta Linux Fest on how to allow users secure access to your network using open source technologies. Examples include how to add two-factor authentication to Apache, OpenVPN, Astaro, NX etc.
Доклад рассказывает об устройстве и опыте применения инструментов динамического тестирования C/C++ программ — AddressSanitizer, ThreadSanitizer и MemorySanitizer. Инструменты находят такие ошибки, как использование памяти после освобождения, обращения за границы массивов и объектов, гонки в многопоточных программах и использования неинициализированной памяти.
Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of FacebookThe Hive
This presentation describes the reasons why Facebook decided to build yet another key-value store, the vision and architecture of RocksDB and how it differs from other open source key-value stores. Dhruba describes some of the salient features in RocksDB that are needed for supporting embedded-storage deployments. He explains typical workloads that could be the primary use-cases for RocksDB. He also lays out the roadmap to make RocksDB the key-value store of choice for highly-multi-core processors and RAM-speed storage devices.
Receive side scaling (RSS) with eBPF in QEMU and virtio-netYan Vugenfirer
eBPF is a revolutionary technology that can run sandboxed programs in the Linux kernel without changing kernel source code or loading a kernel module. Receive side scaling (RSS) is the mechanism of packet steering for multi-queue NICs optimizing multiple CPU utilization. The first usage of eBPF in QEMU is the optimization of the RSS packet steering in virtio-net. During this session, Yan will provide the motives for the RSS optimization using eBPF, review the technical solution, describe integration with libvirt, and discuss future development and additional usages of eBPF in QEMU.
Talk by Brendan Gregg for USENIX LISA 2019: Linux Systems Performance. Abstract: "
Systems performance is an effective discipline for performance analysis and tuning, and can help you find performance wins for your applications and the kernel. However, most of us are not performance or kernel engineers, and have limited time to study this topic. This talk summarizes the topic for everyone, touring six important areas of Linux systems performance: observability tools, methodologies, benchmarking, profiling, tracing, and tuning. Included are recipes for Linux performance analysis and tuning (using vmstat, mpstat, iostat, etc), overviews of complex areas including profiling (perf_events) and tracing (Ftrace, bcc/BPF, and bpftrace/BPF), and much advice about what is and isn't important to learn. This talk is aimed at everyone: developers, operations, sysadmins, etc, and in any environment running Linux, bare metal or the cloud."
Video: https://www.youtube.com/watch?v=FJW8nGV4jxY and https://www.youtube.com/watch?v=zrr2nUln9Kk . Tutorial slides for O'Reilly Velocity SC 2015, by Brendan Gregg.
There are many performance tools nowadays for Linux, but how do they all fit together, and when do we use them? This tutorial explains methodologies for using these tools, and provides a tour of four tool types: observability, benchmarking, tuning, and static tuning. Many tools will be discussed, including top, iostat, tcpdump, sar, perf_events, ftrace, SystemTap, sysdig, and others, as well observability frameworks in the Linux kernel: PMCs, tracepoints, kprobes, and uprobes.
This tutorial is updated and extended on an earlier talk that summarizes the Linux performance tool landscape. The value of this tutorial is not just learning that these tools exist and what they do, but hearing when and how they are used by a performance engineer to solve real world problems — important context that is typically not included in the standard documentation.
Note: When you view the the slide deck via web browser, the screenshots may be blurred. You can download and view them offline (Screenshots are clear).
Galera cluster for MySQL - Introduction SlidesSeveralnines
This set of slides gives you an overview of Galera, configuration basics and deployment best practices.
The following topics are covered:
- Concepts
- Node provisioning
- Network partitioning
- Configuration example
- Benchmarks
- Deployment best practices
- Galera monitoring and management
OSv Unikernel — Optimizing Guest OS to Run Stateless and Serverless Apps in t...ScyllaDB
Unikernels have been demonstrated to deliver excellent performance in terms of throughput and latency, while providing high isolation. However they have also been shown to underperform in some types of workloads when compared to a generic OS like Linux. In this presentation, we demonstrate that certain types of workloads - web servers, microservices, and other stateless and/or serverless apps - can greatly benefit from OSv optimized networking stack and other features. We describe number of experiments where OSv outperforms Linux guest: most notably we note 1.6 throughput (req/s) and 0.6 latency improvement (at p99 percentile) when running nginx and 1.7 throughput (req/s) and 0.6 latency improvement (at p99 percentile) when running simple microservice implemented in Golang.
We also show that OSv' small kernel, low boot time and memory consumption allow for very high density when running server-less workloads. The experiment described in this presentation shows we can boot 1,800 OSv microVMs per second on AWS c5n.metal machine with 72 CPUs (25 boots/sec on single CPU) with guest boot time recorded as low as 8.98ms at p50 and 31.49ms at p99 percentile respectively.
Lastly we also demonstrate how to automate the build process of the OSv kernel tailored exactly to the specific app and/or VMM so that only the code and symbols needed are part of the kernel and nothing more. OSv is an open source project and can be found at https://github.com/cloudius-systems/osv.
Securing Network Access with Open Source solutionsNick Owen
My presentation from Atlanta Linux Fest on how to allow users secure access to your network using open source technologies. Examples include how to add two-factor authentication to Apache, OpenVPN, Astaro, NX etc.
SSL Checklist for Pentesters (BSides MCR 2014)Jerome Smith
This presentation was made at BSides MCR 2014. It tackles the subject of SSL/TLS testing from the viewpoint of a penetration tester. It is a practical guide, broad in scope, focusing on pitfalls and how to check issues manually (as much as possible).
I already have updated material (including SNI and OCSP Stapling) for the next version. Look out for future content @exploresecurity and @NCCGroupInfosec.
You’re ready to make your applications more responsive, scalable, fast and secure. Then it’s time to get started with NGINX. In this webinar, you will learn how to install NGINX from a package or from source onto a Linux host. We’ll then look at some common operating system tunings you could make to ensure your NGINX install is ready for prime time.
View full webinar on demand at http://nginx.com/resources/webinars/installing-tuning-nginx/
Hacking Highly Secured Enterprise Environments by Zoltan BalazsShakacon
In theory, post-exploitation after having remote access is easy. Also in theory, there is no difference between theory and practice. In practice, there is. Imagine a scenario, where the hacker/penetration-tester has deployed a malware on a user's workstation, but the target information is on a secure server accessed via two-factor authentication, with screen access only (e.g. RDP, Citrix, etc.) On top of that, the server runs application white-listing, and only the inbound port to the screen server (e.g. 3389) is allowed through the hardware firewall. But you also need persistent interactive C&C communication (e.g. Netcat, Meterpreter, RAT) to this server through the user's workstation.
I developed (and will publish) two tools that help the community in these situations. The first tool can drop malware to the server through the screen while the user is logged in. The second tool can help to circumvent the hardware firewall after one can execute code on the server with admin privileges (using a signed kernel driver). My tools have been tested against Windows server 2012 and Windows 8, and they work with RDP or other remote desktops (e.g. Citrix). The number of problems one can solve with them are endless, e.g., communicating with bind-shell on webserver behind restricted DMZ. Beware, live demo and fun included!
Basic security principles for information systems development/deployment. Information security is concerned with the confidentiality, integrity, and availability of information. From these three 'pillars', the following principles must be applied when implementing and maintaining an information system: Accountability.
Here Be Dragons: Security Maps of the Container New WorldC4Media
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/1KjxPiO.
Josh Bregman explores some of the unique security challenges created by both the development workflow and application runtime, explains why and how the current approaches in SecDevOps 1.0 are insufficient, and how SecDevOps 2.0 techniques including Software Defined Firewalls (SDF) provide a promising path forward for all parties involved. Filmed at qconnewyork.com.
Josh Bregman is Information Security Architect and Executive Vice President for Technical Sales at Conjur Inc.
20 years of web cryptography, and its amazing how frequently its configured sub-optimally. We've had numerous encryption algorithms, digests, protocols come, and should have GONE, but everyone has just left them on. Its time to shut out the legacy browser. The vast majority of the worlds browser install base now auto-updates, and with strict (and prescriptive) compliance in force, we get to drop the bloat form the past. In this talk we'll cover the current TRANSITIONS we're going through from a web admins perspective: TLS, Cipher Suites, HTTP Security Headers, CAs, the move to an encrypted-by-default web, and more.
Blockchain is a cutting edge technology to store data publicly in trustless system. This paper describes about how this technology can be used to give a new look to the Internet.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
3. 10-minute introduction to FreeBSD
● Most FreeBSD-fu works essentially unchanged on other Unix-like operating
systems. Often also on Linux.
● FreeBSD is the reference platform for many of the core technologies on the
Internet (IPv4, IPv6, TCP, etc...)
● Jails: lightweight virtualisation makes it trivial to isolate processes from each
other and from the evils on the Internet
● Cheat-cheat for Linux refugees
– apt-get / yum / emerge / rpm / [package manager of the week] → pkg
– init.d / systemd / upstart / [init flavour of the week] → rc.d
● Starting and stopping services: service [start/stop/restart/reload] service (e.g.: service restart
nginx)
– Third-party software lives in /usr/local, not in /usr
– Default shell is csh, not bash. Tomayto / tomahto.
4. pf configuration
● pf syntax is intuitive. Generally:
– [verb] [direction] [interface] [src/dst] [modifiers]
– e.g.:
● pass in on re0 from any to any
● pass in on re0 proto tcp from any to any port 80
● block out inet6
● …
● Hardening webservers
– Allow http and https inbound
– Block all outbound (web frameworks tend to break)
– MUST block SMTP out!
5. Installing Nginx
pkg install nginx
● Configuration in
/usr/local/etc/nginx
● Reload: service nginx reload
● Restart: service nginx restart
● Enabling by default sysrc ...
6. Encryption
● SSL(Secure Socket Layer) Certificate
● Let’s Encrypt
– Let’s Encrypt is a free, automated, and open
certificate authority brought to you by the non-profit
Internet Security Research Group (ISRG)
– Works like another Certificate Authority
– Compatible with most of the Browsers
– Major sponsors include mojilla, Cisco, Akamai,
Facebook, DigitalOcean
7. Let's Encrypt
● Let's Encrypt certificates have a short lifetime
● Automation required to keep certificates “live”
– Official client from letsencrypt.org [bulky]
– acme.sh (Bourne sh)
– Acme-tiny.py (Python)
– Many others, this workshop uses acme-client
● Often as simple as a cron(8) task, can be made as
complex as necessary
● IMPORTANT: you must renew your certificates!
8. Encryption - Demystified
● Private Key and Certificate
● Use 2048-Bit Private Keys
– Longer keys increase complexity without
measurably improving security
– 2048 provides best security/convenience tradeoff
– 4096 becoming increasingly common
● Protect Private Keys
● Ensure Sufficient Hostname Coverage
9. Installing acme-client/LetsEncrypt
pkg install acme-client
INSERT THIS WITHIN NGINX.CONF SERVER BLOCK
LISTENING FOR HTTP (ON PORT 80)
# Lets encrypt
location ^~ /.well-known/acme-challenge/ {
alias /usr/local/www/acme/;
}
REMAINDER OF NGINX CONFIG FOR WEBSITE HERE
Reload nginx with:
service nginx reload
10. Create and Sign certificate
acme-client -vNn example.com www.example.com
-n
Create a new 4096-bit RSA account key if one does not already exist.
-N
Create a new 4096-bit RSA domain key if one does not already exist.
-v
Verbose operation. Specify twice to also trace communication and
data transfers.
example.com and www.example.com are the domains for which the
certificates should be valid
11. Configure Nginx
server {
listen 80;
server_name example.com www.example.com;
# Lets encrypt
location ^~ /.well-known/acme-challenge/ {
alias /usr/local/www/acme/;
}
# Redirect other HTTP connections to HTTPS
location / {
return 301 https://example.com$request_uri;
}
}
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /usr/local/etc/ssl/acme/fullchain.pem;
ssl_certificate_key /usr/local/etc/ssl/acme/private/privkey.pem;
... MOVE REMAINDER OF NGINX CONFIG FOR WEBSITE HERE
}
Restart nginx with:
# service nginx restart
12. Configure periodic re-validation of
certificate
weekly_acme_client_enable="YES"
# To specify the domain name(s) to include in the certificate
weekly_acme_client_domains="example.com www.example.com"
#To specify the .well-known/acme-challenge directory (full path)
weekly_acme_client_challengedir="/usr/local/www/acme"
#To set additional acme-client arguments (see acme-client(1))
weekly_acme_client_args="-bv"
#To run a specific script for the renewal (ignore previously set variables)
#allows generating/renewing multiple keys/certificates
#weekly_acme_client_renewscript="/usr/local/etc/acme/acme-client.sh"
#To run a script after the renewal to deploy changed certs
#weekly_acme_client_deployscript="/usr/local/etc/acme/deploy.sh"
14. But how secure ?
https://github.com/mozilla/tls-obse
rvatory
https://github.com/mozilla/ciphersc
an
https://www.ssllabs.com/ssltest/
15. LetsSecure
● Use http/2 instead of http/1.1
listen 443 ssl http2;
listen [::]:443 ssl http2;
16. Encryption – HTTP Strict Transport Security
● Sites have always heavily relied on a 301/302 redirect to
take users from browsing over HTTP to HTTPS. With
browsers defaulting to HTTP when you type in an
address, this has previously been the only way. HSTS
allows you to tell a browser that you always want a user to
connect using HTTPS instead of HTTP. This means any
bookmarks, links or addresses the user types will be
forced to use HTTPS, even if they specify HTTP.
● When possible, you should enable HTTP Strict Transport
Security (HSTS), which instructs browsers to
communicate with your site only over HTTPS.
17. LetsSecure
● Send header to tell the browser to prefer https
to http traffic
add_header Strict-Transport-
Security max-age=31536000;
18. SSL – The BEAST Attack
● By tampering with an encryption algorithm's CBC - cipher block chaining - mode's,
portions of the encrypted traffic can be secretly decrypted.
● Recent browser versions have enabled client side mitigation for the beast attack. The
recommendation was to disable all TLS 1.0 ciphers and only offer RC4. However,
[RC4 has a growing list of attacks against it],(http://www.isg.rhul.ac.uk/tls/) many of
which have crossed the line from theoretical to practical. Moreover, there is reason to
believe that the NSA has broken RC4, their so-called "big breakthrough."
● Disabling RC4 has several ramifications. One, users with shitty browsers such as
Internet Explorer on Windows XP will use 3DES in lieu. Triple-DES is more secure
than RC4, but it is significantly more expensive. Your server will pay the cost for these
users. Two, RC4 mitigates BEAST. Thus, disabling RC4 makes TLS 1.0 users
susceptible to that attack, by moving them to AES-CBC (the usual server-side BEAST
"fix" is to prioritize RC4 above all else). I am confident that the flaws in RC4
significantly outweigh the risks from BEAST. Indeed, with client-side mitigation (which
Chrome and Firefox both provide), BEAST is a nonissue. But the risk from RC4 only
grows: More cryptanalysis will surface over time.
19. SSL – Factoring RSA-EXPORT Keys
● FREAK is a man-in-the-middle (MITM) vulnerability discovered by a group of cryptographers at INRIA, Microsoft
Research and IMDEA. FREAK stands for "Factoring RSA-EXPORT Keys."
● The vulnerability dates back to the 1990s, when the US government banned selling crypto software overseas, unless it
used export cipher suites which involved encryption keys no longer than 512-bits.
● It turns out that some modern TLS clients - including Apple's SecureTransport and OpenSSL - have a bug in them. This
bug causes them to accept RSA export-grade keys even when the client didn't ask for export-grade RSA. The impact of
this bug can be quite nasty: it admits a 'man in the middle' attack whereby an active attacker can force down the quality
of a connection, provided that the client is vulnerable and the server supports export RSA.
● There are two parts of the attack as the server must also accept "export grade RSA."
● The MITM attack works as follows:
– In the client's Hello message, it asks for a standard 'RSA' ciphersuite.
– The MITM attacker changes this message to ask for 'export RSA'.
– The server responds with a 512-bit export RSA key, signed with its long-term key.
– The client accepts this weak key due to the OpenSSL/SecureTransport bug.
– The attacker factors the RSA modulus to recover the corresponding RSA decryption key.
– When the client encrypts the 'pre-master secret' to the server, the attacker can now decrypt it to recover the TLS 'master secret'.
– From here on out, the attacker sees plaintext and can inject anything it wants.
● The ciphersuite offered here on this page does not enable EXPORT grade ciphers. Make sure your OpenSSL is updated
to the latest available version and urge your clients to also use upgraded software.
20. SSL – Logjam
● Researchers from several universities and institutions conducted a study that found an issue
in the TLS protocol. In a report the researchers report two attack methods.
● Diffie-Hellman key exchange allows that depend on TLS to agree on a shared key and
negotiate a secure session over a plain text connection.
● With the first attack, a man-in-the-middle can downgrade a vulnerable TLS connection to
512-bit export-grade cryptography which would allow the attacker to read and change the
data. The second threat is that many servers and use the same prime numbers for Diffie-
Hellman key exchange instead of generating their own unique DH parameters.
● The team estimates that an academic team can break 768-bit primes and that a nation-state
could break a 1024-bit prime. By breaking one 1024-bit prime, one could eavesdrop on 18
percent of the top one million HTTPS domains. Breaking a second prime would open up 66
percent of VPNs and 26 percent of SSH servers.
● Later on in this guide we generate our own unique DH parameters and we use a ciphersuite
that does not enable EXPORT grade ciphers. Make sure your OpenSSL is updated to the
latest available version and urge your clients to also use upgraded software. Updated
browsers refuse DH parameters lower than 768/1024 bit as a fix to this.
21. Encryption – Heartbleed
● Heartbleed is a security bug disclosed in April 2014 in the OpenSSL cryptography library, which is a
widely used implementation of the Transport Layer Security (TLS) protocol. Heartbleed may be
exploited regardless of whether the party using a vulnerable OpenSSL instance for TLS is a server or
a client. It results from improper input validation (due to a missing bounds check) in the
implementation of the DTLS heartbeat extension (RFC6520), thus the bug's name derives from
"heartbeat". The vulnerability is classified as a buffer over-read, a situation where more data can be
read than should be allowed.
● What versions of the OpenSSL are affected by Heartbleed?
● Status of different versions:
– OpenSSL 1.0.1 through 1.0.1f (inclusive) are vulnerable
– OpenSSL 1.0.1g is NOT vulnerable
– OpenSSL 1.0.0 branch is NOT vulnerable
– OpenSSL 0.9.8 branch is NOT vulnerable
● The bug was introduced to OpenSSL in December 2011 and has been out in the wild since OpenSSL
release 1.0.1 on 14th of March 2012. OpenSSL 1.0.1g released on 7th of April 2014 fixes the bug.
● By updating OpenSSL you are not vulnerable to this bug.
22. Encryption – SSL Compression
● The CRIME attack uses SSL Compression to do its
magic. SSL compression is turned off by default in nginx
1.1.6+/1.0.9+ (if OpenSSL 1.0.0+ used) and nginx
1.3.2+/1.2.2+ (if older versions of OpenSSL are used).
● If you are using al earlier version of nginx or OpenSSL
and your distro has not backported this option then you
need to recompile OpenSSL without ZLIB support. This
will disable the use of OpenSSL using the DEFLATE
compression method. If you do this then you can still
use regular HTML DEFLATE compression.
23. SSL – SSLv2 and SSLv3
● SSL v2 is insecure, so we need to disable it.
We also disable SSLv3, as TLS 1.0 suffers a
downgrade attack, allowing an attacker to force
a connection to use SSLv3 and therefore
disable forward secrecy.
24. SSL – Poodle Attack
● SSLv3 allows exploiting of the POODLE bug. This is one
more major reason to disable this.
● Google have proposed an extension to SSL/TLS named
TLSFALLBACKSCSV that seeks to prevent forced SSL
downgrades. This is automatically enabled if you upgrade
OpenSSL to the following versions:
– OpenSSL 1.0.1 has TLSFALLBACKSCSV in 1.0.1j and higher.
– OpenSSL 1.0.0 has TLSFALLBACKSCSV in 1.0.0o and higher.
– OpenSSL 0.9.8 has TLSFALLBACKSCSV in 0.9.8zc and higher.
25. LetsSecure
● Use TLS instead of SSL - Compatibility issues
with some Java clients and older versions of of
IE, however, more secure.
ssl_protocols TLSv1.1 TLSv1.2;
26. Encryption – Cipher Suite
● Forward Secrecy ensures the integrity of a session key in the event that a long-term key is compromised. PFS accomplishes
this by enforcing the derivation of a new key for each and every session.
● This means that when the private key gets compromised it cannot be used to decrypt recorded SSL traffic.
● The cipher suites that provide Perfect Forward Secrecy are those that use an ephemeral form of the Diffie-Hellman key
exchange. Their disadvantage is their overhead, which can be improved by using the elliptic curve variants.
● The following two ciphersuites are recommended, and the latter by the Mozilla Foundation.
● The recommended cipher suite:
– ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
● The recommended cipher suite for backwards compatibility (IE6/WinXP):
– ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-
SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-
RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-
SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-
SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!
EXPORT:!DES:!MD5:!PSK:!RC4";
● If your version of OpenSSL is old, unavailable ciphers will be discarded automatically. Always use the full ciphersuite above
and let OpenSSL pick the ones it supports.
● The ordering of a ciphersuite is very important because it decides which algorithms are going to be selected in priority. The
recommendation above prioritizes algorithms that provide perfect forward secrecy.
● Older versions of OpenSSL may not return the full list of algorithms. AES-GCM and some ECDHE are fairly recent, and not
present on most versions of OpenSSL shipped with Ubuntu or RHEL.
27. Encryption – Prioritization Logic
● ECDHE+AESGCM ciphers are selected first. These are TLS 1.2 ciphers.
No known attack currently target these ciphers.
● PFS ciphersuites are preferred, with ECDHE first, then DHE.
● AES 128 is preferred to AES 256. There has been discussions on whether
AES256 extra security was worth the cost, and the result is far from
obvious. At the moment, AES128 is preferred, because it provides good
security, is really fast, and seems to be more resistant to timing attacks.
● In the backward compatible ciphersuite, AES is preferred to 3DES.
BEAST attacks on AES are mitigated in TLS 1.1 and above, and difficult to
achieve in TLS 1.0. In the non-backward compatible ciphersuite, 3DES is
not present.
● RC4 is removed entirely. 3DES is used for backward compatibility.
28. Encryption – Mandatory Discards
● aNULL contains non-authenticated Diffie-Hellman key exchanges, that
are subject to Man-In-The-Middle (MITM) attacks
● eNULL contains null-encryption ciphers (cleartext)
● EXPORT are legacy weak ciphers that were marked as exportable by US
law
● RC4 contains ciphers that use the deprecated ARCFOUR algorithm
● DES contains ciphers that use the deprecated Data Encryption Standard
● SSLv2 contains all ciphers that were defined in the old version of the
SSL standard, now deprecated
● MD5 contains all the ciphers that use the deprecated message digest 5
as the hashing algorithm
29. LetsSecure
● Use more secure and less CPU tasking ciphers
compared to nginx defaults
ssl_ciphers
ECDH+AESGCM:DH+AESGCM:ECDH+AES256:D
H+AES256:ECDH+AES128:DH+AES:ECDH+3D
ES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3
DES:!aNULL:!MD5:!DSS;
● Specifies that server ciphers should be
preferred over client ciphers
ssl_prefer_server_ciphers on;
30. Encryption – Forward Secrecy
● The concept of forward secrecy is simple: client and server negotiate a key that never
hits the wire, and is destroyed at the end of the session. The RSA private from the
server is used to sign a Diffie-Hellman key exchange between the client and the server.
The pre-master key obtained from the Diffie-Hellman handshake is then used for
encryption. Since the pre-master key is specific to a connection between a client and a
server, and used only for a limited amount of time, it is called Ephemeral.
● With Forward Secrecy, if an attacker gets a hold of the server's private key, it will not be
able to decrypt past communications. The private key is only used to sign the DH
handshake, which does not reveal the pre-master key. Diffie-Hellman ensures that the
pre-master keys never leave the client and the server, and cannot be intercepted by a
MITM.
● All versions of nginx as of 1.4.4 rely on OpenSSL for input parameters to Diffie-Hellman
(DH). Unfortunately, this means that Ephemeral Diffie-Hellman (DHE) will use
OpenSSL's defaults, which include a 1024-bit key for the key-exchange. Since we're
using a 2048-bit certificate, DHE clients will use a weaker key-exchange than non-
ephemeral DH clients.
31. LetsSecure
● Specifies a file with DH parameters for EDH
ciphers
● Run "openssl dhparam -out
/path/to/ssl/dhparam.pem 4096" in
terminal to generate it
ssl_dhparam
/path/to/ssl/dhparam.pem;
32. LetsSecure
● Improves TTFB by using a smaller SSL buffer than the nginx default
ssl_buffer_size 8k;
● Enables all nginx worker processes share SSL session information
ssl_session_cache shared:SSL:30m;
● Increases the amount of time SSL session information in the cache
is valid
ssl_session_timeout 30m;
● File containing chain of domain and intermediate certificates
ssl_certificate /path/to/ssl/domain-intermediate-
cert.crt;
● File containing private key
ssl_certificate_key /path/to/ssl/private.key;
33. Encryption – OCSP Stapling
● When connecting to a server, clients should verify the validity of the server certificate using
either a Certificate Revocation List (CRL), or an Online Certificate Status Protocol (OCSP)
record. The problem with CRL is that the lists have grown huge and takes forever to download.
● OCSP is much more lightweight, as only one record is retrieved at a time. But the side effect is
that OCSP requests must be made to a 3rd party OCSP responder when connecting to a server,
which adds latency and potential failures. In fact, the OCSP responders operated by CAs are
often so unreliable that browser will fail silently if no response is received in a timely manner.
This reduces security, by allowing an attacker to DoS an OCSP responder to disable the
validation.
● The solution is to allow the server to send its cached OCSP record during the TLS handshake,
therefore bypassing the OCSP responder. This mechanism saves a roundtrip between the client
and the OCSP responder, and is called OCSP Stapling.
● The server will send a cached OCSP response only if the client requests it, by announcing
support for the status_request TLS extension in its CLIENT HELLO.
● Most servers will cache OCSP response for up to 48 hours. At regular intervals, the server will
connect to the OCSP responder of the CA to retrieve a fresh OCSP record. The location of the
OCSP responder is taken from the Authority Information Access field of the signed certificate.
35. Encryption – HTTP Public Key Pinning
● We should also enable the HTTP Public Key
Pinning Extension.
● Public Key Pinning means that a certificate
chain must include a whitelisted public key. It
ensures only whitelisted Certificate Authorities
(CA) can sign certificates for *.example.com,
and not any CA in your browser store.
36. HTTP Public Key Pinning
● The great thing about SSL/TLS certificates is that you can
buy a certificate from any trusted Certificate Authority and
the browser will happily accept it. The problem with this is
that when a Certificate Authority is compromised, an
attacker can issue themselves an SSL/TLS certificate for
your site and the browser will accept this rogue certificate as
it came from a trusted Certificate Authority. HPKP allows
you to protect yourself by providing a whitelist of
cryptographic identities that the browser should trust. Whilst
HSTS says the browser must always use HTTPS, HPKP
says the browser should only ever accept a specific set of
certificates.
37. HTTP Public Key Pinning - Cont
● The first step to creating a HPKP policy is to get the fingerprint of your
current certificate.
openssl x509 -pubkey < tls.crt | openssl pkey -pubin
-outform der | openssl dgst -sha256 -binary | base64
● Creating A Backup CSR
openssl genrsa -out bofh1.key 4096
openssl req -new -key bofh1.key -sha256 -out bofh1.csr
● Fingerprint for Backup CSR
openssl req -pubkey < bofh1.csr | openssl pkey -pubin
-outform der | openssl dgst -sha256 -binary | base64
39. Encryption – 2048-bit Private Keys
● For most web sites, security provided by 2,048-bit RSA keys is
sufficient.
● The RSA public key algorithm is widely supported, which makes keys
of this type a safe default choice. At 2,048 bits, such keys provide
about 112 bits of security. If you want more security than this, note
that RSA keys don't scale very well. To get 128 bits of security, you
need 3,072-bit RSA keys, which are noticeably slower.
● ECDSA keys provide an alternative that offers better security and
better performance. At 256 bits, ECDSA keys provide 128 bits of
security. A small number of older clients don't support ECDSA, but
modern clients do. It's possible to get the best of both worlds and
deploy with RSA and ECDSA keys simultaneously if you don't mind
the overhead of managing such a setup.
40. Encryption – Protect Private Keys
● Treat your private keys as an important asset, restricting access to the smallest possible group of
employees while still keeping your arrangements practical. Recommended policies include the
following:
● Generate private keys on a trusted computer with sufficient entropy. Some CAs offer to generate
private keys for you; run away from them.
● Password-protect keys from the start to prevent compromise when they are stored in backup
systems. Private key passwords don’t help much in production because a knowledgeable attacker
can always retrieve the keys from process memory. There are hardware devices (called Hardware
Security Modules, or HSMs) that can protect private keys even in the case of server compromise,
but they are expensive and thus justifiable only for organizations with strict security requirements.
● After compromise, revoke old certificates and generate new keys.
● Renew certificates yearly, and more often if you can automate the process. Most sites should
assume that a compromised certificate will be impossible to revoke reliably; certificates with
shorter lifespans are therefore more secure in practice.
● Unless keeping the same keys is important for public key pinning, you should also generate new
private keys whenever you're getting a new certificate.
41. Encryption – Sufficient Hostname Coverage
● Ensure that your certificates cover all the names you wish to use with a site. Your goal
is to avoid invalid certificate warnings, which confuse users and weaken their
confidence.
● Even when you expect to use only one domain name, remember that you cannot
control how your users arrive at the site or how others link to it. In most cases, you
should ensure that the certificate works with and without the www prefix (e.g., that it
works for both example.com and www.example.com). The rule of thumb is that a
secure web server should have a certificate that is valid for every DNS name
configured to point to it.
● Wildcard certificates have their uses, but avoid using them if it means exposing the
underlying keys to a much larger group of people, and especially if doing so crosses
team or department boundaries. In other words, the fewer people there are with
access to the private keys, the better. Also be aware that certificate sharing creates a
bond that can be abused to transfer vulnerabilities from one web site or server to all
other sites and servers that use the same certificate (even when the underlying private
keys are different).
42. Encryption – Certificate Signature Algorithm
● Certificate security depends
– On the strength of the private key that was used to sign the
certificate
– The strength of the hashing function used in the signature.
● Until recently, most certificates relied on the SHA1 hashing
function, which is now considered insecure. As a result,
we're currently in transition to SHA256. As of January
2016, you shouldn't be able to get a SHA1 certificate from
a public CA. The existing SHA1 certificates will continue to
work (with warnings in some browsers), but only until the
end of 2016.
44. Configuration – Complete Certificate Chains
● In most deployments, the server certificate alone is insufficient;
two or more certificates are needed to build a complete chain of
trust. A common configuration problem occurs when deploying a
server with a valid certificate, but without all the necessary
intermediate certificates. To avoid this situation, simply use all
the certificates provided to you by your CA.
● An invalid certificate chain effectively renders the server
certificate invalid and results in browser warnings. In practice,
this problem is sometimes difficult to diagnose because some
browsers can reconstruct incomplete chains and some can’t. All
browsers tend to cache and reuse intermediate certificates.
45. Configuration – Secure Protocol
● There are five protocols in the SSL/TLS family: SSL v2, SSL v3, TLS v1.0,
TLS v1.1, and TLS v1.2:
● SSL v2 is insecure and must not be used. This protocol version is so bad
that it can be used to attack RSA keys and sites with the same name even
if they are on an entirely different servers (the DROWN attack).
● SSL v3 is insecure when used with HTTP (the POODLE attack) and weak
when used with other protocols. It’s also obsolete and shouldn’t be used.
● TLS v1.0 is also a legacy protocol that shouldn't be used, but it's typically
still necessary in practice. Its major weakness (BEAST) has been
mitigated in modern browsers, but other problems remain.
● TLS v1.1 and v1.2 are both without known security issues, but only v1.2
provides modern cryptographic algorithms.
46. Configuration – Secure Cipher Suites
● To communicate securely, you must first ascertain that you are
communicating directly with the desired party (and not through
someone else who will eavesdrop) and exchanging data securely. In
SSL and TLS, cipher suites define how secure communication takes
place. They are composed from varying building blocks with the
idea of achieving security through diversity. If one of the building
blocks is found to be weak or insecure, you should be able to switch
to another.
● You should rely chiefly on the AEAD suites that provide strong
authentication and key exchange, forward secrecy, and encryption
of at least 128 bits. Some other, weaker suites may still be
supported, provided they are negotiated only with older clients that
don't support anything better.
47. Configuration – Forward Secrecy
● Forward secrecy (sometimes also called perfect forward
secrecy) is a protocol feature that enables secure
conversations that are not dependent on the server’s
private key. With cipher suites that do not provide forward
secrecy, someone who can recover a server’s private key
can decrypt all earlier recorded encrypted conversations.
You need to support and prefer ECDHE suites in order to
enable forward secrecy with modern web browsers. To
support a wider range of clients, you should also use DHE
suites as fallback after ECDHE. Avoid the RSA key
exchange unless absolutely necessary.
48. Configuration – Strong Key Exchange
● For the key exchange, public sites can typically choose between the
classic ephemeral Diffie-Hellman key exchange (DHE) and its elliptic
curve variant, ECDHE. There are other key exchange algorithms, but
they're generally insecure in one way or another. The RSA key exchange
is still very popular, but it doesn't provide forward secrecy.
● In 2015, a group of researchers published new attacks against DHE; their
work is known as the Logjam attack. The researchers discovered that
lower-strength DH key exchanges (e.g., 768 bits) can easily be broken
and that some well-known 1,024-bit DH groups can be broken by state
agencies. To be on the safe side, if deploying DHE, configure it with at
least 2,048 bits of security. Some older clients (e.g., Java 6) might not
support this level of strength. For performance reasons, most servers
should prefer ECDHE, which is both stronger and faster. The secp256r1
named curve (also known as P-256) is a good choice in this case.
49. Content-Security-Policy
● The CSP header allows you to define a whitelist
of approved sources of content for your site. By
restricting the assets that a browser can load
for your site, like js and css, CSP can act as an
effective countermeasure to XSS attacks. Here
is a basic policy to enforce TLS on all assets
and prevent mixed content warnings.
51. X-Frame-Options
● The X-Frame-Options header (RFC), or XFO header, protects your visitors
against clickjacking attacks. An attacker can load up an iframe on their site and
set your site as the source, it's quite easy: <iframe
src="https://example.com"></iframe>. Using some crafty CSS they can hide
your site in the background and create some genuine looking overlays. When
your visitors click on what they think is a harmless link, they're actually clicking
on links on your website in the background. That might not seem so bad until
we realize that the browser will execute those requests in the context of the
user, which could include them being logged in and authenticated to your site!
Troy Hunt has a great blog on Clickjack attack – the hidden threat right in front
of you. Valid values include DENY meaning your site can't be framed,
SAMEORIGIN which allows you to frame your own site or ALLOW-FROM
https://example.com/ which lets you specify sites that are permitted to frame
your own site.
add_header X-Frame-Options "SAMEORIGIN" always;
52. X-Xss-Protection
● This header is used to configure the built in
reflective XSS protection found in Internet
Explorer, Chrome and Safari (Webkit). Valid
settings for the header are 0, which disables
the protection, 1 which enables the protection
and 1; mode=block which tells the browser to
block the response if it detects an attack rather
than sanitising the script.
add_header X-Xss-Protection "1;
mode=block" always;
53. X-Content-Type-Options
● This header only has one valid value, nosniff. It
prevents Google Chrome and Internet Explorer from
trying to mime-sniff the content-type of a response
away from the one being declared by the server. It
reduces exposure to drive-by downloads and the
risks of user uploaded content that, with clever
naming, could be treated as a different content-type,
like an executable.
add_header X-Content-Type-Options
"nosniff" always;