{"version":1,"type":"rich","provider_name":"Libsyn","provider_url":"https:\/\/www.libsyn.com","height":90,"width":600,"title":"128 Stopping API security hacks cold (using ColdFusion API Manager) with Mike Brunt","description":"Mike Brunt talks about \u201cStopping API security hacks cold (using ColdFusion API Manager)\u201d in this episode of the ColdFusion Alive Podcast with host Michaela Light. \u201cWe're going to be talking about API security and ColdFusion, which you may not have considered. This is a whole other attack service surface that your apps can be hacked by.\u201d Show notes   Why does CF API security matter?  Remote API calls: False assumption that APIs your app calls are secure \u2013 but they may not be Local API \u2013 is it secure?  Are they still open but not used      API use  \u201cAPIs are extremely popular these days, with an average organization leveraging 15,564 APIs in total, up 201% year-on-year.\u201d From this article in TechRadar, from April 2022. API use is increasing exponentially, which can expose serious security issues.&amp;nbsp;    Common API use  Legacy database Other company\u2019s data eg USP shipping tracking Blockchain ChatGPT Amazon AWS features And many more    What is API  A portal into the middle of your code functionality and data Sends and returns XML and JSON    CF API Security attacks  Credential Stuffing: Malicious actors using stolen credentials to gain unauthorized access to API endpoints.&amp;nbsp; Pay close attention to the origin, rate and frequency of authorization requests. Cross-Site-Scripting XSS: As we can see, many of these attacks already exist in the website world.&amp;nbsp; Here malicious actors try to insert subversive scripts (often JavaScript) which can be executed.&amp;nbsp; In this case, validate all input using character escaping and filtering. Distributed Denial of Service Attacks DdoS: Impose limits on the amount and frequency of data inputs and outputs. Injection Attacks akin to SQL Injection: Check, sanitize and validate all the data inputs passed via API requests.&amp;nbsp; In addition ensure that data delivered via the API does not expose any possible vulnerabilities. Man-in-the-Middle Attacks: Ensure that all transmitted data is fully encrypted.    Actions to protect your CF app APIs  Inventory All Existing API Endpoints  &amp;nbsp;\u2013 This should be a first step in determining what the attack surface could be. This audit should show the actual requirement of each API endpoint and any vulnerabilities shown in the table above. Both remote API calls and&amp;nbsp; Your own APIs Look at API Manager monitoring Scan code for CFHTTP calls and CFCs that expose API   Build API Security For New Applications\/Features At The Planning Stage  &amp;nbsp;\u2013 As with the applications themselves, any security concerns should be in the very early planning stages of any new apps or features using API endpoints.   Use Strong Authentication And Authorization On All API Endpoints  &amp;nbsp;\u2013 Ideally, there should be no API endpoints that are not strongly secured, if so, these will be captured by the inventory-audit.   Encrypt All Traffic Via TLS  &amp;nbsp;\u2013 Ideally all traffic passing inward and outward should be encrypted and preferably via TLS.   Use A Minimal Set Of Privileges  &amp;nbsp;\u2013 Ensure that users, systems, devices, processes etc, only have the minimum amount of privileges needed to operate. Again, this should become apparent during the inventory\/audit. Avoid using the database SA\/System Administrator user in APIs   Expose Only The Very Necessary Data  &amp;nbsp;\u2013 the task of what data is exposed and passed should be determined via the API endpoint and not any application code. Again allow only totally necessary information.   Validate All Input  &amp;nbsp;\u2013 Validate all data passing in and out of an API endpoint; for instance, if the endpoint only needs integers, there should be no text passing through.   Create And Enforce Rate Limiting  &amp;nbsp;\u2013 Set limits which will reject excess transactions if they are exceeded. For instance 6,000 requests per day, per account; any requests which exceed this number will be rejected. Of course, this should be based on application needs. Use the API manager throttling features&amp;nbsp;   Audit All API\u2019s Before Deploying To Production  &amp;nbsp;\u2013 This is to make sure that all necessary code\/controls required for development\/testing is not still in place when an app is deployed to production.   Use A Web Application Firewall  &amp;nbsp;\u2013 Always a good idea FuseGuard   API Manager notifications Performance monitoring       &amp;nbsp;Useful ColdFusion features  From my experience in ColdFusion and Blockchains these can items be very relevant. cfajaximport \u2013 Controls the JavaScript files that are imported for use on pages that use ColdFusion AJAX cfajaxproxy \u2013 Creates a JavaScript proxy for a ColdFusion component, for use in an AJAX client. cfclient \u2013 Part of the CF11 mobile features for client side (JS) development. Enables output of CFcode to JS. cfdbinfo \u2013 (For oracles, off blockchain data) Lets you retrieve information about a data source, including details about the database, tables, queries, procedures, foreign keys, indexes, and version information about the database, driver, and JDBC. cfdump \u2013 (Classic for error-handling) Outputs the contents of a variable of any type for debugging purposes. cfhtmlbody \u2013 The cfhtmlbody tag can be useful for embedding JavaScript code, or placing other HTML tags that should go at the bottom of the page just before the closing body tag. cfhtmlhead \u2013 Writes text to the head section of a generated HTML page. It is useful for embedding JavaScript code. cfhttp \u2013 Generates an HTTP request and parses the response from the server into a structure. cfinclude \u2013 Includes the content from the referenced file (template).&amp;nbsp; cflog \u2013 A particularly important utility which writes a message to a log file. cfquery \u2013 Classic for interactions with oracles with off blockchain&amp;nbsp; cfsprydataset \u2013 Creates a Spry data set; can use bind parameters to get data from ColdFusion AJAX controls to populate the data set. cfstoredproc \u2013 Another oracles related item) Executes a stored procedure in a server database. Itspecifies database connection information and identifies the stored procedure. cfthread \u2013 The cfthread tag enables multithreaded programming in ColdFusion. cfwebsocket \u2013 Includes the required JavaScript files in your CFM template and creates a global JavaScript reference to the WebSocket Object on the client-side. All of this information came from    Mentioned in this episode  Mike episode on CF and blockchain CFA pod ___ Other CFA pod API manager&amp;nbsp; Adobe API Manager podcast&amp;nbsp; API Manager download&amp;nbsp;&amp;nbsp; http:\/\/{IP Address}:9000\/admin\/login.html  https:\/\/helpx.adobe.com\/coldfusion\/api-manager\/api-manager-publisher.html Getting started with API manager&amp;nbsp;  &amp;nbsp; Bio Mike Brunt  Mike Brunt was born in Northern England in 1948. It was a time of austerity for the British people who had rationing in place due to the effects of the Second World War. He pursued a management career in transportation equipment, becoming Director of Excess Stock at British Leyland Truck and Bus. He moved to the USA in 1989 and eventually took up a career path in technology, coinciding with the emergence of the World Wide Web. Mike then became involved in Teleradiology, working alongside Kodak, Lucent Technologies and GTE. Mike is still deeply involved in technology, being a specialist in capacity planning and tuning for Java systems. He is becoming ever more involved with Blockchain and peer-to-peer-based infrastructure. Specialties: Java server engineer, Blockchain infrastructure engineer, ColdFusion, networking, database design, server troubleshooting, teleradiology, and web infrastructures. In addition to his career path, Mike is a composer and musician, having been involved in creating 11 electronic music albums. Mike also paints with well over 100 paintings located in Los Angeles, New Zealand and Eugene, Oregon. Lastly, Mike is a Permaculture Certified Designer and lives on a 5-acre farm in the Eugene area of Oregon. Mike Brunt is also known as CF Whisperer. Links  Mike Brunt | LinkedIn Twitter FaceBook Instagram JVM Whisperer Foodscaping substack&amp;nbsp;  ","author_name":"ColdFusion Alive","author_url":"https:\/\/teratech.com\/podcast\/","html":"<iframe title=\"Libsyn Player\" style=\"border: none\" src=\"\/\/html5-player.libsyn.com\/embed\/episode\/id\/26108982\/height\/90\/theme\/custom\/thumbnail\/yes\/direction\/forward\/render-playlist\/no\/custom-color\/88AA3C\/\" height=\"90\" width=\"600\" scrolling=\"no\"  allowfullscreen webkitallowfullscreen mozallowfullscreen oallowfullscreen msallowfullscreen><\/iframe>","thumbnail_url":"https:\/\/assets.libsyn.com\/secure\/content\/119892425"}