20.10.8: addx/what Intel calls
Control-flow Enforcement Technology:
10.8, 10.9, 10.14: addx/protecting the call stack:
[@] was addx/soa/getting more efficiency along with safety/protecting the call stack
. real opportunity starts with real documentation .
20.10.8: addx/what Intel calls
Control-flow Enforcement Technology:
10.8, 10.9, 10.14: addx/protecting the call stack:
[@] was addx/soa/getting more efficiency along with safety/protecting the call stack
'20.11.3: co.quora/adds/cyb/sec/total formal verification is not possible in 2020:
current efforts at formal verification
cannot yet find all unknown vulnerabilities in software:
. as pointed out by the SeL4 team, in
“What is Proved and What is Assumed”
who used formal verification to debug a microkernel,
they are still vulnerable to inaccuracies of the hardware model;
ie, assuming the hardware acts a particular way
when under special conditions it actually does something else.
. some CPU chip instructions are reprogrammable by the manufacturer
with on-chip microcode; eg Intel Microcode
(https://en.wikipedia.org/wiki/Intel_Microcode);
this could either make the CPU more correct
or make it vulnerable to malicious modification?
. also, there was some of the SeL4 software
that was not practically verifiable yet:
"there may still be faults remaining in
specific low-level parts of the kernel
(TLB, cache handling, handwritten assembly, boot code)."
. some C library functions are often used incorrectly,. here's the safe C library
and that consequently result in
remote code execution vulnerabilities:
strcpy, sprintf, memcpy, CopyMemory,
RtlCopyMemory, strcat, alloca
and many more Win32 specific stuff.
. much of the legacy software that is
still critical to many enterprises
contains code that calls these vulnerable library functions.
Despite modern memory protections
like ASLR and DEP
the vulnerabilities these functions introduce
are still exploitable under the right conditions .
The Software Assurance Forum for
Excellence in Code (SAFECode),
a nonprofit seeking to advance software assurance,
released an updated guidance document .
The free report includes verification methods and tools
that can be used to confirm whether
development teams have followed prescribed practices.
Achieving parallelism and safety at the same timenews.adda/co/ParaSail at oopsla:
by eliminating rather than adding features
has worked out better than we originally expected.
One of the lessons of the process has been that
just a small number of key ideas are sufficient to
achieve safe and easy parallelism.
Probably the biggest is the elimination of pointers,
with the substitution of expandable objects.
The other big one is the elimination of
direct access to global variables,
instead requiring that a variable be
passed as a (var or in out) parameter
if a function is going to update it.
Other important ones include
the elimination of parameter aliasing,
and the replacement of exception handling
with a combination of more
pre-condition checking at compile time
and a more task-friendly
event handling mechanism at run time.
So the question now is whether
some of these same key ideas
can be applied to existing languages,
to produce something with much the same look and feel
of the original, while moving toward a much more
parallel-, multicore-, human-friendly semantics.
"( Modern buffer overflows are more difficult to exploit. that had nothing to do with SOA;
than Aleph One's
smashing the stack for fun and profit.
You should look into modern bypasses to ASLR
such as heap spraying or heap feng shui.
Attacks like jmp2reg (jmp2esp jump2ebx ect...)
are also interesting for bypasses for ASLR.
Attacking ActiveX components is fun.
I used H.D. Moore's AxMan with great success.
Here is the remote code execution exploit I found
using AxMan .
. Here are more exploits that I have written .
. The best fuzzer is by far PeachFuzz,
and writing some pit files for it
can be very fruitful research.
Buffer overflows and sql injection
are the most talked about,
but there are a couple hundred categories for vulnerabilities
and they are identified by CWE numbers.
Its worth exploring, I think it will surprise you
what NIST thinks a vulnerability is.
By John Moore for Intelligence In Software
The rise of multicore processors and programmable GPUs
has sparked a wave of developments in
parallel programming languages.
Developers seeking to exploit multicore and manycore systems
-- potentially thousands of processors --
now have more options at their disposal.
Parallel languages making moves of late
include the SEJITS of University of California, Berkeley;
The Khronos Group’s OpenCL;
the recently open-sourced Cilk Plus;
and the newly created ParaSail language.
Developers may encounter these languages directly,
though the wider community will most likely find them
embedded within higher-level languages.
. ParaSail incorporates formal methods such as
preconditions and post-conditions,
which are enforced by the compiler.
In another nod to secure, safety-critical systems,
. most PCs have not been into sandboxing
[because backward compatability was an issue;
smartphone platforms are more recent inventions,
so sandboxing is an obvious good .]
. to access resources within a sandbox,
apps must request “entitlements” [aka, capabilities.]
Android apps must ask the user for permissions
and then the OS constrains the app
to the allowed permissions .
[ but Android apps may be all-or-nothing:
either the user accepts all the requests,
or else the app fails to be usable at all .]
Apple’s iOS sandboxing doesn’t involve the user,
as all permissions are handled by
Apple's App Store evaluators .
[7.25:. in order to be accepted into the app store,
developers must divide their app into modules
so as to more easily explain why each part
needs a particular set of entitlements .][7.20:
Apple decides for the user,
what entitlements are appropriate,
not only for the whole app,
but more smartly, for each of its modules .]
. iOS users can still control certain entitlements:[7.20:
(eg, opening a list of recent files
or saving documents elsewhere in the file system).
Concerns from Developers:
# no more AppleScript:
# no more file system management: [7.20:
. Apple sandboxing asks the usernevertheless, sandboxing of the file system
for each and every file access;
so, apps that need access to many files
or that need to work in the background
are not considered sandboxable;
. see Jonathan Zittrain's Chapter 7 of
The Future of the Internet and How to Stop It .