<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://turtlesec.no/feed.xml" rel="self" type="application/atom+xml" /><link href="https://turtlesec.no/" rel="alternate" type="text/html" /><updated>2025-10-23T12:52:24+00:00</updated><id>https://turtlesec.no/feed.xml</id><title type="html">TurtleSec</title><subtitle>Software Consultancy based in Oslo, Norway</subtitle><entry><title type="html">(In)Secure C++ : Sec Edition</title><link href="https://turtlesec.no/blog/insecure-cpp-sec-edition/" rel="alternate" type="text/html" title="(In)Secure C++ : Sec Edition" /><published>2022-11-29T00:00:00+00:00</published><updated>2022-11-29T00:00:00+00:00</updated><id>https://turtlesec.no/blog/insecure-cpp-sec-edition</id><content type="html" xml:base="https://turtlesec.no/blog/insecure-cpp-sec-edition/"><![CDATA[<h2 id="insecure-c--sec-edition">(In)Secure C++ : Sec Edition</h2>

<p>This 2-day training is a shorter version of the 4-day (In)Secure C++ training. To make that 
possible this training focuses specifically on finding vulnerabilities and how they can be 
exploited.</p>

<p>For private trainings, online or on-site, please get in touch for an offer.</p>

<h3 id="understanding-exploitation-and-finding-vulnerabilities">Understanding Exploitation and Finding Vulnerabilities</h3>

<p>Gain essential knowledge, and hands-on experience, in effective vulnerability detection tools and 
techniques, and how these vulnerabilities are wielded in exploitation of C++ and C applications. 
By deepening your understanding of exploitation, the motivations driving mitigations, and the 
identification of high-risk constructs, you will be able to design software that better meets 
your security needs.</p>

<p>This training is explicitly targeted at C++ developers, though C developers will also benefit.</p>

<h3 id="practical-information">Practical information</h3>

<p>The training can be done both remotely and on-site.</p>

<ul>
  <li><strong>Audio/Video</strong> - <a href="https://meet.google.com/">Google Meet</a> + Breakout Rooms (for online trainings)</li>
  <li><strong>Chat</strong> - <a href="https://slack.com/intl/en-no/">Slack</a>: Will be set up a week in advance to facilitate the resolution of any
technical issues, and is used during the training to pace exercises and facilitate discussions.</li>
  <li><strong>Exercises</strong> - Individual Ubuntu 22.04 cloud VMs and a <a href="https://cyber-dojo.org/">Cyber Dojo</a> cloud instance
guarantees the same environment for all students.</li>
</ul>

<h3 id="some-of-the-topics-covered">Some of the topics covered</h3>

<ul>
  <li><strong>Fuzzing and Sanitizers</strong>: How to use tools like Address Sanitizer and fuzzers like AFL/libFuzzer
to find and fix security vulnerabilities. Here you will use fuzzing to find the Heartbleed
vulnerability in OpenSSL. You will also be tasked with fixing Heartbleed, and then reviewing 
the fix that was shipped at the time, to get a realistic impression of how difficult it can be 
to analyze and fix vulnerabilities in real life scenarios.</li>
  <li><strong>Exploiting Buffer Overflows with Custom Exploit Shellcode</strong>: How to exploit buffer overflows and
execute arbitrary code, and the mitigations that can help prevent it from happening. Here you will
exploit a program with your own custom shellcode.</li>
  <li><strong>Return Oriented Programming (ROP) and Format Strings</strong>: How to bypass stack protection
mechanisms using ROP and generated ROP chains. And we’ll use format string vulnerabilities as an
example of a completely different way of exploiting applications.</li>
</ul>

<h2 id="training-schedule">Training Schedule</h2>

<h3 id="day-1---finding-vulnerabilities-using-fuzzing">Day 1 - Finding Vulnerabilities Using Fuzzing</h3>

<ul>
  <li>Introduction and Setup</li>
  <li>Introduction to exploitation, vulnerabilities and specifications</li>
  <li>Mitigations and Tooling: Static and Dynamic Analysis</li>
  <li>Undefined Behaviour and Compiler Optimizations</li>
  <li>Address Sanitizer</li>
  <li>Case Study: Heartbleed</li>
  <li>Fuzzing: AFL and libFuzzer</li>
  <li>Debugging Shellcode in GDB</li>
