Don't worry about abductions. Children under 5 are at the single lowest risk of stranger abductions. You are at greater risk of being kidnapped than your child is, unless you have a disgruntled ex-spouse. Strangers don't kidnap young children. Relatives do.
Don't teach stranger danger. If he's ever genuinely lost, he needs to be able to ask a stranger for help.
Do worry about cars. Getting hit by a car is a very real risk.
Harnesses are a fine idea and the easiest to implement immediately.
For a longer term fix, impress on him that it is his job to keep up with you, rather than vice-versa. He needs to be genuinely nervous that if he wanders off, he will be on his own and will miss out on good things. This is not best done through discussion. It is best done through demonstration.
If he runs away from you, start running away from him. Keep running until he realizes there is a problem and starts running back to catch up with you.
The first few times you do this, it obviously needs to be in a safe location. This means far from cars, and not in an area with any animal predators (since small children are snack-sized for cougars). The middle of a large mall might be good. A science center. Something like that.
Since he has a history of running far and fast, you probably want to have a helper for this. Ideally, this is someone you trust, but he is unlikely to notice in a crowd. Their job is to tail him and make sure he doesn't get truly lost, or into a really dangerous situation (like traffic). Perhaps carry cell phones to communicate.
You might also want to give a heads-up to any store security that he is being trained and does not need a rescue. Security guards (or random people planted by you) could be helpful by walking up to him and asking "Hey, where's your mom? You better go find her before she leaves! It gets cold and dark here at night!"
Before this training trip, emphasise to him that it is his job to keep up with you. Tell him that if he wanders off, you won't be chasing him. Remind him that he better keep up with you if he doesn't want to get lost.
When he wanders, take off. Stay out of sight until he notices that you are missing and starts looking for you. Don't wait until he's in hysterics. Let him get a little nervous, then let him "find" you. Don't fuss over his return, just treat it very matter-of-factly. "Oh! I was wondering where you were. Glad you finally found me." If this has taken a long time (20 minutes or more), you might mention something like "I had an ice cream cone while you were gone. I was going to buy you one, but you weren't there. Oh well." Then go on with your day.
Depending on the age of his sister, you can also start giving her a special treat every time her brother vanishes. Explain that she deserves a prize for waiting so patiently for her brother to come back. Make sure he knows that she's getting a special prize for being patient while he is missing. Sibling rivalry is not always a bad thing. Pro-social peer pressure can be very useful.
Convey to him, over and over again, in as many ways as possible, that it is his job to keep track of you and to stick with you. Good things happen when he sticks with you. He misses out on good things when he vanishes.
When you've got him respecting the need to stay close to you, you can start giving him specific boundaries, such as "you can be anywhere between me and that bookshelf." Expand the boundaries as appropriate. Radically tighten the boundaries when he violates them.
Hope this helps. Good luck.