The sentence refers to how far has been driven so it is not (c) which more appropriate for time based comment eg "I have been driving for 3 hours today" or "I have been driving since 5am."
The sentence also refers to something in the past as the person has driven 400 miles, so it will not be (d) which describes something happening now eg "I am driving a red car".
Option (a) is most often used to make a commentary on one's driving, the frequency of it or the vehicle one drives eg "I (generally) drive fast", "I drive a Ford" , "I drive to work every day".
The best option is (b) which refers to the past as in "I have driven over 400 miles..." which in its conversational form can be "I've driven...". Note the person may still be driving but the sentence refers to the completion of 400 miles of driving which is an achievement in the past.