TPS04-J
TSM01-J
F. Long, D. Mohindra, R. C. Seacord, D. F. Sutherland, and D. Svoboda. The CERT® Oracle® Secure Coding Standard for Java. Addison-Wesley Professional.
VNA00-J
How serious are the consequences of the rule being ignored?
VNA02-J
VNA06-J
higher severity, likelihood, and remediation cost
How likely is it that a flaw introduced by violating the rule could lead to an exploitable vulnerability?
https://www.securecoding.cert.org
Mohsen Vakilian, Stas Negara, Samira Tasharofi, and Ralph E. Johnson
Keshmesh offers an automated fixer for LCK03-J.
Keshmesh offers an automated fixer for LCK02-J.
http://keshmesh.cs.illinois.edu
Keshmesh generalizes VNA00-J in two ways:
How expensive is it to remediate existing code to comply with the rule?
Keshmesh analyses the aliasing of objects and
finds the bug patterns that span multiple methods.
{mvakili2, snegara2, tasharo1, rjohnson}@illinois.edu
[1] D. Hovemeyer and W. Pugh. Finding Concurrency Bugs in Java. In Proc. of the PODC Workshop on Concurrency and Synchronization in Java Programs, 2004.
[2] M. Naik, A. Aiken, and J. Whaley. Effective Static Race Detection for Java. In Proc. of PLDI'06.
[3] Z. D. Luo, L. Hillis, R. Das, and Y. Qi. Effective Static Analysis to Find Concurrency Bugs in Java. In 2010 10th IEEE Working Conference on Source Code Analysis and Manipulation.
Visibility and Atomicity
Locking
Thread APIs
Thread Pools
Thread-Safety Miscellaneous
VNA
LCK
THI
TPS
TSM
6
12
6
5
4
LCK01-J
LCK02-J
LCK03-J
LCK06-J
Keshmesh generalizes LCK06-J by considering modifications of objects reachable from static fields.
TSM03-J
has detector
has detector and fixer
Concurrency Mistakes That Matter (discussion topic) by W. Pugh in CAP 2010, SPLASH.
University of Illinois at Urbana-Champaign
SPLASH Demonstration 2011