Home

Awesome

Meta

The canonical, 'up-to-date' version is located at https://github.com/iSECPartners/LibTech-Auditing-Cheatsheet You are encouraged to improve the document and submit pull requests.

The README.md document may be converted to html using ./build_html.py The HTML version contains minor formatting changes not possible in markdown. The Markdown version should be edited and is considered authoritative.

The Github-styled markdown version of the document is generally sufficient, although formatting in Appendix A is improved in the HTML version.

Introduction

This list is intended to be a list of additional or more technical things to look for when auditing extremely high value applications. The applications may involve operational security for involved actors (such as law enforcement research), extremely valuable transactions (such as a Stock Trading Application), societal issues that could open users to physical harassment (such as a Gay Dating Application), or technologies designed to be used by journalists operating inside repressive countries.

It is an advanced list - meaning entry level issues such as application logic bypasses, common web vulnerabilities such as XSS and SQLi, or lower level vulnerabilities such as memory corruption are explicitly not covered. It is assumed that the reader is aware of these and similar vulnerabilities and is well trained in their search, exploitation, and remediation.

A good example of the type of analysis to strive for can be shown in Jacob Appelbaum's analysis of UltraSurf: https://media.torproject.org/misc/2012-04-16-ultrasurf-analysis.pdf

The Stuff

Documentation

Service Administration

Network Fingerprinting

Application Traces

Cryptography - Generic

Cryptography - Specific

SSL

Privacy Development Techniques for Web Apps

Development Best Practices

Web Application Defense in Depth

Mobile Application Defense in Depth

Binary / Thick Client Defense in Depth

Secure Software Distribution & Install

Appendix A: Examining an Application for Proxy Leaks

This provides methodology to set up your computer to alert on any traffic that doesn't go through tor. This is done by configuring a firewall to block all traffic except to pre-chosen Tor bridge nodes.

The instrucitons presented are fore shorewall (which is an abstraction over IPTables.) A similar guide for IPTables is posted by Lunar but it does not explicitly alert on traffic, only block it - you'll need to add the alerting.

It's worth verifying that this setup correctly stops/logs UDP and ICMP.

Very Important: This will not help you if the application sends de-anonymizing information (like external IP) over the Tor link.

Other resources from the Tor community:

Appendix B: Cryptographic Attacks Cheat Sheet

This list was largely derived from a collation done by Rafael Turner.

Acknowledgements

This document was primarily authored by Tom Ritter. It would be impossible to list the dozens of individuals whose teachings were used to create this document. Peer review of initial versions was provided by Peter Oehlert and Paul Youn of iSEC Partners, as well as David Goulet and Runa Sandvik. Additional feedback was provided by Philipp Winter and Michael Rogers. Finally, thanks to my employer, iSEC Partners, for sponsoring this work.

Licensing

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License: http://creativecommons.org/licenses/by-sa/3.0/