Update the release procedure.
[irker.git] / security.txt
index 2638a92f1995988a55a1e7c56e51950b2102023d..4bee57750c9fe9ebc7713fbf4dbbad583794a151 100644 (file)
@@ -71,7 +71,7 @@ Our security goals for irker can be enumerated as follows:
 * Availability: Only group A should be able to to deny or degrade
   irkerd's ability to receive commit messages and relay them to the
   IRC server. We recognize and accept as inevitable that MITMs (groups
-  4 and 5) can do this too (by ARP spoofing, cable-cutting, etc.).
+  E and F) can do this too (by ARP spoofing, cable-cutting, etc.).
   But, in particular, we would like irker-mediated services to be
   resilient against DoS (denial of service) attacks.
 
@@ -86,7 +86,7 @@ Our security goals for irker can be enumerated as follows:
 * Auditability: If people abuse irkerd, we want to be able to identify
   the abusive account or IP address.
 
-== Control Issues ===
+== Control Issues ==
 
 We have audited the irker and irkerhook.py code for exploitable 
 vulnerabilities.  We have not found any in the code itself, and the
@@ -144,7 +144,7 @@ ineffective - just sets a target for the DoS attack.
 
 3. Limit the number of requests that can be queued by source IP address.
 This might be worth doing; it would stymie a single-source DoS attack through
-a publicly-exposed irkerd, though not a DDoS by a bitnet.  But there isn't
+a publicly-exposed irkerd, though not a DDoS by a botnet.  But there isn't
 a lot of win here for a properly installed irker (e.g. behind a firewall), 
 which is typically going to get all its requests from a single repo host
 anyway.
@@ -163,6 +163,10 @@ near resource limits.  An ordinary DoS attack would then be prevented
 from completely blocking all message traffic; the cost would be a
 whole lot of join/leave spam due to connection churn.
 
+We also use greenlets (Python coroutines imitating system threads)
+when they are available.  This reduces memory overhead due to
+threading substantially, making a thread-flooding DoS more dfficult.
+
 == Authentication/Integrity ==
 
 One way to help prevent DoS attacks would be in-band authentication -
@@ -187,7 +191,7 @@ receiving requests from instances of irkerhook.py.
 If this is *not* the case (e.g. the network between a hook and irkerd
 has to be considered hostile) we could hide irkerd behind an instance
 of spiped <http://www.tarsnap.com/spiped.html> or an instance of
-stunnel <http://www.stunnel.orgproxy>. These would be far superior to
+stunnel <http://www.stunnel.org>. These would be far superior to
 in-band authentication in that they would leave the job to specialist
 code not in any way coupled to irkerd's internals, minimizing
 global complexity and failure modes.
@@ -196,10 +200,10 @@ One larger issue (not unique to irker) is that because of the
 insecured nature of IRC it is essentially impossible to secure
 #commits against commit notifications that are either garbled by
 software errors and misconfigurations or maliciously crafted to
-confuse anyone attempting to gather statistics from that.  The lesson
-here is that IRC monitoring isn't a good method for that purpose;
-going direct to the repositories via a toolkit such as Ohloh is
-a far better idea.
+confuse anyone attempting to gather statistics from that channel.  The
+lesson here is that IRC monitoring isn't a good method for that
+purpose; going direct to the repositories via a toolkit such as Ohloh
+is a far better idea.
 
 === Future directions ===