</ul>

<h3 id="day-2---exploitation-and-writing-shellcode">Day 2 - Exploitation and Writing Shellcode</h3>

<ul>
  <li>Exploitation: Format String Exploitation</li>
  <li>Vulnerability: Stack Buffer Overflow</li>
  <li>Exploitation: Writing and Testing Custom Shellcode</li>
  <li>Exploitation: Return Oriented Programming (ROP)</li>
  <li>Summary and Conclusion</li>
</ul>]]></content><author><name></name></author><summary type="html"><![CDATA[Understanding Exploitation and Finding Vulnerabilities]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://turtlesec.no/images/oslo-g0d4acfbda_640" /><media:content medium="image" url="https://turtlesec.no/images/oslo-g0d4acfbda_640" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Mod(C++) Fundamentals</title><link href="https://turtlesec.no/blog/mod-cpp-foundation/" rel="alternate" type="text/html" title="Mod(C++) Fundamentals" /><published>2021-12-07T00:00:00+00:00</published><updated>2021-12-07T00:00:00+00:00</updated><id>https://turtlesec.no/blog/mod-cpp-foundation</id><content type="html" xml:base="https://turtlesec.no/blog/mod-cpp-foundation/"><![CDATA[<h2 id="modc-fundamentals">Mod(C++) Fundamentals</h2>

<p><em><strong>Mod(C++) Fundamentals</strong></em> is a two-day training course. It is tailored to give new hires an 
introduction to modern C++. For private trainings, online or on-site, please get in touch for an offer.</p>

<h3 id="introduction-to-c">Introduction to C++</h3>

<p><em><strong>Mod(C++) Fundamentals</strong></em> is ideal for people who have little to no experience in C++, but are
proficient in an Object Oriented Programming language, like Java or C#.</p>

<p><em><strong>Mod(C++) Fundamentals</strong></em> should ideally be taken before <a href="../mod-cpp-intermediate/"><em><strong>Mod(C++)
Intermediate</strong></em></a>, another two-day course which expands
on the topics in <em><strong>Mod(C++) Fundamentals</strong></em>. Taken together these two courses will
give a good foundation for a modern C++ programmer.</p>

<h3 id="practical-information">Practical information</h3>

<p>The exercises will be done in a CMake based project. The students will need a
development environment, a rich IDE is recommended, for example Visual Studio Code and
Jetbrains CLion. A GitHub account will be useful.</p>

<p>Students are assumed to be proficient in an Object Oriented Programming language like
Java or C#. They should be working in (or looking to work in) a C++ project.</p>

<h3 id="trainers">Trainers</h3>

<p>The course has been authored by Corentin Jabot, Patricia Aas and Ólafur Waage. Between
them they have almost 40 years of experience in C++, working on everything from games
to browsers and embedded.</p>

<h2 id="two-day-training">Two-day training</h2>

<h3 id="day-1---welcome-to-c">Day 1 - Welcome to C++</h3>

<ul>
  <li>Introduction to C++ and presentation of the project</li>
  <li>Hello world and overview of simple C++</li>
  <li>Using variables, functions and parameters effectively</li>
  <li>Using values, references, auto and const</li>
  <li>An introduction to the compilation model of C++. Build systems, compilation,
linkage, headers, translation units and libraries</li>
  <li>Introduction to unit testing using Catch2</li>
  <li>Classes, structs, namespaces and enum class</li>
  <li>Allocation on the stack vs heap, std::unique_ptr, Rule of Zero and RAII</li>
</ul>

<h3 id="day-2---algorithmic-thinking">Day 2 - Algorithmic Thinking</h3>

<ul>
  <li>Containers: std::array, and std::vector</li>
  <li>Iterators and Algorithms</li>
  <li>Lambdas and Function Templates</li>
  <li>Algorithmic Thinking</li>
  <li>Introduction to tooling like Clang Tidy, Clang Format, CMake, GDB</li>
  <li>Introduction to sanitizers like AddressSanitizer, Undefined Behavior Sanitizer and
Memory Sanitizer</li>
</ul>]]></content><author><name></name></author><summary type="html"><![CDATA[Introduction to C++]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://turtlesec.no/images/escalator-g8eb8146cb_1920" /><media:content medium="image" url="https://turtlesec.no/images/escalator-g8eb8146cb_1920" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Mod(C++) Intermediate</title><link href="https://turtlesec.no/blog/mod-cpp-intermediate/" rel="alternate" type="text/html" title="Mod(C++) Intermediate" /><published>2021-12-07T00:00:00+00:00</published><updated>2021-12-07T00:00:00+00:00</updated><id>https://turtlesec.no/blog/mod-cpp-intermediate</id><content type="html" xml:base="https://turtlesec.no/blog/mod-cpp-intermediate/"><![CDATA[<h2 id="modc-intermediate">Mod(C++) Intermediate</h2>

<p><em><strong>Mod(C++) Intermediate</strong></em> is a two day training course. It is ideal for people who have some C++
experience or that have taken <a href="../mod-cpp-foundation/"><em><strong>Mod(C++) Fundamentals</strong></em></a>. For private 
trainings, online or on-site, please get in touch for an offer.</p>

<h3 id="more-advanced-topics">More advanced topics</h3>

<p>Taken together <a href="../mod-cpp-foundation/"><em><strong>Mod(C++) Fundamentals</strong></em></a> and <em><strong>Mod(C++) Intermediate</strong></em>
will give a good foundation for a modern C++ programmer.</p>

<h3 id="practical-information">Practical information</h3>

<p>The exercises will be done in a CMake based project. The students will need a development
environment, a rich IDE is recommended, for example Visual Studio Code and Jetbrains CLion. A GitHub
account will be useful.</p>

<p>Students are assumed to have some C++ experience or should have taken Mod(C++) Fundamentals. They should be working in (
or looking to work in) a C++ project.</p>

<h3 id="trainers">Trainers</h3>

<p>The course has been authored by Corentin Jabot and Patricia Aas. Between them they have almost 30 years of experience in
C++, working on everything from games to browsers and embedded.</p>

<h2 id="two-day-training">Two-day training</h2>

<p>The Intermediate course gives the students a deeper understanding of how one should think and program in “Modern C++” (
C++11/14/17/20). The exercises will all be based around a 2D graphics game inspired by Ms. Pac-Man. Topics covered in
the course include:</p>

<h3 id="day-1---generic-programming-thinking">Day 1 - Generic programming “thinking”</h3>

<ul>
  <li>Introduction to the training Presentation of the project</li>
  <li>Function overloading</li>
  <li>Operators</li>
  <li>Class templates, function templates, non-type parameters</li>
  <li>Aliases and and alias templates</li>
  <li>std::variant and std::visit</li>
  <li>std::tuple and structured bindings</li>
  <li>Variadic templates, fold expressions and parameter packs</li>
</ul>

<h3 id="day-2--modern-c-features">Day 2 -Modern C++ Features</h3>

<ul>
  <li>Ranges</li>
  <li>std::string_view and std::span</li>
  <li>Constexpr and Consteval</li>
  <li>Concepts</li>
  <li>Special member functions (Rule of Five/Zero)</li>
  <li>Pragmatic introduction to move semantics and return value optimizations</li>
  <li>Safety: Riskier constructs in C++ and how to minimize their impact</li>
  <li>Conclusion and review</li>
</ul>]]></content><author><name></name></author><summary type="html"><![CDATA[More advanced topics]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://turtlesec.no/images/oslo-gf6008532f_1920" /><media:content medium="image" url="https://turtlesec.no/images/oslo-gf6008532f_1920" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">(In)Secure C++</title><link href="https://turtlesec.no/blog/insecure-cpp/" rel="alternate" type="text/html" title="(In)Secure C++" /><published>2020-11-23T00:00:00+00:00</published><updated>2020-11-23T00:00:00+00:00</updated><id>https://turtlesec.no/blog/insecure-cpp</id><content type="html" xml:base="https://turtlesec.no/blog/insecure-cpp/"><![CDATA[<h2 id="insecure-c">(In)Secure C++</h2>

<p>The 4-day (In)Secure C++ training is designed to provide you with the essential knowledge and tools
to effectively find and fix vulnerabilities in your own C++ and C code.</p>

<p>For private trainings, online or on-site, please get in touch for an offer.</p>

<h3 id="understanding-exploitation-to-find-and-fix-vulnerabilities">Understanding Exploitation to Find and Fix Vulnerabilities</h3>

<p>The (In)Secure C++ training is designed to provide you with the essential knowledge and tools to
effectively find and fix vulnerabilities in your own C++ and C code. To do this, we <strong><em>demystify
exploitation</em></strong> by showcasing that it is a mindset, not just a set of techniques.</p>

<p>You’ll gain insights into the <strong><em>motivations behind mitigations</em></strong> in platforms, languages,
and tools by understanding the vulnerabilities they are trying to protect against. You’ll get a
deeper understanding of why C++ and C are not easy to reason about. With our training, you’ll
learn how to design a more secure product, how to establish a robust CI/CD pipeline that
improves the security of your codebase and <strong><em>how to find and fix vulnerabilities in your own 
codebase before others do</em></strong>. And if others find them first, how to understand their vulnerability 
reports and how to receive and respond to them in a professional manner.</p>

<p>Throughout the four-day training, you’ll dive deep into various topics, including fuzzing,
sanitizers, buffer overflows, remote code execution, custom shellcode, reverse engineering,
sandboxing as a security boundary, return-oriented programming (ROP), format string 
vulnerabilities, heap exploitation, good coding practices and establishing a security culture. Each
day is carefully crafted to provide you with <strong><em>practical knowledge, real-world examples, and 
hands-on exercises.</em></strong></p>

<p>This training is explicitly targeted at C++ developers, though C developers will also benefit.</p>

<h3 id="practical-information">Practical information</h3>

<p>The training can be done both remotely and on-site.</p>

<ul>
  <li><strong>Audio/Video</strong> - <a href="https://meet.google.com/">Google Meet</a> + Breakout Rooms (for online trainings)</li>
  <li><strong>Chat</strong> - <a href="https://slack.com/intl/en-no/">Slack</a>: Will be set up a week in advance to facilitate the resolution of any
technical issues, and is used during the training to pace exercises and facilitate discussions.</li>
  <li><strong>Exercises</strong> - Individual Ubuntu 22.04 cloud VMs and a <a href="https://cyber-dojo.org/">Cyber Dojo</a> cloud instance 
guarantees the same environment for all students.</li>
</ul>

<h3 id="some-of-the-topics-covered">Some of the topics covered</h3>

<ul>
  <li><strong>Fuzzing and Sanitizers</strong>: How to use tools like Address Sanitizer and fuzzers like AFL/libFuzzer
to find and fix security vulnerabilities. Here you will use fuzzing to find the Heartbleed
vulnerability in OpenSSL. You will also be tasked with fixing Heartbleed, and then reviewing
the fix that was shipped at the time, to get a realistic impression of how difficult it can be
to analyze and fix vulnerabilities in real life scenarios.</li>
  <li><strong>Exploiting Buffer Overflows with Custom Exploit Shellcode</strong>: How to exploit buffer overflows and
execute arbitrary code, and the mitigations that can help prevent it from happening. Here you will
exploit a program with your own custom shellcode.</li>
  <li><strong>Return Oriented Programming (ROP) and Format Strings</strong>: How to bypass stack protection
mechanisms using ROP and generated ROP chains. And we’ll use format string vulnerabilities as an
example of a completely different way of exploiting applications.</li>
  <li><strong>Memory Managers and Heap Exploitation</strong>: How to understand and manipulate the memory layout and
exploit heap-based vulnerabilities. Here we will look at things like Heap Spraying, Heap Feng 
Shui, Use After Free, Heap Buffer Overflow and different techniques for getting code execution 
on the heap.</li>
  <li><strong>Reverse Engineering and Sandboxing</strong>: How to analyze binary code and use sandboxing techniques
to isolate untrusted code.</li>
  <li><strong>Secure Coding Practices</strong>: How to write more secure C++ code and to avoid common pitfalls.</li>
</ul>

<h2 id="training-schedule">Training Schedule</h2>

<h3 id="day-1---finding-vulnerabilities-using-fuzzing">Day 1 - Finding Vulnerabilities Using Fuzzing</h3>

<ul>
  <li>Introduction and Setup</li>
  <li>Introduction to exploitation, vulnerabilities and specifications</li>
  <li>Mitigations and Tooling: Static and Dynamic Analysis</li>
  <li>Undefined Behaviour and Compiler Optimizations</li>
  <li>Address Sanitizer</li>
  <li>Case Study: Heartbleed</li>
  <li>Fuzzing: AFL and libFuzzer</li>
  <li>Debugging Shellcode in GDB</li>
</ul>

<h3 id="day-2---exploitation-and-writing-shellcode">Day 2 - Exploitation and Writing Shellcode</h3>

<ul>
  <li>Vulnerability: Stack Buffer Overflow</li>
  <li>Exploitation: Writing and Testing Custom Shellcode</li>
  <li>Reverse Engineering</li>
  <li>Sandboxing on Linux (Examples from Chromium)</li>
</ul>

<h3 id="day-3---mitigation-evasion-and-secure-coding-practices">Day 3 - Mitigation Evasion and Secure Coding Practices</h3>

<ul>
  <li>Exploitation: Return Oriented Programming (ROP)</li>
  <li>Exploitation: Format String Exploitation</li>
  <li>Secure Coding Practices, Mitigations and Tooling - Part 1</li>
</ul>

<h3 id="day-4---heap-exploitation">Day 4 - Heap Exploitation</h3>

<ul>
  <li>Vulnerability: Memory Managers and Heap Allocation</li>
  <li>Exploitation: Heap Exploitation</li>
  <li>Case Study: Eternal Exploits</li>
  <li>Secure Coding Practices, Mitigations and Tooling - Part 2</li>
  <li>Practice: Vulnerability Management</li>
  <li>Summary and Conclusion</li>
</ul>]]></content><author><name></name></author><summary type="html"><![CDATA[Understanding Exploitation to Find and Fix Vulnerabilities]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://turtlesec.no/images/aker_brygge" /><media:content medium="image" url="https://turtlesec.no/images/aker_brygge" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">DevSecOps Coaching</title><link href="https://turtlesec.no/blog/devsecops-coaching/" rel="alternate" type="text/html" title="DevSecOps Coaching" /><published>2018-11-02T00:00:00+00:00</published><updated>2018-11-02T00:00:00+00:00</updated><id>https://turtlesec.no/blog/devsecops-coaching</id><content type="html" xml:base="https://turtlesec.no/blog/devsecops-coaching/"><![CDATA[<h2 id="custom-process">Custom process</h2>

<p>As the industry is embracing DevOps and security is becoming even more important, how these two should be combined is still something that is being explored and is often referred to as DevSecOps. <strong>TurtleSec’s approach to DevSecOps is to automate as much as possible and integrate it into the existing pipeline.</strong> This is naturally a very custom process, and we believe it should be implemented by the teams themselves in their normal development workflow.</p>

<h2 id="mini-workshops-and-threat-modeling">Mini Workshops and Threat Modeling</h2>

<p>Having security as a gatekeeping activity is just another silo and doesn’t scale when push-to-prod is measured in minutes or seconds. TurtleSec will help companies on this path by arranging a series of mini workshops (3 hours each) for the teams involved.</p>

<p><strong>The goal for the first workshop is to establish what threat modeling is and try to do some high level threat modeling for the system.</strong> The main goal for this workshop is to get an overview and to chose the first vulnerability to mitigate. This will then be the topic for the next workshop.</p>

<p>The next few workshops will follow a <strong>three part structure</strong>, first we will <strong>review what was done since the last workshop</strong>, then <strong>go through the topic of the workshop (most likely a type of vulnerability)</strong> and the last part is to <strong>start planning the work to mitigate the vulnerability</strong>.</p>

<h2 id="integrate-into-the-workflow">Integrate into the workflow</h2>

<p>The idea is that the <strong>team will create normal work-tasks for the work to mitigate the vulnerability</strong>, for example put it in Jira, prioritize it, plan it for the next sprint etc. We will discuss possible ways to mitigate it, and the goal is to put in automated mitigations into the existing pipeline, the production environment or the development environment. Examples of this could be configuration changes, monitoring, IDE plugins, scanning tools etc.</p>

<p>Over the course of workshops we will continue to work on threat modeling and try to have that guide us in choosing what to mitigate. As the system threat model becomes more familiar we will <strong>begin to figure out how to think about threat modeling when introducing new features</strong>.</p>

<h2 id="goals-of-the-coaching-processes">Goals of the coaching processes</h2>

<p>The over all goals of this coaching is to <strong>make the system more secure by introducing mitigations</strong>, but also to <strong>make this type of work second nature to the team</strong> and have it be naturally integrated in their day-to-day activities.</p>

<p><strong>A natural extension to this would be to have a TurtleSec consultant work on the teams in question</strong> for longer or shorter periods to help them with this work. The DevSecOps coaching does, however, not necessitate this. The coaching is meant to be a guided one, where the teams follow <strong>a custom semi-structured path to find out how DevSecOps can be woven into their existing system and processes</strong>.</p>

<p><em>Please reach out if this is something you’d like to hear more about.</em></p>]]></content><author><name></name></author><summary type="html"><![CDATA[TurtleSec’s approach to DevSecOps]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://turtlesec.no/images/oslo-911741_1920" /><media:content medium="image" url="https://turtlesec.no/images/oslo-911741_1920" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Trainings starting 2019</title><link href="https://turtlesec.no/blog/introducing-trainings/" rel="alternate" type="text/html" title="Trainings starting 2019" /><published>2018-10-16T00:00:00+00:00</published><updated>2018-10-16T00:00:00+00:00</updated><id>https://turtlesec.no/blog/introducing-trainings</id><content type="html" xml:base="https://turtlesec.no/blog/introducing-trainings/"><![CDATA[<h2 id="insecure-c-understanding-exploitation-to-find-and-fix-vulnerabilities">(In)Secure C++: Understanding Exploitation to Find and Fix Vulnerabilities</h2>

<p><em><strong>(In)Secure C++</strong></em> is an interactive 4-day training over where participants will learn the
basis of exploit development to help them view their code from an attackers’ perspective. They
will get a good overview of the specs in this area and look at using alternative programming
constructs to replace ones that often occurs in vulnerable code.</p>

<h2 id="modc-fundamentals-introduction-to-c-for-programmers">Mod(C++) Fundamentals: Introduction to C++ for Programmers</h2>

<p><em><strong>Mod(C++) Fundamentals</strong></em> is a 2-day training tailored to give new hires an introduction to modern
C++. Specifically suitable for people who are already proficient in another programming language.</p>

<h2 id="modc-intermediate-filling-in-the-gaps">Mod(C++) Intermediate: Filling in the gaps</h2>

<p><em><strong>Mod(C++) Intermediate</strong></em> is a 2-day training ideal for people that have C++ experience, but feel
that they do not fully understand things like templates, move semantics, concepts or ranges. It is
design to give the students a correct intuition so that they will write code that wields the
language and libraries well.</p>

<h2 id="mycode-introduction-to-programming-through-web-development">My.Code(): Introduction to Programming through Web Development</h2>

<p>Interactive training over 4-days where participants will learn fundamental
programming skills with a specific focus on web development. This training does not require that the
participants have any technical background. The final aim is that they can make and maintain a
website dedicated to their interests. This is a training were spreading it in chunks over weeks or
months is a good idea, then the students can practice on their own in between classes.</p>

<h2 id="information">Information</h2>

<p>Please reach out to us for more detailed descriptions.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[TurtleSec is offering trainings]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://turtlesec.no/images/operahouse-338256_1920" /><media:content medium="image" url="https://turtlesec.no/images/operahouse-338256_1920" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>