[tor-commits] [tor-browser-spec/master] Update NETWORK_AUDIT_RUBRIC
gk at torproject.org
gk at torproject.org
Fri Mar 19 21:16:19 UTC 2021
commit 6735a8b4b3fda67088089c5a06b8ba25d2f89a44
Author: Matthew Finkel <sysrqb at torproject.org>
Date: Tue Feb 9 19:29:32 2021 +0000
Update NETWORK_AUDIT_RUBRIC
---
audits/NETWORK_AUDIT_RUBRIC | 93 +++++++++++----------------------------------
1 file changed, 22 insertions(+), 71 deletions(-)
diff --git a/audits/NETWORK_AUDIT_RUBRIC b/audits/NETWORK_AUDIT_RUBRIC
index b58bb49..a755b64 100644
--- a/audits/NETWORK_AUDIT_RUBRIC
+++ b/audits/NETWORK_AUDIT_RUBRIC
@@ -1,88 +1,39 @@
-`git diff esrA esrB` and then go over all the changes containing the
-below mentioned potentially dangerous calls and features. Grep the diff for
-the following strings and examine surrounding usage.
+============ General =============
-=============== Native DNS Portion =============
+The audit begins at the commit hash where the previous audit ended. Use
+code_audit.sh for creating the diff and highlighting potentially problematic
+code. The audit is scoped to a specific language (currently C/C++, Rust,
+Java/Kotlin, and Javascript).
-PR_GetHostByName
-PR_GetIPNodeByName
-PR_GetAddrInfoByName
-PR_StringToNetAddr (itself is good as it passes AI_NUMERICHOST to getaddrinfo. No resolution.)
+The output includes the entire patch where the new problematic code was
+introduced. Search for "XXX MATCH XXX" to find the next potential violation.
-MDNS
-TRR (DNS Trusted Recursive Resolver)
+code_audit.sh contains the list of known problematic APIs. New usage of these
+functions are documented and analyzed in this audit.
-Direct Paths to DNS resolution:
-nsDNSService::Resolve
-nsDNSService::AsyncResolve
-nsHostResolver::ResolveHost
+============ Firefox General Portion =============
-============ Misc Socket Portion ==============
+Start: ${previous_base_commit_hash} # ${prev_tag}
+End: ${next_base_commit_hash} # ${next_tag}
-SOCK_
-SOCKET_
-_SOCKET
-UDPSocket
-TCPSocket
- PR_NewTCPSocket
- AsyncTCPSocket
+============ Application Services Portion =============
-Misc PR_Socket
+Start: ${previous_base_commit_hash} # ${prev_tag}
+End: ${next_base_commit_hash} # ${next_tag}
-=========== Misc XPCOM Portion ================
+============ Android Components Portion =============
-Misc XPCOM (including commands for pre-diff review approach)
- *SocketProvider
- grep -R udp-socket .
- grep -R tcp-socket .
- grep for tcpsocket
- grep -R "NS_" | grep SOCKET | grep "_C"
- grep -R "@mozilla.org/network/" . | grep socket | grep -v udp-socket
+Start: ${previous_base_commit_hash} # ${prev_tag}
+End: ${next_base_commit_hash} # ${next_tag}
-============ Rust Portion ================
+============ Fenix Portion =============
-Rust
- - XXX: What do we grep for here? Or do we rely on Ritter's compile-time tool?
- - Check for new sendmsg and recvmsg usage
-
-============ Android Portion =============
-
-Android Java calls
- - URLConnection
- - XXX: getInputStream? other methods?
- - HttpURLConnection
- - UrlConnectionDownloader
- - ch.boye.httpclientandroidlib.impl.client.* (look for execute() calls)
- - grep -n openConnection\( mobile/android/thirdparty/
- - java.net.URL -- has SEVERAL proxy bypass URL fetching methods :/
- - java.net
- - javax.net
- - ch.boye.httpclientandroidlib.conn.* (esp ssl)
- - ch.boye.httpclientandroidlib.impl.conn.* (esp ssl)
- - Sudden appearance of thirdparty libs:
- - OkHttp
- - Retrofit
- - Glide
- - com.amitshekhar.android
- - IntentHelper
- - openUriExternal (can come from GeckoAppShell too)
- - getHandlersForMimeType
- - getHandlersForURL
- - getHandlersForIntent
- - android.content.Intent - too common; instead find launch methods:
- - startActivity
- - startActivities
- - sendBroadcast
- - sendOrderedBroadcast
- - startService
- - bindService
- - android.app.PendingIntent
- - android.app.DownloadManager
- - ActivityHandlerHelper.startIntentAndCatch
+Start: ${previous_base_commit_hash} # ${prev_tag}
+End: ${next_base_commit_hash} # ${next_tag}
============ Regression/Prior Vuln Review =========
Review proxy bypass bugs; check for new vectors to look for:
- - https://trac.torproject.org/projects/tor/query?keywords=~tbb-proxy
+ - https://gitlab.torproject.org/groups/tpo/applications/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=Proxy%20Bypass
- Look for new features like these. Especially external app launch vectors
More information about the tor-commits
mailing list