Jorge's generalized answer is a great introduction to jumping into Ubuntu development, but let's try to look a little closer at you specific issue...
Apport's main upstream developer and Ubuntu maintainer are one and the same. This simplifies things for you a bit. Instead of having to learn about packaging and patch systems, the easiest path here is to work directly on the upstream code.
Apport's development is hosted on Launchpad. It uses the bazaar distributed version control system to manage its source code. The first step towards fixing your bug is to grab the source. If you haven't used bazaar before, the bazaar in five minutes tutorial is a good place to start.
Install bazaar with:
sudo apt-get install bzr
Pull apport's source code:
bzr branch lp:apport
Now you can get started hacking. As with most VCSs, when working with bazaar, it is a good idea to only make one change per commit. You should also make your commit messages informative. It makes your changes much easier to review. When you are ready to make your first commit, run:
bzr commit -m "My commit message. Did foo to bar in order to achieve baz."
Continue making changes and commits until you are satisfied that your bug is fixed. With your last commit, you can also tag it as fixing the bug by appending
--fixes lp:<bug_number> to the commit command. Now you are ready to submit your changes for review and inclusion.
First, you need to push it to Launchpad in order to make it publicly available:
bzr push lp:~<launchpad_username>/apport/<branch_name>
Your branch can now be found at:
bzr lp-open in the branch will open that location in a browser.
Now we want to propose a merge. On that page, select "Propose for merging."
On the next page, select your target branch and give an overview of your changes.
You will now have an active merge proposal.
The maintainers will review your changes. If they are appropriate, they will be merged and be available in the next release. Alternatively, the proposal may be set to "Needs Work," and the maintainers will discuss with you additional changes that should be made before merging. If this happens, please don't take it as any kind of personal rejection of your work. When contributing to a new project for the first time, there are often little things like coding style that you might not be aware of.