The 27-year-old, who can play anywhere in the back row, was born in Johannesburg, South Africa but is qualified to play for Ireland through residency. He was part of the Emerging Ireland squad that competed in the Tbilisi Cup in June.
Commenting on his new Ulster contract, Diack said: "This wasn't a difficult decision to make. Ulster Rugby is an exciting place to be at the moment.
"We have made huge progress as a team, we have a new stadium and excellent facilities. I just want to play my part over the next three years and help Ulster pick up some silverware."