Instruction-level security typing by abstract interpretation