Part of my job is to prep Windows laptops for coworkers; it is my goal to provide laptops fully setup, this means among other things, I need to have Adobe Reader and Adobe Flash Player installed when they recieve the machine. Unfortunately Adobe wishes to make that a little difficult.
The license for Adobe Reader however does not permit me as IT support for an employee to distribute Adobe Reader on a machine I am providing to the employee. Adobe would want me to simply point the employee at the download site for Adobe Reader.
For me to distribute these products, I am supposed to agree to a different license agreement, one intended for distribution. This likely isn't a problem for most as most IT employees, as most never actually read license agreements. My company however has a clear policy that employees are not allowed to agree to contracts without the approval of the lawyers.
Considering that Adobe is interested in having Adobe Reader and Flash Player installed on as many machines as possible, why must they throw additional obstcles in my way?
I have spoken with many salespeople in the past week. In the past week, I have spoken with over a dozen salespeople (I sought pricing on business cellphone plans and a new photocopier). I have heard the phrase "I just wanted to touch base" many times. I have grown to have a great dislike of that phrase.
I do believe that every time I have heard "I just wanted to touch base" in the last seven days, it was prefaced by an interrupting phone call and followed by an annoying couple of minutes of a sales weasel not accepting my quite clear and simple statement of "Thank you for the quote, I am evaluating all of the options and will get back to you with questions, concerns, or with our decision." I wouldn't hold the phone call against them if I had not made it abundantly clear to each of these people that email is my preferred method of contact. Worse is that in most cases, it has taken more than a few such phone calls from each of them to get them to leave me alone.
So ignoring the sexual harassment angle of the phrase I am clearly starting to associate the phrase with annoyance.
We have a reasonable system to perform backups of laptops that are regularly on our local network. For laptops that live most of their life connected to the office over the internet and through a VPN connection it is much harder. Instead of an automated backup, the user must initiate the backup themselves. Automated messages are sent out when it has been a week without backups. And I talk to them on the phone a few days after that if a backup hasn't been done.
He came into my office complaining that his laptop blue-screened on boot, and it had been crashing regularly for the few days before. Booting off other media quickly showed the disk was failing in a pretty spectacular way. When I inform the user of this, he says, "I guess I should have backed up like you told me to, eh?" Yeah, I guess so.
Which brings me to sysadmin law 9
Backups that are not automated are not done.
DWiki has always had the ability to do the common blog thing of 'click here to see the rest of the entry'; when I put it in, I expected to use it for things like the detailed stats at the end of this entry. Because I am crazy that way, I built the feature so that it could apply on the main page (pages, really), in syndication feed entries, or both, depending on what options I turned on in any particular entry.
In practice, it turned out that I really don't like using cuts in syndication feed entries, for at least two reasons. First, syndication feed readers already have good ways to skip parts of entries and even whole entries (or at least they should), which makes cutting for volume mostly unnecessary. Second, partial entries are in annoying in general because they effectively force you out of your syndication feed reader and into your browser in order to read the full entry.
(In fact it turns out that I don't like cuts very much in general, so I barely use them even on the main pages.)
However, this does leave one case unhandled: spoilers. Places like the anime blogging community have come up with decent Javascript-based solutions for people who are reading your main site, but this is a complete non-starter in syndication feeds. In fact you can't even count on the old 'set the colour of the text to the background colour' trick, as modern syndication feed readers can strip styling as well.
My reluctant conclusion is that handling spoilers may well call for using a cut even in syndication feeds, with the annoyance of having to click off to read the entry being the lesser of two evils. The other approach is just to note that there will be spoilers at the start of an entry and count on people to use their feed reader's 'skip to next entry' feature.
(Spoilers are not generally relevant to WanderingThoughts, but they sometimes come up for me elsewhere.)
I expect many readers will recognize the image at left as representing part of the final space battle in Star Trek II: The Wrath of Khan. During this battle, Kirk and Spock realize Khan's tactics are limited. Khan is treating the battle like it is occuring on the open seas, not in space. Spock says:by Richard Bejtlich (noreply@blogger.com) at January 30, 2010 08:18 PM
In my last post I mentioned the need to take threat-centric approaches to advanced persistent threat. No sooner than I had posted those thoughts do I read this:by Richard Bejtlich (noreply@blogger.com) at January 30, 2010 03:34 PM
If you want to read a concise yet informative and clue-backed report on advanced persistent threat, I recommend completing this form to receive the first Mandiant M-Trends report. by Richard Bejtlich (noreply@blogger.com) at January 30, 2010 09:13 AM
I recently wound up reading a message about upcoming behavior changes to the .com/.net/.edu nameservers (via Dawn Keenan). The short summary of that message is that as of March 1st, those nameservers will mostly stop returning information about out of zone glue records.
Up until I read the message, I had not realized that these nameservers were still carrying (and in fact returning) out of zone glue records and it was just that modern DNS systems were not paying attention to them; I had innocently thought that out of zone glue was entirely gone, due to the era of glue record hell being long over. In fact, it turns out that they were doing so in a way that let people create circular loops of nameservers, which are going to break on March 1st.
(A longer explanation of the situation is in the message; see there for the details, which make my head hurt.)
Some experimentation shows that the out of zone glue records do not have to be from in-zone glue records for their own domain. As an example, suppose you have A.com, with NS records n1.a.com and n2.a.com, and B.com, with NS records n1.a.com and n3.a.com. If you do an NS lookup for B.com at the .com nameservers, you'll get back IP addresses for both n1.a.com, which is in-zone glue for A.com and thus necessary to carry in the .com zone, and n3.a.com, which is not. This means that something in the whole nameserver and zone management process knows or is looking up n3.a.com's IP address, and is adding it to the .com DNS information.
All of this leaves me puzzled about what the rules are for out of zone glue records in the modern world, although it probably varies by DNS zone (and maybe even registrar).
(The client-side resolver rules are clearer; apparently pretty much you always ignore any out of zone A records that you get back.)
If you get this error when trying to save something in the Django admin, it’s probably because you forgot to synchronize the database after adding the admin application. If you are using a pre-1.2 version of Django, you can simply:
$ ./managy.py syncdb
Django 1.2 (which is currently in alpha) adds multi-database support. If you want to synchronize a specific database, you can specify that on the command line:
$ ./managy.py syncdb --database=default
This post written by Bob Plankers for The Lone Sysadmin. Unless otherwise noted it is © 2010 Bob Plankers and licensed under the Creative Commons BY-NC-SA 3.0 license.
At $work, we have a lot of java processes that are ran via cron and other wrappers that do some pretty critical tasks. The apps have been written so that the whole thing is wrapped in a try/catch that will call system.exit(1) should something not go right. Our wrapper scripts watch for a non-zero exit code, and alert Nagios if something went wrong.
This works great except for when a VM encounters an outOfMemory exception (OOM). The Java VM attempts to continue on, but if the main thread hits this exception, the entire VM will exit. However, the application code that exits with a status of 1 never gets called, so the application ends up dying with a status of 0. Well, Sun (Oracle now I guess) gave us a new option in Java 6 that was backported to 1.4.2_12 and up that allows us to tell Java to run a shell command when it encounters an OOM exception. By adding the option
-XX:OnOutOfMemoryError="kill -9 %p"
to our Java command line, the VM will execute a shell that calls the kill command, with an argument of the PID of the VM. The -9 option to kill will cause the VM to exit with a non-zero status, so that our wrappers will pick up the error and alert the right people.
Note: this feature was never backported to Java5 - sorry!
Highlights from Planet Network Management + Planet Sys Admin for Week 4.
You need a new router, but your budget is in shambles. On top of that, someone tells you IPv4 addresses are running out. Great, what’s the smart thing to do?
—————————————————————————————
Joe Klein, an IPv6 consultant has been mentoring me for years. Recently, he helped with my article about IPv4 addresses running out. During one of our conversations, he suggested I promote replacing IPv4 networking equipment with IPv4/IPv6 ready equipment as the need arose. That way, costly re-buys will not be required in a year or two. Seems simple enough, so why write about it?
Little did I know. My mistake was thinking that it’s either IPv6-ready or not. It seems there are varying degrees of readiness and interoperability amongst manufacturers, and that’s a problem.
What I’ve learned
You may be familiar with the Wi-Fi Alliance and its ability to get wireless-networking companies to focus on standardization and interoperability. Thankfully, there are groups doing the same thing with IPv6 equipment.
IPv6 Ready Logo Program
The IPv6 Forum has a service called IPv6 Ready Logo. It’s a qualification program that assures devices they test are IPv6 capable. It reminds me of the Wi-Fi Alliance. I say that because once certified, they allow qualified products to display their logo. The IPv6 Forum objectives are to:
IPv6 experts I talked to, suggest only paying attention to devices given the Phase-2 approval (gold logo). That makes sense, as they are given the full treatment:
“The Phase 2 Logo expands the “core IPv6 protocols” test coverage to approximately 450 tests and adds new extended test categories. The Logo background color is Gold. The Phase 2 Logo has been available since February 16, 2005.”
This link will take you to their approved list. I wasn’t familiar with this organization, which concerned me. So, I asked Joe Klein what he thought:
“It is a good program aimed at the private sector. Actual testing in the U.S. is performed at the University of New Hampshire, a pioneer in IPv6 testing.”
That’s one resource. The Department of Defense (DoD) is committed to IPv6 and will likely be the first federal organization completely converted to IPv6. They also have a process for qualifying IPv6 equipment.
JITC/DISA
The task of certifying IPv6 products was given to the Joint Interoperability Test Command (JITC), part of the Defense Information Systems Agency (DISA). To help standardize IPv6 qualification procedures, the JITC follows what’s called the IPv6 Generic Test Plan. The PDF is 216 pages long, so I thought I’d summarize. First, the devices to be tested:
“The source requirement document, DoD IPv6 Standard Profiles for IPv6 Capable Products, identifies six product classes for IPv6 network devices: Host/Workstation, Network Appliance/Simple Server, Advanced Server, Router, Layer-3 Switch, and Information Assurance Device.”
Next, the procedure for checking compliance with IPv6 RFCs:
“Conformance testing will consist of automated test equipment that provides controlled data inputs to elicit a response from a device under test and evaluate that response in accordance with the requirements in the corresponding IPv6 Request for Comment.”
Finally interoperability between devices is tested by placing the equipment in a network that simulates the DoD network:
“Data traffic will be generated and transmitted across the network to assess the device’s capability to effectively pass IPv6 traffic and perform other IPv6-related functions in a realistic operational environment.”
After JITC qualifies a product, it is added to the Unified Capabilities Approved Products List. Fortunately, JITC makes the list available to the public. I once again asked Joe Klein what he thought about the DoD process, here is what he said:
“The DoD takes the chance of buying the wrong product very seriously. As of June 2010, all new networking products must pass testing. This is a lesson for any business/tech person. Require that the equipment you purchase is tested by one of the above programs, to mitigate the risk of a product that does not support IPv6.”
Sounds like good advice.
Final thoughts
In the process of researching this article, one thing stood out. Saying a device is IPv6-capable can have multiple meanings. So, make sure the device has been certified by an independent source.
This problem has cropped up for me a few times, but I’ve always forgotten to make a post about it. If you’re working with a large InnoDB table and you’re updating, inserting, or deleting a large volume of rows, you may stumble upon this error:
ERROR 1206 (HY000): The total number of locks exceeds the lock table size
InnoDB stores its lock tables in the main buffer pool. This means that the number of locks you can have at the same time is limited by the innodb_buffer_pool_size variable that was set when MySQL was started. By default, MySQL leaves this at 8MB, which is pretty useless if you’re doing anything with InnoDB on your server.
Luckily, the fix for this issue is very easy: adjust innodb_buffer_pool_size to a more reasonable value. However, that fix does require a restart of the MySQL daemon. There’s simply no way to adjust this variable on the fly (with the current stable MySQL versions as of this post’s writing).
Before you adjust the variable, make sure that your server can handle the additional memory usage. The innodb_buffer_pool_size variable is a server wide variable, not a per-thread variable, so it’s shared between all of the connections to the MySQL server (like the query cache). If you set it to something like 1GB, MySQL won’t use all of that up front. As MySQL finds more things to put in the buffer, the memory usage will gradually increase until it reaches 1GB. At that point, the oldest and least used data begins to get pruned when new data needs to be present.
So, you need a workaround without a MySQL restart?
If you’re in a pinch, and you need a workaround, break up your statements into chunks. If you need to delete a million rows, try deleting 5-10% of those rows per transaction. This may allow you to sneak under the lock table size limitations and clear out some data without restarting MySQL.
To learn more about InnoDB’s parameters, visit the MySQL documentation.
©2010 Racker Hacker. All Rights Reserved.
.Like a lot of other people, I'm not very interested in the iPad myself for all of the obvious reasons for an open source person who likes doing random things to his computers (see Tim Bray for a representative example). But I have a theory about what Apple is up to here, and it goes like this:
The iPad is a computer for people who do not like computers, not a computer for people who like computers.
The problem with making computers for people who like computers is that it is more and more a limited market with little potential for real growth. Most people who like computers already have one (or several), and these computers are generally pretty adequate ones. Without major technology improvements to obsolete existing hardware on a regular basis, you are are down to getting your sales from a moderate stream of new people, people replacing worn out machines, and whatever market share you can steal from your competitors (who are all trying to steal your market share in turn).
(In short, selling computers to people who like computers has become a mature market. Mature markets are boring and unspectacular, and companies in mature markets don't grow much.)
Selling computers to people who do not like computers is much easier; either they don't have a computer yet or they don't much like the one that they have. This is a growth market, potentially a very large one, provided that you actually have a computer that these people will like. Which is where the iPad's restrictions come into the picture.
People who do not actively like computers do not care about a lot of the computer stuff; they just want the computer to do things for them. All of the fiddling around that is necessary (even on a Mac) to get the computer to do things and to keep it doing those things is an annoyance to these people, and if you want to sell to them you need to make as much of it vanish as possible. Apple doesn't intrinsically need a closed and controlled box to do this, but it does need something that just works, all the time, and getting that is less effort with a closed box than with an open one (and it's in Apple's inclinations anyways). And Apple is very good about making the magic work.
Netbooks made vague attempts at this market, but they failed to be sufficiently appealing, ie sufficiently different from the same old computer that these people don't like. Apple is not making that mistake; it has targeted this market as the iPad's primary market, so the iPad's limitations are entirely deliberate and consciously thought out. And Apple is doing this in order to tap into another major market and that market's explosive growth potential, just as it did with the iPod and the iPhone.
(I'm not the only person thinking along these lines; see here, here, John Gruber, and here, for a random sampling pulled from Hacker News's front pages. Also, my thinking about this owes a debt to Thom Hogan's writing on dpreview about what camera companies will need to do in order to keep growing despite the DSLR market maturing and flattening.)
Lack of a physical keyboard probably isn't going to be much of a drawback for the 'don't like computers' market, because I suspect that they don't spend all that much time typing away on a personal computer, or even interacting with it (which will help avoid the well studied fatigue effects of long term touchscreen usage). Similarly, not being able to run multiple applications at once sounds awfully like a feature, not a flaw, since it avoids all sorts of confusions and annoyances and likely mimics how these people already prefer to use computers (especially ones with relatively small screens).
The appeal of a single, well designed and simple place and process to get applications that just work should hopefully be obvious. The applications may be not worth your money, but people waste money all the time; what they won't be is dangerous to the overall experience.
(Think of it like iTunes. What you get may turn out to be bad music, but the experience of doing it is pretty decent and the music will always actually play. This is a lot different from the experience of getting either digital music or software in a more open environment.)
I remember back when I was first learning Linux, and I encountered shell scripts. I wasn’t a programmer, and I didn’t “get” it. I distinctly remember thinking, “well, THAT’S something I won’t have to learn”. Ha!
As it turns out, I was incorrect. Writing scripts is an essential skill for a system administrator. In Linux/Unix, we’re blessed to have an amazing development environment, where as administrators running on Windows had to make due with batch files until the dot net revolution came along to introduce ASP and VB script. Now, with powershell, they’ve actually got a great environment to write systems scripts in. Between that and things like Windows Server Core, I’m beginning to wonder about the Redmond camp. But I’m digressing…
Writing scripts isn’t an optional tool in an effective administrator’s tool belt. It’s absolutely vital to efficiently performing many, many tasks. Personally, I use the bash shell, because it’s the default, and it’s what I started on. You should use whatever you feel comfortable with, whether it’s a shell script or perl. Heck, I’ve been desperate enough to even do a couple of things in CLI-mode PHP, just because I’m more fluent in it than I am perl (which is a shame, and something I’m going to be working on rectifying).
My last “fun” bit of shell programming was probably a cron job that checked for a new tsunami warning and emailed me the text of the alert. Before that, I wrote an entire RSS reader in bash. With bookmark support. Yeah, I’m a sick man.
What kind of fun things have you done with scripts lately?
I was recently working with a GPS device that returned coordinates in milliarcseconds (mas). Unfortunately, not all mapping applications (Google Maps, for example) can understand milliarcseconds. Therefore, I had to convert milliarcseconds to degrees.
The key to the conversion is understanding that one degree is equivalent to 60 arcminutes (arcmin or MOA). Therefore, one degree has 3,600 arcseconds (arcsec) or 3,600,000 mas.
So, to convert millarcseconds to degrees, simply divide by 3,600,000.
Status: draft
The Usenix LISA 2010 "Call for Participation" is out. I encourage everyone to think about what they're doing to improve system administration, what innovation they've brought to their network, and write a paper about it.
People often ask me for a definition of "system administrator". TPOSANA/2ed has a great definition in the preface (read it and see).
But lately I've been thinking that one way to define it is in terms of lifecycle. I think of sysadmins as being the people that are responsible for technology from cradle-to-grave. Developers might create it. Executives might pay for it. Customers might request it. But we facilitate the cradle-to-grave process:
Each of these phases can be a big deal and can be done well or badly.
Most sysadmins are mired in the operational aspects (keeping it running) and don't even realize the other phases exist. Consider the (usually Windows) desktop support person at most companies: the OS comes loaded from the vendor, is never changed, just maintained until the machine is thrown away. We (they) get a reputation for being janitors, not engineers.
The biggest innovations come from focusing on the other parts: getting customer requirements as part of acquisition; deploying things very well (especially desktops or things that have opportunity for mass-production cloning, etc.), scaling (growing from 100 machines , 10,000 machines, 1 million machines; or from hundreds to thousands to millions of users), decommissioning: securely destroying information, and so on.
You can optimize these phases individually or look for cross-phase improvements. If you have optimized all of these phases the only thing left is release engineering and scaling.
Surrounding these issues is all the soft skills that relate to "professionalism": how you deal with people, manage your time, etc.
So what are you going to write your LISA paper about? Which one of these phases have you improved? Did you write a new tool? Develop a new technique? Start an open-source project? Or maybe you have perfected a cross-phase methodology?
Alternatively, maybe you've noticed that there is a thing that sysadmins do, and you can study many groups of sysadmins doing that thing, and can draw comparisons and conclusions about what worked best.
Or maybe you're facing a problem that nobody else has faced, and it is worthwhile to publish your results. Maybe you've scaled Apache to more users than anyone else has, and learned something useful. Maybe you've broken from tradition "on a hunch" and your new disk backup software works better for a particularly common edge-case (Just kidding... I'm sick of papers about backup systems.) Heck, maybe you're just the first sysadmin to deploy a new technology (10G ethernet to the desktop?) and learned something about managing it that the engineers that invented it would have never expected.
What is your sysadmin team most proud of? What thing are you doing that others think is "futuristic" or "cutting edge"?
William Gibson famously wrote, "The future is here. It's just not evenly distributed yet." I suspect that most people reading this blog live in the future and by writing or speaking about what we're doing, we can spread it to others.
That's the goal of LISA, isn't it?
by riedesg (noreply@blogger.com) at January 28, 2010 06:21 PM
The biggest impediment to recording a todo item is that it is inconvenient. I use that excuse to tell myself, "oh, i'll write it down later". Later never comes.
The fewer clicks to the "add a task" prompt, the less likely I can give myself that excuse.
90% of time management is mental.
That's why I recommend paper (no boot-up time), and PDAs like the original Palm that make it very fast (minimal clicks) to write down an idea.
A related excuse happens when I'm in the NYC subway. With no internet connectivity (2G, 3G, or WiFi), any great idea I have on the subway is destined to be not recorded, and often forgotten, if the app I'm using requires the network.
What would be optimal? A "record a task" button right on the phone. You would press-and-hold the button, it would wake up and say "Recording". You would then say your task and use speech-to-text technology to transcribe the idea. If the speech-to-text server isn't reachable, it should hold the audio clip until it can be reached; possibly doing the translation in the background.
The on-screen or physical keyboard should be available too, of course, but what I really want is a super smart, voice activated, task recorder.
Everybody knows, if you’re still dealing with Cat-5 to use Cat-5e. I mean, Cat-6 would be better, but it’s still really expensive to have installed. So we use Cat-5, except it’s ENHANCED for that extra special protection against interference and crosstalk. But what is it? What, if any, is the actual, real, honest-to-God, difference between Cat-5 and Cat-5e? I’ve read the wikipedia entry, and while informative, it could really do with a rewrite. One of the few sections that mentions Cat-5e is The Cat 5e 350mhz debacle. The title makes me believe that maybe the 350mhz denotation is how you can tell, but then it goes and says this:
“Although the performance of this new 350 MHz cable was slightly better it was an easy way to sell the consumer on future proofing their needs while charging around 15% more and leading to a higher margin on the 350 MHz cable than the standard 5e cable.”
Well, alright then, what IS a standard 5e cable?
I looked at some more resources, and found some sadly incorrect suggestions and no real answers. For instance, this wiki answers post says that you need Cat-5e to get Gb/s speeds, that 5e is rated at 350mhz, and that there’s less crosstalk (though it doesn’t say why). Of course, it also says “Unless every single component in the network is gigabit rated, then you will never have a gigabit network, because your network will always run at the speed of your slowest device.”, so you can understand my skepticism.
The second table on this page sounds pretty solid, basically displaying that there are standards for Cat5E that don’t exist for Cat5, with the assumption that the cable meeting those standards will perform better/faster than a cable without those particular requirements.
But of course, I wanted to ask, because you can’t trust everything you read on the internet. Case in point? connectworld.net, who either desperately need to update their page, or desperately need to stop taking drugs:
“The Simple Answer:
CAT-5 is rated to 100M
CAT-5e is rated to 350M
CAT-6 and CAT6e is rated to 550M or 1000M depending on your source
CAT-7 is supposedly rated to 700M or presumably 1000MToday there is no approved CAT-6 or CAT-7. While some folks are selling products they call Level 6 or 7, there aren’t even specs for them, making CAT-5e the best available option.”
Sad, really. I blame the schools.
So now I ask you. I assume that there is an actual, real difference between Cat-5 and Cat-5e. what is it?
It appears that Cat-5 cable is defined by the TIA/EIA-568-A standard. The only time I’ve ever paid attention to that standard was when crimping my own ends, because TIA/EIA-568-A specifies the order of the wires in the RJ45 (really 8P8C) end. It also uses the green pair first, which I thought was weird, since I learned orange first.
However, when I go to the TIA/EIA-568-A wiki page, I’m redirected to the TIA/EIA-568-B page. At a table way down at the bottom are the lines:
Cat 5: Currently unrecognized by TIA/EIA. Defined up to 100 MHz, and was frequently used on 100 Mbit/s Ethernet networks. May be unsuitable for 1000BASE-T gigabit ethernet.
Cat 5e: Currently defined in TIA/EIA-568-B. Defined up to 100 MHz, and is frequently used for both 100 Mbit/s and 1000BASE-T Gigabit Ethernet networks.
Fascinating!
I still don’t know what the actual difference is, aside from orange going first in Cat-5e, apparently, but hey, more light on the subject, I guess.
Also, it appears that Able Cables had someone research a write a paper on the differences on the difference between TIA/EIA-568A and TIA/EIA-568B. Here is his conclusion:
9.0 Conclusion
Historically 568B was the specification on choice due to its early development and implemented base, but as the market and the political climate has changed over the years 568A has become the more dominate and preferred specification. This is only due to a desire by world standards organizations to provide a specification as backwardly compatible as possible. All new installations should be carried out using the 568A standard and cables only to be terminated to 568B specification on existing 568B systems.
Honestly, I’m not entirely sure what to make of that.
Can anyone here with more cable experience give me a hand?
BTW, I also posed this question on serverfault.
I can't claim to know very much about cryptography programming, but I like to think that I have picked up on a few mistakes to avoid. Here's one of them: you want to sign exactly what you are authenticating, not some mangled version of it.
(Note that 'canonicalizing' things is a form of mangling them.)
Suppose, as a not entirely hypothetical example, that you are signing some sort of web request with a bunch of (URL) parameters. In order to deal with annoying software, you define a canonical form for these URL parameters, which is to sort them into alphabetical order and concatenate them all together; you sign this mangled, canonical result.
Great, except that that this canonical form has just allowed an attacker
to turn 'login=fred&next=10' into 'login=fredne&xt=10' (and worse is
possible if you do not sort the parameters into order but use them in the
request's order). As Colin Percival puts it,
good crypto signatures are designed so it is very difficult to
produce collisions and when you mangle what you sign, part of what
you do is that you create opportunities for attackers to produce
deliberate collisions. This rarely ends well.
Another part of what you do when you mangle is that you are no longer necessarily verifying what you think you are verifying. Instead of verifying what you are actually about to act on and use, you are verifying something else, some mangled transformation of it. This is almost invariably a mistake, one that attackers will be happy to take advantage of to slip dangerous things into the gap between what you verify and what you act on.
(It is possible that your mangling will be un-exploitable. But the historical odds are against you; over and over, people who have done this sort of mangling and imprecise verification have turned out to have created exploitable vulnerabilities. And if you are writing crypto code, you should not be betting on things going your way.)
Disclaimer: you should not necessarily trust what I write about how to do crypto (as opposed to how not to do crypto), because I am not an experienced crypto person.
I believe that the corollary to this is that if you absolutely have to do mangling and canonicalization, you must do it as part of generating the plaintext; you take raw input, transform it into the canonical form, sign the canonical form, and output the canonical form and the signature. On verification, you canonicalize, verify the canonicalization, and then use the canonicalization for further processing, not the raw input.
If you cannot use your canonical form as input to the rest of your processing or as your public plaintext, you need a new canonical form. Try again.
by Dr Anton Chuvakin (noreply@blogger.com) at January 28, 2010 05:05 AM
The other day, I mentioned that my review of LISA ‘09 was published in Linux Pro Magazine. Well, I went to the bookstore to pick up a copy. It wasn’t there, but to my surprise, I saw the special “Linux Shell Handbook” edition was out, which includes a four page article that I wrote about administering users in Linux with the command line tools! How cool! So I picked up a copy for my junior admin and another to read myself. Very neat to see my name in a printed magazine. I can’t wait to see it on the cover of a book!
I’m glad to see the iPad is announced. It looks like an interesting device, not quite a notebook, not quite an iPhone. I, however, don’t see how it’s anything beyond a portal to give Apple more money.
Please, if you see I’ve made an error here let me know in the comments. Thank you!
1. AT&T. Seriously, a “breakthrough” deal with AT&T is like being the fastest reader in remedial reading class. You’re still in remedial reading class.
2. No Flash. It’s astonishing how much stuff I watch in Flash on my laptop, and it being missing on this device is going to be a big hole. Lots of stuff is in YouTube, but not everything, and HTML5 isn’t going to solve this problem for quite a while, either.
3. You still need a desktop to dock this thing to, for anything beyond basic downloading or web browsing. Despite what some apps can do (including iWork), it really is just a standalone viewer of content.
4. The dock and keyboard setup is a kludge. It appears clunky, certainly not easily portable, and looks like it’ll fall over when you try to click on something by touching it. I’m skeptical. I think a netbook or cheap laptop will continue to smoke the iPad for anybody who needs to type anything. Heck, you can add an external USB keyboard and a mouse to a netbook.
5. E-books with DRM. There is no mention of being able to use anything but EPUB format books. I’d like to be able to read things from Project Gutenberg, for example, or anything that an independent party might like to push out. Furthermore, it looks as if EPUB doesn’t work well for technical books or books that need precision graphics placement (comic books, for example).
6. No user-replaceable batteries, though it’s not a huge deal because you can charge just about anywhere. If their battery life figures aren’t inflated it should be enough for a day’s use. Plus, with a tablet I’m anticipating third-party form-fitting add-ons that boost battery life. I worry about wear on the battery, though — after a year or so of daily charging batteries lose significant capacity.
7. It is still tied to the draconian App Store policies. Apple still controls who can put what on this device, and their policies are not consumer-friendly. Take Google Voice as an example. Maybe Apple should watch their first commercial, “1984,” and see what their message was then.
8. No multitasking. On a real computing device you can switch between apps and not lose your place. I understand the implications for battery life and whatnot, but I’d like the option to quickly switch between apps, like an SSH client and a web browser, and keep my sessions.
Looking at Apple’s list of things they think the iPad can do better:
Browsing: netbooks for the win. A netbook has Flash and can run any web browser, not just the Apple-prescribed browser and technologies.
Email: netbooks for the win. The external keyboard is a kludge, not portable, and I’m guessing they added it because typing on the screen sucks.
Photos: I’ve changed this based on new information in the comments. I didn’t realize that the iPad had a camera connector, so I’ll dub this a tie. Netbooks are more flexible and can run more software packages, but the display & interface on the iPad will likely smoke a netbook’s. What does remain to be seen is if iPhoto or something like it will be ported to Windows. If that happens it’s iPad FTW.
Video: netbooks for the win. Aside from the lack of Flash on the iPad, which disables most Internet video players, you are only able to watch video encoded with Apple-prescribed codecs.
Music: iPad. The iPod is the standard, and the iPad will draw on that heritage.
Games: iPad. The games for the iPhone and iPad are so-so, but netbooks really don’t have the ability or interface to play anything.
eBooks: libraries for the win. A paperback book doesn’t take any power, can be read in many differing conditions, isn’t made of toxic waste, isn’t locked to a carrier, doesn’t have a monthly fee (though one would argue your library has a fee in the form of taxes), can be loaned to your cousin, is available at millions of locations, has an easy-to-use interface, can be dropped on the floor or crushed in your luggage, and can be donated to or borrowed from a library or a book swap when you’re done with it.
I think, for now, I’ll stick with a netbook and a paperback.
This post written by Bob Plankers for The Lone Sysadmin. Unless otherwise noted it is © 2010 Bob Plankers and licensed under the Creative Commons BY-NC-SA 3.0 license.
Amazon.com just posted my three star review of Professional Penetration Testing by Thomas Wilhelm. From the review:
This is my 300th Amazon.com book review. I wish I had planned the review schedule such that I reviewed a five star book for number 300. by Richard Bejtlich (noreply@blogger.com) at January 27, 2010 08:28 PM
One cryptographic cipher has been mathematically proven to be unbreakable when it is used correctly, but it is only very rarely used. Chad Perrin breaks down the one-time pad cipher.
It seems to be a truism of cryptography that any cipher, no matter how strong it is considered to be in its heyday, eventually becomes a weak cipher. What people fear when they use the current favorite strong cipher is that someone will crack it — will find a shortcut that greatly reduces the time required to use brute force calculation to decrypt something without the key.
Even if a cipher is never broken, and we forever-more need the same average number of CPU clock cycles to decrypt something encrypted by a given cipher without using the key; it still takes less time every few months to achieve the same goal than it did a few months ago. This is because computers keep getting faster, allowing us to squeeze the same number of CPU clock cycles into a shorter period of time.
Ever-more complex and clever algorithms are designed to provide ever greater resistance to brute force cryptanalysis, and to replace older algorithms that have been broken or otherwise become obsolete. It is always an arms race — privacy against the attempt to penetrate that privacy.
Amongst all the wreckage of the broken and rusty ciphers that have fallen by the wayside through history, one cipher has endured for the last 93 years. It is called the one-time pad. In 1917, Gilbert Vernam developed a cipher known as the Vernam Cipher, which used teletype technology with a paper tape key to encrypt and decrypt data. The result was a symmetric cipher that was quite strong for its time.
U.S. Army Captain Joseph Mauborgne realized that by using truly random keys, where no part of the key was repeated (except perhaps at random), the Vernam cipher could be made much stronger. From the idea of using paper tape keys, a pad of paper with rows of random letters or numbers on each page as the means of recording keys was developed. Two copies of the same pad could be given to two people, and by using each character on each page only once (and destroying each page as its last character is used to encrypt or decrypt a message), they could pass encrypted messages between them without fear of an intercepted message ever being decrypted without the help of the key. Because of the technique of distributing key stream data on pads of paper, this cipher became known as the one-time pad.
Claude Shannon, known as the father of information theory, mathematically proved the unbreakability of the one-time pad cipher when it is used properly — including destroying any pages containing used key data so that it will not be used, and so that unauthorized copies of any messages cannot later be decrypted if someone gets his hands on your used pages from the pad. The same concept for key management can be employed digitally, of course, with the proviso that one must be very careful to avoid letting the inherent weaknesses of computers introduce flaws into the one-time pad system. For instance, expensive data recovery operations might be able to reconstruct “deleted” files, including used one-time pad data. There are things you can do to help obscure such data when simply deleting files is not enough, but one must be careful.
The one-time pad cipher can be extremely inconvenient at times, which is why it is not used more often. We do actually need theoretically weaker (if cleverer) ciphers, such as AES/Rijndael and Twofish because of that inconvenience:
Other factors come into play in making use of the one-time pad cipher impractical in some circumstances, too, but these should give you a good start on seeing why other, theoretically weaker ciphers are still important.
The way the one-time pad works is deceptively simple. It involves merely comparing each of two datums, such as two letters or numbers, and using that comparison to produce a new datum. This is done for every such datum in the message you want to encrypt. The process of performing this comparison is simple and easy, one datum at a time, and (relatively) computationally cheap. A simple operator known as the XOR operator can be used to perform such a comparison. In its simplest form, the XOR operator as applied to binary numbers works something like this:
0111001101101000011011110111001001110100
0110010101101010001110010010011101100100
0 - 0 = 0. Similarly, the second character in each is a one, and 1 - 1 = 0. Where one character is a one and the other a zero, though, you get either a 1 or a -1 result. If you take the absolute value of the result, that means that both will give you a 1 result. Thus, subtracting and taking the absolute value provides the following:
0111001101101000011011110111001001110100
0110010101101010001110010010011101100100
----------------------------------------
0001011000000010010101100101010100010000
Of course, there are no ASCII translations for some of those groups of eight binary characters in the resulting string of ones and zeros, so it is difficult to represent the data in a concise form. Using ASCII encoding is well-suited to computer use, but the traditional number-and-letter approach to implementing the one-time pad cipher is much better suited to analog, by-hand translations.
The core algorithm for the one-time pad cipher is obviously incredibly simple. It is only in designing the rest of the software that surrounds this algorithm, and finding the right use case for the cipher, that the real problems of secure cryptographic software development arise. On the other hand, if it absolutely, positively has to be securely encrypted, the one-time pad is the only cipher that is provably unbreakable when used properly — given our current understanding of mathematics.
Such is the story of Mr. Sam, locatedIpswitch, the people responsible for creating What’s Up Gold, have acquired Dorian Software Creations. Dorian Software are publishers of event log management software.
Dorian’s event log management solutions for Windows and Syslog environments include:
Dorian products are scheduled to be available from Ipswitch in March.
Once upon a time, AT&T had Unix, and Unix was big (by the standards of the time); it contained all sorts of things that made it useful. AT&T decided that it wanted to make as much money as possible from Unix, so it had a brilliant idea: it would sell a bunch of pieces of 'Unix' separately, as additional cost extras. After all, Unix systems were primarily used to run canned vendor-developed software (or at least AT&T no doubt maintained), so a lot of pieces weren't strictly necessary and thus could be split off, and you could even tell the customers that they were saving money by only buying what they needed.
This created AT&T's mad unbundling of Unix components, where they separated out previously all-included things like the C compiler, troff and associated commands (as the 'Documenter's Workbench'), and so on. Pretty soon the baseline version of (AT&T) Unix was significantly stripped down compared to its predecessors.
(AT&T also repeated this most every time that they made substantial improvements to commands, so you had 'new awk', improved versions of ksh, and so on, all of which cost more money.)
This had both immediate and long term effects. The immediate effect was to create annoyingly crippled versions of Unix, ones where you could not do things like compile your own programs or even read third-party manpages, and to divert a great deal of people's efforts to getting around these limitations. Naturally, people used to BSD Unix (which included C compilers, troff, and so on) hated these environments.
(The height of such workarounds is Henry Spencer's awf, a nroff clone written in old-style awk.)
The long term effect was to make Unix, all Unixes, less attractive and less useful at a crucial time for Unix in general. By maximizing its theoretical income, AT&T determinedly minimized (AT&T) Unix's appeal in general. The C compiler situation was an especially clever own goal, and it was saved from being a complete disaster only by the existence of the FSF's GNU C Compiler and the accompanying great effort to bootstrap GCC on as many Unixes as possible and make available the precompiled binaries. Without GCC, I really think that Unix would have done much worse in many places, and certainly important Unix augmentations like Perl would have spread significantly more slowly.
(Unix vendors could have crippled the GCC effort by not shipping the header files for the standard library; fortunately, they by and large did not. Note that this was by and large in the pre-Internet era, where many people could not just download precompiled binaries for Perl and so on from some Internet site. Even assuming that they would or could have installed lots of precompiled binaries from random third parties.)
Similar effects happened with the improved commands that AT&T developed; because they were extra cost, they spread through the Unix world only very slowly (if at all), and they almost might not have been written at all. Certainly their improvements did nothing to make Unix more attractive, because for most people they weren't part of their Unix, just as troff wasn't.
Took a fair amount of googling around to find the solution to this one. With the Node Gallery 3.x branch, we needed a way to quickly add an image to an existing gallery. We could have displayed the whole node form, but there's a lot of things on that form that we can just use the defaults for 99% of the time. We need just three fields filled in: Title, Caption, and the imagefield itself.
The aftershocks of Google v China continue to rumble as more companies are linked to the advanced persistent threat. Mark Clayton from the Christian Science Monitor wrote a story titled US oil industry hit by cyberattacks: Was China involved? I found these excerpts interesting.by Richard Bejtlich (noreply@blogger.com) at January 26, 2010 10:18 PM
Previously I wrote about the Google Apps shortname service which lets you set up a tinyurl service for your enterprise.
The article implies that the service can be used without using the FQDN. This is not true. In other words, I had said that "go.example.com/lunch" could be shortened to "go/lunch".
There is a workaround that makes it work. It is difficult to configure, but I've set up a Community Wiki on ServerFault.com that explains all the steps. As a wiki, I hope people can fill in the items I left blank, particularly specific configuration snippets for ISC BIND, Windows DHCP server, Linux DHCP clients, and so on.
The new article is here: How to set up Google ShortName service for my domain, so that the FQDN isn't needed
Recently somebody asked me: what do I mean by LOG CONTEXT? And what is “log enrichment correlation?”
This picture explains it clearly:
For each element in the log message shown, you can gather some contextual information. Contextual here simply means that the information is gathered NOT from this particular log entry. For example, a log entry might contain an IP address, but its DNS name needs to be grabbed from the DNS server, which “enriches” the log entry and makes it more useful.
One of the ways SIEM and log management systems performs such enrichment is by gathering and displaying context information. Context information is the additional information required to make the limited details available within the log entry more meaningful. Context information does not come from the logs themselves [not from the entry in question – it might come from other logs], but originates in the surrounding IT environment such as other systems inside or outside the organization.
As I say above, one of the simplest example of context data is name resolution: the DNS names or Windows NetBIOS host names are added to the logs. While the log file may have already provided IP addresses, the added context of a human-readable name makes the log more meaningful. Normally, DNS names are not present in logs, but have to be obtained by queries to a DNS server. The SIEM tool might find context data in a variety sources, including:
BTW, back in 2008, I did a poll on what context is the most useful for log analysis. That is what came back – it shows that some useful context is simply documentation on what the log mean (might be pulled from the internal knowledge base of a SIEM product):
![]()
Enjoy!
by Dr Anton Chuvakin (noreply@blogger.com) at January 26, 2010 07:42 PM
With the success of Neo4j as a graph database in the NoSQL revolution, it's interesting to see another graph database, HyperGraphDB, in the mix. Their quick blurb on HyperGraphDB says it is a: general purpose, extensible, portable, distributed, embeddable, open-source data storage mechanism. It is a graph database designed specifically for artificial intelligence and semantic web projects, it can also be used as an embedded object-oriented database for projects of all sizes.
From the NoSQL Archive the summary on HyperGraphDB is: API: Java (and Java Langs), Written in:Java, Query Method: Java or P2P, Replication: P2P, Concurrency: STM, Misc: Open-Source, Especially for AI and Semantic Web.
So it has some interesting features, like software transactional memory and P2P for data distribution, but I found that my first and most obvious question was not answered: what the heck is a hypergraph and why do I care? Buried in the tutorial was:
A HyperGraphDB database is a generalized graph of entities. The generalization is two-fold:
- Links/edges "point to" an arbitrary number of elements instead of just two as in regular graphs
- Links can be pointed to by other links as well.
OK, but I wish there was some explanation of why this is valuable. What can I do with it that I can't do with normal graphs? Given that there have been concerns over the complexity of the API this would seem a natural topic to cover. I assume it's cool, it sounds cool, but I would like to know why :-)
In any case it looks like an interesting product to take a look at. Database options are expanding fast.
Randy George wrote a good article for InformationWeek titled The Dark Side of Data Loss Prevention. I thought he made several good points that are worth repeating and expanding.by Richard Bejtlich (noreply@blogger.com) at January 26, 2010 06:59 PM
As the idea that TSA policies are a joke becomes ever more popular with the American people, one TSA screener decides to prove them right — literally.
Probably the most famous modern IT security and cryptography expert in the world, Bruce Schneier, coined the term “security theater” in his book Beyond Fear. The book refers to security procedures designed to give the impression that something is being done to enhance security without actually providing any real security benefit at all. Since then, the term has increasingly been applied to airport security measures, particularly those enacted by the United States’ Transportation Security Administration.
There is some good reason for the harsh scrutiny applied to TSA policies. Completely aside from the complaints about invasions of privacy and annoying complexity added to the process of flying, some very dramatic failures have affected the image of the TSA very negatively. The implementation and use of a “Terror Watch List” has produced many false positives, including both an eight year old boy and U.S. Senator Ted Kennedy. Recently on people’s minds is the case of Umar Farouk Abdulmutallab who attempted to blow up an airliner on Christmas day 2009 — who escaped detection by airport security, but was stopped by a civilian passenger. This case might be quite as strong an indictment of airport security procedures if not for the fact that it was not the first time it happened. In 2001, Richard Reid became famous for trying to blow up an airplane with a bomb concealed in his shoe. He too escaped detection by airport security and was subdued by passengers as well.
The simplistic procedures employed to check incoming passengers’ shoes as a result of the Richard Reid incident were widely criticized as being in the spirit of security theater. It does, however, at least appear to address the problem directly in some way at first glance. The first piece of news many of us heard about new policies for trying to prevent future threats to airline security after the Christmas day bomber was caught sounded like the punchline to a joke, on the other hand. Proposals were made to prevent passengers from leaving their seats, because Umar Farouk Abdulmutallab apparently spent twenty minutes in the airplane’s restroom as it approached its destination in Detroit just before he was tackled by another passenger — a passenger who, of course, left his seat to stop the would-be bomber.
The most recent case of airport security falling flat on its face, however, actually is a punchline. It just happens to be a particularly bad punchline that rolls many of the best known mistakes of the last few years into a single, terrible, awful joke that should never have been made. Passengers have made a point of introducing something like humor into the increasingly frustrating process of trying to get through airport security, as in the case of TSA Communication, but this time around the culprit is a TSA screener.
As reported in It was no joke at security gate, passenger Rebecca Solomon had a terrifying 20 seconds while passing through airport security:
After pulling her laptop out of her carry-on bag, sliding the items through the scanning machines, and walking through a detector, she went to collect her things.
A TSA worker was staring at her. He motioned her toward him.
Then he pulled a small, clear plastic bag from her carry-on - the sort of baggie that a pair of earrings might come in. Inside the bag was fine, white powder.
Of course, the bag was not hers, and neither was the white powder. She had never seen it before, and the TSA screener knew it:
Put yourself in her place and count out 20 seconds. Her heart pounded. She started to sweat. She panicked at having to explain something she couldn’t.
Now picture her expression as the TSA employee started to smile.
Just kidding, he said. He waved the baggie. It was his.
It really does not get much worse than this for the image of a government agency whose image was already among the worst in the country. The article summed up the event succinctly and accurately:
The last thing we expect is a joke from a Transportation Security Administration screener - particularly one this stupid.
Can it get any worse?
Derek Schauland looks at the features of the Barracuda SSL-VPN, a browser-based VPN appliance, in this product spotlight.
—————————————————————————————
Remote access to corporate resources is becoming common place within many organizations. IT staff require access from the road, just in case they are out of the office and receive a help desk call. Road warriors require access to files and documents or maybe even their desktops while traveling to visit a customer. There are many ways to enable this type of access, some secure, some not so secure, but the SSL-VPN appliance from Barracuda Networks makes it very simple to provide browser-based VPN to a number of employees while working with your existing security appliances and firewalls.
The Barracuda SSL-VPN comes in several flavors:
|
Model |
Concurrent Connections |
|
180 |
15 |
|
280 |
25 |
|
380 |
50 |
|
480 |
100 |
|
680 |
500 |
The unit plugs into your network either inside the firewall, which requires configuration changes to route SSL traffic to the new device, or in the DMZ where it will forward requests into your environment. In the box you will find a quick-start configuration guide, the SSL-VPN appliance, and a power adapter.
Supported operating systems:
Hardware requirements:
An Internet connection is required to access the VPN: there are no other hardware requirements on the PC end.
The SSL-VPN is ideal for organizations that need to add remote connectivity for their users without worrying about clients being installed and maintained on their PCs or a device being configured to live in their home office.
The SSL-VPN allows access to published Citrix applications, remote desktop sessions, network shares, and even supports a client to allow tunneling to specific machines or devices to happen behind the scenes. There are no applications to install for typical use and for tunneling; a client based on Java can be downloaded after login. The process for the user becomes very straight forward.
Security is also a concern when allowing access to your network from the outside. The SSL-VPN addresses this by integrating with Active Directory or allowing the administrator to create and manage the user database directly on the device. When a user connects to the device, they need to log on and when they disconnect; the session is terminated and does not stay open constantly.
Antivirus and malware checking: When a file is copied to the network through the VPN, the file is checked for viruses as it is moved to the network.
Easy configuration: The plug and play nature of the device eases the workload on the IT staff.
Simple to use: Users within an organization simply point their browser to an address or host on the Internet and log in. Items they are able to access appear on a desktop style list once logged in.
Immediate replacement packages: Barracuda offers a license option for immediate replacement which brings some peace of mind in the event that the device malfunctions or needs to be replaced.
Some of the larger models can get a bit pricey, so consider the number of users that will connect to the device before ordering.
In today’s workforce, employees want to be productive from everywhere they might be, both in the office and out. Traditional VPNs are very useful for organizations but require specific applications on the client PC and/or devices, configured to allow a point-to-point VPN connection. With an SSL-VPN, the client is a Web browser on the PC and a network or VPN logon. The device takes care of the rest, including auditing of sessions and users connecting to the device. This ability to track the usage of the VPN can make justification very simple for IT and management.
In some quarters, it is popular to grumble about how much better things were back in the good old days of computers, Unix, or whatever. I don't hold with this view at all; I think that the modern age is great, and now I'll tell you one reason why.
I started working with Unix systems what is now quite a long time
ago. Back in those days, you couldn't get SCCS without paying extra
money to AT&T (and sometimes you couldn't get it at all, because your
Unix vendor hadn't paid extra for it themselves), and you couldn't get
RCS without a Unix source license, because RCS needed a customized
version of diff (and there was no 'GNU diff'). Thus, if you had a
source license, you generally used RCS and counted yourself lucky.
(Certainly universities pretty much didn't have the budget to buy extras from AT&T. Source control? That was a luxury, we weren't commercial developers, we hardly needed that. (AT&T's mad unbundling of the useful pieces of Unix is another rant entirely.))
Contrast that to today, where I find myself vaguely agonizing over which highly sophisticated distributed version control system to use. This shows both how far we've come and how plain nice our computing environments have become; when the big issue is just how awesome my version control system is going to be, we're doing pretty well.
(System administration has been going through this for decades. Huge swatches of boring routine work that people did even fifteen years ago are now completely gone, at least if you're not using Solaris 10.)
“I know that you believe you understand what you think I said, but I’m not sure you realize that what you heard is not what I meant.” — Robert McCloskey
This post written by Bob Plankers for The Lone Sysadmin. Unless otherwise noted it is © 2010 Bob Plankers and licensed under the Creative Commons BY-NC-SA 3.0 license.
A coalition of churches quickly formed following the quake in Haiti, Churches Helping Churches, made up of several churches including Pastor Mark Driscoll of Mars Hill Church in Seattle. They went on site last week to assist the churches in Haiti and assess the needs.
Yesterday Pastor Mark preached a special sermon which told the entire story of his trip. If your interested in the situation on the ground in Haiti and particularly in the state of the churches there watch the sermon here: 32 Hours in Haiti
If you would like to help the churches in Haiti to continue helping the people of Haiti please consider a donation to churcheshelpingchurches.com.
by riedesg (noreply@blogger.com) at January 25, 2010 06:38 PM