{"id":18124,"date":"2021-09-29T11:00:06","date_gmt":"2021-09-29T18:00:06","guid":{"rendered":"https:\/\/engineering.fb.com\/?p=18124"},"modified":"2021-10-20T08:25:44","modified_gmt":"2021-10-20T15:25:44","slug":"mariana-trench","status":"publish","type":"post","link":"https:\/\/engineering.fb.com\/2021\/09\/29\/security\/mariana-trench\/","title":{"rendered":"Open-sourcing Mariana Trench: Analyzing Android and Java app security in depth"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">We\u2019re sharing details about<\/span><a href=\"https:\/\/mariana-tren.ch\/\"> <span style=\"font-weight: 400;\">Mariana Trench<\/span><\/a><span style=\"font-weight: 400;\"> (MT), a tool we use to spot and prevent security and privacy bugs in Android and Java applications. As part of our effort to help scale security through building automation, we recently open-sourced MT to support security engineers at Facebook and across the industry.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This post is the third in our series of deep dives into the static and dynamic analysis tools we rely on. MT is the latest system, following <\/span><a href=\"https:\/\/engineering.fb.com\/2019\/08\/15\/security\/zoncolan\/\"><span style=\"font-weight: 400;\">Zoncolan<\/span><\/a><span style=\"font-weight: 400;\"> and<\/span><a href=\"https:\/\/engineering.fb.com\/2020\/08\/07\/security\/pysa\/\"><span style=\"font-weight: 400;\"> Pysa<\/span><\/a><span style=\"font-weight: 400;\">, built for Hack and Python code respectively.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Facebook\u2019s mobile applications, including Facebook, Instagram, and Whatsapp, run on millions of lines of code and are constantly evolving to enable new functionality and improve our services. To handle this volume of code, we build sophisticated systems that help our security engineers detect and review code for potential issues, rather than requiring them to rely on only manual code reviews. In the first half of 2021, over 50 percent of the security vulnerabilities we found across our family of apps were detected using automated tools.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We built MT to focus particularly on Android applications. There are differences in patching and ensuring the adoption of code updates between mobile and web applications, so they require different approaches. While server-side code can be updated almost instantaneously for web apps, mitigating a security bug in an Android application relies on each user updating the application on the device they own in a timely way. This makes it that much more important for any app developer to put systems in place to help prevent vulnerabilities from making it into mobile releases, whenever possible.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">MT is designed to be able to scan large mobile codebases and flag potential issues on pull requests before they make it into production. It was built as a result of close collaboration between security and software engineers at Facebook who train MT to look at code and analyze how data flows through it. Analyzing data flows is useful because many security and privacy issues can be modeled as data flowing into a place it shouldn\u2019t.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">You can find MT on<\/span><a href=\"https:\/\/github.com\/facebook\/mariana-trench\/\"> <span style=\"font-weight: 400;\">GitHub<\/span><\/a><span style=\"font-weight: 400;\">, and we\u2019ve released a binary distribution on<\/span><a href=\"https:\/\/pypi.org\/project\/mariana-trench\/\"> <span style=\"font-weight: 400;\">PyPI<\/span><\/a><span style=\"font-weight: 400;\">. We\u2019ve also written a <\/span><a href=\"https:\/\/mariana-tren.ch\/docs\/getting-started\"><span style=\"font-weight: 400;\">short tutorial<\/span><\/a><span style=\"font-weight: 400;\"> to help get you started. Our teams are actively developing and continuing to improve MT. We welcome your feedback: If you are interested in collaborating with us, please open an issue or reach out to us on GitHub.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">How Mariana Trench works<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">MT works very similarly to <\/span><a href=\"https:\/\/engineering.fb.com\/2019\/08\/15\/security\/zoncolan\/\"><span style=\"font-weight: 400;\">Zoncolan<\/span><\/a><span style=\"font-weight: 400;\"> and <\/span><a href=\"https:\/\/engineering.fb.com\/2020\/08\/07\/security\/pysa\/\"><span style=\"font-weight: 400;\">Pysa<\/span><\/a><span style=\"font-weight: 400;\">. The main difference is that MT is optimized for analyzing Android and Java applications. We briefly cover the basics in this blog post and encourage our readers to review our previous write-ups for a more in-depth technical explanation.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Security engineers often think of vulnerabilities in terms of data flows that they don\u2019t want to see in their applications. For example, an application should not be logging sensitive data or be subject to injection vulnerabilities that would allow attackers to insert malicious code.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In MT, a data flow can be described by:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Source: a point of origin. This can be a user-controlled string entering the app through `Intent.getData`.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Sink: a destination. In Android, this can be a call to `Log.w` or `Runtime.exec`.<\/span><span style=\"font-weight: 400;\">\u00a0<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">A large codebase can contain many different kinds of corresponding sources and sinks. We can tell MT to show us specific flows by defining <\/span><i><span style=\"font-weight: 400;\">rules<\/span><\/i><span style=\"font-weight: 400;\">. A rule could specify, for example, that we want to find <\/span><a href=\"https:\/\/support.google.com\/faqs\/answer\/9267555?hl=en\"><span style=\"font-weight: 400;\">intent redirections<\/span><\/a><span style=\"font-weight: 400;\"> (issues that allow attackers to intercept sensitive data) by defining a rule that shows us all traces from \u201cuser-controlled\u201d sources to an \u201cintent redirection\u201d sink.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">MT finds possible paths from each source to its corresponding sink. It does this by computing a model for each Java method it sees in the codebase. The models are computed using a static analysis technique called <\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Abstract_interpretation\"><span style=\"font-weight: 400;\">abstract interpretation<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">How security engineers use Mariana Trench<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">MT is how security engineers scale their work as part of Facebook\u2019s defense-in-depth application security efforts.\u00a0<\/span><span style=\"font-weight: 400;\">In a typical scenario, a security engineer would start by broadly defining the boundaries of the data flows she is interested in scanning the codebase for. For example, if she wants to find SQL injections, she would need to specify where user-controlled data is entering the code (e.g., intents in Android, the filesystem, etc.) and where it is not meant to go (e.g., any API constructing SQL queries). However, this is only the start \u2014 defining a rule connecting the two is not enough. Engineers also have to review the identified issues and refine the rules until the results are sufficiently high-signal.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">As with all engineering efforts, any tool that automatically scans code comes with inherent trade-offs. Traditionally, static analysis research has heavily focused on minimizing false positives. For security, that calculus can be very different. In using MT at Facebook, we prioritize finding more potential issues, even if it means showing more false positives. <\/span><span style=\"font-weight: 400;\">This is because we care about edge cases: data flows that are theoretically possible and exploitable but rarely happen in production.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">To help security engineers manage and triage the output, we built MT to let them quickly determine whether an issue is in fact a true positive by letting them search through results based on criteria such as the length of a trace or the specific functions encountered on a trace.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Once the rule has been created and has proved effective, we promote it to run on every pull request. If MT finds a flow violating the rule, the flow can then be surfaced to either an on-call security engineer or directly to the software engineer who made the pull request.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Rather than relying on MT as a silver bullet, we use it as part of the broader <\/span><a href=\"https:\/\/newsroom.fb.com\/news\/2019\/01\/designing-security-for-billions\/\"><span style=\"font-weight: 400;\">defense-in-depth approach<\/span><\/a><span style=\"font-weight: 400;\">. As Facebook invests in improving the fidelity of signals MT generates, security engineers continually iterate to refine rules and diagnose limitations of MT in collaboration with the software engineers building our apps.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Navigating the results: Static Analysis Post Processor<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">In addition to building the static analysis systems themselves, we\u2019ve created open source tooling to review and analyze the results produced by MT (as well as Pysa). We call our standalone processing tool Static Analysis Post Processor (<\/span><a href=\"https:\/\/github.com\/facebook\/sapp\"><span style=\"font-weight: 400;\">SAPP<\/span><\/a><span style=\"font-weight: 400;\">).<\/span><span style=\"font-weight: 400;\">\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We first <\/span><a href=\"https:\/\/www.youtube.com\/watch?v=8I3zlvtpOww\"><span style=\"font-weight: 400;\">shared our work<\/span><\/a><span style=\"font-weight: 400;\"> on SAPP and how to use its command line interface (CLI) to navigate Pysa at DefCon in 2020. SAPP was purposely built to support different static analysis tools, and it supports MT out of the box.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">SAPP takes the raw output from MT and makes it easy to triage the results. SAPP is designed to visually demonstrate how data can potentially flow from source to sink so it is easier for experts to quickly evaluate whether they agree with the tool\u2019s assessment.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">SAPP\u2019s trace view illustrates the data flow step-by-step. It highlights the relevant lines of code, allowing the security engineer to walk through possible paths that eventually reach the same sink location in the code.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">To give you an idea of what this looks like, here is a quick demo of how MT runs on a sample app:<\/span><\/p>\n<div class=\"fb-video\" data-allowfullscreen=\"true\" data-href=\"https:\/\/www.facebook.com\/Engineering\/videos\/325937145975359\/\" style=\"background-color: #fff; display: inline-block;\"><\/div>\n<p><span style=\"font-weight: 400;\">As you can see, SAPP presents a list of issues, each of which is a potential vulnerability. Each issue contains one or more traces; if several traces are materially similar, they are grouped into the same issue to help evaluate whether the overall issue is valid. SAPP supports extensive filtering and search functionality to allow security engineers to focus on the results they want to explore within each list.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">How to get started with Mariana Trench<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">MT is available on<\/span><a href=\"https:\/\/github.com\/facebook\/mariana-trench\/\"> <span style=\"font-weight: 400;\">GitHub<\/span><\/a><span style=\"font-weight: 400;\">, and we\u2019ve released a binary distribution on<\/span><a href=\"https:\/\/pypi.org\/project\/mariana-trench\/\"> <span style=\"font-weight: 400;\">PyPI<\/span><\/a><span style=\"font-weight: 400;\">. We\u2019ve also written a <\/span><a href=\"https:\/\/mariana-tren.ch\/docs\/getting-started\"><span style=\"font-weight: 400;\">short tutorial<\/span><\/a><span style=\"font-weight: 400;\"> to help get you started.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Our teams are actively developing MT to continue to improve it. If you have feedback or are interested in collaborating with us, please open an issue or reach out to us on GitHub.<\/span><\/p>\n<p><em><span style=\"font-weight: 400;\">We&#8217;d like to thank\u00a0<\/span><span style=\"font-size: 1rem;\">Maxime Arthaud, <\/span><span style=\"font-size: 1rem;\">Amar Bhosale,\u00a0<\/span><span style=\"font-size: 1rem;\">Gerben Janssen van Doorn,\u00a0<\/span><span style=\"font-size: 1rem;\">Yuh Shin Ong, <\/span><span style=\"font-size: 1rem;\">Chenguang Shen, <\/span><span style=\"font-size: 1rem;\">Simran Virk, <\/span><span style=\"font-size: 1rem;\">Shannon Zhu, <\/span><span style=\"font-size: 1rem;\">and everyone else who worked on Mariana Trench.<\/span><\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We\u2019re sharing details about Mariana Trench (MT), a tool we use to spot and prevent security and privacy bugs in Android and Java applications. As part of our effort to help scale security through building automation, we recently open-sourced MT to support security engineers at Facebook and across the industry.\u00a0 This post is the third [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"https:\/\/engineering.fb.com\/2021\/09\/29\/security\/mariana-trench\/\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":51,"featured_media":18132,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4,174,47],"tags":[],"coauthors":[1766],"class_list":["post-18124","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android","category-open-source","category-security","fb_content_type-article"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v19.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Open-sourcing Mariana Trench: Analyzing Android and Java app security in depth<\/title>\n<meta name=\"description\" content=\"Mariana Trench is an open source static analyzer that we wrote to detect and prevent security issues in Android and Java applications.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/engineering.fb.com\/2021\/09\/29\/security\/mariana-trench\/\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dominik Gabi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/engineering.fb.com\\\/2021\\\/09\\\/29\\\/security\\\/mariana-trench\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/engineering.fb.com\\\/2021\\\/09\\\/29\\\/security\\\/mariana-trench\\\/\"},\"author\":{\"@id\":\"https:\\\/\\\/engineering.fb.com\\\/2021\\\/09\\\/29\\\/security\\\/mariana-trench\\\/#author\",\"name\":\"\"},\"headline\":\"Open-sourcing Mariana Trench: Analyzing Android and Java app security in depth\",\"datePublished\":\"2021-09-29T18:00:06+00:00\",\"dateModified\":\"2021-10-20T15:25:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/engineering.fb.com\\\/2021\\\/09\\\/29\\\/security\\\/mariana-trench\\\/\"},\"wordCount\":1368,\"publisher\":{\"@id\":\"https:\\\/\\\/engineering.fb.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/engineering.fb.com\\\/2021\\\/09\\\/29\\\/security\\\/mariana-trench\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/engineering.fb.com\\\/wp-content\\\/uploads\\\/2021\\\/10\\\/Mariana-Trench-hero_smalla.png\",\"articleSection\":[\"Android\",\"Open Source\",\"Security &amp; Privacy\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/engineering.fb.com\\\/2021\\\/09\\\/29\\\/security\\\/mariana-trench\\\/\",\"url\":\"https:\\\/\\\/engineering.fb.com\\\/2021\\\/09\\\/29\\\/security\\\/mariana-trench\\\/\",\"name\":\"Open-sourcing Mariana Trench: Analyzing Android and Java app security in depth\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/engineering.fb.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/engineering.fb.com\\\/2021\\\/09\\\/29\\\/security\\\/mariana-trench\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/engineering.fb.com\\\/2021\\\/09\\\/29\\\/security\\\/mariana-trench\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/engineering.fb.com\\\/wp-content\\\/uploads\\\/2021\\\/10\\\/Mariana-Trench-hero_smalla.png\",\"datePublished\":\"2021-09-29T18:00:06+00:00\",\"dateModified\":\"2021-10-20T15:25:44+00:00\",\"description\":\"Mariana Trench is an open source static analyzer that we wrote to detect and prevent security issues in Android and Java applications.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/engineering.fb.com\\\/2021\\\/09\\\/29\\\/security\\\/mariana-trench\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/engineering.fb.com\\\/2021\\\/09\\\/29\\\/security\\\/mariana-trench\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/engineering.fb.com\\\/2021\\\/09\\\/29\\\/security\\\/mariana-trench\\\/#primaryimage\",\"url\":\"https:\\\/\\\/engineering.fb.com\\\/wp-content\\\/uploads\\\/2021\\\/10\\\/Mariana-Trench-hero_smalla.png\",\"contentUrl\":\"https:\\\/\\\/engineering.fb.com\\\/wp-content\\\/uploads\\\/2021\\\/10\\\/Mariana-Trench-hero_smalla.png\",\"width\":1920,\"height\":1080,\"caption\":\"mariana trench\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/engineering.fb.com\\\/2021\\\/09\\\/29\\\/security\\\/mariana-trench\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/engineering.fb.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Open-sourcing Mariana Trench: Analyzing Android and Java app security in depth\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/engineering.fb.com\\\/#website\",\"url\":\"https:\\\/\\\/engineering.fb.com\\\/\",\"name\":\"Engineering at Meta\",\"description\":\"Engineering at Meta Blog\",\"publisher\":{\"@id\":\"https:\\\/\\\/engineering.fb.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/engineering.fb.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/engineering.fb.com\\\/#organization\",\"name\":\"Meta\",\"url\":\"https:\\\/\\\/engineering.fb.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/engineering.fb.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/engineering.fb.com\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/Meta_lockup_positive-primary_RGB.jpg\",\"contentUrl\":\"https:\\\/\\\/engineering.fb.com\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/Meta_lockup_positive-primary_RGB.jpg\",\"width\":29011,\"height\":12501,\"caption\":\"Meta\"},\"image\":{\"@id\":\"https:\\\/\\\/engineering.fb.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/Engineering\\\/\",\"https:\\\/\\\/x.com\\\/fb_engineering\"]},[]]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Open-sourcing Mariana Trench: Analyzing Android and Java app security in depth","description":"Mariana Trench is an open source static analyzer that we wrote to detect and prevent security issues in Android and Java applications.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/engineering.fb.com\/2021\/09\/29\/security\/mariana-trench\/","twitter_misc":{"Written by":"Dominik Gabi","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/engineering.fb.com\/2021\/09\/29\/security\/mariana-trench\/#article","isPartOf":{"@id":"https:\/\/engineering.fb.com\/2021\/09\/29\/security\/mariana-trench\/"},"author":{"@id":"https:\/\/engineering.fb.com\/2021\/09\/29\/security\/mariana-trench\/#author","name":""},"headline":"Open-sourcing Mariana Trench: Analyzing Android and Java app security in depth","datePublished":"2021-09-29T18:00:06+00:00","dateModified":"2021-10-20T15:25:44+00:00","mainEntityOfPage":{"@id":"https:\/\/engineering.fb.com\/2021\/09\/29\/security\/mariana-trench\/"},"wordCount":1368,"publisher":{"@id":"https:\/\/engineering.fb.com\/#organization"},"image":{"@id":"https:\/\/engineering.fb.com\/2021\/09\/29\/security\/mariana-trench\/#primaryimage"},"thumbnailUrl":"https:\/\/engineering.fb.com\/wp-content\/uploads\/2021\/10\/Mariana-Trench-hero_smalla.png","articleSection":["Android","Open Source","Security &amp; Privacy"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/engineering.fb.com\/2021\/09\/29\/security\/mariana-trench\/","url":"https:\/\/engineering.fb.com\/2021\/09\/29\/security\/mariana-trench\/","name":"Open-sourcing Mariana Trench: Analyzing Android and Java app security in depth","isPartOf":{"@id":"https:\/\/engineering.fb.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/engineering.fb.com\/2021\/09\/29\/security\/mariana-trench\/#primaryimage"},"image":{"@id":"https:\/\/engineering.fb.com\/2021\/09\/29\/security\/mariana-trench\/#primaryimage"},"thumbnailUrl":"https:\/\/engineering.fb.com\/wp-content\/uploads\/2021\/10\/Mariana-Trench-hero_smalla.png","datePublished":"2021-09-29T18:00:06+00:00","dateModified":"2021-10-20T15:25:44+00:00","description":"Mariana Trench is an open source static analyzer that we wrote to detect and prevent security issues in Android and Java applications.","breadcrumb":{"@id":"https:\/\/engineering.fb.com\/2021\/09\/29\/security\/mariana-trench\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/engineering.fb.com\/2021\/09\/29\/security\/mariana-trench\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/engineering.fb.com\/2021\/09\/29\/security\/mariana-trench\/#primaryimage","url":"https:\/\/engineering.fb.com\/wp-content\/uploads\/2021\/10\/Mariana-Trench-hero_smalla.png","contentUrl":"https:\/\/engineering.fb.com\/wp-content\/uploads\/2021\/10\/Mariana-Trench-hero_smalla.png","width":1920,"height":1080,"caption":"mariana trench"},{"@type":"BreadcrumbList","@id":"https:\/\/engineering.fb.com\/2021\/09\/29\/security\/mariana-trench\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/engineering.fb.com\/"},{"@type":"ListItem","position":2,"name":"Open-sourcing Mariana Trench: Analyzing Android and Java app security in depth"}]},{"@type":"WebSite","@id":"https:\/\/engineering.fb.com\/#website","url":"https:\/\/engineering.fb.com\/","name":"Engineering at Meta","description":"Engineering at Meta Blog","publisher":{"@id":"https:\/\/engineering.fb.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/engineering.fb.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/engineering.fb.com\/#organization","name":"Meta","url":"https:\/\/engineering.fb.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/engineering.fb.com\/#\/schema\/logo\/image\/","url":"https:\/\/engineering.fb.com\/wp-content\/uploads\/2023\/08\/Meta_lockup_positive-primary_RGB.jpg","contentUrl":"https:\/\/engineering.fb.com\/wp-content\/uploads\/2023\/08\/Meta_lockup_positive-primary_RGB.jpg","width":29011,"height":12501,"caption":"Meta"},"image":{"@id":"https:\/\/engineering.fb.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Engineering\/","https:\/\/x.com\/fb_engineering"]},[]]}},"jetpack_featured_media_url":"https:\/\/engineering.fb.com\/wp-content\/uploads\/2021\/10\/Mariana-Trench-hero_smalla.png","jetpack_shortlink":"https:\/\/wp.me\/pa0Lhq-4Ik","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/engineering.fb.com\/wp-json\/wp\/v2\/posts\/18124","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/engineering.fb.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/engineering.fb.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/engineering.fb.com\/wp-json\/wp\/v2\/users\/51"}],"replies":[{"embeddable":true,"href":"https:\/\/engineering.fb.com\/wp-json\/wp\/v2\/comments?post=18124"}],"version-history":[{"count":6,"href":"https:\/\/engineering.fb.com\/wp-json\/wp\/v2\/posts\/18124\/revisions"}],"predecessor-version":[{"id":18142,"href":"https:\/\/engineering.fb.com\/wp-json\/wp\/v2\/posts\/18124\/revisions\/18142"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/engineering.fb.com\/wp-json\/wp\/v2\/media\/18132"}],"wp:attachment":[{"href":"https:\/\/engineering.fb.com\/wp-json\/wp\/v2\/media?parent=18124"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/engineering.fb.com\/wp-json\/wp\/v2\/categories?post=18124"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/engineering.fb.com\/wp-json\/wp\/v2\/tags?post=18124"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/engineering.fb.com\/wp-json\/wp\/v2\/coauthors?post=18124"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}