CacheD: Identifying Cache-Based Timing Channels in Production Software