Redefine the entire \section (and other commands) to suit your needs. Here are the defaults from sectsty:
\renewcommand\section{\@startsection {section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\normalfont\Large\bfseries\SS@sectfont}}
\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\normalfont\large\bfseries\SS@subsectfont}}
Since sectsty only changes the font, the only difference between the above and the default definition from the base document class is the addition of \SS@<sec>font to each sectional unit.
Referring to Where can I find help files or documentation for commands like \@startsection for LaTeX?, you should change arguments #4 (<beforeskip>) and #5 (<afterskip>). Here is one option you can add to your preamble that increases the <beforeskip> and <afterskip> slightly:
\makeatletter
\renewcommand\section{\@startsection {section}{1}{\z@}%
{-5ex \@plus -1ex \@minus -.2ex}% <beforeskip>
{3ex \@plus.2ex}% <afterskip>
{\normalfont\Large\bfseries\SS@sectfont}}
\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
{-4ex\@plus -1ex \@minus -.2ex}% <beforeskip>
{2ex \@plus .2ex}% <afterskip>
{\normalfont\large\bfseries\SS@subsectfont}}
\makeatother
sectsty. The package is meant for changing the font only. It is a bit like asking how to get a nail into the wall with toilet paper. It just doesn't work. – Johannes_B Jul 23 '17 at 07:20