The Internet has serious security problems that need to be fixed. Despite many calls to action over the years for the industry to band together and work on solutions, progress has been mild. What's needed isn't necessarily more security technology. What's needed are better tools for developers so that they can improve the security of their code.
In his keynote at Black Hat in Las Vegas, Dan Kaminsky, chief scientist and co-founder of White Ops, advocated for environments and coding frameworks that make it easier for developers to implement security without compromising usability or stifling creativity. His keynote, "The Hidden Architecture of Our Time: Why This Internet Worked, How We Could Lose It, and the Role Hackers Play," called on the security industry to think about how new programming environments could have basic functionality and security features built in and turned on by default.
"I worry about the ability of developers to innovate without being smothered by security concerns," Kaminsky told attendees.
I caught up with Kaminsky after the keynote to discuss what developers need to continue innovating and developing. During his speech, he said, "We have to figure out what people want to do and help them to do it safely." In our discussion, he explained how that meant looking at programming languages, working with containers such as Docker, and sharing code.
There is so much innovation and so much technology now that "everyday developers can do massive things," Kaminsky told me. "If they don't have a way to build these technologies securely, all of [developers'] thought is going to leave 'How do we build what users want' and go to 'How do we survive the real world.' It's a drain on people's thought."
The answer isn't more standards or theory, but "real-world experimentation," Kaminsky says. "No more 'If you really care about security, program in this language.'"
For example, it's easy to say stop coding in C because of the chances of introducing memory-related vulnerabilities. However, if the developer needs to embed code, then Python as the "safer" language is not an option. It has to be C. By looking at actual use cases, at how developers are working, we learn about these roadblocks and can start figuring out solutions to address them.
It's one thing to create new tools -- say, programming languages like Rust that stamp out a whole class of vulnerabilities by enforcing memory safety-- but it's another to see how developers use it. If they aren't able to do what they need to accomplish with the new tool, they'll figure out a workaround.
Sign up for CIO Asia eNewsletters.