In VANETs, cars on the road are equipped with OnBoard Units (OBUs) so that their situations can be monitored by Road-Side Units (RSUs) and further, Trusted Authorities (TAs). However, when something goes wrong -OBUs' information leakage or OBUs' suspicious behaviors -it is quite difficult to find out which OBU has moved to a wrong situation, which OBU should be responsible for that situation and whether there's solid evidence to prove them. In this paper, we introduce DIFO, a mechanism that can discover faulty OBUs in VANETs. DIFO can detect and find out faulty OBUs which may send false messages or behave abnormally. On the other hand, DIFO also prevent a innocent OBU from being wrongly accused. By introducing witnesses for each OBU, DIFO can store secure records of messages sent and received by each OBU into the database of TA to do further statistics and analysis. The case study part of this paper proves the effectiveness of DIFO.