AI-powered
podcast player
Listen to all your favourite podcasts with AI-powered features
One of the main insights from the podcast episode is the need to limit the surface area when using dependencies, especially in the context of security. The podcast highlights that the more dependencies a project has, the more potential vulnerabilities it might have. It suggests that developers should consider copying and pasting specific functions or thoughts from dependencies instead of importing the entire package to minimize the risk of introducing vulnerabilities. By reducing the surface area and carefully selecting which parts of a dependency to use, developers can improve the overall security of their code.
Another key point discussed in the podcast is the value of simplicity in engineering cultures. The episode challenges the notion that rigor and complexity are always better than simplicity. It suggests that cultures that prioritize simplicity over complexity tend to produce more secure and high-quality products. The podcast emphasizes the importance of knowing when to stop and avoid overcomplicating solutions. Simple and thorough approaches can often yield better results than complex ones. Instead of seeking complexity for its own sake, the episode encourages adopting a wisdom-based approach that balances intellect and practicality.
The podcast episode highlights the difficulty of auditing the numerous dependencies that a project may have. With the widespread use of open-source libraries, it becomes challenging to ensure the security of dependencies. The podcast suggests that auditing all dependencies can be a time-consuming task, prone to false positives and requiring significant effort. The episode discusses the importance of addressing vulnerabilities in libraries and staying up-to-date with security alerts. Proactive tools like Dependabot are mentioned as helpful in managing and upgrading dependencies to maintain a more secure codebase.
The podcast episode emphasizes that all the major security vulnerabilities found during audits tended to be obvious ones. While there is a perception that hackers devise complex and sophisticated attacks, most of the vulnerabilities discovered were straightforward and easily exploitable. The episode cautions against underestimating the importance of securing against basic vulnerabilities like cross-site scripting or weak authentication systems. It reiterates the significance of addressing low-hanging fruit and implementing secure coding practices to mitigate the risk of common vulnerabilities.
Untrusted data, especially in PHP development, can lead to compromises and security vulnerabilities. Serializing and deserializing objects without proper control over user input can result in remote code execution. While it may not be obvious, certain language features like prototype pollution can also lead to unintended control and exploitation. It is recommended to carefully validate and construct objects, such as using JSON instead of serializing data.
Business logic flaws, although rare, can have catastrophic consequences when they do occur. Examples include scenarios where free accounts gain unauthorized access to premium features, or banks allowing customers to make negative deposits or withdrawals. Smart contract heists in the blockchain world are also often caused by business logic flaws. These flaws can enable unauthorized actions and even manipulate large sums of money. It is crucial to address and fix such flaws to prevent severe security breaches.
Custom fuzzing, a technique of sending random or pseudo-random inputs to test code, is surprisingly effective in identifying vulnerabilities, particularly in API endpoints. By sending bad inputs and analyzing the responses, auditors can pinpoint potential vulnerabilities for further investigation. While there are fuzzing tools available, the flexibility of customizing fuzzing methods according to specific requirements and targets can yield better results. Prioritizing fuzzing and incorporating it into the testing process can greatly enhance security.
Adam and Jerod are joined by Ken Kantzer, co-founder of PKC Security. Ken and his team performed upwards of 20 code audits on well-funded startups. Now that it’s 7 or 8 years later, he wrote up 16 surprising observations and things he learned looking back at the experience. We gotta discuss ’em all!
Changelog++ members save 6 minutes on this episode because they made the ads disappear. Join today!
Sponsors:
CHANGELOG
and get the team plan free for three months.
Featuring:
Show Notes:
Something missing or broken? PRs welcome!
Listen to all your favourite podcasts with AI-powered features
Listen to the best highlights from the podcasts you love and dive into the full episode
Hear something you like? Tap your headphones to save it with AI-generated key takeaways
Send highlights to Twitter, WhatsApp or export them to Notion, Readwise & more
Listen to all your favourite podcasts with AI-powered features
Listen to the best highlights from the podcasts you love and dive into the full episode