128 Stopping API security hacks cold (using ColdFusion API Manager) with Mike Brunt
Release Date: 03/02/2023
ColdFusion Alive
Luis Majano and Brad Wood talk about “BoxLang modern JVM language that runs CFML code (new CFML engine and much more)” in this episode of ColdFusion Alive Podcast with host Michaela Light. “…BX is the acronym we use a lot like our file extensions are analogous to the cold fusion file extensions. So a CFM file, we call that bxm For box Lang markup, CMS, which Lucy six had his support for, which is cold fusion script”. Show notes What is BoxLang? A new language for the JVM that includes CFML Inspired by cool CF, Groovy, Rust, Go, PHP etc Compiles into Java byte code, just like CF A...
info_outline 139 All About Adobe ColdFusion 2023 (Part 2: PDF, CCS, SSO, perf, security) with Mark TakataColdFusion Alive
Mark Takata talks about “All About Adobe ColdFusion 2023 (Part 2: PDF, CCS, SSO, perf, security)” in this episode of ColdFusion Alive Podcast with host Michaela Light. “…So we decided to build this thing called CCS central configuration server. And it runs at the command line, basically, and allows you to control your servers from a central location.”. Show notes Enhanced HTML-to-PDF Conversion New HTML-to-PDF conversion engine Supports new CSS features for pixel perfect PDFs Imbed audio, video and SVG Old tags features for manipulation of PDFs and forms etc still work Increased...
info_outline 138 All About Adobe ColdFusion 2023 (Part 1: containers, GCP, GraphQL, JWT) with Mark TakataColdFusion Alive
Mark Takata talks about “All About Adobe ColdFusion 2023 (Part 1: containers, GCP, GraphQL, JWT)” in this episode of ColdFusion Alive Podcast with host Michaela Light. “…So we support Google's version of Pub Sub. And it's fairly simple. You know, you've got a you've got someone creating a message. You've got a subscriber that you can create to listen to that message, messages of contact message that I gaze at It just have, you know, timestamps and things like that”. Show notes In this episode, we look at all the Adobe ColdFusion 2023 new features with the Adobe CF evangelist, Mark...
info_outline 137 ColdFusion Oracle Cloud Migration with MySQL (from VPS) with Scott StrozColdFusion Alive
Scott Stroz talks about “ColdFusion Oracle Cloud Migration with MySQL (from VPS)” in this episode of ColdFusion Alive Podcast with host Michaela Light. “…And the difference between Oracle clouds version of the manage the managed MySQL database is that in Oracle Cloud, it's Enterprise Edition. So if you are using MySQL heatwave in Oracle Cloud, you're actually using Enterprise Edition”. Show notes What is Oracle Cloud? Oracle cloud services like AWS, GCP, Azure etc Servers, Storage, MySQL, AI etc OCI = Oracle Cloud Infrastructure How does it differ from AWS, GCP, Azure etc? Robust...
info_outline 136 Into The Box 2024 (all the details and speakers) with Jorge ReyesColdFusion Alive
Jorge Reyes talks about “Into The Box 2024 (all the details and speakers)” in this episode of ColdFusion Alive Podcast with host Michaela Light. “...But it's just those aha moments where, Hey, I didn't know you could do that. So you can actually, when you go back home and do your job, then you can actually worry about looking more into it and implementing it. So that's kind of the idea behind all the sessions, actually.”. Show notes What is Into The Box conference? Is it only for Box products topics? No - lots of CF topics, not just Box products Do not have to use ColdBox framework...
info_outline 135 Lucee Migration (8 CFML code moving tips) with Mike ChytráčekColdFusion Alive
Mike Chytráček talks about “Lucee Migration (8 CFML code moving tips)” in this episode of ColdFusion Alive Podcast with host Michaela Light. “...but we had migrated everything over and all new clients went to Lucy all new applications went to Lucy. And within I'd say maybe two years, we had probably 95% of our clients might get it off, some clients still required it”. Show notes What is Lucee? Why did you migrate to Lucee? 2018 switch from ACF to Lucee Adobe Licensing fishing call and new licensing model per application with $10ks extra cost. “SaaS” due to Mura Per core...
info_outline 134 ColdFusion Legacy app - Is a Refactor Better than a Rewrite? with Denny SpringleColdFusion Alive
Denny Springle talks about “ColdFusion Legacy app - Is a Refactor Better than a Rewrite?” in this episode of ColdFusion Alive Podcast with host Michaela Light. “Refactoring is a way of taking in modernizing code that already exists, and bring it up to speed with generally modern best development practices. So you know, some object orientation, data modeling type of thing, as well as you know, either using a framework or building an application framework yourself, that hits all of the major obstacles that are that a framework will do for you generally.” Show notes Why is refactoring vs...
info_outline 133 GitHub Copilot & AI-Assisted Coding (Unlocking ColdFusion's AI Potential) with Monte ChanColdFusion Alive
Monte Chan talks about “GitHub Copilot & AI-Assisted Coding (Unlocking ColdFusion's AI Potential)” in this episode of ColdFusion Alive Podcast with host Michaela Light. “It is an AI pair programming tool. So this helps test your programming that basically, there's another person but in this case is a AI tool, if you will, so but you will be doing most of the typing. But then that will also give you some code suggestions, if you will. And to help you with coding. So sometimes can be a short one liner, or could be one whole block of codes. So you can save a lot of typing.” Show notes...
info_outline 132 ColdFusion Hosting options with Dakota Clum and Ryan BrownColdFusion Alive
Dakota Clum and Ryan Brown talk about “ColdFusion Hosting options (what to consider when choosing a CF host)” in this episode of ColdFusion Alive Podcast with host Michaela Light. “……you shouldn't have to be trapped with one hosting option or one provider. So when we think about the AWS are the answers of the world, when there's a need for those specific resources are specific tooling and libraries, we want to be able to support that. So, to your point, there's no kind of lock in, or anything like that you shouldn't do one or the other, you should keep all the options open to you.”...
info_outline 131 Lucee 6 with Gert Franz, Charlie Arehart, Ben Nadel, Mark Drew, Zac SpitzerColdFusion Alive
Gert Franz, Charlie Arehart, Ben Nadel, Mark Drew, and Zac Spitzer talk about “Lucee 6” in this episode of ColdFusion Alive Podcast with host Michaela Light. “Welcome to the podcast. We’re coming here live from CF camp in Munich, Germany. And we are going to be talking about Lucee 6, the new release of Lucee CFML. And we’ve got some amazing experts here. Mark Drew who's done a lot of Lucee coding at distro kid. Then we’ve got Charlie Erehart, the ColdFusion troubleshooting expert giving an independent view on Lucee. Then we’ve got Ben Nadal all the way from New York City. And...
info_outlineMike Brunt talks about “Stopping API security hacks cold (using ColdFusion API Manager)” in this episode of the ColdFusion Alive Podcast with host Michaela Light.
“We'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.”
Show notes
-
Why does CF API security matter?
- Remote API calls: False assumption that APIs your app calls are secure – but they may not be
- Local API – is it secure?
- Are they still open but not used
-
API use
- “APIs are extremely popular these days, with an average organization leveraging 15,564 APIs in total, up 201% year-on-year.” From this article in TechRadar, from April 2022.
- API use is increasing exponentially, which can expose serious security issues.
-
Common API use
- Legacy database
- Other company’s 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. 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. Here malicious actors try to insert subversive scripts (often JavaScript) which can be executed. 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. 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
- – 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
- 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
- – 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
- – 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
- – Ideally all traffic passing inward and outward should be encrypted and preferably via TLS.
- Use A Minimal Set Of Privileges
- – 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
- – 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
- – 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
- – 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
- Audit All API’s Before Deploying To Production
- – 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
- – Always a good idea
- FuseGuard
- API Manager notifications
- Performance monitoring
- Inventory All Existing API Endpoints
-
Useful ColdFusion features
- From my experience in ColdFusion and Blockchains these can items be very relevant.
- cfajaximport – Controls the JavaScript files that are imported for use on pages that use ColdFusion AJAX
- cfajaxproxy – Creates a JavaScript proxy for a ColdFusion component, for use in an AJAX client.
- cfclient – Part of the CF11 mobile features for client side (JS) development. Enables output of CFcode to JS.
- cfdbinfo – (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 – (Classic for error-handling) Outputs the contents of a variable of any type for debugging purposes.
- cfhtmlbody – 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 – Writes text to the head section of a generated HTML page. It is useful for embedding JavaScript code.
- cfhttp – Generates an HTTP request and parses the response from the server into a structure.
- cfinclude – Includes the content from the referenced file (template).
- cflog – A particularly important utility which writes a message to a log file.
- cfquery – Classic for interactions with oracles with off blockchain
- cfsprydataset – Creates a Spry data set; can use bind parameters to get data from ColdFusion AJAX controls to populate the data set.
- cfstoredproc – Another oracles related item) Executes a stored procedure in a server database. Itspecifies database connection information and identifies the stored procedure.
- cfthread – The cfthread tag enables multithreaded programming in ColdFusion.
- cfwebsocket – 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
- Adobe API Manager podcast
- API Manager download
- http://{IP Address}:9000/admin/login.html
- https://helpx.adobe.com/coldfusion/api-manager/api-manager-publisher.html
- Getting started with API manager
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.