Programs and Processes
A program is an executable file residing on disk in a directory. A program is read into memory and is executed by the kernel as a result of one of the six exec functions.
Processes and Process ID
An executing instance of a program is called a process, a term used on almost every page of this text. Some operating systems use the term task to refer to a program that is being executed.
The UNIX System guarantees that every process has a unique numeric identifier called the process ID. The process ID is always a non-negative integer.
Five Things To Do To Defend Agaisnt Duqu
Protect your infrastructure from Duqu in the interim, just in case — with a new “hot fix” released by Microsoft, among other precautions
Whether Duqu is related to Stuxnet’s authors or its source code is the least of your worries if your organization ends up in the bull’s eye of this new targeted attack. Microsoft says it considers the threat “low risk” at this point. Trouble is, the names of the organizations that have been targeted thus far have been kept confidential, so we don’t know just what Duqu is after exactly, and whether it’s focused on a particular industry or region.
“I don’t expect Duqu to stop. It looks to be manned on the inside and not on autopilot — they are actively setting up new modules, etc., to keep the operation alive,” says Don Jackson, a director with Dell Secureworks Counter Threat Unit. “So [right now] it’s an intelligence game.”
Even so, there are still some things organizations can do to protect themselves while the world waits for more information on this attack, as well as for Microsoft’s patch for the zero-day flaw that was exploited and used with Word to spread the infection. Microsoft late today issued a “hot fix” along with an advisory about Duqu and assured users that antivirus vendors in its MAPP program would soon be updating their products with Duqu signatures very soon.
Even if you’re not a certificate authority or manufacturing firm — the two industries cited publicly so far as having Duqu victims — security experts say there are some steps you can take to help protect your infrastructure from this new targeted attack.
1. Install the just-released “hot fix” from Microsoft and workaround.
Microsoft is working on a patch, and it will do so via its regular security bulletin release — just not in time for next week’s batch. So in the meantime, Microsoft today began offering a hot fix for the threat that blocks access to t2embed.dll used in the zero-day attack in Duqu.
The flaw lays in the Win32k TrueType font parsing engine, according to Microsoft: “An attacker who successfully exploited this vulnerability could run arbitrary code in kernel mode. The attacker could then install programs; view, change, or delete data; or create new accounts with full user rights. We are aware of targeted attacks that try to use the reported vulnerability; overall, we see low customer impact at this time. This vulnerability is related to the Duqu malware,” Microsoft said in an advisory today.
Jerry Bryant, group manager for response communications in Microsoft’s Trustworthy Computing Group, says Microsoft is closely monitoring further developments with Duqu. “As previously stated, the risk for customers remains low. However, that is subject to change, so we encourage customers to either apply the workaround or ensure their anti-malware vendor has added new signatures based on the information we’ve provided them to ensure protections are in place for this issue,” he says.
2. Run updated anti-malware — and use standard security best practices.
Not all antivirus products can detect Duqu yet, but security experts say to keep updating to be sure you get protection for Duqu as soon as it’s released.
“Detections related to Duqu are mapped to the W32.Duqu family of signatures. We also highly encourage people not to click on attachments in email that seems suspicious, even if it comes from someone they know,” says Kevin Haley, director of product management for Symantec.
Secureworks recommends using any host-based protection in addition to the typical network monitoring and user access controls that would help thwart Duqu. Tarek Saadawi, professor of electrical engineering at The City College of New York’s Grove School of Engineering, says because Duqu sniffs keyboard strokes and tries to steal passwords to internal systems, users should also protect their home computers and networks. Aside from updating AV and Windows, be sure to update third-party applications and shut down computers at night, he says.
3. Scan or filter Word documents from unknown sources.
One handy tool here is Microsoft’s MOICE (Microsoft Office Isolated Conversion Environment), which checks for malformed Word documents, Secureworks’ Jackson says. “That’s how Duqu starts: with a malformed Word file. It’s playing a trick on Microsoft Word to run this code,” he says.
Jackson suggests filtering Word documents from unknown sources and scanning them with MOICE until there’s a patch for the new zero-day attack. Another option is to use something like FireEye’s software: “FireEye loads the Word document inside the VM and [executes] malicious detection,” he says.
4. Monitor for traffic from potentially infected machines trying to “phone home” to Duqu.
Be on the lookout for machines trying to connect to a Duqu command-and-control (C&C) server or trying to resolve to a Duqu-related domain. Two C&C servers have been taken down thus far, but there are likely new ones. The IP addresses of the C&Cs that were found and ultimately shuttered: 22.214.171.124 and 126.96.36.199.
“I’m confident that there are other command-and-control servers either going up now or that are already up,” Jackson says. “We are a step behind them in spotting new ones.
“Duqu has a stay-alive module … and has the ability to change itself, so anything you can do to block IP addresses will help,” he says.
5. Watch for any Port 443 traffic that’s unencrypted, and keep an eye out for ~DQ files.
Watching for unencrypted traffic on the HTTP-S or SSL-based traffic port can help detect malware, including a possible Duqu infection. “If it’s not encrypted [traffic there], it’s probably bad,” says Secureworks’ Jackson.
Meanwhile, a Duqu-infected file may start with “~DQ” in the Windows temporary file directory, so be on the lookout for that as well, Secureworks recommends.
Every significant piece of software will contain defects, typically two to five per 100 lines of code. These mistakes lead to programs and libraries that don’t perform as required, often causing a program to behave differently than it’s supposed to. Bug tracking, identification, and removal can consume a large amount of a programmer’s time during software development.
The Future of OpenGL
Over the lifetime of OpenGL, many features have been added to improve the performance of rendering complex scenes. Unfortunately, the API has become very large, with a whole array of options to choose from for each particular rendering task. Such a large number of options makes it very difficult to determine which technique will perform the most efficiently; in other words, it has became difficult to find what’s known as the ‘‘fast path.’’ The introduction of the deprecation model in OpenGL 3.0 promises to rectify this situation. The majority of the API (specifically the fixed-function part) has been marked as deprecated; the remaining functions provide the fastest methods of rendering.
Here is a list of the main functionality deprecated in Version 3.0. If you have some previous knowledge of OpenGL, this list may be of interest to you.
- Color Index mode
- OpenGL shading language versions 1.10 and 1.20 (now replaced with 1.30)
- Immediate mode
- Fixed-function vertex processing
- Matrix stacks
- Client vertex arrays
- Raster position
- Non-sprite points
- Wide lines and line stipple
- Quadrilateral and polygon primitives
- Separate polygon drawing mode
- Polygon stipple
- Pixel drawing
- Texture wrap mode—GL_CLAMP
- Display lists
- The selection buffer
- The accumulation buffer
- Alpha test
- Attribute stacks
- Unified extention string
It’s quite a lot isn’t it! Most of the above functionality is now implemented using shaders, and some parts (such as the matrix stack) can be implemented in separate libraries. There are a few items listed above that are no longer relevant because they have been replaced by more efficient methods (e.g., display lists), and some have been removed because they don’t really belong in a rendering API (e.g., the selection buffer). By the end of this chapter, you will understand how to render using future-proof, non-deprecated functionality by replacing the fixedfunction features we have relied on so far (vertex arrays and the matrix stack) with new techniques using shaders.
Adobe Launching Six New Creativity Apps for Tablets
There are as many as six new apps being developed at the house of Adobe, all of which are aimed at letting users create and edit contents on their tablet devices. The announcement was made at the annual developer conference MAX 2011 held in Los Angeles. The apps will be equally functional in both the iPad as well as the Android based tablet PCs. However, Adobe has yet to offer any concrete release date for the apps via the iPad, with the earliest release date being pegged at around early 2012. For the Android based tablet PCs, however, the release date should be much earlier around next month.
The Future of HTML
In the early ’90’s, Tim Berners-Lee conceived HTML, but there was no formal HTML 1.0 specification written and, despite the similarities in syntax, it was not formally based on SGML.
Work continued over the next few years and in 1995, HTML 2.0 was published as RFC 1866 which formally defined HTML as an application of SGML. However, browsers still didn’t bother to implement SGML parsers and, even at this early stage, many proprietary extensions were starting to appear.
From around 1996, the browser wars were in full swing. There were proprietary extensions flying in from all directions and an abundance of broken pages relying on browser bugs to work. This eventually became widely known as “Tag Soup”. In an effort to standardise this mess, the W3C published HTML 3.2 in ’97 and 4.0 in the following year which formally deprecated many of the presentational features that had crept in.
By now it seemed that the life of HTML was coming to an end and work on XHTML began. After HTML 4.01 was published at the end of ’99 to resolve a few minor issues, work on HTML as an application of SGML ceased and the HTML Working Group have been pushing ahead with XHTML ever since.
In what seemed like an effort to further distance themselves from these huge mistakes of the past, the HTML Working Group began work on XHTML 2.0 in 2002. However, it has not been designed with backwards compatibility in mind; it has been designed as a way to start over fresh with a new markup language; although many see this as a major barrier to XHTML 2.0’s chances of ever taking off.
All operating systems provide services for programs they run. Typical services include executing a new program, opening a file, reading a file, allocating a region of memory, getting the current time of day, and so on. The focus of this text is to describe the services provided by various versions of the UNIX operating system.
Describing the UNIX System in a strictly linear fashion, without any forward references to terms that haven’t been described yet, is nearly impossible (and would probably be boring). This chapter provides a whirlwind tour of the UNIX System from a programmer’s perspective. We’ll give some brief descriptions and examples of terms and concepts that appear throughout the text. We describe these features in much more detail in later chapters. This chapter also provides an introduction and overview of the services provided by the UNIX System, for programmers new to this environment.