{"id":387303,"date":"2021-12-29T20:27:48","date_gmt":"2021-12-29T17:27:48","guid":{"rendered":"https:\/\/en.buradabiliyorum.com\/how-to-find-vulnerabilities-in-containers-and-files-with-grype-cloudsavvy-it\/"},"modified":"2021-12-29T20:27:48","modified_gmt":"2021-12-29T17:27:48","slug":"how-to-find-vulnerabilities-in-containers-and-files-with-grype-cloudsavvy-it","status":"publish","type":"post","link":"https:\/\/buradabiliyorum.com\/en\/how-to-find-vulnerabilities-in-containers-and-files-with-grype-cloudsavvy-it\/","title":{"rendered":"#How to Find Vulnerabilities In Containers and Files With Grype \u2013 CloudSavvy IT"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_89 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6af12373ca8b6\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #dd3333;color:#dd3333\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #dd3333;color:#dd3333\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6af12373ca8b6\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-find-vulnerabilities-in-containers-and-files-with-grype-cloudsavvy-it\/#Installing_Grype\" >Installing Grype<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-find-vulnerabilities-in-containers-and-files-with-grype-cloudsavvy-it\/#Basic_Scans\" >Basic Scans<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-find-vulnerabilities-in-containers-and-files-with-grype-cloudsavvy-it\/#Scanning_Filesystems\" >Scanning Filesystems<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-find-vulnerabilities-in-containers-and-files-with-grype-cloudsavvy-it\/#Filtering_Vulnerabilities\" >Filtering Vulnerabilities<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-find-vulnerabilities-in-containers-and-files-with-grype-cloudsavvy-it\/#Ignoring_Vulnerabilities\" >Ignoring Vulnerabilities<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-find-vulnerabilities-in-containers-and-files-with-grype-cloudsavvy-it\/#Using_SBOMs\" >Using SBOMs<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-find-vulnerabilities-in-containers-and-files-with-grype-cloudsavvy-it\/#Customizing_Grype_Output\" >Customizing Grype Output<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-find-vulnerabilities-in-containers-and-files-with-grype-cloudsavvy-it\/#Vulnerability_Database\" >Vulnerability Database<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-find-vulnerabilities-in-containers-and-files-with-grype-cloudsavvy-it\/#Summary\" >Summary<\/a><\/li><\/ul><\/nav><\/div>\n<p><strong>&#8220;#How to Find Vulnerabilities In Containers and Files With Grype \u2013 CloudSavvy IT&#8221;<\/strong><\/p>\n<div id=\"article-content-area\">\n<img loading=\"lazy\" decoding=\"async\" class=\"type:primaryImage aligncenter size-full wp-image-14939\" data-pagespeed-lazy-srcset=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/11\/f7694ad0.jpg?width=398&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1 400w, https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/11\/f7694ad0.jpg?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1 1200w\" sizes=\"auto, 400w, 1200w\" data-pagespeed-lazy-src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/11\/f7694ad0.jpg?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"Grype logo\" width=\"1200\" height=\"676\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Grype is an open-source vulnerability scanner that finds weaknesses within container images and filesystem directories. Grype is developed by Anchore but works as a standalone binary that\u2019s easier to get to grips with than the Anchore Engine.<\/p>\n<p>Known vulnerabilities make their way into your software via outdated operating system packages, compromised programming language dependencies, and insecure base images. Actively scanning your artifacts keeps you informed of issues before malicious actors find them. Here\u2019s how to use Grype to find problems in your code and containers.<\/p>\n<h2 id=\"installing-grype\"><span class=\"ez-toc-section\" id=\"Installing_Grype\"><\/span>Installing Grype<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Grype is distributed as a pre-compiled binary in <code>deb<\/code>, <code>rpm<\/code>, Linux source, and Mac formats. You can grab the latest release <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/anchore\/grype\/releases\">from GitHub<\/a> and install it with your system\u2019s package manager or by copying the binary to a location in your path. Alternatively, use the installation <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/download-scripts-themes-apps\/\" data-internallinksmanager029f6b8e52c=\"9\" title=\"Download Scripts &amp; Themes &amp; Apps\" target=\"_blank\" rel=\"noopener\">script<\/a> to automate the process:<\/p>\n<pre><code>curl -sSfL https:\/\/raw.githubusercontent.com\/anchore\/grype\/main\/install.sh | sh -s -- -b \/usr\/local\/bin<\/code><\/pre>\n<p>Check your binary\u2019s working by running the <code>grype<\/code> command. Documentation on the available commands will be displayed.<\/p>\n<h2 id=\"basic-scans\"><span class=\"ez-toc-section\" id=\"Basic_Scans\"><\/span>Basic Scans<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>In its simplest form, Grype takes a single argument that specifies the container image or filesystem path to scan. To scan an image, supply a valid registry tag. Grype will use available Docker credentials to pull images from Docker Hub and private registries.<\/p>\n<pre><code>grype alpine:latest<\/code><\/pre>\n<p>You can also scan an image archive that\u2019s been exported from Docker:<\/p>\n<pre><code>grype saved-image.tar<\/code><\/pre>\n<p>Grype will download its vulnerability database the first time it\u2019s run. This currently weighs in at about 90MB. Once the database is available, Grype will pull the Docker image, catalogue the software inside it, and parse known vulnerabilities present in the database.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-14933\" data-pagespeed-lazy-src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/11\/35f27717.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"Screnshot of a Grype container scan\" width=\"932\" height=\"509\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>The results are displayed in a table within your terminal. Each vulnerability includes its <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/cve.mitre.org\">CVE ID<\/a>, the name of the affected package, and its severity level. When the problem\u2019s been patched in a later release, you\u2019ll see that update\u2019s version number in the <code>FIXED-IN<\/code> column. This helps you establish whether a vulnerability can be readily addressed with a simple package manager update.<\/p>\n<p>Grype can work with packages for <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/anchore\/grype#features\">all the most popular<\/a> Linux distributions. It also supports Ruby Gems, NPM and Yarn packages, Python Eggs, Wheels, and Poetry dependencies, and Java modules in JAR, WAR, EAR, JPI, and HPI formats.<\/p>\n<h2 id=\"scanning-filesystems\"><span class=\"ez-toc-section\" id=\"Scanning_Filesystems\"><\/span>Scanning Filesystems<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Grype can scan filesystem paths on your machine. This lets you discover vulnerabilities in source code repositories before you\u2019ve built an image. To use this feature, specify a directory path with the <code>dir:<\/code> scheme:<\/p>\n<pre><code>grype dir:\/example-dir<\/code><\/pre>\n<p>Grype will look for compatible files nested under the given directory root. Each found file will be indexed and scanned for vulnerabilities.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-14934\" data-pagespeed-lazy-src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/11\/f8e18fd3.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"Screnshot of a Grype filesystem scan\" width=\"967\" height=\"542\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Filesystem scans surface the same types of vulnerability as container image scans. The scan might take a couple of minutes to complete if you\u2019re working with a large directory tree.<\/p>\n<h2 id=\"filtering-vulnerabilities\"><span class=\"ez-toc-section\" id=\"Filtering_Vulnerabilities\"><\/span>Filtering Vulnerabilities<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Two filtering flags are supported to scope the report to just the vulnerabilities or resolution options you\u2019re interested in:<\/p>\n<ul>\n<li><strong><code>--only-fixed<\/code><\/strong> \u2013 Only show vulnerabilities that have been patched in a later release of the affected package.<\/li>\n<li><strong><code>--fail-on high<\/code><\/strong> \u2013 Exit im<a href=\"https:\/\/buradabiliyorum.com\/en\/category\/social-mediaa\/\" data-internallinksmanager029f6b8e52c=\"1\" title=\"Social Media\" target=\"_blank\" rel=\"noopener\">media<\/a>tely with an error code when a <code>high<\/code>-level vulnerability is found. You can substitute any supported error level (critical, high, medium, or low) instead of <code>high<\/code>.<\/li>\n<\/ul>\n<h2 id=\"ignoring-vulnerabilities\"><span class=\"ez-toc-section\" id=\"Ignoring_Vulnerabilities\"><\/span>Ignoring Vulnerabilities<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Vulnerabilities can be ignored to hide false positives or issues you\u2019ve decided not to address, perhaps because they\u2019re not relevant to your use of the package.<\/p>\n<p>To ignore a vulnerability, you need to create a custom Grype config file in YAML format. Add the vulnerability\u2019s CVE under the top-level <code>ignore<\/code> field:<\/p>\n<div class=\"wp-geshi-highlight-wrap5\">\n<div class=\"wp-geshi-highlight-wrap4\">\n<div class=\"wp-geshi-highlight-wrap3\">\n<div class=\"wp-geshi-highlight-wrap2\">\n<div class=\"wp-geshi-highlight-wrap\">\n<div class=\"wp-geshi-highlight\">\n<div class=\"yaml\">\n<pre class=\"de1\"><span class=\"co4\">ignore<\/span>:<span class=\"co3\">\n  - vulnerability<\/span><span class=\"sy2\">: <\/span>CVE-2021-12345<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>Other fields <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/anchore\/grype#specifying-matches-to-ignore\">are supported too<\/a>, such as this variant to ignore all issues stemming from NPM packages:<\/p>\n<div class=\"wp-geshi-highlight-wrap5\">\n<div class=\"wp-geshi-highlight-wrap4\">\n<div class=\"wp-geshi-highlight-wrap3\">\n<div class=\"wp-geshi-highlight-wrap2\">\n<div class=\"wp-geshi-highlight-wrap\">\n<div class=\"wp-geshi-highlight\">\n<div class=\"yaml\">\n<pre class=\"de1\"><span class=\"co4\">ignore<\/span>:<span class=\"co4\">\n  - package<\/span>:<span class=\"co3\">\n      type<\/span><span class=\"sy2\">: <\/span>npm<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>Save your config file to <code>.grype.yaml<\/code> or <code>.grype\/config.yaml<\/code> in your working directory. It\u2019ll be used automatically next time you run a Grype scan. The global config file <code>~\/.grype.yaml<\/code> is also supported. The file in your working directory will be merged with the global one at runtime.<\/p>\n<p>Vulnerabilities will not affect Grype\u2019s exit code if they\u2019re ignored. The JSON report will move them to a separate <code>ignoredMatches<\/code> field while terminal table reports exclude them altogether. If you ignore a vulnerability, remember to document why it\u2019s been accepted so every contributor understands the risk.<\/p>\n<h2 id=\"using-sboms\"><span class=\"ez-toc-section\" id=\"Using_SBOMs\"><\/span>Using SBOMs<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Grype can work with SBOMs generated by Syft, another of Anchore\u2019s projects. Syft indexes your container images to produce a list of the dependencies they contain.<\/p>\n<p>Use Syft to create an SBOM for your image in JSON format:<\/p>\n<pre><code>syft alpine:latest -o json &gt; alpine-sbom.json<\/code><\/pre>\n<p>Then run a Grype scan using the SBOM:<\/p>\n<pre><code>grype sbom:\/alpine-sbom.json<\/code><\/pre>\n<p>Grype will inspect the referenced image for new vulnerabilities arising from its bill of materials. Keep using Grype with your SBOM to monitor for emerging issues in image dependencies that you\u2019ve already audited and indexed.<\/p>\n<h2 id=\"customizing-grype-output\"><span class=\"ez-toc-section\" id=\"Customizing_Grype_Output\"><\/span>Customizing Grype Output<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Grype provides four different output formatters which you can switch between using the <code>-o<\/code> CLI flag:<\/p>\n<ul>\n<li><strong><code>table<\/code><\/strong> \u2013 The default human-readable table for in-terminal consumption.<\/li>\n<li><strong><code>json<\/code><\/strong> \u2013 A JSON-formatted report containing much more comprehensive information about each vulnerability, as well as details of the Grype database used for scanning. JSON files are suitable for long-term archiving and comparison, or use as CI build artifacts.<\/li>\n<li><strong><code>cyclonedx<\/code><\/strong> \u2013 A <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/cyclonedx.org\">CycloneDX-compatible report<\/a> in XML format which is ready to feed into other tools supporting SBOMs and vulnerability lists.<\/li>\n<li><strong><code>template<\/code><\/strong> \u2013 This advanced formatter lets you produce your own reports in arbitrary formats.<\/li>\n<\/ul>\n<p>The <code>template<\/code> formatter accepts a Go template that will be used to render the report output. To use this formatter, don\u2019t specify it by name \u2013 instead, pass the path to a file containing your Go template:<\/p>\n<pre><code>grype alpine:latest -o output-template.tmpl<\/code><\/pre>\n<p>The template should use the <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/redirect.viglink.com\/?key=204a528a336ede4177fff0d84a044482&amp;u=https%3A%2F%2Fpkg.go.dev%2Ftext%2Ftemplate\">Go templating syntax<\/a> to reference variables that Grype provides. You can construct any kind of file format you need, such as an HTML page, a Markdown file, or a custom JSON structure. The Grype docs include <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/anchore\/grype#using-templates\">an example of<\/a> producing a CSV file from the available variables.<\/p>\n<h2 id=\"vulnerability-database\"><span class=\"ez-toc-section\" id=\"Vulnerability_Database\"><\/span>Vulnerability Database<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The vulnerability database stores details of all the vulnerabilities known to Grype. Once it\u2019s been downloaded, the cached version will be reused until an update is available. Manual interactions with the database aren\u2019t usually necessary.<\/p>\n<p>In some situations you might need to force a database download. This could be because you\u2019re setting up an air-gapped server in advance of running a scan. Use the <code>grype db check<\/code> and <code>grype db update<\/code> commands to check for and download a newer version of the database.<\/p>\n<p>Once the database is available, scans will work while your system\u2019s offline. You can disable Grype\u2019s automatic database update checks by setting the <code>GRYPE_DB_AUTO_UPDATE<\/code> environment variable to <code>false<\/code> in your shell.<\/p>\n<h2 id=\"summary\"><span class=\"ez-toc-section\" id=\"Summary\"><\/span>Summary<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Grype alerts you to vulnerabilities inside your containers and on your filesystem. As a standalone CLI binary, it\u2019s easier to get started with than a full Anchore installation.<\/p>\n<p>If you\u2019re wondering which you should choose, Anchore\u2019s value lies in its extensibility and advanced configuration options. With Anchore Engine you can define your own policy sets based on gates, triggers, and actions. These let you precisely tailor your scans to your specific environment. Grype provides a more streamlined experience when you just want a list of known vulnerabilities in your image.<\/p>\n<p>Whichever you choose, adopting some form of active vulnerability scanning will keep you informed of weaknesses in your software supply chain. For a fully integrated approach, use Grype as part of your CI pipeline so you\u2019re alerted to new vulnerabilities as code is committed.\n<\/p><\/div>\n<blockquote><p><strong><span style=\"color: #ff6600;\">If you liked the article, do not forget to share it with your friends. Follow us on\u00a0<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/news.google.com\/publications\/CAAqBwgKMLG0nwswvr63Aw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Google News<\/a><\/span>\u00a0too, click on the star and choose us from your favorites.<\/span><\/strong><\/p><\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\">For forums sites go to <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/forum.buradabiliyorum.com\/\" target=\"_blank\" rel=\"noopener\">Forum.BuradaBiliyorum.Com<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\"><strong>If you want to read more like this article, you can visit our <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/en.buradabiliyorum.com\/technology\/\" target=\"_blank\" rel=\"noopener\">Technology category.<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<p><span style=\"color: black;\"><a style=\"color: #ff9900;\" href=\"https:\/\/www.cloudsavvyit.com\/14929\/how-to-find-vulnerabilities-in-containers-and-files-with-grype\/\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;#How to Find Vulnerabilities In Containers and Files With Grype \u2013 CloudSavvy IT&#8221; Grype is an open-source vulnerability scanner that finds weaknesses within container images and filesystem directories. Grype is developed by Anchore but works as a standalone binary that\u2019s easier to get to grips with than the Anchore Engine. Known vulnerabilities make their way&#8230;<\/p>\n","protected":false},"author":1,"featured_media":387304,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/11\/f7694ad0.jpg","fifu_image_alt":"","footnotes":""},"categories":[18],"tags":[],"class_list":["post-387303","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/387303","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/comments?post=387303"}],"version-history":[{"count":0,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/387303\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media\/387304"}],"wp:attachment":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media?parent=387303"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/categories?post=387303"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/tags?post=387303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}