require 'active_support/all'
https://guides.rubyonrails.org/v5.2/active_support_core_exte...362 karma · joined March 9, 2012
require 'active_support/all'
https://guides.rubyonrails.org/v5.2/active_support_core_exte...- https://www.propublica.org/article/child-welfare-search-seiz... - https://www.propublica.org/article/dcfs-illinois-investigati... - https://www.propublica.org/article/some-constitutional-right...
[1]: https://github.com/NVISOsecurity/MagiskTrustUserCerts
[2]: https://github.com/sensepost/objection/wiki/Patching-Android...
Certifications: The typical arguments against security certifications are not that they "don’t represent the full spectrum of skills a professional needs" but instead that many of them teach outdated, useless, or actively negative practices. Then they're used as an advertising tool and organizations with less security expertise are told they must hire based on certifications rather than actual skill.
Compliance: "compliance is counterproductive for security." Most security practitioners don't necessarily like compliance primarily because it's not enjoyable for them. It distracts them from the tasks that they want to be working on. In most cases compliance is orthogonal to security. In some cases it can certainly be counterproductive (e.g. government compliance programs requiring outdated crypto).
Management: The typical refrain "management doesn't spend enough on security / take risks seriously" has been turned into "management doesn’t care about security because they don’t fund every single thing the security team asks for". I mean, it's obvious that the argument wasn't taken seriously by the author just based on how they wrote that.
"If you use the Emergency SOS shortcut, you need to enter your passcode to re-enable Touch ID, even if you don't complete a call to emergency services. "
* Non-technical users either won't use it, or will use a weak key
* Technical users are better served by making sure their device is secure and hard-locked with a strong passcode (tip: 5 presses of the lock button on iPhone wipes in-memory encryption keys, essentially exiting "AFU mode")
https://github.com/signalapp/Signal-Android/tree/master/repr...
(*) I'm simplifying, what I mean is that DNS rebinding still limits you to only what you can do in the browser, which is effectively HTTP. Most non-HTTP services will generally just close your socket once they see you send an HTTP request.
Consider a modernized example of the business app in the story: let's say this is an internal-facing webapp with no security features implemented. With tailscale you can implement network security controls that only allow access from specific endpoints (tied to user or service identities), but the point is that you don't trust those endpoints. Of course they could be phished/compromised, but they could also easily use a boundary-crossing attack like CSRF/SSRF to attack your insecure app. So no matter what, you need to implement standard web app security features.
Systemic issues:
* Creds scattered throughout source code, including DB / AWS creds, "fixed" by removing but still present in git history
* Numerous crypto vulns: nonces / AES-ECB
* What's even the point of blockchain, it just makes everything worse
Selected quotes:
"Trail of Bits was only provided a backend for live testing on the second-to-last scheduled day of the assessment"
"The system is unusually complex, with an order-of-magnitude more custom code than similar mobile voting systems we have assessed."
"Voatz's voting processes are error prone and manual, relying on manual verification of voter identity and long-term storage of this identity on Voatz's premises"
"E2E-V systems allow voters to cast encrypted ballots such that ballot counts are verifiable to anyone, but individual voters’ preferences are not revealed. ... Voatz is not E2E-V."
"Storing voting data on a blockchain maintains an auditable record to prevent fraud, but this comes at the expense of both privacy and increased attack surface. Clients do not connect directly to the blockchain themselves, and are therefore unable to independently verify that their votes were properly recorded. Anyone with administrative access to the Voatz backend servers will have enough information to fully reconstruct the entire election, deanonymize votes, deny votes, alter votes, and invalidate audit trails."
* Creds scattered throughout source code, including DB / AWS creds, "fixed" by removing but still present in git history
* Numerous crypto vulns: nonces / AES-ECB
* What's even the point of blockchain, it just makes everything worse
Selected quotes:
"Trail of Bits was only provided a backend for live testing on the second-to-last scheduled day of the assessment"
"The system is unusually complex, with an order-of-magnitude more custom code than similar mobile voting systems we have assessed."
"Voatz's voting processes are error prone and manual, relying on manual verification of voter identity and long-term storage of this identity on Voatz's premises"
"E2E-V systems allow voters to cast encrypted ballots such that ballot counts are verifiable to anyone, but individual voters’ preferences are not revealed. ... Voatz is not E2E-V."
"Storing voting data on a blockchain maintains an auditable record to prevent fraud, but this comes at the expense of both privacy and increased attack surface. Clients do not connect directly to the blockchain themselves, and are therefore unable to independently verify that their votes were properly recorded. Anyone with administrative access to the Voatz backend servers will have enough information to fully reconstruct the entire election, deanonymize votes, deny votes, alter votes, and invalidate audit trails."
(source: a few years of webapp pentesting and Rails app dev)