Checking Secure Information Flow in Concurrent Languages by Abstract Interpretation + Model Checking